1// Copyright 2020 Google LLC.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5// Code generated file. DO NOT EDIT.
6
7// Package compute provides access to the Compute Engine API.
8//
9// For product documentation, see: https://developers.google.com/compute/docs/reference/latest/
10//
11// Creating a client
12//
13// Usage example:
14//
15//   import "google.golang.org/api/compute/v0.beta"
16//   ...
17//   ctx := context.Background()
18//   computeService, err := compute.NewService(ctx)
19//
20// In this example, Google Application Default Credentials are used for authentication.
21//
22// For information on how to create and obtain Application Default Credentials, see https://developers.google.com/identity/protocols/application-default-credentials.
23//
24// Other authentication options
25//
26// By default, all available scopes (see "Constants") are used to authenticate. To restrict scopes, use option.WithScopes:
27//
28//   computeService, err := compute.NewService(ctx, option.WithScopes(compute.DevstorageReadWriteScope))
29//
30// To use an API key for authentication (note: some APIs do not support API keys), use option.WithAPIKey:
31//
32//   computeService, err := compute.NewService(ctx, option.WithAPIKey("AIza..."))
33//
34// To use an OAuth token (e.g., a user token obtained via a three-legged OAuth flow), use option.WithTokenSource:
35//
36//   config := &oauth2.Config{...}
37//   // ...
38//   token, err := config.Exchange(ctx, ...)
39//   computeService, err := compute.NewService(ctx, option.WithTokenSource(config.TokenSource(ctx, token)))
40//
41// See https://godoc.org/google.golang.org/api/option/ for details on options.
42package compute // import "google.golang.org/api/compute/v0.beta"
43
44import (
45	"bytes"
46	"context"
47	"encoding/json"
48	"errors"
49	"fmt"
50	"io"
51	"net/http"
52	"net/url"
53	"strconv"
54	"strings"
55
56	googleapi "google.golang.org/api/googleapi"
57	gensupport "google.golang.org/api/internal/gensupport"
58	option "google.golang.org/api/option"
59	internaloption "google.golang.org/api/option/internaloption"
60	htransport "google.golang.org/api/transport/http"
61)
62
63// Always reference these packages, just in case the auto-generated code
64// below doesn't.
65var _ = bytes.NewBuffer
66var _ = strconv.Itoa
67var _ = fmt.Sprintf
68var _ = json.NewDecoder
69var _ = io.Copy
70var _ = url.Parse
71var _ = gensupport.MarshalJSON
72var _ = googleapi.Version
73var _ = errors.New
74var _ = strings.Replace
75var _ = context.Canceled
76var _ = internaloption.WithDefaultEndpoint
77
78const apiId = "compute:beta"
79const apiName = "compute"
80const apiVersion = "beta"
81const basePath = "https://compute.googleapis.com/compute/beta/projects/"
82
83// OAuth2 scopes used by this API.
84const (
85	// View and manage your data across Google Cloud Platform services
86	CloudPlatformScope = "https://www.googleapis.com/auth/cloud-platform"
87
88	// View and manage your Google Compute Engine resources
89	ComputeScope = "https://www.googleapis.com/auth/compute"
90
91	// View your Google Compute Engine resources
92	ComputeReadonlyScope = "https://www.googleapis.com/auth/compute.readonly"
93
94	// Manage your data and permissions in Google Cloud Storage
95	DevstorageFullControlScope = "https://www.googleapis.com/auth/devstorage.full_control"
96
97	// View your data in Google Cloud Storage
98	DevstorageReadOnlyScope = "https://www.googleapis.com/auth/devstorage.read_only"
99
100	// Manage your data in Google Cloud Storage
101	DevstorageReadWriteScope = "https://www.googleapis.com/auth/devstorage.read_write"
102)
103
104// NewService creates a new Service.
105func NewService(ctx context.Context, opts ...option.ClientOption) (*Service, error) {
106	scopesOption := option.WithScopes(
107		"https://www.googleapis.com/auth/cloud-platform",
108		"https://www.googleapis.com/auth/compute",
109		"https://www.googleapis.com/auth/compute.readonly",
110		"https://www.googleapis.com/auth/devstorage.full_control",
111		"https://www.googleapis.com/auth/devstorage.read_only",
112		"https://www.googleapis.com/auth/devstorage.read_write",
113	)
114	// NOTE: prepend, so we don't override user-specified scopes.
115	opts = append([]option.ClientOption{scopesOption}, opts...)
116	opts = append(opts, internaloption.WithDefaultEndpoint(basePath))
117	client, endpoint, err := htransport.NewClient(ctx, opts...)
118	if err != nil {
119		return nil, err
120	}
121	s, err := New(client)
122	if err != nil {
123		return nil, err
124	}
125	if endpoint != "" {
126		s.BasePath = endpoint
127	}
128	return s, nil
129}
130
131// New creates a new Service. It uses the provided http.Client for requests.
132//
133// Deprecated: please use NewService instead.
134// To provide a custom HTTP client, use option.WithHTTPClient.
135// If you are using google.golang.org/api/googleapis/transport.APIKey, use option.WithAPIKey with NewService instead.
136func New(client *http.Client) (*Service, error) {
137	if client == nil {
138		return nil, errors.New("client is nil")
139	}
140	s := &Service{client: client, BasePath: basePath}
141	s.AcceleratorTypes = NewAcceleratorTypesService(s)
142	s.Addresses = NewAddressesService(s)
143	s.Autoscalers = NewAutoscalersService(s)
144	s.BackendBuckets = NewBackendBucketsService(s)
145	s.BackendServices = NewBackendServicesService(s)
146	s.DiskTypes = NewDiskTypesService(s)
147	s.Disks = NewDisksService(s)
148	s.ExternalVpnGateways = NewExternalVpnGatewaysService(s)
149	s.Firewalls = NewFirewallsService(s)
150	s.ForwardingRules = NewForwardingRulesService(s)
151	s.GlobalAddresses = NewGlobalAddressesService(s)
152	s.GlobalForwardingRules = NewGlobalForwardingRulesService(s)
153	s.GlobalNetworkEndpointGroups = NewGlobalNetworkEndpointGroupsService(s)
154	s.GlobalOperations = NewGlobalOperationsService(s)
155	s.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.MachineImages = NewMachineImagesService(s)
169	s.MachineTypes = NewMachineTypesService(s)
170	s.NetworkEndpointGroups = NewNetworkEndpointGroupsService(s)
171	s.Networks = NewNetworksService(s)
172	s.NodeGroups = NewNodeGroupsService(s)
173	s.NodeTemplates = NewNodeTemplatesService(s)
174	s.NodeTypes = NewNodeTypesService(s)
175	s.PacketMirrorings = NewPacketMirroringsService(s)
176	s.Projects = NewProjectsService(s)
177	s.RegionAutoscalers = NewRegionAutoscalersService(s)
178	s.RegionBackendServices = NewRegionBackendServicesService(s)
179	s.RegionCommitments = NewRegionCommitmentsService(s)
180	s.RegionDiskTypes = NewRegionDiskTypesService(s)
181	s.RegionDisks = NewRegionDisksService(s)
182	s.RegionHealthCheckServices = NewRegionHealthCheckServicesService(s)
183	s.RegionHealthChecks = NewRegionHealthChecksService(s)
184	s.RegionInstanceGroupManagers = NewRegionInstanceGroupManagersService(s)
185	s.RegionInstanceGroups = NewRegionInstanceGroupsService(s)
186	s.RegionNotificationEndpoints = NewRegionNotificationEndpointsService(s)
187	s.RegionOperations = NewRegionOperationsService(s)
188	s.RegionSslCertificates = NewRegionSslCertificatesService(s)
189	s.RegionTargetHttpProxies = NewRegionTargetHttpProxiesService(s)
190	s.RegionTargetHttpsProxies = NewRegionTargetHttpsProxiesService(s)
191	s.RegionUrlMaps = NewRegionUrlMapsService(s)
192	s.Regions = NewRegionsService(s)
193	s.Reservations = NewReservationsService(s)
194	s.ResourcePolicies = NewResourcePoliciesService(s)
195	s.Routers = NewRoutersService(s)
196	s.Routes = NewRoutesService(s)
197	s.SecurityPolicies = NewSecurityPoliciesService(s)
198	s.Snapshots = NewSnapshotsService(s)
199	s.SslCertificates = NewSslCertificatesService(s)
200	s.SslPolicies = NewSslPoliciesService(s)
201	s.Subnetworks = NewSubnetworksService(s)
202	s.TargetHttpProxies = NewTargetHttpProxiesService(s)
203	s.TargetHttpsProxies = NewTargetHttpsProxiesService(s)
204	s.TargetInstances = NewTargetInstancesService(s)
205	s.TargetPools = NewTargetPoolsService(s)
206	s.TargetSslProxies = NewTargetSslProxiesService(s)
207	s.TargetTcpProxies = NewTargetTcpProxiesService(s)
208	s.TargetVpnGateways = NewTargetVpnGatewaysService(s)
209	s.UrlMaps = NewUrlMapsService(s)
210	s.VpnGateways = NewVpnGatewaysService(s)
211	s.VpnTunnels = NewVpnTunnelsService(s)
212	s.ZoneOperations = NewZoneOperationsService(s)
213	s.Zones = NewZonesService(s)
214	return s, nil
215}
216
217type Service struct {
218	client    *http.Client
219	BasePath  string // API endpoint base URL
220	UserAgent string // optional additional User-Agent fragment
221
222	AcceleratorTypes *AcceleratorTypesService
223
224	Addresses *AddressesService
225
226	Autoscalers *AutoscalersService
227
228	BackendBuckets *BackendBucketsService
229
230	BackendServices *BackendServicesService
231
232	DiskTypes *DiskTypesService
233
234	Disks *DisksService
235
236	ExternalVpnGateways *ExternalVpnGatewaysService
237
238	Firewalls *FirewallsService
239
240	ForwardingRules *ForwardingRulesService
241
242	GlobalAddresses *GlobalAddressesService
243
244	GlobalForwardingRules *GlobalForwardingRulesService
245
246	GlobalNetworkEndpointGroups *GlobalNetworkEndpointGroupsService
247
248	GlobalOperations *GlobalOperationsService
249
250	HealthChecks *HealthChecksService
251
252	HttpHealthChecks *HttpHealthChecksService
253
254	HttpsHealthChecks *HttpsHealthChecksService
255
256	Images *ImagesService
257
258	InstanceGroupManagers *InstanceGroupManagersService
259
260	InstanceGroups *InstanceGroupsService
261
262	InstanceTemplates *InstanceTemplatesService
263
264	Instances *InstancesService
265
266	InterconnectAttachments *InterconnectAttachmentsService
267
268	InterconnectLocations *InterconnectLocationsService
269
270	Interconnects *InterconnectsService
271
272	LicenseCodes *LicenseCodesService
273
274	Licenses *LicensesService
275
276	MachineImages *MachineImagesService
277
278	MachineTypes *MachineTypesService
279
280	NetworkEndpointGroups *NetworkEndpointGroupsService
281
282	Networks *NetworksService
283
284	NodeGroups *NodeGroupsService
285
286	NodeTemplates *NodeTemplatesService
287
288	NodeTypes *NodeTypesService
289
290	PacketMirrorings *PacketMirroringsService
291
292	Projects *ProjectsService
293
294	RegionAutoscalers *RegionAutoscalersService
295
296	RegionBackendServices *RegionBackendServicesService
297
298	RegionCommitments *RegionCommitmentsService
299
300	RegionDiskTypes *RegionDiskTypesService
301
302	RegionDisks *RegionDisksService
303
304	RegionHealthCheckServices *RegionHealthCheckServicesService
305
306	RegionHealthChecks *RegionHealthChecksService
307
308	RegionInstanceGroupManagers *RegionInstanceGroupManagersService
309
310	RegionInstanceGroups *RegionInstanceGroupsService
311
312	RegionNotificationEndpoints *RegionNotificationEndpointsService
313
314	RegionOperations *RegionOperationsService
315
316	RegionSslCertificates *RegionSslCertificatesService
317
318	RegionTargetHttpProxies *RegionTargetHttpProxiesService
319
320	RegionTargetHttpsProxies *RegionTargetHttpsProxiesService
321
322	RegionUrlMaps *RegionUrlMapsService
323
324	Regions *RegionsService
325
326	Reservations *ReservationsService
327
328	ResourcePolicies *ResourcePoliciesService
329
330	Routers *RoutersService
331
332	Routes *RoutesService
333
334	SecurityPolicies *SecurityPoliciesService
335
336	Snapshots *SnapshotsService
337
338	SslCertificates *SslCertificatesService
339
340	SslPolicies *SslPoliciesService
341
342	Subnetworks *SubnetworksService
343
344	TargetHttpProxies *TargetHttpProxiesService
345
346	TargetHttpsProxies *TargetHttpsProxiesService
347
348	TargetInstances *TargetInstancesService
349
350	TargetPools *TargetPoolsService
351
352	TargetSslProxies *TargetSslProxiesService
353
354	TargetTcpProxies *TargetTcpProxiesService
355
356	TargetVpnGateways *TargetVpnGatewaysService
357
358	UrlMaps *UrlMapsService
359
360	VpnGateways *VpnGatewaysService
361
362	VpnTunnels *VpnTunnelsService
363
364	ZoneOperations *ZoneOperationsService
365
366	Zones *ZonesService
367}
368
369func (s *Service) userAgent() string {
370	if s.UserAgent == "" {
371		return googleapi.UserAgent
372	}
373	return googleapi.UserAgent + " " + s.UserAgent
374}
375
376func NewAcceleratorTypesService(s *Service) *AcceleratorTypesService {
377	rs := &AcceleratorTypesService{s: s}
378	return rs
379}
380
381type AcceleratorTypesService struct {
382	s *Service
383}
384
385func NewAddressesService(s *Service) *AddressesService {
386	rs := &AddressesService{s: s}
387	return rs
388}
389
390type AddressesService struct {
391	s *Service
392}
393
394func NewAutoscalersService(s *Service) *AutoscalersService {
395	rs := &AutoscalersService{s: s}
396	return rs
397}
398
399type AutoscalersService struct {
400	s *Service
401}
402
403func NewBackendBucketsService(s *Service) *BackendBucketsService {
404	rs := &BackendBucketsService{s: s}
405	return rs
406}
407
408type BackendBucketsService struct {
409	s *Service
410}
411
412func NewBackendServicesService(s *Service) *BackendServicesService {
413	rs := &BackendServicesService{s: s}
414	return rs
415}
416
417type BackendServicesService struct {
418	s *Service
419}
420
421func NewDiskTypesService(s *Service) *DiskTypesService {
422	rs := &DiskTypesService{s: s}
423	return rs
424}
425
426type DiskTypesService struct {
427	s *Service
428}
429
430func NewDisksService(s *Service) *DisksService {
431	rs := &DisksService{s: s}
432	return rs
433}
434
435type DisksService struct {
436	s *Service
437}
438
439func NewExternalVpnGatewaysService(s *Service) *ExternalVpnGatewaysService {
440	rs := &ExternalVpnGatewaysService{s: s}
441	return rs
442}
443
444type ExternalVpnGatewaysService struct {
445	s *Service
446}
447
448func NewFirewallsService(s *Service) *FirewallsService {
449	rs := &FirewallsService{s: s}
450	return rs
451}
452
453type FirewallsService struct {
454	s *Service
455}
456
457func NewForwardingRulesService(s *Service) *ForwardingRulesService {
458	rs := &ForwardingRulesService{s: s}
459	return rs
460}
461
462type ForwardingRulesService struct {
463	s *Service
464}
465
466func NewGlobalAddressesService(s *Service) *GlobalAddressesService {
467	rs := &GlobalAddressesService{s: s}
468	return rs
469}
470
471type GlobalAddressesService struct {
472	s *Service
473}
474
475func NewGlobalForwardingRulesService(s *Service) *GlobalForwardingRulesService {
476	rs := &GlobalForwardingRulesService{s: s}
477	return rs
478}
479
480type GlobalForwardingRulesService struct {
481	s *Service
482}
483
484func NewGlobalNetworkEndpointGroupsService(s *Service) *GlobalNetworkEndpointGroupsService {
485	rs := &GlobalNetworkEndpointGroupsService{s: s}
486	return rs
487}
488
489type GlobalNetworkEndpointGroupsService struct {
490	s *Service
491}
492
493func NewGlobalOperationsService(s *Service) *GlobalOperationsService {
494	rs := &GlobalOperationsService{s: s}
495	return rs
496}
497
498type GlobalOperationsService struct {
499	s *Service
500}
501
502func NewHealthChecksService(s *Service) *HealthChecksService {
503	rs := &HealthChecksService{s: s}
504	return rs
505}
506
507type HealthChecksService struct {
508	s *Service
509}
510
511func NewHttpHealthChecksService(s *Service) *HttpHealthChecksService {
512	rs := &HttpHealthChecksService{s: s}
513	return rs
514}
515
516type HttpHealthChecksService struct {
517	s *Service
518}
519
520func NewHttpsHealthChecksService(s *Service) *HttpsHealthChecksService {
521	rs := &HttpsHealthChecksService{s: s}
522	return rs
523}
524
525type HttpsHealthChecksService struct {
526	s *Service
527}
528
529func NewImagesService(s *Service) *ImagesService {
530	rs := &ImagesService{s: s}
531	return rs
532}
533
534type ImagesService struct {
535	s *Service
536}
537
538func NewInstanceGroupManagersService(s *Service) *InstanceGroupManagersService {
539	rs := &InstanceGroupManagersService{s: s}
540	return rs
541}
542
543type InstanceGroupManagersService struct {
544	s *Service
545}
546
547func NewInstanceGroupsService(s *Service) *InstanceGroupsService {
548	rs := &InstanceGroupsService{s: s}
549	return rs
550}
551
552type InstanceGroupsService struct {
553	s *Service
554}
555
556func NewInstanceTemplatesService(s *Service) *InstanceTemplatesService {
557	rs := &InstanceTemplatesService{s: s}
558	return rs
559}
560
561type InstanceTemplatesService struct {
562	s *Service
563}
564
565func NewInstancesService(s *Service) *InstancesService {
566	rs := &InstancesService{s: s}
567	return rs
568}
569
570type InstancesService struct {
571	s *Service
572}
573
574func NewInterconnectAttachmentsService(s *Service) *InterconnectAttachmentsService {
575	rs := &InterconnectAttachmentsService{s: s}
576	return rs
577}
578
579type InterconnectAttachmentsService struct {
580	s *Service
581}
582
583func NewInterconnectLocationsService(s *Service) *InterconnectLocationsService {
584	rs := &InterconnectLocationsService{s: s}
585	return rs
586}
587
588type InterconnectLocationsService struct {
589	s *Service
590}
591
592func NewInterconnectsService(s *Service) *InterconnectsService {
593	rs := &InterconnectsService{s: s}
594	return rs
595}
596
597type InterconnectsService struct {
598	s *Service
599}
600
601func NewLicenseCodesService(s *Service) *LicenseCodesService {
602	rs := &LicenseCodesService{s: s}
603	return rs
604}
605
606type LicenseCodesService struct {
607	s *Service
608}
609
610func NewLicensesService(s *Service) *LicensesService {
611	rs := &LicensesService{s: s}
612	return rs
613}
614
615type LicensesService struct {
616	s *Service
617}
618
619func NewMachineImagesService(s *Service) *MachineImagesService {
620	rs := &MachineImagesService{s: s}
621	return rs
622}
623
624type MachineImagesService struct {
625	s *Service
626}
627
628func NewMachineTypesService(s *Service) *MachineTypesService {
629	rs := &MachineTypesService{s: s}
630	return rs
631}
632
633type MachineTypesService struct {
634	s *Service
635}
636
637func NewNetworkEndpointGroupsService(s *Service) *NetworkEndpointGroupsService {
638	rs := &NetworkEndpointGroupsService{s: s}
639	return rs
640}
641
642type NetworkEndpointGroupsService struct {
643	s *Service
644}
645
646func NewNetworksService(s *Service) *NetworksService {
647	rs := &NetworksService{s: s}
648	return rs
649}
650
651type NetworksService struct {
652	s *Service
653}
654
655func NewNodeGroupsService(s *Service) *NodeGroupsService {
656	rs := &NodeGroupsService{s: s}
657	return rs
658}
659
660type NodeGroupsService struct {
661	s *Service
662}
663
664func NewNodeTemplatesService(s *Service) *NodeTemplatesService {
665	rs := &NodeTemplatesService{s: s}
666	return rs
667}
668
669type NodeTemplatesService struct {
670	s *Service
671}
672
673func NewNodeTypesService(s *Service) *NodeTypesService {
674	rs := &NodeTypesService{s: s}
675	return rs
676}
677
678type NodeTypesService struct {
679	s *Service
680}
681
682func NewPacketMirroringsService(s *Service) *PacketMirroringsService {
683	rs := &PacketMirroringsService{s: s}
684	return rs
685}
686
687type PacketMirroringsService struct {
688	s *Service
689}
690
691func NewProjectsService(s *Service) *ProjectsService {
692	rs := &ProjectsService{s: s}
693	return rs
694}
695
696type ProjectsService struct {
697	s *Service
698}
699
700func NewRegionAutoscalersService(s *Service) *RegionAutoscalersService {
701	rs := &RegionAutoscalersService{s: s}
702	return rs
703}
704
705type RegionAutoscalersService struct {
706	s *Service
707}
708
709func NewRegionBackendServicesService(s *Service) *RegionBackendServicesService {
710	rs := &RegionBackendServicesService{s: s}
711	return rs
712}
713
714type RegionBackendServicesService struct {
715	s *Service
716}
717
718func NewRegionCommitmentsService(s *Service) *RegionCommitmentsService {
719	rs := &RegionCommitmentsService{s: s}
720	return rs
721}
722
723type RegionCommitmentsService struct {
724	s *Service
725}
726
727func NewRegionDiskTypesService(s *Service) *RegionDiskTypesService {
728	rs := &RegionDiskTypesService{s: s}
729	return rs
730}
731
732type RegionDiskTypesService struct {
733	s *Service
734}
735
736func NewRegionDisksService(s *Service) *RegionDisksService {
737	rs := &RegionDisksService{s: s}
738	return rs
739}
740
741type RegionDisksService struct {
742	s *Service
743}
744
745func NewRegionHealthCheckServicesService(s *Service) *RegionHealthCheckServicesService {
746	rs := &RegionHealthCheckServicesService{s: s}
747	return rs
748}
749
750type RegionHealthCheckServicesService struct {
751	s *Service
752}
753
754func NewRegionHealthChecksService(s *Service) *RegionHealthChecksService {
755	rs := &RegionHealthChecksService{s: s}
756	return rs
757}
758
759type RegionHealthChecksService struct {
760	s *Service
761}
762
763func NewRegionInstanceGroupManagersService(s *Service) *RegionInstanceGroupManagersService {
764	rs := &RegionInstanceGroupManagersService{s: s}
765	return rs
766}
767
768type RegionInstanceGroupManagersService struct {
769	s *Service
770}
771
772func NewRegionInstanceGroupsService(s *Service) *RegionInstanceGroupsService {
773	rs := &RegionInstanceGroupsService{s: s}
774	return rs
775}
776
777type RegionInstanceGroupsService struct {
778	s *Service
779}
780
781func NewRegionNotificationEndpointsService(s *Service) *RegionNotificationEndpointsService {
782	rs := &RegionNotificationEndpointsService{s: s}
783	return rs
784}
785
786type RegionNotificationEndpointsService struct {
787	s *Service
788}
789
790func NewRegionOperationsService(s *Service) *RegionOperationsService {
791	rs := &RegionOperationsService{s: s}
792	return rs
793}
794
795type RegionOperationsService struct {
796	s *Service
797}
798
799func NewRegionSslCertificatesService(s *Service) *RegionSslCertificatesService {
800	rs := &RegionSslCertificatesService{s: s}
801	return rs
802}
803
804type RegionSslCertificatesService struct {
805	s *Service
806}
807
808func NewRegionTargetHttpProxiesService(s *Service) *RegionTargetHttpProxiesService {
809	rs := &RegionTargetHttpProxiesService{s: s}
810	return rs
811}
812
813type RegionTargetHttpProxiesService struct {
814	s *Service
815}
816
817func NewRegionTargetHttpsProxiesService(s *Service) *RegionTargetHttpsProxiesService {
818	rs := &RegionTargetHttpsProxiesService{s: s}
819	return rs
820}
821
822type RegionTargetHttpsProxiesService struct {
823	s *Service
824}
825
826func NewRegionUrlMapsService(s *Service) *RegionUrlMapsService {
827	rs := &RegionUrlMapsService{s: s}
828	return rs
829}
830
831type RegionUrlMapsService struct {
832	s *Service
833}
834
835func NewRegionsService(s *Service) *RegionsService {
836	rs := &RegionsService{s: s}
837	return rs
838}
839
840type RegionsService struct {
841	s *Service
842}
843
844func NewReservationsService(s *Service) *ReservationsService {
845	rs := &ReservationsService{s: s}
846	return rs
847}
848
849type ReservationsService struct {
850	s *Service
851}
852
853func NewResourcePoliciesService(s *Service) *ResourcePoliciesService {
854	rs := &ResourcePoliciesService{s: s}
855	return rs
856}
857
858type ResourcePoliciesService struct {
859	s *Service
860}
861
862func NewRoutersService(s *Service) *RoutersService {
863	rs := &RoutersService{s: s}
864	return rs
865}
866
867type RoutersService struct {
868	s *Service
869}
870
871func NewRoutesService(s *Service) *RoutesService {
872	rs := &RoutesService{s: s}
873	return rs
874}
875
876type RoutesService struct {
877	s *Service
878}
879
880func NewSecurityPoliciesService(s *Service) *SecurityPoliciesService {
881	rs := &SecurityPoliciesService{s: s}
882	return rs
883}
884
885type SecurityPoliciesService struct {
886	s *Service
887}
888
889func NewSnapshotsService(s *Service) *SnapshotsService {
890	rs := &SnapshotsService{s: s}
891	return rs
892}
893
894type SnapshotsService struct {
895	s *Service
896}
897
898func NewSslCertificatesService(s *Service) *SslCertificatesService {
899	rs := &SslCertificatesService{s: s}
900	return rs
901}
902
903type SslCertificatesService struct {
904	s *Service
905}
906
907func NewSslPoliciesService(s *Service) *SslPoliciesService {
908	rs := &SslPoliciesService{s: s}
909	return rs
910}
911
912type SslPoliciesService struct {
913	s *Service
914}
915
916func NewSubnetworksService(s *Service) *SubnetworksService {
917	rs := &SubnetworksService{s: s}
918	return rs
919}
920
921type SubnetworksService struct {
922	s *Service
923}
924
925func NewTargetHttpProxiesService(s *Service) *TargetHttpProxiesService {
926	rs := &TargetHttpProxiesService{s: s}
927	return rs
928}
929
930type TargetHttpProxiesService struct {
931	s *Service
932}
933
934func NewTargetHttpsProxiesService(s *Service) *TargetHttpsProxiesService {
935	rs := &TargetHttpsProxiesService{s: s}
936	return rs
937}
938
939type TargetHttpsProxiesService struct {
940	s *Service
941}
942
943func NewTargetInstancesService(s *Service) *TargetInstancesService {
944	rs := &TargetInstancesService{s: s}
945	return rs
946}
947
948type TargetInstancesService struct {
949	s *Service
950}
951
952func NewTargetPoolsService(s *Service) *TargetPoolsService {
953	rs := &TargetPoolsService{s: s}
954	return rs
955}
956
957type TargetPoolsService struct {
958	s *Service
959}
960
961func NewTargetSslProxiesService(s *Service) *TargetSslProxiesService {
962	rs := &TargetSslProxiesService{s: s}
963	return rs
964}
965
966type TargetSslProxiesService struct {
967	s *Service
968}
969
970func NewTargetTcpProxiesService(s *Service) *TargetTcpProxiesService {
971	rs := &TargetTcpProxiesService{s: s}
972	return rs
973}
974
975type TargetTcpProxiesService struct {
976	s *Service
977}
978
979func NewTargetVpnGatewaysService(s *Service) *TargetVpnGatewaysService {
980	rs := &TargetVpnGatewaysService{s: s}
981	return rs
982}
983
984type TargetVpnGatewaysService struct {
985	s *Service
986}
987
988func NewUrlMapsService(s *Service) *UrlMapsService {
989	rs := &UrlMapsService{s: s}
990	return rs
991}
992
993type UrlMapsService struct {
994	s *Service
995}
996
997func NewVpnGatewaysService(s *Service) *VpnGatewaysService {
998	rs := &VpnGatewaysService{s: s}
999	return rs
1000}
1001
1002type VpnGatewaysService struct {
1003	s *Service
1004}
1005
1006func NewVpnTunnelsService(s *Service) *VpnTunnelsService {
1007	rs := &VpnTunnelsService{s: s}
1008	return rs
1009}
1010
1011type VpnTunnelsService struct {
1012	s *Service
1013}
1014
1015func NewZoneOperationsService(s *Service) *ZoneOperationsService {
1016	rs := &ZoneOperationsService{s: s}
1017	return rs
1018}
1019
1020type ZoneOperationsService struct {
1021	s *Service
1022}
1023
1024func NewZonesService(s *Service) *ZonesService {
1025	rs := &ZonesService{s: s}
1026	return rs
1027}
1028
1029type ZonesService struct {
1030	s *Service
1031}
1032
1033// AcceleratorConfig: A specification of the type and number of
1034// accelerator cards attached to the instance.
1035type AcceleratorConfig struct {
1036	// AcceleratorCount: The number of the guest accelerator cards exposed
1037	// to this instance.
1038	AcceleratorCount int64 `json:"acceleratorCount,omitempty"`
1039
1040	// AcceleratorType: Full or partial URL of the accelerator type resource
1041	// to attach to this instance. For example:
1042	// projects/my-project/zones/us-central1-c/acceleratorTypes/nvidia-tesla-
1043	// p100 If you are creating an instance template, specify only the
1044	// accelerator name. See GPUs on Compute Engine for a full list of
1045	// accelerator types.
1046	AcceleratorType string `json:"acceleratorType,omitempty"`
1047
1048	// ForceSendFields is a list of field names (e.g. "AcceleratorCount") to
1049	// unconditionally include in API requests. By default, fields with
1050	// empty values are omitted from API requests. However, any non-pointer,
1051	// non-interface field appearing in ForceSendFields will be sent to the
1052	// server regardless of whether the field is empty or not. This may be
1053	// used to include empty fields in Patch requests.
1054	ForceSendFields []string `json:"-"`
1055
1056	// NullFields is a list of field names (e.g. "AcceleratorCount") to
1057	// include in API requests with the JSON null value. By default, fields
1058	// with empty values are omitted from API requests. However, any field
1059	// with an empty value appearing in NullFields will be sent to the
1060	// server as null. It is an error if a field in this list has a
1061	// non-empty value. This may be used to include null fields in Patch
1062	// requests.
1063	NullFields []string `json:"-"`
1064}
1065
1066func (s *AcceleratorConfig) MarshalJSON() ([]byte, error) {
1067	type NoMethod AcceleratorConfig
1068	raw := NoMethod(*s)
1069	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1070}
1071
1072// AcceleratorType: Represents an Accelerator Type resource.
1073//
1074// Google Cloud Platform provides graphics processing units
1075// (accelerators) that you can add to VM instances to improve or
1076// accelerate performance when working with intensive workloads. For
1077// more information, read GPUs on Compute Engine. (== resource_for
1078// {$api_version}.acceleratorTypes ==)
1079type AcceleratorType struct {
1080	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1081	// format.
1082	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1083
1084	// Deprecated: [Output Only] The deprecation status associated with this
1085	// accelerator type.
1086	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
1087
1088	// Description: [Output Only] An optional textual description of the
1089	// resource.
1090	Description string `json:"description,omitempty"`
1091
1092	// Id: [Output Only] The unique identifier for the resource. This
1093	// identifier is defined by the server.
1094	Id uint64 `json:"id,omitempty,string"`
1095
1096	// Kind: [Output Only] The type of the resource. Always
1097	// compute#acceleratorType for accelerator types.
1098	Kind string `json:"kind,omitempty"`
1099
1100	// MaximumCardsPerInstance: [Output Only] Maximum accelerator cards
1101	// allowed per instance.
1102	MaximumCardsPerInstance int64 `json:"maximumCardsPerInstance,omitempty"`
1103
1104	// Name: [Output Only] Name of the resource.
1105	Name string `json:"name,omitempty"`
1106
1107	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
1108	// resource.
1109	SelfLink string `json:"selfLink,omitempty"`
1110
1111	// Zone: [Output Only] The name of the zone where the accelerator type
1112	// resides, such as us-central1-a. You must specify this field as part
1113	// of the HTTP request URL. It is not settable as a field in the request
1114	// body.
1115	Zone string `json:"zone,omitempty"`
1116
1117	// ServerResponse contains the HTTP response code and headers from the
1118	// server.
1119	googleapi.ServerResponse `json:"-"`
1120
1121	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
1122	// to unconditionally include in API requests. By default, fields with
1123	// empty values are omitted from API requests. However, any non-pointer,
1124	// non-interface field appearing in ForceSendFields will be sent to the
1125	// server regardless of whether the field is empty or not. This may be
1126	// used to include empty fields in Patch requests.
1127	ForceSendFields []string `json:"-"`
1128
1129	// NullFields is a list of field names (e.g. "CreationTimestamp") to
1130	// include in API requests with the JSON null value. By default, fields
1131	// with empty values are omitted from API requests. However, any field
1132	// with an empty value appearing in NullFields will be sent to the
1133	// server as null. It is an error if a field in this list has a
1134	// non-empty value. This may be used to include null fields in Patch
1135	// requests.
1136	NullFields []string `json:"-"`
1137}
1138
1139func (s *AcceleratorType) MarshalJSON() ([]byte, error) {
1140	type NoMethod AcceleratorType
1141	raw := NoMethod(*s)
1142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1143}
1144
1145type AcceleratorTypeAggregatedList struct {
1146	// Id: [Output Only] Unique identifier for the resource; defined by the
1147	// server.
1148	Id string `json:"id,omitempty"`
1149
1150	// Items: A list of AcceleratorTypesScopedList resources.
1151	Items map[string]AcceleratorTypesScopedList `json:"items,omitempty"`
1152
1153	// Kind: [Output Only] Type of resource. Always
1154	// compute#acceleratorTypeAggregatedList for aggregated lists of
1155	// accelerator types.
1156	Kind string `json:"kind,omitempty"`
1157
1158	// NextPageToken: [Output Only] This token allows you to get the next
1159	// page of results for list requests. If the number of results is larger
1160	// than maxResults, use the nextPageToken as a value for the query
1161	// parameter pageToken in the next list request. Subsequent list
1162	// requests will have their own nextPageToken to continue paging through
1163	// the results.
1164	NextPageToken string `json:"nextPageToken,omitempty"`
1165
1166	// SelfLink: [Output Only] Server-defined URL for this resource.
1167	SelfLink string `json:"selfLink,omitempty"`
1168
1169	// Warning: [Output Only] Informational warning message.
1170	Warning *AcceleratorTypeAggregatedListWarning `json:"warning,omitempty"`
1171
1172	// ServerResponse contains the HTTP response code and headers from the
1173	// server.
1174	googleapi.ServerResponse `json:"-"`
1175
1176	// ForceSendFields is a list of field names (e.g. "Id") to
1177	// unconditionally include in API requests. By default, fields with
1178	// empty values are omitted from API requests. However, any non-pointer,
1179	// non-interface field appearing in ForceSendFields will be sent to the
1180	// server regardless of whether the field is empty or not. This may be
1181	// used to include empty fields in Patch requests.
1182	ForceSendFields []string `json:"-"`
1183
1184	// NullFields is a list of field names (e.g. "Id") to include in API
1185	// requests with the JSON null value. By default, fields with empty
1186	// values are omitted from API requests. However, any field with an
1187	// empty value appearing in NullFields will be sent to the server as
1188	// null. It is an error if a field in this list has a non-empty value.
1189	// This may be used to include null fields in Patch requests.
1190	NullFields []string `json:"-"`
1191}
1192
1193func (s *AcceleratorTypeAggregatedList) MarshalJSON() ([]byte, error) {
1194	type NoMethod AcceleratorTypeAggregatedList
1195	raw := NoMethod(*s)
1196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1197}
1198
1199// AcceleratorTypeAggregatedListWarning: [Output Only] Informational
1200// warning message.
1201type AcceleratorTypeAggregatedListWarning struct {
1202	// Code: [Output Only] A warning code, if applicable. For example,
1203	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1204	// the response.
1205	//
1206	// Possible values:
1207	//   "CLEANUP_FAILED"
1208	//   "DEPRECATED_RESOURCE_USED"
1209	//   "DEPRECATED_TYPE_USED"
1210	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1211	//   "EXPERIMENTAL_TYPE_USED"
1212	//   "EXTERNAL_API_WARNING"
1213	//   "FIELD_VALUE_OVERRIDEN"
1214	//   "INJECTED_KERNELS_DEPRECATED"
1215	//   "MISSING_TYPE_DEPENDENCY"
1216	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1217	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1218	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1219	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1220	//   "NEXT_HOP_NOT_RUNNING"
1221	//   "NOT_CRITICAL_ERROR"
1222	//   "NO_RESULTS_ON_PAGE"
1223	//   "REQUIRED_TOS_AGREEMENT"
1224	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1225	//   "RESOURCE_NOT_DELETED"
1226	//   "SCHEMA_VALIDATION_IGNORED"
1227	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1228	//   "UNDECLARED_PROPERTIES"
1229	//   "UNREACHABLE"
1230	Code string `json:"code,omitempty"`
1231
1232	// Data: [Output Only] Metadata about this warning in key: value format.
1233	// For example:
1234	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1235	Data []*AcceleratorTypeAggregatedListWarningData `json:"data,omitempty"`
1236
1237	// Message: [Output Only] A human-readable description of the warning
1238	// code.
1239	Message string `json:"message,omitempty"`
1240
1241	// ForceSendFields is a list of field names (e.g. "Code") to
1242	// unconditionally include in API requests. By default, fields with
1243	// empty values are omitted from API requests. However, any non-pointer,
1244	// non-interface field appearing in ForceSendFields will be sent to the
1245	// server regardless of whether the field is empty or not. This may be
1246	// used to include empty fields in Patch requests.
1247	ForceSendFields []string `json:"-"`
1248
1249	// NullFields is a list of field names (e.g. "Code") to include in API
1250	// requests with the JSON null value. By default, fields with empty
1251	// values are omitted from API requests. However, any field with an
1252	// empty value appearing in NullFields will be sent to the server as
1253	// null. It is an error if a field in this list has a non-empty value.
1254	// This may be used to include null fields in Patch requests.
1255	NullFields []string `json:"-"`
1256}
1257
1258func (s *AcceleratorTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
1259	type NoMethod AcceleratorTypeAggregatedListWarning
1260	raw := NoMethod(*s)
1261	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1262}
1263
1264type AcceleratorTypeAggregatedListWarningData struct {
1265	// Key: [Output Only] A key that provides more detail on the warning
1266	// being returned. For example, for warnings where there are no results
1267	// in a list request for a particular zone, this key might be scope and
1268	// the key value might be the zone name. Other examples might be a key
1269	// indicating a deprecated resource and a suggested replacement, or a
1270	// warning about invalid network settings (for example, if an instance
1271	// attempts to perform IP forwarding but is not enabled for IP
1272	// forwarding).
1273	Key string `json:"key,omitempty"`
1274
1275	// Value: [Output Only] A warning data value corresponding to the key.
1276	Value string `json:"value,omitempty"`
1277
1278	// ForceSendFields is a list of field names (e.g. "Key") to
1279	// unconditionally include in API requests. By default, fields with
1280	// empty values are omitted from API requests. However, any non-pointer,
1281	// non-interface field appearing in ForceSendFields will be sent to the
1282	// server regardless of whether the field is empty or not. This may be
1283	// used to include empty fields in Patch requests.
1284	ForceSendFields []string `json:"-"`
1285
1286	// NullFields is a list of field names (e.g. "Key") to include in API
1287	// requests with the JSON null value. By default, fields with empty
1288	// values are omitted from API requests. However, any field with an
1289	// empty value appearing in NullFields will be sent to the server as
1290	// null. It is an error if a field in this list has a non-empty value.
1291	// This may be used to include null fields in Patch requests.
1292	NullFields []string `json:"-"`
1293}
1294
1295func (s *AcceleratorTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
1296	type NoMethod AcceleratorTypeAggregatedListWarningData
1297	raw := NoMethod(*s)
1298	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1299}
1300
1301// AcceleratorTypeList: Contains a list of accelerator types.
1302type AcceleratorTypeList struct {
1303	// Id: [Output Only] Unique identifier for the resource; defined by the
1304	// server.
1305	Id string `json:"id,omitempty"`
1306
1307	// Items: A list of AcceleratorType resources.
1308	Items []*AcceleratorType `json:"items,omitempty"`
1309
1310	// Kind: [Output Only] Type of resource. Always
1311	// compute#acceleratorTypeList for lists of accelerator types.
1312	Kind string `json:"kind,omitempty"`
1313
1314	// NextPageToken: [Output Only] This token allows you to get the next
1315	// page of results for list requests. If the number of results is larger
1316	// than maxResults, use the nextPageToken as a value for the query
1317	// parameter pageToken in the next list request. Subsequent list
1318	// requests will have their own nextPageToken to continue paging through
1319	// the results.
1320	NextPageToken string `json:"nextPageToken,omitempty"`
1321
1322	// SelfLink: [Output Only] Server-defined URL for this resource.
1323	SelfLink string `json:"selfLink,omitempty"`
1324
1325	// Warning: [Output Only] Informational warning message.
1326	Warning *AcceleratorTypeListWarning `json:"warning,omitempty"`
1327
1328	// ServerResponse contains the HTTP response code and headers from the
1329	// server.
1330	googleapi.ServerResponse `json:"-"`
1331
1332	// ForceSendFields is a list of field names (e.g. "Id") to
1333	// unconditionally include in API requests. By default, fields with
1334	// empty values are omitted from API requests. However, any non-pointer,
1335	// non-interface field appearing in ForceSendFields will be sent to the
1336	// server regardless of whether the field is empty or not. This may be
1337	// used to include empty fields in Patch requests.
1338	ForceSendFields []string `json:"-"`
1339
1340	// NullFields is a list of field names (e.g. "Id") to include in API
1341	// requests with the JSON null value. By default, fields with empty
1342	// values are omitted from API requests. However, any field with an
1343	// empty value appearing in NullFields will be sent to the server as
1344	// null. It is an error if a field in this list has a non-empty value.
1345	// This may be used to include null fields in Patch requests.
1346	NullFields []string `json:"-"`
1347}
1348
1349func (s *AcceleratorTypeList) MarshalJSON() ([]byte, error) {
1350	type NoMethod AcceleratorTypeList
1351	raw := NoMethod(*s)
1352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1353}
1354
1355// AcceleratorTypeListWarning: [Output Only] Informational warning
1356// message.
1357type AcceleratorTypeListWarning struct {
1358	// Code: [Output Only] A warning code, if applicable. For example,
1359	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1360	// the response.
1361	//
1362	// Possible values:
1363	//   "CLEANUP_FAILED"
1364	//   "DEPRECATED_RESOURCE_USED"
1365	//   "DEPRECATED_TYPE_USED"
1366	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1367	//   "EXPERIMENTAL_TYPE_USED"
1368	//   "EXTERNAL_API_WARNING"
1369	//   "FIELD_VALUE_OVERRIDEN"
1370	//   "INJECTED_KERNELS_DEPRECATED"
1371	//   "MISSING_TYPE_DEPENDENCY"
1372	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1373	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1374	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1375	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1376	//   "NEXT_HOP_NOT_RUNNING"
1377	//   "NOT_CRITICAL_ERROR"
1378	//   "NO_RESULTS_ON_PAGE"
1379	//   "REQUIRED_TOS_AGREEMENT"
1380	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1381	//   "RESOURCE_NOT_DELETED"
1382	//   "SCHEMA_VALIDATION_IGNORED"
1383	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1384	//   "UNDECLARED_PROPERTIES"
1385	//   "UNREACHABLE"
1386	Code string `json:"code,omitempty"`
1387
1388	// Data: [Output Only] Metadata about this warning in key: value format.
1389	// For example:
1390	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1391	Data []*AcceleratorTypeListWarningData `json:"data,omitempty"`
1392
1393	// Message: [Output Only] A human-readable description of the warning
1394	// code.
1395	Message string `json:"message,omitempty"`
1396
1397	// ForceSendFields is a list of field names (e.g. "Code") to
1398	// unconditionally include in API requests. By default, fields with
1399	// empty values are omitted from API requests. However, any non-pointer,
1400	// non-interface field appearing in ForceSendFields will be sent to the
1401	// server regardless of whether the field is empty or not. This may be
1402	// used to include empty fields in Patch requests.
1403	ForceSendFields []string `json:"-"`
1404
1405	// NullFields is a list of field names (e.g. "Code") to include in API
1406	// requests with the JSON null value. By default, fields with empty
1407	// values are omitted from API requests. However, any field with an
1408	// empty value appearing in NullFields will be sent to the server as
1409	// null. It is an error if a field in this list has a non-empty value.
1410	// This may be used to include null fields in Patch requests.
1411	NullFields []string `json:"-"`
1412}
1413
1414func (s *AcceleratorTypeListWarning) MarshalJSON() ([]byte, error) {
1415	type NoMethod AcceleratorTypeListWarning
1416	raw := NoMethod(*s)
1417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1418}
1419
1420type AcceleratorTypeListWarningData struct {
1421	// Key: [Output Only] A key that provides more detail on the warning
1422	// being returned. For example, for warnings where there are no results
1423	// in a list request for a particular zone, this key might be scope and
1424	// the key value might be the zone name. Other examples might be a key
1425	// indicating a deprecated resource and a suggested replacement, or a
1426	// warning about invalid network settings (for example, if an instance
1427	// attempts to perform IP forwarding but is not enabled for IP
1428	// forwarding).
1429	Key string `json:"key,omitempty"`
1430
1431	// Value: [Output Only] A warning data value corresponding to the key.
1432	Value string `json:"value,omitempty"`
1433
1434	// ForceSendFields is a list of field names (e.g. "Key") to
1435	// unconditionally include in API requests. By default, fields with
1436	// empty values are omitted from API requests. However, any non-pointer,
1437	// non-interface field appearing in ForceSendFields will be sent to the
1438	// server regardless of whether the field is empty or not. This may be
1439	// used to include empty fields in Patch requests.
1440	ForceSendFields []string `json:"-"`
1441
1442	// NullFields is a list of field names (e.g. "Key") to include in API
1443	// requests with the JSON null value. By default, fields with empty
1444	// values are omitted from API requests. However, any field with an
1445	// empty value appearing in NullFields will be sent to the server as
1446	// null. It is an error if a field in this list has a non-empty value.
1447	// This may be used to include null fields in Patch requests.
1448	NullFields []string `json:"-"`
1449}
1450
1451func (s *AcceleratorTypeListWarningData) MarshalJSON() ([]byte, error) {
1452	type NoMethod AcceleratorTypeListWarningData
1453	raw := NoMethod(*s)
1454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1455}
1456
1457type AcceleratorTypesScopedList struct {
1458	// AcceleratorTypes: [Output Only] A list of accelerator types contained
1459	// in this scope.
1460	AcceleratorTypes []*AcceleratorType `json:"acceleratorTypes,omitempty"`
1461
1462	// Warning: [Output Only] An informational warning that appears when the
1463	// accelerator types list is empty.
1464	Warning *AcceleratorTypesScopedListWarning `json:"warning,omitempty"`
1465
1466	// ForceSendFields is a list of field names (e.g. "AcceleratorTypes") to
1467	// unconditionally include in API requests. By default, fields with
1468	// empty values are omitted from API requests. However, any non-pointer,
1469	// non-interface field appearing in ForceSendFields will be sent to the
1470	// server regardless of whether the field is empty or not. This may be
1471	// used to include empty fields in Patch requests.
1472	ForceSendFields []string `json:"-"`
1473
1474	// NullFields is a list of field names (e.g. "AcceleratorTypes") to
1475	// include in API requests with the JSON null value. By default, fields
1476	// with empty values are omitted from API requests. However, any field
1477	// with an empty value appearing in NullFields will be sent to the
1478	// server as null. It is an error if a field in this list has a
1479	// non-empty value. This may be used to include null fields in Patch
1480	// requests.
1481	NullFields []string `json:"-"`
1482}
1483
1484func (s *AcceleratorTypesScopedList) MarshalJSON() ([]byte, error) {
1485	type NoMethod AcceleratorTypesScopedList
1486	raw := NoMethod(*s)
1487	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1488}
1489
1490// AcceleratorTypesScopedListWarning: [Output Only] An informational
1491// warning that appears when the accelerator types list is empty.
1492type AcceleratorTypesScopedListWarning struct {
1493	// Code: [Output Only] A warning code, if applicable. For example,
1494	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1495	// the response.
1496	//
1497	// Possible values:
1498	//   "CLEANUP_FAILED"
1499	//   "DEPRECATED_RESOURCE_USED"
1500	//   "DEPRECATED_TYPE_USED"
1501	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1502	//   "EXPERIMENTAL_TYPE_USED"
1503	//   "EXTERNAL_API_WARNING"
1504	//   "FIELD_VALUE_OVERRIDEN"
1505	//   "INJECTED_KERNELS_DEPRECATED"
1506	//   "MISSING_TYPE_DEPENDENCY"
1507	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1508	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1509	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1510	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1511	//   "NEXT_HOP_NOT_RUNNING"
1512	//   "NOT_CRITICAL_ERROR"
1513	//   "NO_RESULTS_ON_PAGE"
1514	//   "REQUIRED_TOS_AGREEMENT"
1515	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1516	//   "RESOURCE_NOT_DELETED"
1517	//   "SCHEMA_VALIDATION_IGNORED"
1518	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1519	//   "UNDECLARED_PROPERTIES"
1520	//   "UNREACHABLE"
1521	Code string `json:"code,omitempty"`
1522
1523	// Data: [Output Only] Metadata about this warning in key: value format.
1524	// For example:
1525	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1526	Data []*AcceleratorTypesScopedListWarningData `json:"data,omitempty"`
1527
1528	// Message: [Output Only] A human-readable description of the warning
1529	// code.
1530	Message string `json:"message,omitempty"`
1531
1532	// ForceSendFields is a list of field names (e.g. "Code") to
1533	// unconditionally include in API requests. By default, fields with
1534	// empty values are omitted from API requests. However, any non-pointer,
1535	// non-interface field appearing in ForceSendFields will be sent to the
1536	// server regardless of whether the field is empty or not. This may be
1537	// used to include empty fields in Patch requests.
1538	ForceSendFields []string `json:"-"`
1539
1540	// NullFields is a list of field names (e.g. "Code") to include in API
1541	// requests with the JSON null value. By default, fields with empty
1542	// values are omitted from API requests. However, any field with an
1543	// empty value appearing in NullFields will be sent to the server as
1544	// null. It is an error if a field in this list has a non-empty value.
1545	// This may be used to include null fields in Patch requests.
1546	NullFields []string `json:"-"`
1547}
1548
1549func (s *AcceleratorTypesScopedListWarning) MarshalJSON() ([]byte, error) {
1550	type NoMethod AcceleratorTypesScopedListWarning
1551	raw := NoMethod(*s)
1552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1553}
1554
1555type AcceleratorTypesScopedListWarningData struct {
1556	// Key: [Output Only] A key that provides more detail on the warning
1557	// being returned. For example, for warnings where there are no results
1558	// in a list request for a particular zone, this key might be scope and
1559	// the key value might be the zone name. Other examples might be a key
1560	// indicating a deprecated resource and a suggested replacement, or a
1561	// warning about invalid network settings (for example, if an instance
1562	// attempts to perform IP forwarding but is not enabled for IP
1563	// forwarding).
1564	Key string `json:"key,omitempty"`
1565
1566	// Value: [Output Only] A warning data value corresponding to the key.
1567	Value string `json:"value,omitempty"`
1568
1569	// ForceSendFields is a list of field names (e.g. "Key") to
1570	// unconditionally include in API requests. By default, fields with
1571	// empty values are omitted from API requests. However, any non-pointer,
1572	// non-interface field appearing in ForceSendFields will be sent to the
1573	// server regardless of whether the field is empty or not. This may be
1574	// used to include empty fields in Patch requests.
1575	ForceSendFields []string `json:"-"`
1576
1577	// NullFields is a list of field names (e.g. "Key") to include in API
1578	// requests with the JSON null value. By default, fields with empty
1579	// values are omitted from API requests. However, any field with an
1580	// empty value appearing in NullFields will be sent to the server as
1581	// null. It is an error if a field in this list has a non-empty value.
1582	// This may be used to include null fields in Patch requests.
1583	NullFields []string `json:"-"`
1584}
1585
1586func (s *AcceleratorTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
1587	type NoMethod AcceleratorTypesScopedListWarningData
1588	raw := NoMethod(*s)
1589	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1590}
1591
1592// AccessConfig: An access configuration attached to an instance's
1593// network interface. Only one access config per instance is supported.
1594type AccessConfig struct {
1595	// Kind: [Output Only] Type of the resource. Always compute#accessConfig
1596	// for access configs.
1597	Kind string `json:"kind,omitempty"`
1598
1599	// Name: The name of this access configuration. The default and
1600	// recommended name is External NAT, but you can use any arbitrary
1601	// string, such as My external IP or Network Access.
1602	Name string `json:"name,omitempty"`
1603
1604	// NatIP: An external IP address associated with this instance. Specify
1605	// an unused static external IP address available to the project or
1606	// leave this field undefined to use an IP from a shared ephemeral IP
1607	// address pool. If you specify a static external IP address, it must
1608	// live in the same region as the zone of the instance.
1609	NatIP string `json:"natIP,omitempty"`
1610
1611	// NetworkTier: This signifies the networking tier used for configuring
1612	// this access configuration and can only take the following values:
1613	// PREMIUM, STANDARD.
1614	//
1615	// If an AccessConfig is specified without a valid external IP address,
1616	// an ephemeral IP will be created with this networkTier.
1617	//
1618	// If an AccessConfig with a valid external IP address is specified, it
1619	// must match that of the networkTier associated with the Address
1620	// resource owning that IP.
1621	//
1622	// Possible values:
1623	//   "PREMIUM"
1624	//   "STANDARD"
1625	NetworkTier string `json:"networkTier,omitempty"`
1626
1627	// PublicPtrDomainName: The DNS domain name for the public PTR record.
1628	// You can set this field only if the `setPublicPtr` field is enabled.
1629	PublicPtrDomainName string `json:"publicPtrDomainName,omitempty"`
1630
1631	// SetPublicPtr: Specifies whether a public DNS 'PTR' record should be
1632	// created to map the external IP address of the instance to a DNS
1633	// domain name.
1634	SetPublicPtr bool `json:"setPublicPtr,omitempty"`
1635
1636	// Type: The type of configuration. The default and only option is
1637	// ONE_TO_ONE_NAT.
1638	//
1639	// Possible values:
1640	//   "ONE_TO_ONE_NAT" (default)
1641	Type string `json:"type,omitempty"`
1642
1643	// ForceSendFields is a list of field names (e.g. "Kind") to
1644	// unconditionally include in API requests. By default, fields with
1645	// empty values are omitted from API requests. However, any non-pointer,
1646	// non-interface field appearing in ForceSendFields will be sent to the
1647	// server regardless of whether the field is empty or not. This may be
1648	// used to include empty fields in Patch requests.
1649	ForceSendFields []string `json:"-"`
1650
1651	// NullFields is a list of field names (e.g. "Kind") to include in API
1652	// requests with the JSON null value. By default, fields with empty
1653	// values are omitted from API requests. However, any field with an
1654	// empty value appearing in NullFields will be sent to the server as
1655	// null. It is an error if a field in this list has a non-empty value.
1656	// This may be used to include null fields in Patch requests.
1657	NullFields []string `json:"-"`
1658}
1659
1660func (s *AccessConfig) MarshalJSON() ([]byte, error) {
1661	type NoMethod AccessConfig
1662	raw := NoMethod(*s)
1663	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1664}
1665
1666// Address: Use global external addresses for GFE-based external HTTP(S)
1667// load balancers in Premium Tier.
1668//
1669// Use global internal addresses for reserved peering network
1670// range.
1671//
1672// Use regional external addresses for the following resources:
1673//
1674// - External IP addresses for VM instances - Regional external
1675// forwarding rules - Cloud NAT external IP addresses - GFE based LBs in
1676// Standard Tier - Network LBs in Premium or Standard Tier - Cloud VPN
1677// gateways (both Classic and HA)
1678//
1679// Use regional internal IP addresses for subnet IP ranges (primary and
1680// secondary). This includes:
1681//
1682// - Internal IP addresses for VM instances - Alias IP ranges of VM
1683// instances (/32 only) - Regional internal forwarding rules - Internal
1684// TCP/UDP load balancer addresses - Internal HTTP(S) load balancer
1685// addresses - Cloud DNS inbound forwarding IP addresses
1686//
1687// For more information, read reserved IP address.
1688//
1689// (== resource_for {$api_version}.addresses ==) (== resource_for
1690// {$api_version}.globalAddresses ==)
1691type Address struct {
1692	// Address: The static IP address represented by this resource.
1693	Address string `json:"address,omitempty"`
1694
1695	// AddressType: The type of address to reserve, either INTERNAL or
1696	// EXTERNAL. If unspecified, defaults to EXTERNAL.
1697	//
1698	// Possible values:
1699	//   "EXTERNAL"
1700	//   "INTERNAL"
1701	//   "UNSPECIFIED_TYPE"
1702	AddressType string `json:"addressType,omitempty"`
1703
1704	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
1705	// format.
1706	CreationTimestamp string `json:"creationTimestamp,omitempty"`
1707
1708	// Description: An optional description of this resource. Provide this
1709	// field when you create the resource.
1710	Description string `json:"description,omitempty"`
1711
1712	// Id: [Output Only] The unique identifier for the resource. This
1713	// identifier is defined by the server.
1714	Id uint64 `json:"id,omitempty,string"`
1715
1716	// IpVersion: The IP version that will be used by this address. Valid
1717	// options are IPV4 or IPV6. This can only be specified for a global
1718	// address.
1719	//
1720	// Possible values:
1721	//   "IPV4"
1722	//   "IPV6"
1723	//   "UNSPECIFIED_VERSION"
1724	IpVersion string `json:"ipVersion,omitempty"`
1725
1726	// Kind: [Output Only] Type of the resource. Always compute#address for
1727	// addresses.
1728	Kind string `json:"kind,omitempty"`
1729
1730	// LabelFingerprint: A fingerprint for the labels being applied to this
1731	// Address, which is essentially a hash of the labels set used for
1732	// optimistic locking. The fingerprint is initially generated by Compute
1733	// Engine and changes after every request to modify or update labels.
1734	// You must always provide an up-to-date fingerprint hash in order to
1735	// update or change labels, otherwise the request will fail with error
1736	// 412 conditionNotMet.
1737	//
1738	// To see the latest fingerprint, make a get() request to retrieve an
1739	// Address.
1740	LabelFingerprint string `json:"labelFingerprint,omitempty"`
1741
1742	// Labels: Labels to apply to this Address resource. These can be later
1743	// modified by the setLabels method. Each label key/value must comply
1744	// with RFC1035. Label values may be empty.
1745	Labels map[string]string `json:"labels,omitempty"`
1746
1747	// Name: Name of the resource. Provided by the client when the resource
1748	// is created. The name must be 1-63 characters long, and comply with
1749	// RFC1035. Specifically, the name must be 1-63 characters long and
1750	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
1751	// character must be a lowercase letter, and all following characters
1752	// (except for the last character) must be a dash, lowercase letter, or
1753	// digit. The last character must be a lowercase letter or digit.
1754	Name string `json:"name,omitempty"`
1755
1756	// Network: The URL of the network in which to reserve the address. This
1757	// field can only be used with INTERNAL type with the VPC_PEERING
1758	// purpose.
1759	Network string `json:"network,omitempty"`
1760
1761	// NetworkTier: This signifies the networking tier used for configuring
1762	// this address and can only take the following values: PREMIUM or
1763	// STANDARD. Global forwarding rules can only be Premium Tier. Regional
1764	// forwarding rules can be either Premium or Standard Tier. Standard
1765	// Tier addresses applied to regional forwarding rules can be used with
1766	// any external load balancer. Regional forwarding rules in Premium Tier
1767	// can only be used with a network load balancer.
1768	//
1769	// If this field is not specified, it is assumed to be PREMIUM.
1770	//
1771	// Possible values:
1772	//   "PREMIUM"
1773	//   "STANDARD"
1774	NetworkTier string `json:"networkTier,omitempty"`
1775
1776	// PrefixLength: The prefix length if the resource reprensents an IP
1777	// range.
1778	PrefixLength int64 `json:"prefixLength,omitempty"`
1779
1780	// Purpose: The purpose of this resource, which can be one of the
1781	// following values:
1782	// - `GCE_ENDPOINT` for addresses that are used by VM instances, alias
1783	// IP ranges, internal load balancers, and similar resources.
1784	// - `DNS_RESOLVER` for a DNS resolver address in a subnetwork
1785	// - `VPC_PEERING` for addresses that are reserved for VPC peer
1786	// networks.
1787	// - `NAT_AUTO` for addresses that are external IP addresses
1788	// automatically reserved for Cloud NAT.
1789	//
1790	// Possible values:
1791	//   "DNS_RESOLVER"
1792	//   "GCE_ENDPOINT"
1793	//   "NAT_AUTO"
1794	//   "SHARED_LOADBALANCER_VIP"
1795	//   "VPC_PEERING"
1796	Purpose string `json:"purpose,omitempty"`
1797
1798	// Region: [Output Only] The URL of the region where the regional
1799	// address resides. This field is not applicable to global addresses.
1800	// You must specify this field as part of the HTTP request URL.
1801	Region string `json:"region,omitempty"`
1802
1803	// SelfLink: [Output Only] Server-defined URL for the resource.
1804	SelfLink string `json:"selfLink,omitempty"`
1805
1806	// Status: [Output Only] The status of the address, which can be one of
1807	// RESERVING, RESERVED, or IN_USE. An address that is RESERVING is
1808	// currently in the process of being reserved. A RESERVED address is
1809	// currently reserved and available to use. An IN_USE address is
1810	// currently being used by another resource and is not available.
1811	//
1812	// Possible values:
1813	//   "IN_USE"
1814	//   "RESERVED"
1815	//   "RESERVING"
1816	Status string `json:"status,omitempty"`
1817
1818	// Subnetwork: The URL of the subnetwork in which to reserve the
1819	// address. If an IP address is specified, it must be within the
1820	// subnetwork's IP range. This field can only be used with INTERNAL type
1821	// with a GCE_ENDPOINT or DNS_RESOLVER purpose.
1822	Subnetwork string `json:"subnetwork,omitempty"`
1823
1824	// Users: [Output Only] The URLs of the resources that are using this
1825	// address.
1826	Users []string `json:"users,omitempty"`
1827
1828	// ServerResponse contains the HTTP response code and headers from the
1829	// server.
1830	googleapi.ServerResponse `json:"-"`
1831
1832	// ForceSendFields is a list of field names (e.g. "Address") to
1833	// unconditionally include in API requests. By default, fields with
1834	// empty values are omitted from API requests. However, any non-pointer,
1835	// non-interface field appearing in ForceSendFields will be sent to the
1836	// server regardless of whether the field is empty or not. This may be
1837	// used to include empty fields in Patch requests.
1838	ForceSendFields []string `json:"-"`
1839
1840	// NullFields is a list of field names (e.g. "Address") to include in
1841	// API requests with the JSON null value. By default, fields with empty
1842	// values are omitted from API requests. However, any field with an
1843	// empty value appearing in NullFields will be sent to the server as
1844	// null. It is an error if a field in this list has a non-empty value.
1845	// This may be used to include null fields in Patch requests.
1846	NullFields []string `json:"-"`
1847}
1848
1849func (s *Address) MarshalJSON() ([]byte, error) {
1850	type NoMethod Address
1851	raw := NoMethod(*s)
1852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1853}
1854
1855type AddressAggregatedList struct {
1856	// Id: [Output Only] Unique identifier for the resource; defined by the
1857	// server.
1858	Id string `json:"id,omitempty"`
1859
1860	// Items: A list of AddressesScopedList resources.
1861	Items map[string]AddressesScopedList `json:"items,omitempty"`
1862
1863	// Kind: [Output Only] Type of resource. Always
1864	// compute#addressAggregatedList for aggregated lists of addresses.
1865	Kind string `json:"kind,omitempty"`
1866
1867	// NextPageToken: [Output Only] This token allows you to get the next
1868	// page of results for list requests. If the number of results is larger
1869	// than maxResults, use the nextPageToken as a value for the query
1870	// parameter pageToken in the next list request. Subsequent list
1871	// requests will have their own nextPageToken to continue paging through
1872	// the results.
1873	NextPageToken string `json:"nextPageToken,omitempty"`
1874
1875	// SelfLink: [Output Only] Server-defined URL for this resource.
1876	SelfLink string `json:"selfLink,omitempty"`
1877
1878	// Warning: [Output Only] Informational warning message.
1879	Warning *AddressAggregatedListWarning `json:"warning,omitempty"`
1880
1881	// ServerResponse contains the HTTP response code and headers from the
1882	// server.
1883	googleapi.ServerResponse `json:"-"`
1884
1885	// ForceSendFields is a list of field names (e.g. "Id") to
1886	// unconditionally include in API requests. By default, fields with
1887	// empty values are omitted from API requests. However, any non-pointer,
1888	// non-interface field appearing in ForceSendFields will be sent to the
1889	// server regardless of whether the field is empty or not. This may be
1890	// used to include empty fields in Patch requests.
1891	ForceSendFields []string `json:"-"`
1892
1893	// NullFields is a list of field names (e.g. "Id") to include in API
1894	// requests with the JSON null value. By default, fields with empty
1895	// values are omitted from API requests. However, any field with an
1896	// empty value appearing in NullFields will be sent to the server as
1897	// null. It is an error if a field in this list has a non-empty value.
1898	// This may be used to include null fields in Patch requests.
1899	NullFields []string `json:"-"`
1900}
1901
1902func (s *AddressAggregatedList) MarshalJSON() ([]byte, error) {
1903	type NoMethod AddressAggregatedList
1904	raw := NoMethod(*s)
1905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1906}
1907
1908// AddressAggregatedListWarning: [Output Only] Informational warning
1909// message.
1910type AddressAggregatedListWarning struct {
1911	// Code: [Output Only] A warning code, if applicable. For example,
1912	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
1913	// the response.
1914	//
1915	// Possible values:
1916	//   "CLEANUP_FAILED"
1917	//   "DEPRECATED_RESOURCE_USED"
1918	//   "DEPRECATED_TYPE_USED"
1919	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
1920	//   "EXPERIMENTAL_TYPE_USED"
1921	//   "EXTERNAL_API_WARNING"
1922	//   "FIELD_VALUE_OVERRIDEN"
1923	//   "INJECTED_KERNELS_DEPRECATED"
1924	//   "MISSING_TYPE_DEPENDENCY"
1925	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
1926	//   "NEXT_HOP_CANNOT_IP_FORWARD"
1927	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
1928	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
1929	//   "NEXT_HOP_NOT_RUNNING"
1930	//   "NOT_CRITICAL_ERROR"
1931	//   "NO_RESULTS_ON_PAGE"
1932	//   "REQUIRED_TOS_AGREEMENT"
1933	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
1934	//   "RESOURCE_NOT_DELETED"
1935	//   "SCHEMA_VALIDATION_IGNORED"
1936	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
1937	//   "UNDECLARED_PROPERTIES"
1938	//   "UNREACHABLE"
1939	Code string `json:"code,omitempty"`
1940
1941	// Data: [Output Only] Metadata about this warning in key: value format.
1942	// For example:
1943	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
1944	Data []*AddressAggregatedListWarningData `json:"data,omitempty"`
1945
1946	// Message: [Output Only] A human-readable description of the warning
1947	// code.
1948	Message string `json:"message,omitempty"`
1949
1950	// ForceSendFields is a list of field names (e.g. "Code") to
1951	// unconditionally include in API requests. By default, fields with
1952	// empty values are omitted from API requests. However, any non-pointer,
1953	// non-interface field appearing in ForceSendFields will be sent to the
1954	// server regardless of whether the field is empty or not. This may be
1955	// used to include empty fields in Patch requests.
1956	ForceSendFields []string `json:"-"`
1957
1958	// NullFields is a list of field names (e.g. "Code") to include in API
1959	// requests with the JSON null value. By default, fields with empty
1960	// values are omitted from API requests. However, any field with an
1961	// empty value appearing in NullFields will be sent to the server as
1962	// null. It is an error if a field in this list has a non-empty value.
1963	// This may be used to include null fields in Patch requests.
1964	NullFields []string `json:"-"`
1965}
1966
1967func (s *AddressAggregatedListWarning) MarshalJSON() ([]byte, error) {
1968	type NoMethod AddressAggregatedListWarning
1969	raw := NoMethod(*s)
1970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
1971}
1972
1973type AddressAggregatedListWarningData struct {
1974	// Key: [Output Only] A key that provides more detail on the warning
1975	// being returned. For example, for warnings where there are no results
1976	// in a list request for a particular zone, this key might be scope and
1977	// the key value might be the zone name. Other examples might be a key
1978	// indicating a deprecated resource and a suggested replacement, or a
1979	// warning about invalid network settings (for example, if an instance
1980	// attempts to perform IP forwarding but is not enabled for IP
1981	// forwarding).
1982	Key string `json:"key,omitempty"`
1983
1984	// Value: [Output Only] A warning data value corresponding to the key.
1985	Value string `json:"value,omitempty"`
1986
1987	// ForceSendFields is a list of field names (e.g. "Key") to
1988	// unconditionally include in API requests. By default, fields with
1989	// empty values are omitted from API requests. However, any non-pointer,
1990	// non-interface field appearing in ForceSendFields will be sent to the
1991	// server regardless of whether the field is empty or not. This may be
1992	// used to include empty fields in Patch requests.
1993	ForceSendFields []string `json:"-"`
1994
1995	// NullFields is a list of field names (e.g. "Key") to include in API
1996	// requests with the JSON null value. By default, fields with empty
1997	// values are omitted from API requests. However, any field with an
1998	// empty value appearing in NullFields will be sent to the server as
1999	// null. It is an error if a field in this list has a non-empty value.
2000	// This may be used to include null fields in Patch requests.
2001	NullFields []string `json:"-"`
2002}
2003
2004func (s *AddressAggregatedListWarningData) MarshalJSON() ([]byte, error) {
2005	type NoMethod AddressAggregatedListWarningData
2006	raw := NoMethod(*s)
2007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2008}
2009
2010// AddressList: Contains a list of addresses.
2011type AddressList struct {
2012	// Id: [Output Only] Unique identifier for the resource; defined by the
2013	// server.
2014	Id string `json:"id,omitempty"`
2015
2016	// Items: A list of Address resources.
2017	Items []*Address `json:"items,omitempty"`
2018
2019	// Kind: [Output Only] Type of resource. Always compute#addressList for
2020	// lists of addresses.
2021	Kind string `json:"kind,omitempty"`
2022
2023	// NextPageToken: [Output Only] This token allows you to get the next
2024	// page of results for list requests. If the number of results is larger
2025	// than maxResults, use the nextPageToken as a value for the query
2026	// parameter pageToken in the next list request. Subsequent list
2027	// requests will have their own nextPageToken to continue paging through
2028	// the results.
2029	NextPageToken string `json:"nextPageToken,omitempty"`
2030
2031	// SelfLink: [Output Only] Server-defined URL for this resource.
2032	SelfLink string `json:"selfLink,omitempty"`
2033
2034	// Warning: [Output Only] Informational warning message.
2035	Warning *AddressListWarning `json:"warning,omitempty"`
2036
2037	// ServerResponse contains the HTTP response code and headers from the
2038	// server.
2039	googleapi.ServerResponse `json:"-"`
2040
2041	// ForceSendFields is a list of field names (e.g. "Id") to
2042	// unconditionally include in API requests. By default, fields with
2043	// empty values are omitted from API requests. However, any non-pointer,
2044	// non-interface field appearing in ForceSendFields will be sent to the
2045	// server regardless of whether the field is empty or not. This may be
2046	// used to include empty fields in Patch requests.
2047	ForceSendFields []string `json:"-"`
2048
2049	// NullFields is a list of field names (e.g. "Id") to include in API
2050	// requests with the JSON null value. By default, fields with empty
2051	// values are omitted from API requests. However, any field with an
2052	// empty value appearing in NullFields will be sent to the server as
2053	// null. It is an error if a field in this list has a non-empty value.
2054	// This may be used to include null fields in Patch requests.
2055	NullFields []string `json:"-"`
2056}
2057
2058func (s *AddressList) MarshalJSON() ([]byte, error) {
2059	type NoMethod AddressList
2060	raw := NoMethod(*s)
2061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2062}
2063
2064// AddressListWarning: [Output Only] Informational warning message.
2065type AddressListWarning struct {
2066	// Code: [Output Only] A warning code, if applicable. For example,
2067	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2068	// the response.
2069	//
2070	// Possible values:
2071	//   "CLEANUP_FAILED"
2072	//   "DEPRECATED_RESOURCE_USED"
2073	//   "DEPRECATED_TYPE_USED"
2074	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2075	//   "EXPERIMENTAL_TYPE_USED"
2076	//   "EXTERNAL_API_WARNING"
2077	//   "FIELD_VALUE_OVERRIDEN"
2078	//   "INJECTED_KERNELS_DEPRECATED"
2079	//   "MISSING_TYPE_DEPENDENCY"
2080	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2081	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2082	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2083	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2084	//   "NEXT_HOP_NOT_RUNNING"
2085	//   "NOT_CRITICAL_ERROR"
2086	//   "NO_RESULTS_ON_PAGE"
2087	//   "REQUIRED_TOS_AGREEMENT"
2088	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2089	//   "RESOURCE_NOT_DELETED"
2090	//   "SCHEMA_VALIDATION_IGNORED"
2091	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2092	//   "UNDECLARED_PROPERTIES"
2093	//   "UNREACHABLE"
2094	Code string `json:"code,omitempty"`
2095
2096	// Data: [Output Only] Metadata about this warning in key: value format.
2097	// For example:
2098	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2099	Data []*AddressListWarningData `json:"data,omitempty"`
2100
2101	// Message: [Output Only] A human-readable description of the warning
2102	// code.
2103	Message string `json:"message,omitempty"`
2104
2105	// ForceSendFields is a list of field names (e.g. "Code") to
2106	// unconditionally include in API requests. By default, fields with
2107	// empty values are omitted from API requests. However, any non-pointer,
2108	// non-interface field appearing in ForceSendFields will be sent to the
2109	// server regardless of whether the field is empty or not. This may be
2110	// used to include empty fields in Patch requests.
2111	ForceSendFields []string `json:"-"`
2112
2113	// NullFields is a list of field names (e.g. "Code") to include in API
2114	// requests with the JSON null value. By default, fields with empty
2115	// values are omitted from API requests. However, any field with an
2116	// empty value appearing in NullFields will be sent to the server as
2117	// null. It is an error if a field in this list has a non-empty value.
2118	// This may be used to include null fields in Patch requests.
2119	NullFields []string `json:"-"`
2120}
2121
2122func (s *AddressListWarning) MarshalJSON() ([]byte, error) {
2123	type NoMethod AddressListWarning
2124	raw := NoMethod(*s)
2125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2126}
2127
2128type AddressListWarningData struct {
2129	// Key: [Output Only] A key that provides more detail on the warning
2130	// being returned. For example, for warnings where there are no results
2131	// in a list request for a particular zone, this key might be scope and
2132	// the key value might be the zone name. Other examples might be a key
2133	// indicating a deprecated resource and a suggested replacement, or a
2134	// warning about invalid network settings (for example, if an instance
2135	// attempts to perform IP forwarding but is not enabled for IP
2136	// forwarding).
2137	Key string `json:"key,omitempty"`
2138
2139	// Value: [Output Only] A warning data value corresponding to the key.
2140	Value string `json:"value,omitempty"`
2141
2142	// ForceSendFields is a list of field names (e.g. "Key") to
2143	// unconditionally include in API requests. By default, fields with
2144	// empty values are omitted from API requests. However, any non-pointer,
2145	// non-interface field appearing in ForceSendFields will be sent to the
2146	// server regardless of whether the field is empty or not. This may be
2147	// used to include empty fields in Patch requests.
2148	ForceSendFields []string `json:"-"`
2149
2150	// NullFields is a list of field names (e.g. "Key") to include in API
2151	// requests with the JSON null value. By default, fields with empty
2152	// values are omitted from API requests. However, any field with an
2153	// empty value appearing in NullFields will be sent to the server as
2154	// null. It is an error if a field in this list has a non-empty value.
2155	// This may be used to include null fields in Patch requests.
2156	NullFields []string `json:"-"`
2157}
2158
2159func (s *AddressListWarningData) MarshalJSON() ([]byte, error) {
2160	type NoMethod AddressListWarningData
2161	raw := NoMethod(*s)
2162	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2163}
2164
2165type AddressesScopedList struct {
2166	// Addresses: [Output Only] A list of addresses contained in this scope.
2167	Addresses []*Address `json:"addresses,omitempty"`
2168
2169	// Warning: [Output Only] Informational warning which replaces the list
2170	// of addresses when the list is empty.
2171	Warning *AddressesScopedListWarning `json:"warning,omitempty"`
2172
2173	// ForceSendFields is a list of field names (e.g. "Addresses") to
2174	// unconditionally include in API requests. By default, fields with
2175	// empty values are omitted from API requests. However, any non-pointer,
2176	// non-interface field appearing in ForceSendFields will be sent to the
2177	// server regardless of whether the field is empty or not. This may be
2178	// used to include empty fields in Patch requests.
2179	ForceSendFields []string `json:"-"`
2180
2181	// NullFields is a list of field names (e.g. "Addresses") to include in
2182	// API requests with the JSON null value. By default, fields with empty
2183	// values are omitted from API requests. However, any field with an
2184	// empty value appearing in NullFields will be sent to the server as
2185	// null. It is an error if a field in this list has a non-empty value.
2186	// This may be used to include null fields in Patch requests.
2187	NullFields []string `json:"-"`
2188}
2189
2190func (s *AddressesScopedList) MarshalJSON() ([]byte, error) {
2191	type NoMethod AddressesScopedList
2192	raw := NoMethod(*s)
2193	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2194}
2195
2196// AddressesScopedListWarning: [Output Only] Informational warning which
2197// replaces the list of addresses when the list is empty.
2198type AddressesScopedListWarning struct {
2199	// Code: [Output Only] A warning code, if applicable. For example,
2200	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
2201	// the response.
2202	//
2203	// Possible values:
2204	//   "CLEANUP_FAILED"
2205	//   "DEPRECATED_RESOURCE_USED"
2206	//   "DEPRECATED_TYPE_USED"
2207	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
2208	//   "EXPERIMENTAL_TYPE_USED"
2209	//   "EXTERNAL_API_WARNING"
2210	//   "FIELD_VALUE_OVERRIDEN"
2211	//   "INJECTED_KERNELS_DEPRECATED"
2212	//   "MISSING_TYPE_DEPENDENCY"
2213	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
2214	//   "NEXT_HOP_CANNOT_IP_FORWARD"
2215	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
2216	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
2217	//   "NEXT_HOP_NOT_RUNNING"
2218	//   "NOT_CRITICAL_ERROR"
2219	//   "NO_RESULTS_ON_PAGE"
2220	//   "REQUIRED_TOS_AGREEMENT"
2221	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
2222	//   "RESOURCE_NOT_DELETED"
2223	//   "SCHEMA_VALIDATION_IGNORED"
2224	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
2225	//   "UNDECLARED_PROPERTIES"
2226	//   "UNREACHABLE"
2227	Code string `json:"code,omitempty"`
2228
2229	// Data: [Output Only] Metadata about this warning in key: value format.
2230	// For example:
2231	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
2232	Data []*AddressesScopedListWarningData `json:"data,omitempty"`
2233
2234	// Message: [Output Only] A human-readable description of the warning
2235	// code.
2236	Message string `json:"message,omitempty"`
2237
2238	// ForceSendFields is a list of field names (e.g. "Code") to
2239	// unconditionally include in API requests. By default, fields with
2240	// empty values are omitted from API requests. However, any non-pointer,
2241	// non-interface field appearing in ForceSendFields will be sent to the
2242	// server regardless of whether the field is empty or not. This may be
2243	// used to include empty fields in Patch requests.
2244	ForceSendFields []string `json:"-"`
2245
2246	// NullFields is a list of field names (e.g. "Code") to include in API
2247	// requests with the JSON null value. By default, fields with empty
2248	// values are omitted from API requests. However, any field with an
2249	// empty value appearing in NullFields will be sent to the server as
2250	// null. It is an error if a field in this list has a non-empty value.
2251	// This may be used to include null fields in Patch requests.
2252	NullFields []string `json:"-"`
2253}
2254
2255func (s *AddressesScopedListWarning) MarshalJSON() ([]byte, error) {
2256	type NoMethod AddressesScopedListWarning
2257	raw := NoMethod(*s)
2258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2259}
2260
2261type AddressesScopedListWarningData struct {
2262	// Key: [Output Only] A key that provides more detail on the warning
2263	// being returned. For example, for warnings where there are no results
2264	// in a list request for a particular zone, this key might be scope and
2265	// the key value might be the zone name. Other examples might be a key
2266	// indicating a deprecated resource and a suggested replacement, or a
2267	// warning about invalid network settings (for example, if an instance
2268	// attempts to perform IP forwarding but is not enabled for IP
2269	// forwarding).
2270	Key string `json:"key,omitempty"`
2271
2272	// Value: [Output Only] A warning data value corresponding to the key.
2273	Value string `json:"value,omitempty"`
2274
2275	// ForceSendFields is a list of field names (e.g. "Key") to
2276	// unconditionally include in API requests. By default, fields with
2277	// empty values are omitted from API requests. However, any non-pointer,
2278	// non-interface field appearing in ForceSendFields will be sent to the
2279	// server regardless of whether the field is empty or not. This may be
2280	// used to include empty fields in Patch requests.
2281	ForceSendFields []string `json:"-"`
2282
2283	// NullFields is a list of field names (e.g. "Key") to include in API
2284	// requests with the JSON null value. By default, fields with empty
2285	// values are omitted from API requests. However, any field with an
2286	// empty value appearing in NullFields will be sent to the server as
2287	// null. It is an error if a field in this list has a non-empty value.
2288	// This may be used to include null fields in Patch requests.
2289	NullFields []string `json:"-"`
2290}
2291
2292func (s *AddressesScopedListWarningData) MarshalJSON() ([]byte, error) {
2293	type NoMethod AddressesScopedListWarningData
2294	raw := NoMethod(*s)
2295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2296}
2297
2298// AliasIpRange: An alias IP range attached to an instance's network
2299// interface.
2300type AliasIpRange struct {
2301	// IpCidrRange: The IP alias ranges to allocate for this interface. This
2302	// IP CIDR range must belong to the specified subnetwork and cannot
2303	// contain IP addresses reserved by system or used by other network
2304	// interfaces. This range may be a single IP address (such as 10.2.3.4),
2305	// a netmask (such as /24) or a CIDR-formatted string (such as
2306	// 10.1.2.0/24).
2307	IpCidrRange string `json:"ipCidrRange,omitempty"`
2308
2309	// SubnetworkRangeName: The name of a subnetwork secondary IP range from
2310	// which to allocate an IP alias range. If not specified, the primary
2311	// range of the subnetwork is used.
2312	SubnetworkRangeName string `json:"subnetworkRangeName,omitempty"`
2313
2314	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
2315	// unconditionally include in API requests. By default, fields with
2316	// empty values are omitted from API requests. However, any non-pointer,
2317	// non-interface field appearing in ForceSendFields will be sent to the
2318	// server regardless of whether the field is empty or not. This may be
2319	// used to include empty fields in Patch requests.
2320	ForceSendFields []string `json:"-"`
2321
2322	// NullFields is a list of field names (e.g. "IpCidrRange") to include
2323	// in API requests with the JSON null value. By default, fields with
2324	// empty values are omitted from API requests. However, any field with
2325	// an empty value appearing in NullFields will be sent to the server as
2326	// null. It is an error if a field in this list has a non-empty value.
2327	// This may be used to include null fields in Patch requests.
2328	NullFields []string `json:"-"`
2329}
2330
2331func (s *AliasIpRange) MarshalJSON() ([]byte, error) {
2332	type NoMethod AliasIpRange
2333	raw := NoMethod(*s)
2334	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2335}
2336
2337type AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk struct {
2338	// DiskSizeGb: Specifies the size of the disk in base-2 GB.
2339	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2340
2341	// Interface: Specifies the disk interface to use for attaching this
2342	// disk, which is either SCSI or NVME. The default is SCSI. For
2343	// performance characteristics of SCSI over NVMe, see Local SSD
2344	// performance.
2345	//
2346	// Possible values:
2347	//   "NVME"
2348	//   "SCSI"
2349	Interface string `json:"interface,omitempty"`
2350
2351	// ForceSendFields is a list of field names (e.g. "DiskSizeGb") to
2352	// unconditionally include in API requests. By default, fields with
2353	// empty values are omitted from API requests. However, any non-pointer,
2354	// non-interface field appearing in ForceSendFields will be sent to the
2355	// server regardless of whether the field is empty or not. This may be
2356	// used to include empty fields in Patch requests.
2357	ForceSendFields []string `json:"-"`
2358
2359	// NullFields is a list of field names (e.g. "DiskSizeGb") to include in
2360	// API requests with the JSON null value. By default, fields with empty
2361	// values are omitted from API requests. However, any field with an
2362	// empty value appearing in NullFields will be sent to the server as
2363	// null. It is an error if a field in this list has a non-empty value.
2364	// This may be used to include null fields in Patch requests.
2365	NullFields []string `json:"-"`
2366}
2367
2368func (s *AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk) MarshalJSON() ([]byte, error) {
2369	type NoMethod AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk
2370	raw := NoMethod(*s)
2371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2372}
2373
2374// AllocationSpecificSKUAllocationReservedInstanceProperties: Properties
2375// of the SKU instances being reserved.
2376type AllocationSpecificSKUAllocationReservedInstanceProperties struct {
2377	// GuestAccelerators: Specifies accelerator type and count.
2378	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
2379
2380	// LocalSsds: Specifies amount of local ssd to reserve with each
2381	// instance. The type of disk is local-ssd.
2382	LocalSsds []*AllocationSpecificSKUAllocationAllocatedInstancePropertiesReservedDisk `json:"localSsds,omitempty"`
2383
2384	// MachineType: Specifies type of machine (name only) which has fixed
2385	// number of vCPUs and fixed amount of memory. This also includes
2386	// specifying custom machine type following
2387	// custom-NUMBER_OF_CPUS-AMOUNT_OF_MEMORY pattern.
2388	MachineType string `json:"machineType,omitempty"`
2389
2390	// MinCpuPlatform: Minimum cpu platform the reservation.
2391	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
2392
2393	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
2394	// to unconditionally include in API requests. By default, fields with
2395	// empty values are omitted from API requests. However, any non-pointer,
2396	// non-interface field appearing in ForceSendFields will be sent to the
2397	// server regardless of whether the field is empty or not. This may be
2398	// used to include empty fields in Patch requests.
2399	ForceSendFields []string `json:"-"`
2400
2401	// NullFields is a list of field names (e.g. "GuestAccelerators") to
2402	// include in API requests with the JSON null value. By default, fields
2403	// with empty values are omitted from API requests. However, any field
2404	// with an empty value appearing in NullFields will be sent to the
2405	// server as null. It is an error if a field in this list has a
2406	// non-empty value. This may be used to include null fields in Patch
2407	// requests.
2408	NullFields []string `json:"-"`
2409}
2410
2411func (s *AllocationSpecificSKUAllocationReservedInstanceProperties) MarshalJSON() ([]byte, error) {
2412	type NoMethod AllocationSpecificSKUAllocationReservedInstanceProperties
2413	raw := NoMethod(*s)
2414	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2415}
2416
2417// AllocationSpecificSKUReservation: This reservation type allows to pre
2418// allocate specific instance configuration.
2419type AllocationSpecificSKUReservation struct {
2420	// Count: Specifies the number of resources that are allocated.
2421	Count int64 `json:"count,omitempty,string"`
2422
2423	// InUseCount: [Output Only] Indicates how many instances are in use.
2424	InUseCount int64 `json:"inUseCount,omitempty,string"`
2425
2426	// InstanceProperties: The instance properties for the reservation.
2427	InstanceProperties *AllocationSpecificSKUAllocationReservedInstanceProperties `json:"instanceProperties,omitempty"`
2428
2429	// ForceSendFields is a list of field names (e.g. "Count") to
2430	// unconditionally include in API requests. By default, fields with
2431	// empty values are omitted from API requests. However, any non-pointer,
2432	// non-interface field appearing in ForceSendFields will be sent to the
2433	// server regardless of whether the field is empty or not. This may be
2434	// used to include empty fields in Patch requests.
2435	ForceSendFields []string `json:"-"`
2436
2437	// NullFields is a list of field names (e.g. "Count") to include in API
2438	// requests with the JSON null value. By default, fields with empty
2439	// values are omitted from API requests. However, any field with an
2440	// empty value appearing in NullFields will be sent to the server as
2441	// null. It is an error if a field in this list has a non-empty value.
2442	// This may be used to include null fields in Patch requests.
2443	NullFields []string `json:"-"`
2444}
2445
2446func (s *AllocationSpecificSKUReservation) MarshalJSON() ([]byte, error) {
2447	type NoMethod AllocationSpecificSKUReservation
2448	raw := NoMethod(*s)
2449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2450}
2451
2452// AttachedDisk: An instance-attached disk resource.
2453type AttachedDisk struct {
2454	// AutoDelete: Specifies whether the disk will be auto-deleted when the
2455	// instance is deleted (but not when the disk is detached from the
2456	// instance).
2457	AutoDelete bool `json:"autoDelete,omitempty"`
2458
2459	// Boot: Indicates that this is a boot disk. The virtual machine will
2460	// use the first partition of the disk for its root filesystem.
2461	Boot bool `json:"boot,omitempty"`
2462
2463	// DeviceName: Specifies a unique device name of your choice that is
2464	// reflected into the /dev/disk/by-id/google-* tree of a Linux operating
2465	// system running within the instance. This name can be used to
2466	// reference the device for mounting, resizing, and so on, from within
2467	// the instance.
2468	//
2469	// If not specified, the server chooses a default device name to apply
2470	// to this disk, in the form persistent-disk-x, where x is a number
2471	// assigned by Google Compute Engine. This field is only applicable for
2472	// persistent disks.
2473	DeviceName string `json:"deviceName,omitempty"`
2474
2475	// DiskEncryptionKey: Encrypts or decrypts a disk using a
2476	// customer-supplied encryption key.
2477	//
2478	// If you are creating a new disk, this field encrypts the new disk
2479	// using an encryption key that you provide. If you are attaching an
2480	// existing disk that is already encrypted, this field decrypts the disk
2481	// using the customer-supplied encryption key.
2482	//
2483	// If you encrypt a disk using a customer-supplied key, you must provide
2484	// the same key again when you attempt to use this resource at a later
2485	// time. For example, you must provide the key when you create a
2486	// snapshot or an image from the disk or when you attach the disk to a
2487	// virtual machine instance.
2488	//
2489	// If you do not provide an encryption key, then the disk will be
2490	// encrypted using an automatically generated key and you do not need to
2491	// provide a key to use the disk later.
2492	//
2493	// Instance templates do not store customer-supplied encryption keys, so
2494	// you cannot use your own keys to encrypt disks in a managed instance
2495	// group.
2496	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
2497
2498	// DiskSizeGb: The size of the disk in GB.
2499	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2500
2501	// GuestOsFeatures: A list of features to enable on the guest operating
2502	// system. Applicable only for bootable images. Read  Enabling guest
2503	// operating system features to see a list of available options.
2504	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2505
2506	// Index: [Output Only] A zero-based index to this disk, where 0 is
2507	// reserved for the boot disk. If you have many disks attached to an
2508	// instance, each disk would have a unique index number.
2509	Index int64 `json:"index,omitempty"`
2510
2511	// InitializeParams: [Input Only] Specifies the parameters for a new
2512	// disk that will be created alongside the new instance. Use
2513	// initialization parameters to create boot disks or local SSDs attached
2514	// to the new instance.
2515	//
2516	// This property is mutually exclusive with the source property; you can
2517	// only define one or the other, but not both.
2518	InitializeParams *AttachedDiskInitializeParams `json:"initializeParams,omitempty"`
2519
2520	// Interface: Specifies the disk interface to use for attaching this
2521	// disk, which is either SCSI or NVME. The default is SCSI. Persistent
2522	// disks must always use SCSI and the request will fail if you attempt
2523	// to attach a persistent disk in any other format than SCSI. Local SSDs
2524	// can use either NVME or SCSI. For performance characteristics of SCSI
2525	// over NVMe, see Local SSD performance. TODO(b/131765817): Update
2526	// documentation when NVME is supported.
2527	//
2528	// Possible values:
2529	//   "NVME"
2530	//   "SCSI"
2531	Interface string `json:"interface,omitempty"`
2532
2533	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
2534	// for attached disks.
2535	Kind string `json:"kind,omitempty"`
2536
2537	// Licenses: [Output Only] Any valid publicly visible licenses.
2538	Licenses []string `json:"licenses,omitempty"`
2539
2540	// Mode: The mode in which to attach this disk, either READ_WRITE or
2541	// READ_ONLY. If not specified, the default is to attach the disk in
2542	// READ_WRITE mode.
2543	//
2544	// Possible values:
2545	//   "READ_ONLY"
2546	//   "READ_WRITE"
2547	Mode string `json:"mode,omitempty"`
2548
2549	// Source: Specifies a valid partial or full URL to an existing
2550	// Persistent Disk resource. When creating a new instance, one of
2551	// initializeParams.sourceImage or initializeParams.sourceSnapshot or
2552	// disks.source is required except for local SSD.
2553	//
2554	// If desired, you can also attach existing non-root persistent disks
2555	// using this property. This field is only applicable for persistent
2556	// disks.
2557	//
2558	// Note that for InstanceTemplate, specify the disk name, not the URL
2559	// for the disk.
2560	Source string `json:"source,omitempty"`
2561
2562	// Type: Specifies the type of the disk, either SCRATCH or PERSISTENT.
2563	// If not specified, the default is PERSISTENT.
2564	//
2565	// Possible values:
2566	//   "PERSISTENT"
2567	//   "SCRATCH"
2568	Type string `json:"type,omitempty"`
2569
2570	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
2571	// unconditionally include in API requests. By default, fields with
2572	// empty values are omitted from API requests. However, any non-pointer,
2573	// non-interface field appearing in ForceSendFields will be sent to the
2574	// server regardless of whether the field is empty or not. This may be
2575	// used to include empty fields in Patch requests.
2576	ForceSendFields []string `json:"-"`
2577
2578	// NullFields is a list of field names (e.g. "AutoDelete") to include in
2579	// API requests with the JSON null value. By default, fields with empty
2580	// values are omitted from API requests. However, any field with an
2581	// empty value appearing in NullFields will be sent to the server as
2582	// null. It is an error if a field in this list has a non-empty value.
2583	// This may be used to include null fields in Patch requests.
2584	NullFields []string `json:"-"`
2585}
2586
2587func (s *AttachedDisk) MarshalJSON() ([]byte, error) {
2588	type NoMethod AttachedDisk
2589	raw := NoMethod(*s)
2590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2591}
2592
2593// AttachedDiskInitializeParams: [Input Only] Specifies the parameters
2594// for a new disk that will be created alongside the new instance. Use
2595// initialization parameters to create boot disks or local SSDs attached
2596// to the new instance.
2597//
2598// This property is mutually exclusive with the source property; you can
2599// only define one or the other, but not both.
2600type AttachedDiskInitializeParams struct {
2601	// Description: An optional description. Provide this property when
2602	// creating the disk.
2603	Description string `json:"description,omitempty"`
2604
2605	// DiskName: Specifies the disk name. If not specified, the default is
2606	// to use the name of the instance. If the disk with the instance name
2607	// exists already in the given zone/region, a new name will be
2608	// automatically generated.
2609	DiskName string `json:"diskName,omitempty"`
2610
2611	// DiskSizeGb: Specifies the size of the disk in base-2 GB. The size
2612	// must be at least 10 GB. If you specify a sourceImage, which is
2613	// required for boot disks, the default size is the size of the
2614	// sourceImage. If you do not specify a sourceImage, the default disk
2615	// size is 500 GB.
2616	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
2617
2618	// DiskType: Specifies the disk type to use to create the instance. If
2619	// not specified, the default is pd-standard, specified using the full
2620	// URL. For
2621	// example:
2622	// https://www.googleapis.com/compute/v1/projects/project/zones/
2623	// zone/diskTypes/pd-standard
2624	//
2625	//
2626	// Other values include pd-ssd and local-ssd. If you define this field,
2627	// you can provide either the full or partial URL. For example, the
2628	// following are valid values:
2629	// -
2630	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/diskTypes/diskType
2631	// - projects/project/zones/zone/diskTypes/diskType
2632	// - zones/zone/diskTypes/diskType  Note that for InstanceTemplate, this
2633	// is the name of the disk type, not URL.
2634	DiskType string `json:"diskType,omitempty"`
2635
2636	// GuestOsFeatures: A list of features to enable on the guest operating
2637	// system. Applicable only for bootable images. Read  Enabling guest
2638	// operating system features to see a list of available options.
2639	//
2640	// Guest OS features are applied by merging
2641	// initializeParams.guestOsFeatures and disks.guestOsFeatures
2642	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
2643
2644	// Labels: Labels to apply to this disk. These can be later modified by
2645	// the disks.setLabels method. This field is only applicable for
2646	// persistent disks.
2647	Labels map[string]string `json:"labels,omitempty"`
2648
2649	// ResourcePolicies: Resource policies applied to this disk for
2650	// automatic snapshot creations. Specified using the full or partial
2651	// URL. For instance template, specify only the resource policy name.
2652	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
2653
2654	// SourceImage: The source image to create this disk. When creating a
2655	// new instance, one of initializeParams.sourceImage or
2656	// initializeParams.sourceSnapshot or disks.source is required except
2657	// for local SSD.
2658	//
2659	// To create a disk with one of the public operating system images,
2660	// specify the image by its family name. For example, specify
2661	// family/debian-9 to use the latest Debian 9
2662	// image:
2663	// projects/debian-cloud/global/images/family/debian-9
2664	//
2665	//
2666	// Alternati
2667	// vely, use a specific version of a public operating system
2668	// image:
2669	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
2670	//
2671	//
2672	//
2673	// To create a disk with a custom image that you created, specify the
2674	// image name in the following
2675	// format:
2676	// global/images/my-custom-image
2677	//
2678	//
2679	// You can also specify a custom image by its image family, which
2680	// returns the latest version of the image in that family. Replace the
2681	// image name with
2682	// family/family-name:
2683	// global/images/family/my-image-family
2684	//
2685	//
2686	// If the source image is deleted later, this field will not be set.
2687	SourceImage string `json:"sourceImage,omitempty"`
2688
2689	// SourceImageEncryptionKey: The customer-supplied encryption key of the
2690	// source image. Required if the source image is protected by a
2691	// customer-supplied encryption key.
2692	//
2693	// Instance templates do not store customer-supplied encryption keys, so
2694	// you cannot create disks for instances in a managed instance group if
2695	// the source images are encrypted with your own keys.
2696	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
2697
2698	// SourceSnapshot: The source snapshot to create this disk. When
2699	// creating a new instance, one of initializeParams.sourceSnapshot or
2700	// initializeParams.sourceImage or disks.source is required except for
2701	// local SSD.
2702	//
2703	// To create a disk with a snapshot that you created, specify the
2704	// snapshot name in the following
2705	// format:
2706	// global/snapshots/my-backup
2707	//
2708	//
2709	// If the source snapshot is deleted later, this field will not be set.
2710	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
2711
2712	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
2713	// the source snapshot.
2714	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
2715
2716	// ForceSendFields is a list of field names (e.g. "Description") to
2717	// unconditionally include in API requests. By default, fields with
2718	// empty values are omitted from API requests. However, any non-pointer,
2719	// non-interface field appearing in ForceSendFields will be sent to the
2720	// server regardless of whether the field is empty or not. This may be
2721	// used to include empty fields in Patch requests.
2722	ForceSendFields []string `json:"-"`
2723
2724	// NullFields is a list of field names (e.g. "Description") to include
2725	// in API requests with the JSON null value. By default, fields with
2726	// empty values are omitted from API requests. However, any field with
2727	// an empty value appearing in NullFields will be sent to the server as
2728	// null. It is an error if a field in this list has a non-empty value.
2729	// This may be used to include null fields in Patch requests.
2730	NullFields []string `json:"-"`
2731}
2732
2733func (s *AttachedDiskInitializeParams) MarshalJSON() ([]byte, error) {
2734	type NoMethod AttachedDiskInitializeParams
2735	raw := NoMethod(*s)
2736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2737}
2738
2739// AuditConfig: Specifies the audit configuration for a service. The
2740// configuration determines which permission types are logged, and what
2741// identities, if any, are exempted from logging. An AuditConfig must
2742// have one or more AuditLogConfigs.
2743//
2744// If there are AuditConfigs for both `allServices` and a specific
2745// service, the union of the two AuditConfigs is used for that service:
2746// the log_types specified in each AuditConfig are enabled, and the
2747// exempted_members in each AuditLogConfig are exempted.
2748//
2749// Example Policy with multiple AuditConfigs:
2750//
2751// { "audit_configs": [ { "service": "allServices" "audit_log_configs":
2752// [ { "log_type": "DATA_READ", "exempted_members": [
2753// "user:jose@example.com" ] }, { "log_type": "DATA_WRITE", }, {
2754// "log_type": "ADMIN_READ", } ] }, { "service":
2755// "sampleservice.googleapis.com" "audit_log_configs": [ { "log_type":
2756// "DATA_READ", }, { "log_type": "DATA_WRITE", "exempted_members": [
2757// "user:aliya@example.com" ] } ] } ] }
2758//
2759// For sampleservice, this policy enables DATA_READ, DATA_WRITE and
2760// ADMIN_READ logging. It also exempts jose@example.com from DATA_READ
2761// logging, and aliya@example.com from DATA_WRITE logging.
2762type AuditConfig struct {
2763	// AuditLogConfigs: The configuration for logging of each type of
2764	// permission.
2765	AuditLogConfigs []*AuditLogConfig `json:"auditLogConfigs,omitempty"`
2766
2767	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2768
2769	// Service: Specifies a service that will be enabled for audit logging.
2770	// For example, `storage.googleapis.com`, `cloudsql.googleapis.com`.
2771	// `allServices` is a special value that covers all services.
2772	Service string `json:"service,omitempty"`
2773
2774	// ForceSendFields is a list of field names (e.g. "AuditLogConfigs") to
2775	// unconditionally include in API requests. By default, fields with
2776	// empty values are omitted from API requests. However, any non-pointer,
2777	// non-interface field appearing in ForceSendFields will be sent to the
2778	// server regardless of whether the field is empty or not. This may be
2779	// used to include empty fields in Patch requests.
2780	ForceSendFields []string `json:"-"`
2781
2782	// NullFields is a list of field names (e.g. "AuditLogConfigs") to
2783	// include in API requests with the JSON null value. By default, fields
2784	// with empty values are omitted from API requests. However, any field
2785	// with an empty value appearing in NullFields will be sent to the
2786	// server as null. It is an error if a field in this list has a
2787	// non-empty value. This may be used to include null fields in Patch
2788	// requests.
2789	NullFields []string `json:"-"`
2790}
2791
2792func (s *AuditConfig) MarshalJSON() ([]byte, error) {
2793	type NoMethod AuditConfig
2794	raw := NoMethod(*s)
2795	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2796}
2797
2798// AuditLogConfig: Provides the configuration for logging a type of
2799// permissions. Example:
2800//
2801// { "audit_log_configs": [ { "log_type": "DATA_READ",
2802// "exempted_members": [ "user:jose@example.com" ] }, { "log_type":
2803// "DATA_WRITE", } ] }
2804//
2805// This enables 'DATA_READ' and 'DATA_WRITE' logging, while exempting
2806// jose@example.com from DATA_READ logging.
2807type AuditLogConfig struct {
2808	// ExemptedMembers: Specifies the identities that do not cause logging
2809	// for this type of permission. Follows the same format of
2810	// [Binding.members][].
2811	ExemptedMembers []string `json:"exemptedMembers,omitempty"`
2812
2813	IgnoreChildExemptions bool `json:"ignoreChildExemptions,omitempty"`
2814
2815	// LogType: The log type that this config enables.
2816	//
2817	// Possible values:
2818	//   "ADMIN_READ"
2819	//   "DATA_READ"
2820	//   "DATA_WRITE"
2821	//   "LOG_TYPE_UNSPECIFIED"
2822	LogType string `json:"logType,omitempty"`
2823
2824	// ForceSendFields is a list of field names (e.g. "ExemptedMembers") to
2825	// unconditionally include in API requests. By default, fields with
2826	// empty values are omitted from API requests. However, any non-pointer,
2827	// non-interface field appearing in ForceSendFields will be sent to the
2828	// server regardless of whether the field is empty or not. This may be
2829	// used to include empty fields in Patch requests.
2830	ForceSendFields []string `json:"-"`
2831
2832	// NullFields is a list of field names (e.g. "ExemptedMembers") to
2833	// include in API requests with the JSON null value. By default, fields
2834	// with empty values are omitted from API requests. However, any field
2835	// with an empty value appearing in NullFields will be sent to the
2836	// server as null. It is an error if a field in this list has a
2837	// non-empty value. This may be used to include null fields in Patch
2838	// requests.
2839	NullFields []string `json:"-"`
2840}
2841
2842func (s *AuditLogConfig) MarshalJSON() ([]byte, error) {
2843	type NoMethod AuditLogConfig
2844	raw := NoMethod(*s)
2845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2846}
2847
2848// AuthorizationLoggingOptions: Authorization-related information used
2849// by Cloud Audit Logging.
2850type AuthorizationLoggingOptions struct {
2851	// PermissionType: The type of the permission that was checked.
2852	//
2853	// Possible values:
2854	//   "ADMIN_READ"
2855	//   "ADMIN_WRITE"
2856	//   "DATA_READ"
2857	//   "DATA_WRITE"
2858	//   "PERMISSION_TYPE_UNSPECIFIED"
2859	PermissionType string `json:"permissionType,omitempty"`
2860
2861	// ForceSendFields is a list of field names (e.g. "PermissionType") to
2862	// unconditionally include in API requests. By default, fields with
2863	// empty values are omitted from API requests. However, any non-pointer,
2864	// non-interface field appearing in ForceSendFields will be sent to the
2865	// server regardless of whether the field is empty or not. This may be
2866	// used to include empty fields in Patch requests.
2867	ForceSendFields []string `json:"-"`
2868
2869	// NullFields is a list of field names (e.g. "PermissionType") to
2870	// include in API requests with the JSON null value. By default, fields
2871	// with empty values are omitted from API requests. However, any field
2872	// with an empty value appearing in NullFields will be sent to the
2873	// server as null. It is an error if a field in this list has a
2874	// non-empty value. This may be used to include null fields in Patch
2875	// requests.
2876	NullFields []string `json:"-"`
2877}
2878
2879func (s *AuthorizationLoggingOptions) MarshalJSON() ([]byte, error) {
2880	type NoMethod AuthorizationLoggingOptions
2881	raw := NoMethod(*s)
2882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
2883}
2884
2885// Autoscaler: Represents an Autoscaler resource.
2886//
2887// Google Compute Engine has two Autoscaler resources:
2888//
2889// * [Global](/compute/docs/reference/rest/latest/autoscalers) *
2890// [Regional](/compute/docs/reference/rest/latest/regionAutoscalers)
2891//
2892// Use
2893//  autoscalers to automatically add or delete instances from a managed
2894// instance group according to your defined autoscaling policy. For more
2895// information, read Autoscaling Groups of Instances.
2896//
2897// For zonal managed instance groups resource, use the autoscaler
2898// resource.
2899//
2900// For regional managed instance groups, use the regionAutoscalers
2901// resource. (== resource_for {$api_version}.autoscalers ==) (==
2902// resource_for {$api_version}.regionAutoscalers ==)
2903type Autoscaler struct {
2904	// AutoscalingPolicy: The configuration parameters for the autoscaling
2905	// algorithm. You can define one or more of the policies for an
2906	// autoscaler: cpuUtilization, customMetricUtilizations, and
2907	// loadBalancingUtilization.
2908	//
2909	// If none of these are specified, the default will be to autoscale
2910	// based on cpuUtilization to 0.6 or 60%.
2911	AutoscalingPolicy *AutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
2912
2913	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
2914	// format.
2915	CreationTimestamp string `json:"creationTimestamp,omitempty"`
2916
2917	// Description: An optional description of this resource. Provide this
2918	// property when you create the resource.
2919	Description string `json:"description,omitempty"`
2920
2921	// Id: [Output Only] The unique identifier for the resource. This
2922	// identifier is defined by the server.
2923	Id uint64 `json:"id,omitempty,string"`
2924
2925	// Kind: [Output Only] Type of the resource. Always compute#autoscaler
2926	// for autoscalers.
2927	Kind string `json:"kind,omitempty"`
2928
2929	// Name: Name of the resource. Provided by the client when the resource
2930	// is created. The name must be 1-63 characters long, and comply with
2931	// RFC1035. Specifically, the name must be 1-63 characters long and
2932	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
2933	// the first character must be a lowercase letter, and all following
2934	// characters must be a dash, lowercase letter, or digit, except the
2935	// last character, which cannot be a dash.
2936	Name string `json:"name,omitempty"`
2937
2938	// RecommendedSize: [Output Only] Target recommended MIG size (number of
2939	// instances) computed by autoscaler. Autoscaler calculates recommended
2940	// MIG size even when autoscaling policy mode is different from ON. This
2941	// field is empty when autoscaler is not connected to the existing
2942	// managed instance group or autoscaler did not generate its prediction.
2943	RecommendedSize int64 `json:"recommendedSize,omitempty"`
2944
2945	// Region: [Output Only] URL of the region where the instance group
2946	// resides (for autoscalers living in regional scope).
2947	Region string `json:"region,omitempty"`
2948
2949	// SelfLink: [Output Only] Server-defined URL for the resource.
2950	SelfLink string `json:"selfLink,omitempty"`
2951
2952	// Status: [Output Only] The status of the autoscaler configuration.
2953	// Current set of possible values:
2954	// - PENDING: Autoscaler backend hasn't read new/updated configuration.
2955	//
2956	// - DELETING: Configuration is being deleted.
2957	// - ACTIVE: Configuration is acknowledged to be effective. Some
2958	// warnings might be present in the statusDetails field.
2959	// - ERROR: Configuration has errors. Actionable for users. Details are
2960	// present in the statusDetails field.  New values might be added in the
2961	// future.
2962	//
2963	// Possible values:
2964	//   "ACTIVE"
2965	//   "DELETING"
2966	//   "ERROR"
2967	//   "PENDING"
2968	Status string `json:"status,omitempty"`
2969
2970	// StatusDetails: [Output Only] Human-readable details about the current
2971	// state of the autoscaler. Read the documentation for Commonly returned
2972	// status messages for examples of status messages you might encounter.
2973	StatusDetails []*AutoscalerStatusDetails `json:"statusDetails,omitempty"`
2974
2975	// Target: URL of the managed instance group that this autoscaler will
2976	// scale.
2977	Target string `json:"target,omitempty"`
2978
2979	// Zone: [Output Only] URL of the zone where the instance group resides
2980	// (for autoscalers living in zonal scope).
2981	Zone string `json:"zone,omitempty"`
2982
2983	// ServerResponse contains the HTTP response code and headers from the
2984	// server.
2985	googleapi.ServerResponse `json:"-"`
2986
2987	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
2988	// to unconditionally include in API requests. By default, fields with
2989	// empty values are omitted from API requests. However, any non-pointer,
2990	// non-interface field appearing in ForceSendFields will be sent to the
2991	// server regardless of whether the field is empty or not. This may be
2992	// used to include empty fields in Patch requests.
2993	ForceSendFields []string `json:"-"`
2994
2995	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
2996	// include in API requests with the JSON null value. By default, fields
2997	// with empty values are omitted from API requests. However, any field
2998	// with an empty value appearing in NullFields will be sent to the
2999	// server as null. It is an error if a field in this list has a
3000	// non-empty value. This may be used to include null fields in Patch
3001	// requests.
3002	NullFields []string `json:"-"`
3003}
3004
3005func (s *Autoscaler) MarshalJSON() ([]byte, error) {
3006	type NoMethod Autoscaler
3007	raw := NoMethod(*s)
3008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3009}
3010
3011type AutoscalerAggregatedList struct {
3012	// Id: [Output Only] Unique identifier for the resource; defined by the
3013	// server.
3014	Id string `json:"id,omitempty"`
3015
3016	// Items: A list of AutoscalersScopedList resources.
3017	Items map[string]AutoscalersScopedList `json:"items,omitempty"`
3018
3019	// Kind: [Output Only] Type of resource. Always
3020	// compute#autoscalerAggregatedList for aggregated lists of autoscalers.
3021	Kind string `json:"kind,omitempty"`
3022
3023	// NextPageToken: [Output Only] This token allows you to get the next
3024	// page of results for list requests. If the number of results is larger
3025	// than maxResults, use the nextPageToken as a value for the query
3026	// parameter pageToken in the next list request. Subsequent list
3027	// requests will have their own nextPageToken to continue paging through
3028	// the results.
3029	NextPageToken string `json:"nextPageToken,omitempty"`
3030
3031	// SelfLink: [Output Only] Server-defined URL for this resource.
3032	SelfLink string `json:"selfLink,omitempty"`
3033
3034	// Warning: [Output Only] Informational warning message.
3035	Warning *AutoscalerAggregatedListWarning `json:"warning,omitempty"`
3036
3037	// ServerResponse contains the HTTP response code and headers from the
3038	// server.
3039	googleapi.ServerResponse `json:"-"`
3040
3041	// ForceSendFields is a list of field names (e.g. "Id") to
3042	// unconditionally include in API requests. By default, fields with
3043	// empty values are omitted from API requests. However, any non-pointer,
3044	// non-interface field appearing in ForceSendFields will be sent to the
3045	// server regardless of whether the field is empty or not. This may be
3046	// used to include empty fields in Patch requests.
3047	ForceSendFields []string `json:"-"`
3048
3049	// NullFields is a list of field names (e.g. "Id") to include in API
3050	// requests with the JSON null value. By default, fields with empty
3051	// values are omitted from API requests. However, any field with an
3052	// empty value appearing in NullFields will be sent to the server as
3053	// null. It is an error if a field in this list has a non-empty value.
3054	// This may be used to include null fields in Patch requests.
3055	NullFields []string `json:"-"`
3056}
3057
3058func (s *AutoscalerAggregatedList) MarshalJSON() ([]byte, error) {
3059	type NoMethod AutoscalerAggregatedList
3060	raw := NoMethod(*s)
3061	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3062}
3063
3064// AutoscalerAggregatedListWarning: [Output Only] Informational warning
3065// message.
3066type AutoscalerAggregatedListWarning struct {
3067	// Code: [Output Only] A warning code, if applicable. For example,
3068	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3069	// the response.
3070	//
3071	// Possible values:
3072	//   "CLEANUP_FAILED"
3073	//   "DEPRECATED_RESOURCE_USED"
3074	//   "DEPRECATED_TYPE_USED"
3075	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3076	//   "EXPERIMENTAL_TYPE_USED"
3077	//   "EXTERNAL_API_WARNING"
3078	//   "FIELD_VALUE_OVERRIDEN"
3079	//   "INJECTED_KERNELS_DEPRECATED"
3080	//   "MISSING_TYPE_DEPENDENCY"
3081	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3082	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3083	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3084	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3085	//   "NEXT_HOP_NOT_RUNNING"
3086	//   "NOT_CRITICAL_ERROR"
3087	//   "NO_RESULTS_ON_PAGE"
3088	//   "REQUIRED_TOS_AGREEMENT"
3089	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3090	//   "RESOURCE_NOT_DELETED"
3091	//   "SCHEMA_VALIDATION_IGNORED"
3092	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3093	//   "UNDECLARED_PROPERTIES"
3094	//   "UNREACHABLE"
3095	Code string `json:"code,omitempty"`
3096
3097	// Data: [Output Only] Metadata about this warning in key: value format.
3098	// For example:
3099	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3100	Data []*AutoscalerAggregatedListWarningData `json:"data,omitempty"`
3101
3102	// Message: [Output Only] A human-readable description of the warning
3103	// code.
3104	Message string `json:"message,omitempty"`
3105
3106	// ForceSendFields is a list of field names (e.g. "Code") to
3107	// unconditionally include in API requests. By default, fields with
3108	// empty values are omitted from API requests. However, any non-pointer,
3109	// non-interface field appearing in ForceSendFields will be sent to the
3110	// server regardless of whether the field is empty or not. This may be
3111	// used to include empty fields in Patch requests.
3112	ForceSendFields []string `json:"-"`
3113
3114	// NullFields is a list of field names (e.g. "Code") to include in API
3115	// requests with the JSON null value. By default, fields with empty
3116	// values are omitted from API requests. However, any field with an
3117	// empty value appearing in NullFields will be sent to the server as
3118	// null. It is an error if a field in this list has a non-empty value.
3119	// This may be used to include null fields in Patch requests.
3120	NullFields []string `json:"-"`
3121}
3122
3123func (s *AutoscalerAggregatedListWarning) MarshalJSON() ([]byte, error) {
3124	type NoMethod AutoscalerAggregatedListWarning
3125	raw := NoMethod(*s)
3126	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3127}
3128
3129type AutoscalerAggregatedListWarningData struct {
3130	// Key: [Output Only] A key that provides more detail on the warning
3131	// being returned. For example, for warnings where there are no results
3132	// in a list request for a particular zone, this key might be scope and
3133	// the key value might be the zone name. Other examples might be a key
3134	// indicating a deprecated resource and a suggested replacement, or a
3135	// warning about invalid network settings (for example, if an instance
3136	// attempts to perform IP forwarding but is not enabled for IP
3137	// forwarding).
3138	Key string `json:"key,omitempty"`
3139
3140	// Value: [Output Only] A warning data value corresponding to the key.
3141	Value string `json:"value,omitempty"`
3142
3143	// ForceSendFields is a list of field names (e.g. "Key") to
3144	// unconditionally include in API requests. By default, fields with
3145	// empty values are omitted from API requests. However, any non-pointer,
3146	// non-interface field appearing in ForceSendFields will be sent to the
3147	// server regardless of whether the field is empty or not. This may be
3148	// used to include empty fields in Patch requests.
3149	ForceSendFields []string `json:"-"`
3150
3151	// NullFields is a list of field names (e.g. "Key") to include in API
3152	// requests with the JSON null value. By default, fields with empty
3153	// values are omitted from API requests. However, any field with an
3154	// empty value appearing in NullFields will be sent to the server as
3155	// null. It is an error if a field in this list has a non-empty value.
3156	// This may be used to include null fields in Patch requests.
3157	NullFields []string `json:"-"`
3158}
3159
3160func (s *AutoscalerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
3161	type NoMethod AutoscalerAggregatedListWarningData
3162	raw := NoMethod(*s)
3163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3164}
3165
3166// AutoscalerList: Contains a list of Autoscaler resources.
3167type AutoscalerList struct {
3168	// Id: [Output Only] Unique identifier for the resource; defined by the
3169	// server.
3170	Id string `json:"id,omitempty"`
3171
3172	// Items: A list of Autoscaler resources.
3173	Items []*Autoscaler `json:"items,omitempty"`
3174
3175	// Kind: [Output Only] Type of resource. Always compute#autoscalerList
3176	// for lists of autoscalers.
3177	Kind string `json:"kind,omitempty"`
3178
3179	// NextPageToken: [Output Only] This token allows you to get the next
3180	// page of results for list requests. If the number of results is larger
3181	// than maxResults, use the nextPageToken as a value for the query
3182	// parameter pageToken in the next list request. Subsequent list
3183	// requests will have their own nextPageToken to continue paging through
3184	// the results.
3185	NextPageToken string `json:"nextPageToken,omitempty"`
3186
3187	// SelfLink: [Output Only] Server-defined URL for this resource.
3188	SelfLink string `json:"selfLink,omitempty"`
3189
3190	// Warning: [Output Only] Informational warning message.
3191	Warning *AutoscalerListWarning `json:"warning,omitempty"`
3192
3193	// ServerResponse contains the HTTP response code and headers from the
3194	// server.
3195	googleapi.ServerResponse `json:"-"`
3196
3197	// ForceSendFields is a list of field names (e.g. "Id") to
3198	// unconditionally include in API requests. By default, fields with
3199	// empty values are omitted from API requests. However, any non-pointer,
3200	// non-interface field appearing in ForceSendFields will be sent to the
3201	// server regardless of whether the field is empty or not. This may be
3202	// used to include empty fields in Patch requests.
3203	ForceSendFields []string `json:"-"`
3204
3205	// NullFields is a list of field names (e.g. "Id") to include in API
3206	// requests with the JSON null value. By default, fields with empty
3207	// values are omitted from API requests. However, any field with an
3208	// empty value appearing in NullFields will be sent to the server as
3209	// null. It is an error if a field in this list has a non-empty value.
3210	// This may be used to include null fields in Patch requests.
3211	NullFields []string `json:"-"`
3212}
3213
3214func (s *AutoscalerList) MarshalJSON() ([]byte, error) {
3215	type NoMethod AutoscalerList
3216	raw := NoMethod(*s)
3217	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3218}
3219
3220// AutoscalerListWarning: [Output Only] Informational warning message.
3221type AutoscalerListWarning struct {
3222	// Code: [Output Only] A warning code, if applicable. For example,
3223	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3224	// the response.
3225	//
3226	// Possible values:
3227	//   "CLEANUP_FAILED"
3228	//   "DEPRECATED_RESOURCE_USED"
3229	//   "DEPRECATED_TYPE_USED"
3230	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3231	//   "EXPERIMENTAL_TYPE_USED"
3232	//   "EXTERNAL_API_WARNING"
3233	//   "FIELD_VALUE_OVERRIDEN"
3234	//   "INJECTED_KERNELS_DEPRECATED"
3235	//   "MISSING_TYPE_DEPENDENCY"
3236	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3237	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3238	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3239	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3240	//   "NEXT_HOP_NOT_RUNNING"
3241	//   "NOT_CRITICAL_ERROR"
3242	//   "NO_RESULTS_ON_PAGE"
3243	//   "REQUIRED_TOS_AGREEMENT"
3244	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3245	//   "RESOURCE_NOT_DELETED"
3246	//   "SCHEMA_VALIDATION_IGNORED"
3247	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3248	//   "UNDECLARED_PROPERTIES"
3249	//   "UNREACHABLE"
3250	Code string `json:"code,omitempty"`
3251
3252	// Data: [Output Only] Metadata about this warning in key: value format.
3253	// For example:
3254	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3255	Data []*AutoscalerListWarningData `json:"data,omitempty"`
3256
3257	// Message: [Output Only] A human-readable description of the warning
3258	// code.
3259	Message string `json:"message,omitempty"`
3260
3261	// ForceSendFields is a list of field names (e.g. "Code") to
3262	// unconditionally include in API requests. By default, fields with
3263	// empty values are omitted from API requests. However, any non-pointer,
3264	// non-interface field appearing in ForceSendFields will be sent to the
3265	// server regardless of whether the field is empty or not. This may be
3266	// used to include empty fields in Patch requests.
3267	ForceSendFields []string `json:"-"`
3268
3269	// NullFields is a list of field names (e.g. "Code") to include in API
3270	// requests with the JSON null value. By default, fields with empty
3271	// values are omitted from API requests. However, any field with an
3272	// empty value appearing in NullFields will be sent to the server as
3273	// null. It is an error if a field in this list has a non-empty value.
3274	// This may be used to include null fields in Patch requests.
3275	NullFields []string `json:"-"`
3276}
3277
3278func (s *AutoscalerListWarning) MarshalJSON() ([]byte, error) {
3279	type NoMethod AutoscalerListWarning
3280	raw := NoMethod(*s)
3281	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3282}
3283
3284type AutoscalerListWarningData struct {
3285	// Key: [Output Only] A key that provides more detail on the warning
3286	// being returned. For example, for warnings where there are no results
3287	// in a list request for a particular zone, this key might be scope and
3288	// the key value might be the zone name. Other examples might be a key
3289	// indicating a deprecated resource and a suggested replacement, or a
3290	// warning about invalid network settings (for example, if an instance
3291	// attempts to perform IP forwarding but is not enabled for IP
3292	// forwarding).
3293	Key string `json:"key,omitempty"`
3294
3295	// Value: [Output Only] A warning data value corresponding to the key.
3296	Value string `json:"value,omitempty"`
3297
3298	// ForceSendFields is a list of field names (e.g. "Key") to
3299	// unconditionally include in API requests. By default, fields with
3300	// empty values are omitted from API requests. However, any non-pointer,
3301	// non-interface field appearing in ForceSendFields will be sent to the
3302	// server regardless of whether the field is empty or not. This may be
3303	// used to include empty fields in Patch requests.
3304	ForceSendFields []string `json:"-"`
3305
3306	// NullFields is a list of field names (e.g. "Key") to include in API
3307	// requests with the JSON null value. By default, fields with empty
3308	// values are omitted from API requests. However, any field with an
3309	// empty value appearing in NullFields will be sent to the server as
3310	// null. It is an error if a field in this list has a non-empty value.
3311	// This may be used to include null fields in Patch requests.
3312	NullFields []string `json:"-"`
3313}
3314
3315func (s *AutoscalerListWarningData) MarshalJSON() ([]byte, error) {
3316	type NoMethod AutoscalerListWarningData
3317	raw := NoMethod(*s)
3318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3319}
3320
3321type AutoscalerStatusDetails struct {
3322	// Message: The status message.
3323	Message string `json:"message,omitempty"`
3324
3325	// Type: The type of error, warning, or notice returned. Current set of
3326	// possible values:
3327	// - ALL_INSTANCES_UNHEALTHY (WARNING): All instances in the instance
3328	// group are unhealthy (not in RUNNING state).
3329	// - BACKEND_SERVICE_DOES_NOT_EXIST (ERROR): There is no backend service
3330	// attached to the instance group.
3331	// - CAPPED_AT_MAX_NUM_REPLICAS (WARNING): Autoscaler recommends a size
3332	// greater than maxNumReplicas.
3333	// - CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE (WARNING): The custom metric
3334	// samples are not exported often enough to be a credible base for
3335	// autoscaling.
3336	// - CUSTOM_METRIC_INVALID (ERROR): The custom metric that was specified
3337	// does not exist or does not have the necessary labels.
3338	// - MIN_EQUALS_MAX (WARNING): The minNumReplicas is equal to
3339	// maxNumReplicas. This means the autoscaler cannot add or remove
3340	// instances from the instance group.
3341	// - MISSING_CUSTOM_METRIC_DATA_POINTS (WARNING): The autoscaler did not
3342	// receive any data from the custom metric configured for autoscaling.
3343	//
3344	// - MISSING_LOAD_BALANCING_DATA_POINTS (WARNING): The autoscaler is
3345	// configured to scale based on a load balancing signal but the instance
3346	// group has not received any requests from the load balancer.
3347	// - MODE_OFF (WARNING): Autoscaling is turned off. The number of
3348	// instances in the group won't change automatically. The autoscaling
3349	// configuration is preserved.
3350	// - MODE_ONLY_UP (WARNING): Autoscaling is in the "Autoscale only up"
3351	// mode. The autoscaler can add instances but not remove any.
3352	// - MORE_THAN_ONE_BACKEND_SERVICE (ERROR): The instance group cannot be
3353	// autoscaled because it has more than one backend service attached to
3354	// it.
3355	// - NOT_ENOUGH_QUOTA_AVAILABLE (ERROR): There is insufficient quota for
3356	// the necessary resources, such as CPU or number of instances.
3357	// - REGION_RESOURCE_STOCKOUT (ERROR): Shown only for regional
3358	// autoscalers: there is a resource stockout in the chosen region.
3359	// - SCALING_TARGET_DOES_NOT_EXIST (ERROR): The target to be scaled does
3360	// not exist.
3361	// - UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION (ERROR):
3362	// Autoscaling does not work with an HTTP/S load balancer that has been
3363	// configured for maxRate.
3364	// - ZONE_RESOURCE_STOCKOUT (ERROR): For zonal autoscalers: there is a
3365	// resource stockout in the chosen zone. For regional autoscalers: in at
3366	// least one of the zones you're using there is a resource stockout.
3367	// New values might be added in the future. Some of the values might not
3368	// be available in all API versions.
3369	//
3370	// Possible values:
3371	//   "ALL_INSTANCES_UNHEALTHY"
3372	//   "BACKEND_SERVICE_DOES_NOT_EXIST"
3373	//   "CAPPED_AT_MAX_NUM_REPLICAS"
3374	//   "CUSTOM_METRIC_DATA_POINTS_TOO_SPARSE"
3375	//   "CUSTOM_METRIC_INVALID"
3376	//   "MIN_EQUALS_MAX"
3377	//   "MISSING_CUSTOM_METRIC_DATA_POINTS"
3378	//   "MISSING_LOAD_BALANCING_DATA_POINTS"
3379	//   "MODE_OFF"
3380	//   "MODE_ONLY_UP"
3381	//   "MORE_THAN_ONE_BACKEND_SERVICE"
3382	//   "NOT_ENOUGH_QUOTA_AVAILABLE"
3383	//   "REGION_RESOURCE_STOCKOUT"
3384	//   "SCALING_TARGET_DOES_NOT_EXIST"
3385	//   "UNKNOWN"
3386	//   "UNSUPPORTED_MAX_RATE_LOAD_BALANCING_CONFIGURATION"
3387	//   "ZONE_RESOURCE_STOCKOUT"
3388	Type string `json:"type,omitempty"`
3389
3390	// ForceSendFields is a list of field names (e.g. "Message") to
3391	// unconditionally include in API requests. By default, fields with
3392	// empty values are omitted from API requests. However, any non-pointer,
3393	// non-interface field appearing in ForceSendFields will be sent to the
3394	// server regardless of whether the field is empty or not. This may be
3395	// used to include empty fields in Patch requests.
3396	ForceSendFields []string `json:"-"`
3397
3398	// NullFields is a list of field names (e.g. "Message") to include in
3399	// API requests with the JSON null value. By default, fields with empty
3400	// values are omitted from API requests. However, any field with an
3401	// empty value appearing in NullFields will be sent to the server as
3402	// null. It is an error if a field in this list has a non-empty value.
3403	// This may be used to include null fields in Patch requests.
3404	NullFields []string `json:"-"`
3405}
3406
3407func (s *AutoscalerStatusDetails) MarshalJSON() ([]byte, error) {
3408	type NoMethod AutoscalerStatusDetails
3409	raw := NoMethod(*s)
3410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3411}
3412
3413type AutoscalersScopedList struct {
3414	// Autoscalers: [Output Only] A list of autoscalers contained in this
3415	// scope.
3416	Autoscalers []*Autoscaler `json:"autoscalers,omitempty"`
3417
3418	// Warning: [Output Only] Informational warning which replaces the list
3419	// of autoscalers when the list is empty.
3420	Warning *AutoscalersScopedListWarning `json:"warning,omitempty"`
3421
3422	// ForceSendFields is a list of field names (e.g. "Autoscalers") to
3423	// unconditionally include in API requests. By default, fields with
3424	// empty values are omitted from API requests. However, any non-pointer,
3425	// non-interface field appearing in ForceSendFields will be sent to the
3426	// server regardless of whether the field is empty or not. This may be
3427	// used to include empty fields in Patch requests.
3428	ForceSendFields []string `json:"-"`
3429
3430	// NullFields is a list of field names (e.g. "Autoscalers") to include
3431	// in API requests with the JSON null value. By default, fields with
3432	// empty values are omitted from API requests. However, any field with
3433	// an empty value appearing in NullFields will be sent to the server as
3434	// null. It is an error if a field in this list has a non-empty value.
3435	// This may be used to include null fields in Patch requests.
3436	NullFields []string `json:"-"`
3437}
3438
3439func (s *AutoscalersScopedList) MarshalJSON() ([]byte, error) {
3440	type NoMethod AutoscalersScopedList
3441	raw := NoMethod(*s)
3442	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3443}
3444
3445// AutoscalersScopedListWarning: [Output Only] Informational warning
3446// which replaces the list of autoscalers when the list is empty.
3447type AutoscalersScopedListWarning struct {
3448	// Code: [Output Only] A warning code, if applicable. For example,
3449	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
3450	// the response.
3451	//
3452	// Possible values:
3453	//   "CLEANUP_FAILED"
3454	//   "DEPRECATED_RESOURCE_USED"
3455	//   "DEPRECATED_TYPE_USED"
3456	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
3457	//   "EXPERIMENTAL_TYPE_USED"
3458	//   "EXTERNAL_API_WARNING"
3459	//   "FIELD_VALUE_OVERRIDEN"
3460	//   "INJECTED_KERNELS_DEPRECATED"
3461	//   "MISSING_TYPE_DEPENDENCY"
3462	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
3463	//   "NEXT_HOP_CANNOT_IP_FORWARD"
3464	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
3465	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
3466	//   "NEXT_HOP_NOT_RUNNING"
3467	//   "NOT_CRITICAL_ERROR"
3468	//   "NO_RESULTS_ON_PAGE"
3469	//   "REQUIRED_TOS_AGREEMENT"
3470	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
3471	//   "RESOURCE_NOT_DELETED"
3472	//   "SCHEMA_VALIDATION_IGNORED"
3473	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
3474	//   "UNDECLARED_PROPERTIES"
3475	//   "UNREACHABLE"
3476	Code string `json:"code,omitempty"`
3477
3478	// Data: [Output Only] Metadata about this warning in key: value format.
3479	// For example:
3480	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
3481	Data []*AutoscalersScopedListWarningData `json:"data,omitempty"`
3482
3483	// Message: [Output Only] A human-readable description of the warning
3484	// code.
3485	Message string `json:"message,omitempty"`
3486
3487	// ForceSendFields is a list of field names (e.g. "Code") to
3488	// unconditionally include in API requests. By default, fields with
3489	// empty values are omitted from API requests. However, any non-pointer,
3490	// non-interface field appearing in ForceSendFields will be sent to the
3491	// server regardless of whether the field is empty or not. This may be
3492	// used to include empty fields in Patch requests.
3493	ForceSendFields []string `json:"-"`
3494
3495	// NullFields is a list of field names (e.g. "Code") to include in API
3496	// requests with the JSON null value. By default, fields with empty
3497	// values are omitted from API requests. However, any field with an
3498	// empty value appearing in NullFields will be sent to the server as
3499	// null. It is an error if a field in this list has a non-empty value.
3500	// This may be used to include null fields in Patch requests.
3501	NullFields []string `json:"-"`
3502}
3503
3504func (s *AutoscalersScopedListWarning) MarshalJSON() ([]byte, error) {
3505	type NoMethod AutoscalersScopedListWarning
3506	raw := NoMethod(*s)
3507	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3508}
3509
3510type AutoscalersScopedListWarningData struct {
3511	// Key: [Output Only] A key that provides more detail on the warning
3512	// being returned. For example, for warnings where there are no results
3513	// in a list request for a particular zone, this key might be scope and
3514	// the key value might be the zone name. Other examples might be a key
3515	// indicating a deprecated resource and a suggested replacement, or a
3516	// warning about invalid network settings (for example, if an instance
3517	// attempts to perform IP forwarding but is not enabled for IP
3518	// forwarding).
3519	Key string `json:"key,omitempty"`
3520
3521	// Value: [Output Only] A warning data value corresponding to the key.
3522	Value string `json:"value,omitempty"`
3523
3524	// ForceSendFields is a list of field names (e.g. "Key") to
3525	// unconditionally include in API requests. By default, fields with
3526	// empty values are omitted from API requests. However, any non-pointer,
3527	// non-interface field appearing in ForceSendFields will be sent to the
3528	// server regardless of whether the field is empty or not. This may be
3529	// used to include empty fields in Patch requests.
3530	ForceSendFields []string `json:"-"`
3531
3532	// NullFields is a list of field names (e.g. "Key") to include in API
3533	// requests with the JSON null value. By default, fields with empty
3534	// values are omitted from API requests. However, any field with an
3535	// empty value appearing in NullFields will be sent to the server as
3536	// null. It is an error if a field in this list has a non-empty value.
3537	// This may be used to include null fields in Patch requests.
3538	NullFields []string `json:"-"`
3539}
3540
3541func (s *AutoscalersScopedListWarningData) MarshalJSON() ([]byte, error) {
3542	type NoMethod AutoscalersScopedListWarningData
3543	raw := NoMethod(*s)
3544	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3545}
3546
3547// AutoscalingPolicy: Cloud Autoscaler policy.
3548type AutoscalingPolicy struct {
3549	// CoolDownPeriodSec: The number of seconds that the autoscaler should
3550	// wait before it starts collecting information from a new instance.
3551	// This prevents the autoscaler from collecting information when the
3552	// instance is initializing, during which the collected usage would not
3553	// be reliable. The default time autoscaler waits is 60
3554	// seconds.
3555	//
3556	// Virtual machine initialization times might vary because of numerous
3557	// factors. We recommend that you test how long an instance may take to
3558	// initialize. To do this, create an instance and time the startup
3559	// process.
3560	CoolDownPeriodSec int64 `json:"coolDownPeriodSec,omitempty"`
3561
3562	// CpuUtilization: Defines the CPU utilization policy that allows the
3563	// autoscaler to scale based on the average CPU utilization of a managed
3564	// instance group.
3565	CpuUtilization *AutoscalingPolicyCpuUtilization `json:"cpuUtilization,omitempty"`
3566
3567	// CustomMetricUtilizations: Configuration parameters of autoscaling
3568	// based on a custom metric.
3569	CustomMetricUtilizations []*AutoscalingPolicyCustomMetricUtilization `json:"customMetricUtilizations,omitempty"`
3570
3571	// LoadBalancingUtilization: Configuration parameters of autoscaling
3572	// based on load balancer.
3573	LoadBalancingUtilization *AutoscalingPolicyLoadBalancingUtilization `json:"loadBalancingUtilization,omitempty"`
3574
3575	// MaxNumReplicas: The maximum number of instances that the autoscaler
3576	// can scale up to. This is required when creating or updating an
3577	// autoscaler. The maximum number of replicas should not be lower than
3578	// minimal number of replicas.
3579	MaxNumReplicas int64 `json:"maxNumReplicas,omitempty"`
3580
3581	// MinNumReplicas: The minimum number of replicas that the autoscaler
3582	// can scale down to. This cannot be less than 0. If not provided,
3583	// autoscaler will choose a default value depending on maximum number of
3584	// instances allowed.
3585	MinNumReplicas int64 `json:"minNumReplicas,omitempty"`
3586
3587	// Mode: Defines operating mode for this policy.
3588	//
3589	// Possible values:
3590	//   "OFF"
3591	//   "ON"
3592	//   "ONLY_UP"
3593	Mode string `json:"mode,omitempty"`
3594
3595	ScaleDownControl *AutoscalingPolicyScaleDownControl `json:"scaleDownControl,omitempty"`
3596
3597	// ForceSendFields is a list of field names (e.g. "CoolDownPeriodSec")
3598	// to unconditionally include in API requests. By default, fields with
3599	// empty values are omitted from API requests. However, any non-pointer,
3600	// non-interface field appearing in ForceSendFields will be sent to the
3601	// server regardless of whether the field is empty or not. This may be
3602	// used to include empty fields in Patch requests.
3603	ForceSendFields []string `json:"-"`
3604
3605	// NullFields is a list of field names (e.g. "CoolDownPeriodSec") to
3606	// include in API requests with the JSON null value. By default, fields
3607	// with empty values are omitted from API requests. However, any field
3608	// with an empty value appearing in NullFields will be sent to the
3609	// server as null. It is an error if a field in this list has a
3610	// non-empty value. This may be used to include null fields in Patch
3611	// requests.
3612	NullFields []string `json:"-"`
3613}
3614
3615func (s *AutoscalingPolicy) MarshalJSON() ([]byte, error) {
3616	type NoMethod AutoscalingPolicy
3617	raw := NoMethod(*s)
3618	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3619}
3620
3621// AutoscalingPolicyCpuUtilization: CPU utilization policy.
3622type AutoscalingPolicyCpuUtilization struct {
3623	// UtilizationTarget: The target CPU utilization that the autoscaler
3624	// should maintain. Must be a float value in the range (0, 1]. If not
3625	// specified, the default is 0.6.
3626	//
3627	// If the CPU level is below the target utilization, the autoscaler
3628	// scales down the number of instances until it reaches the minimum
3629	// number of instances you specified or until the average CPU of your
3630	// instances reaches the target utilization.
3631	//
3632	// If the average CPU is above the target utilization, the autoscaler
3633	// scales up until it reaches the maximum number of instances you
3634	// specified or until the average utilization reaches the target
3635	// utilization.
3636	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3637
3638	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3639	// to unconditionally include in API requests. By default, fields with
3640	// empty values are omitted from API requests. However, any non-pointer,
3641	// non-interface field appearing in ForceSendFields will be sent to the
3642	// server regardless of whether the field is empty or not. This may be
3643	// used to include empty fields in Patch requests.
3644	ForceSendFields []string `json:"-"`
3645
3646	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3647	// include in API requests with the JSON null value. By default, fields
3648	// with empty values are omitted from API requests. However, any field
3649	// with an empty value appearing in NullFields will be sent to the
3650	// server as null. It is an error if a field in this list has a
3651	// non-empty value. This may be used to include null fields in Patch
3652	// requests.
3653	NullFields []string `json:"-"`
3654}
3655
3656func (s *AutoscalingPolicyCpuUtilization) MarshalJSON() ([]byte, error) {
3657	type NoMethod AutoscalingPolicyCpuUtilization
3658	raw := NoMethod(*s)
3659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3660}
3661
3662func (s *AutoscalingPolicyCpuUtilization) UnmarshalJSON(data []byte) error {
3663	type NoMethod AutoscalingPolicyCpuUtilization
3664	var s1 struct {
3665		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3666		*NoMethod
3667	}
3668	s1.NoMethod = (*NoMethod)(s)
3669	if err := json.Unmarshal(data, &s1); err != nil {
3670		return err
3671	}
3672	s.UtilizationTarget = float64(s1.UtilizationTarget)
3673	return nil
3674}
3675
3676// AutoscalingPolicyCustomMetricUtilization: Custom utilization metric
3677// policy.
3678type AutoscalingPolicyCustomMetricUtilization struct {
3679	// Filter: A filter string, compatible with a Stackdriver Monitoring
3680	// filter string for TimeSeries.list API call. This filter is used to
3681	// select a specific TimeSeries for the purpose of autoscaling and to
3682	// determine whether the metric is exporting per-instance or per-group
3683	// data.
3684	//
3685	// For the filter to be valid for autoscaling purposes, the following
3686	// rules apply:
3687	// - You can only use the AND operator for joining selectors.
3688	// - You can only use direct equality comparison operator (=) without
3689	// any functions for each selector.
3690	// - You can specify the metric in both the filter string and in the
3691	// metric field. However, if specified in both places, the metric must
3692	// be identical.
3693	// - The monitored resource type determines what kind of values are
3694	// expected for the metric. If it is a gce_instance, the autoscaler
3695	// expects the metric to include a separate TimeSeries for each instance
3696	// in a group. In such a case, you cannot filter on resource labels.
3697	// If the resource type is any other value, the autoscaler expects this
3698	// metric to contain values that apply to the entire autoscaled instance
3699	// group and resource label filtering can be performed to point
3700	// autoscaler at the correct TimeSeries to scale upon. This is called a
3701	// per-group metric for the purpose of autoscaling.
3702	//
3703	// If not specified, the type defaults to gce_instance.
3704	//
3705	// You should provide a filter that is selective enough to pick just one
3706	// TimeSeries for the autoscaled group or for each of the instances (if
3707	// you are using gce_instance resource type). If multiple TimeSeries are
3708	// returned upon the query execution, the autoscaler will sum their
3709	// respective values to obtain its scaling value.
3710	Filter string `json:"filter,omitempty"`
3711
3712	// Metric: The identifier (type) of the Stackdriver Monitoring metric.
3713	// The metric cannot have negative values.
3714	//
3715	// The metric must have a value type of INT64 or DOUBLE.
3716	Metric string `json:"metric,omitempty"`
3717
3718	// SingleInstanceAssignment: If scaling is based on a per-group metric
3719	// value that represents the total amount of work to be done or resource
3720	// usage, set this value to an amount assigned for a single instance of
3721	// the scaled group. Autoscaler will keep the number of instances
3722	// proportional to the value of this metric, the metric itself should
3723	// not change value due to group resizing.
3724	//
3725	// A good metric to use with the target is for example
3726	// pubsub.googleapis.com/subscription/num_undelivered_messages or a
3727	// custom metric exporting the total number of requests coming to your
3728	// instances.
3729	//
3730	// A bad example would be a metric exporting an average or median
3731	// latency, since this value can't include a chunk assignable to a
3732	// single instance, it could be better used with utilization_target
3733	// instead.
3734	SingleInstanceAssignment float64 `json:"singleInstanceAssignment,omitempty"`
3735
3736	// UtilizationTarget: The target value of the metric that autoscaler
3737	// should maintain. This must be a positive value. A utilization metric
3738	// scales number of virtual machines handling requests to increase or
3739	// decrease proportionally to the metric.
3740	//
3741	// For example, a good metric to use as a utilization_target is
3742	// compute.googleapis.com/instance/network/received_bytes_count. The
3743	// autoscaler will work to keep this value constant for each of the
3744	// instances.
3745	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3746
3747	// UtilizationTargetType: Defines how target utilization value is
3748	// expressed for a Stackdriver Monitoring metric. Either GAUGE,
3749	// DELTA_PER_SECOND, or DELTA_PER_MINUTE.
3750	//
3751	// Possible values:
3752	//   "DELTA_PER_MINUTE"
3753	//   "DELTA_PER_SECOND"
3754	//   "GAUGE"
3755	UtilizationTargetType string `json:"utilizationTargetType,omitempty"`
3756
3757	// ForceSendFields is a list of field names (e.g. "Filter") to
3758	// unconditionally include in API requests. By default, fields with
3759	// empty values are omitted from API requests. However, any non-pointer,
3760	// non-interface field appearing in ForceSendFields will be sent to the
3761	// server regardless of whether the field is empty or not. This may be
3762	// used to include empty fields in Patch requests.
3763	ForceSendFields []string `json:"-"`
3764
3765	// NullFields is a list of field names (e.g. "Filter") to include in API
3766	// requests with the JSON null value. By default, fields with empty
3767	// values are omitted from API requests. However, any field with an
3768	// empty value appearing in NullFields will be sent to the server as
3769	// null. It is an error if a field in this list has a non-empty value.
3770	// This may be used to include null fields in Patch requests.
3771	NullFields []string `json:"-"`
3772}
3773
3774func (s *AutoscalingPolicyCustomMetricUtilization) MarshalJSON() ([]byte, error) {
3775	type NoMethod AutoscalingPolicyCustomMetricUtilization
3776	raw := NoMethod(*s)
3777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3778}
3779
3780func (s *AutoscalingPolicyCustomMetricUtilization) UnmarshalJSON(data []byte) error {
3781	type NoMethod AutoscalingPolicyCustomMetricUtilization
3782	var s1 struct {
3783		SingleInstanceAssignment gensupport.JSONFloat64 `json:"singleInstanceAssignment"`
3784		UtilizationTarget        gensupport.JSONFloat64 `json:"utilizationTarget"`
3785		*NoMethod
3786	}
3787	s1.NoMethod = (*NoMethod)(s)
3788	if err := json.Unmarshal(data, &s1); err != nil {
3789		return err
3790	}
3791	s.SingleInstanceAssignment = float64(s1.SingleInstanceAssignment)
3792	s.UtilizationTarget = float64(s1.UtilizationTarget)
3793	return nil
3794}
3795
3796// AutoscalingPolicyLoadBalancingUtilization: Configuration parameters
3797// of autoscaling based on load balancing.
3798type AutoscalingPolicyLoadBalancingUtilization struct {
3799	// UtilizationTarget: Fraction of backend capacity utilization (set in
3800	// HTTP(S) load balancing configuration) that autoscaler should
3801	// maintain. Must be a positive float value. If not defined, the default
3802	// is 0.8.
3803	UtilizationTarget float64 `json:"utilizationTarget,omitempty"`
3804
3805	// ForceSendFields is a list of field names (e.g. "UtilizationTarget")
3806	// to unconditionally include in API requests. By default, fields with
3807	// empty values are omitted from API requests. However, any non-pointer,
3808	// non-interface field appearing in ForceSendFields will be sent to the
3809	// server regardless of whether the field is empty or not. This may be
3810	// used to include empty fields in Patch requests.
3811	ForceSendFields []string `json:"-"`
3812
3813	// NullFields is a list of field names (e.g. "UtilizationTarget") to
3814	// include in API requests with the JSON null value. By default, fields
3815	// with empty values are omitted from API requests. However, any field
3816	// with an empty value appearing in NullFields will be sent to the
3817	// server as null. It is an error if a field in this list has a
3818	// non-empty value. This may be used to include null fields in Patch
3819	// requests.
3820	NullFields []string `json:"-"`
3821}
3822
3823func (s *AutoscalingPolicyLoadBalancingUtilization) MarshalJSON() ([]byte, error) {
3824	type NoMethod AutoscalingPolicyLoadBalancingUtilization
3825	raw := NoMethod(*s)
3826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3827}
3828
3829func (s *AutoscalingPolicyLoadBalancingUtilization) UnmarshalJSON(data []byte) error {
3830	type NoMethod AutoscalingPolicyLoadBalancingUtilization
3831	var s1 struct {
3832		UtilizationTarget gensupport.JSONFloat64 `json:"utilizationTarget"`
3833		*NoMethod
3834	}
3835	s1.NoMethod = (*NoMethod)(s)
3836	if err := json.Unmarshal(data, &s1); err != nil {
3837		return err
3838	}
3839	s.UtilizationTarget = float64(s1.UtilizationTarget)
3840	return nil
3841}
3842
3843// AutoscalingPolicyScaleDownControl: Configuration that allows for
3844// slower scale down so that even if Autoscaler recommends an abrupt
3845// scale down of a MIG, it will be throttled as specified by the
3846// parameters below.
3847type AutoscalingPolicyScaleDownControl struct {
3848	// MaxScaledDownReplicas: Maximum allowed number (or %) of VMs that can
3849	// be deducted from the peak recommendation during the window autoscaler
3850	// looks at when computing recommendations. Possibly all these VMs can
3851	// be deleted at once so user service needs to be prepared to lose that
3852	// many VMs in one step.
3853	MaxScaledDownReplicas *FixedOrPercent `json:"maxScaledDownReplicas,omitempty"`
3854
3855	// TimeWindow: How long back autoscaling should look when computing
3856	// recommendations to include directives regarding slower scale down, as
3857	// described above.
3858	TimeWindow *GoogleDuration `json:"timeWindow,omitempty"`
3859
3860	// ForceSendFields is a list of field names (e.g.
3861	// "MaxScaledDownReplicas") to unconditionally include in API requests.
3862	// By default, fields with empty values are omitted from API requests.
3863	// However, any non-pointer, non-interface field appearing in
3864	// ForceSendFields will be sent to the server regardless of whether the
3865	// field is empty or not. This may be used to include empty fields in
3866	// Patch requests.
3867	ForceSendFields []string `json:"-"`
3868
3869	// NullFields is a list of field names (e.g. "MaxScaledDownReplicas") to
3870	// include in API requests with the JSON null value. By default, fields
3871	// with empty values are omitted from API requests. However, any field
3872	// with an empty value appearing in NullFields will be sent to the
3873	// server as null. It is an error if a field in this list has a
3874	// non-empty value. This may be used to include null fields in Patch
3875	// requests.
3876	NullFields []string `json:"-"`
3877}
3878
3879func (s *AutoscalingPolicyScaleDownControl) MarshalJSON() ([]byte, error) {
3880	type NoMethod AutoscalingPolicyScaleDownControl
3881	raw := NoMethod(*s)
3882	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
3883}
3884
3885// Backend: Message containing information of one individual backend.
3886type Backend struct {
3887	// BalancingMode: Specifies the balancing mode for the backend.
3888	//
3889	// When choosing a balancing mode, you need to consider the
3890	// loadBalancingScheme, and protocol for the backend service, as well as
3891	// the type of backend (instance group or NEG).
3892	//
3893	//
3894	// - If the load balancing mode is CONNECTION, then the load is spread
3895	// based on how many concurrent connections the backend can handle.
3896	// You can use the CONNECTION balancing mode if the protocol for the
3897	// backend service is SSL, TCP, or UDP.
3898	//
3899	// If the loadBalancingScheme for the backend service is EXTERNAL (SSL
3900	// Proxy and TCP Proxy load balancers), you must also specify exactly
3901	// one of the following parameters: maxConnections,
3902	// maxConnectionsPerInstance, or maxConnectionsPerEndpoint.
3903	//
3904	// If the loadBalancingScheme for the backend service is INTERNAL
3905	// (internal TCP/UDP load balancers), you cannot specify any additional
3906	// parameters.
3907	//
3908	// - If the load balancing mode is RATE, the load is spread based on the
3909	// rate of HTTP requests per second (RPS).
3910	// You can use the RATE balancing mode if the protocol for the backend
3911	// service is HTTP or HTTPS. You must specify exactly one of the
3912	// following parameters: maxRate, maxRatePerInstance, or
3913	// maxRatePerEndpoint.
3914	//
3915	// - If the load balancing mode is UTILIZATION, the load is spread based
3916	// on the CPU utilization of instances in an instance group.
3917	// You can use the UTILIZATION balancing mode if the loadBalancingScheme
3918	// of the backend service is EXTERNAL, INTERNAL_SELF_MANAGED, or
3919	// INTERNAL_MANAGED and the backends are instance groups. There are no
3920	// restrictions on the backend service protocol.
3921	//
3922	// Possible values:
3923	//   "CONNECTION"
3924	//   "RATE"
3925	//   "UTILIZATION"
3926	BalancingMode string `json:"balancingMode,omitempty"`
3927
3928	// CapacityScaler: A multiplier applied to the group's maximum servicing
3929	// capacity (based on UTILIZATION, RATE or CONNECTION). Default value is
3930	// 1, which means the group will serve up to 100% of its configured
3931	// capacity (depending on balancingMode). A setting of 0 means the group
3932	// is completely drained, offering 0% of its available Capacity. Valid
3933	// range is [0.0,1.0].
3934	//
3935	// This cannot be used for internal load balancing.
3936	CapacityScaler float64 `json:"capacityScaler,omitempty"`
3937
3938	// Description: An optional description of this resource. Provide this
3939	// property when you create the resource.
3940	Description string `json:"description,omitempty"`
3941
3942	// Failover: This field designates whether this is a failover backend.
3943	// More than one failover backend can be configured for a given
3944	// BackendService.
3945	Failover bool `json:"failover,omitempty"`
3946
3947	// Group: The fully-qualified URL of an instance group or network
3948	// endpoint group (NEG) resource. The type of backend that a backend
3949	// service supports depends on the backend service's
3950	// loadBalancingScheme.
3951	//
3952	//
3953	// - When the loadBalancingScheme for the backend service is EXTERNAL,
3954	// INTERNAL_SELF_MANAGED, or INTERNAL_MANAGED, the backend can be either
3955	// an instance group or a NEG. The backends on the backend service must
3956	// be either all instance groups or all NEGs. You cannot mix instance
3957	// group and NEG backends on the same backend service.
3958	//
3959	//
3960	// - When the loadBalancingScheme for the backend service is INTERNAL,
3961	// the backend must be an instance group in the same region as the
3962	// backend service. NEGs are not supported.
3963	//
3964	// You must use the fully-qualified URL (starting with
3965	// https://www.googleapis.com/) to specify the instance group or NEG.
3966	// Partial URLs are not supported.
3967	Group string `json:"group,omitempty"`
3968
3969	// MaxConnections: Defines a maximum target for simultaneous connections
3970	// for the entire backend (instance group or NEG). If the backend's
3971	// balancingMode is UTILIZATION, this is an optional parameter. If the
3972	// backend's balancingMode is CONNECTION, and backend is attached to a
3973	// backend service whose loadBalancingScheme is EXTERNAL, you must
3974	// specify either this parameter, maxConnectionsPerInstance, or
3975	// maxConnectionsPerEndpoint.
3976	//
3977	// Not available if the backend's balancingMode is RATE. If the
3978	// loadBalancingScheme is INTERNAL, then maxConnections is not
3979	// supported, even though the backend requires a balancing mode of
3980	// CONNECTION.
3981	MaxConnections int64 `json:"maxConnections,omitempty"`
3982
3983	// MaxConnectionsPerEndpoint: Defines a maximum target for simultaneous
3984	// connections for an endpoint of a NEG. This is multiplied by the
3985	// number of endpoints in the NEG to implicitly calculate a maximum
3986	// number of target maximum simultaneous connections for the NEG. If the
3987	// backend's balancingMode is CONNECTION, and the backend is attached to
3988	// a backend service whose loadBalancingScheme is EXTERNAL, you must
3989	// specify either this parameter, maxConnections, or
3990	// maxConnectionsPerInstance.
3991	//
3992	// Not available if the backend's balancingMode is RATE. Internal
3993	// TCP/UDP load balancing does not support setting
3994	// maxConnectionsPerEndpoint even though its backends require a
3995	// balancing mode of CONNECTION.
3996	MaxConnectionsPerEndpoint int64 `json:"maxConnectionsPerEndpoint,omitempty"`
3997
3998	// MaxConnectionsPerInstance: Defines a maximum target for simultaneous
3999	// connections for a single VM in a backend instance group. This is
4000	// multiplied by the number of instances in the instance group to
4001	// implicitly calculate a target maximum number of simultaneous
4002	// connections for the whole instance group. If the backend's
4003	// balancingMode is UTILIZATION, this is an optional parameter. If the
4004	// backend's balancingMode is CONNECTION, and backend is attached to a
4005	// backend service whose loadBalancingScheme is EXTERNAL, you must
4006	// specify either this parameter, maxConnections, or
4007	// maxConnectionsPerEndpoint.
4008	//
4009	// Not available if the backend's balancingMode is RATE. Internal
4010	// TCP/UDP load balancing does not support setting
4011	// maxConnectionsPerInstance even though its backends require a
4012	// balancing mode of CONNECTION.
4013	MaxConnectionsPerInstance int64 `json:"maxConnectionsPerInstance,omitempty"`
4014
4015	// MaxRate: The max requests per second (RPS) of the group. Can be used
4016	// with either RATE or UTILIZATION balancing modes, but required if RATE
4017	// mode. For RATE mode, either maxRate or maxRatePerInstance must be
4018	// set.
4019	//
4020	// This cannot be used for internal load balancing.
4021	MaxRate int64 `json:"maxRate,omitempty"`
4022
4023	// MaxRatePerEndpoint: Defines a maximum target for requests per second
4024	// (RPS) for an endpoint of a NEG. This is multiplied by the number of
4025	// endpoints in the NEG to implicitly calculate a target maximum rate
4026	// for the NEG.
4027	//
4028	// If the backend's balancingMode is RATE, you must specify either this
4029	// parameter, maxRate, or maxRatePerInstance.
4030	//
4031	// Not available if the backend's balancingMode is CONNECTION.
4032	MaxRatePerEndpoint float64 `json:"maxRatePerEndpoint,omitempty"`
4033
4034	// MaxRatePerInstance: Defines a maximum target for requests per second
4035	// (RPS) for a single VM in a backend instance group. This is multiplied
4036	// by the number of instances in the instance group to implicitly
4037	// calculate a target maximum rate for the whole instance group.
4038	//
4039	// If the backend's balancingMode is UTILIZATION, this is an optional
4040	// parameter. If the backend's balancingMode is RATE, you must specify
4041	// either this parameter, maxRate, or maxRatePerEndpoint.
4042	//
4043	// Not available if the backend's balancingMode is CONNECTION.
4044	MaxRatePerInstance float64 `json:"maxRatePerInstance,omitempty"`
4045
4046	// MaxUtilization: Defines the maximum average CPU utilization of a
4047	// backend VM in an instance group. The valid range is [0.0, 1.0]. This
4048	// is an optional parameter if the backend's balancingMode is
4049	// UTILIZATION.
4050	//
4051	// This parameter can be used in conjunction with maxRate,
4052	// maxRatePerInstance, maxConnections, or maxConnectionsPerInstance.
4053	MaxUtilization float64 `json:"maxUtilization,omitempty"`
4054
4055	// ForceSendFields is a list of field names (e.g. "BalancingMode") to
4056	// unconditionally include in API requests. By default, fields with
4057	// empty values are omitted from API requests. However, any non-pointer,
4058	// non-interface field appearing in ForceSendFields will be sent to the
4059	// server regardless of whether the field is empty or not. This may be
4060	// used to include empty fields in Patch requests.
4061	ForceSendFields []string `json:"-"`
4062
4063	// NullFields is a list of field names (e.g. "BalancingMode") to include
4064	// in API requests with the JSON null value. By default, fields with
4065	// empty values are omitted from API requests. However, any field with
4066	// an empty value appearing in NullFields will be sent to the server as
4067	// null. It is an error if a field in this list has a non-empty value.
4068	// This may be used to include null fields in Patch requests.
4069	NullFields []string `json:"-"`
4070}
4071
4072func (s *Backend) MarshalJSON() ([]byte, error) {
4073	type NoMethod Backend
4074	raw := NoMethod(*s)
4075	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4076}
4077
4078func (s *Backend) UnmarshalJSON(data []byte) error {
4079	type NoMethod Backend
4080	var s1 struct {
4081		CapacityScaler     gensupport.JSONFloat64 `json:"capacityScaler"`
4082		MaxRatePerEndpoint gensupport.JSONFloat64 `json:"maxRatePerEndpoint"`
4083		MaxRatePerInstance gensupport.JSONFloat64 `json:"maxRatePerInstance"`
4084		MaxUtilization     gensupport.JSONFloat64 `json:"maxUtilization"`
4085		*NoMethod
4086	}
4087	s1.NoMethod = (*NoMethod)(s)
4088	if err := json.Unmarshal(data, &s1); err != nil {
4089		return err
4090	}
4091	s.CapacityScaler = float64(s1.CapacityScaler)
4092	s.MaxRatePerEndpoint = float64(s1.MaxRatePerEndpoint)
4093	s.MaxRatePerInstance = float64(s1.MaxRatePerInstance)
4094	s.MaxUtilization = float64(s1.MaxUtilization)
4095	return nil
4096}
4097
4098// BackendBucket: Represents a Cloud Storage Bucket resource.
4099//
4100// This Cloud Storage bucket resource is referenced by a URL map of a
4101// load balancer. For more information, read Backend Buckets.
4102type BackendBucket struct {
4103	// BucketName: Cloud Storage bucket name.
4104	BucketName string `json:"bucketName,omitempty"`
4105
4106	// CdnPolicy: Cloud CDN configuration for this BackendBucket.
4107	CdnPolicy *BackendBucketCdnPolicy `json:"cdnPolicy,omitempty"`
4108
4109	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4110	// format.
4111	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4112
4113	// Description: An optional textual description of the resource;
4114	// provided by the client when the resource is created.
4115	Description string `json:"description,omitempty"`
4116
4117	// EnableCdn: If true, enable Cloud CDN for this BackendBucket.
4118	EnableCdn bool `json:"enableCdn,omitempty"`
4119
4120	// Id: [Output Only] Unique identifier for the resource; defined by the
4121	// server.
4122	Id uint64 `json:"id,omitempty,string"`
4123
4124	// Kind: Type of the resource.
4125	Kind string `json:"kind,omitempty"`
4126
4127	// Name: Name of the resource. Provided by the client when the resource
4128	// is created. The name must be 1-63 characters long, and comply with
4129	// RFC1035. Specifically, the name must be 1-63 characters long and
4130	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4131	// the first character must be a lowercase letter, and all following
4132	// characters must be a dash, lowercase letter, or digit, except the
4133	// last character, which cannot be a dash.
4134	Name string `json:"name,omitempty"`
4135
4136	// SelfLink: [Output Only] Server-defined URL for the resource.
4137	SelfLink string `json:"selfLink,omitempty"`
4138
4139	// ServerResponse contains the HTTP response code and headers from the
4140	// server.
4141	googleapi.ServerResponse `json:"-"`
4142
4143	// ForceSendFields is a list of field names (e.g. "BucketName") to
4144	// unconditionally include in API requests. By default, fields with
4145	// empty values are omitted from API requests. However, any non-pointer,
4146	// non-interface field appearing in ForceSendFields will be sent to the
4147	// server regardless of whether the field is empty or not. This may be
4148	// used to include empty fields in Patch requests.
4149	ForceSendFields []string `json:"-"`
4150
4151	// NullFields is a list of field names (e.g. "BucketName") to include in
4152	// API requests with the JSON null value. By default, fields with empty
4153	// values are omitted from API requests. However, any field with an
4154	// empty value appearing in NullFields will be sent to the server as
4155	// null. It is an error if a field in this list has a non-empty value.
4156	// This may be used to include null fields in Patch requests.
4157	NullFields []string `json:"-"`
4158}
4159
4160func (s *BackendBucket) MarshalJSON() ([]byte, error) {
4161	type NoMethod BackendBucket
4162	raw := NoMethod(*s)
4163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4164}
4165
4166// BackendBucketCdnPolicy: Message containing Cloud CDN configuration
4167// for a backend bucket.
4168type BackendBucketCdnPolicy struct {
4169	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4170	// signed URL request will be considered fresh. After this time period,
4171	// the response will be revalidated before being served. Defaults to 1hr
4172	// (3600s). When serving responses to signed URL requests, Cloud CDN
4173	// will internally behave as though all responses from this backend had
4174	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4175	// existing Cache-Control header. The actual headers served in responses
4176	// will not be altered.
4177	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4178
4179	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4180	// request URLs.
4181	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4182
4183	// ForceSendFields is a list of field names (e.g.
4184	// "SignedUrlCacheMaxAgeSec") to unconditionally include in API
4185	// requests. By default, fields with empty values are omitted from API
4186	// requests. However, any non-pointer, non-interface field appearing in
4187	// ForceSendFields will be sent to the server regardless of whether the
4188	// field is empty or not. This may be used to include empty fields in
4189	// Patch requests.
4190	ForceSendFields []string `json:"-"`
4191
4192	// NullFields is a list of field names (e.g. "SignedUrlCacheMaxAgeSec")
4193	// to include in API requests with the JSON null value. By default,
4194	// fields with empty values are omitted from API requests. However, any
4195	// field with an empty value appearing in NullFields will be sent to the
4196	// server as null. It is an error if a field in this list has a
4197	// non-empty value. This may be used to include null fields in Patch
4198	// requests.
4199	NullFields []string `json:"-"`
4200}
4201
4202func (s *BackendBucketCdnPolicy) MarshalJSON() ([]byte, error) {
4203	type NoMethod BackendBucketCdnPolicy
4204	raw := NoMethod(*s)
4205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4206}
4207
4208// BackendBucketList: Contains a list of BackendBucket resources.
4209type BackendBucketList struct {
4210	// Id: [Output Only] Unique identifier for the resource; defined by the
4211	// server.
4212	Id string `json:"id,omitempty"`
4213
4214	// Items: A list of BackendBucket resources.
4215	Items []*BackendBucket `json:"items,omitempty"`
4216
4217	// Kind: Type of resource.
4218	Kind string `json:"kind,omitempty"`
4219
4220	// NextPageToken: [Output Only] This token allows you to get the next
4221	// page of results for list requests. If the number of results is larger
4222	// than maxResults, use the nextPageToken as a value for the query
4223	// parameter pageToken in the next list request. Subsequent list
4224	// requests will have their own nextPageToken to continue paging through
4225	// the results.
4226	NextPageToken string `json:"nextPageToken,omitempty"`
4227
4228	// SelfLink: [Output Only] Server-defined URL for this resource.
4229	SelfLink string `json:"selfLink,omitempty"`
4230
4231	// Warning: [Output Only] Informational warning message.
4232	Warning *BackendBucketListWarning `json:"warning,omitempty"`
4233
4234	// ServerResponse contains the HTTP response code and headers from the
4235	// server.
4236	googleapi.ServerResponse `json:"-"`
4237
4238	// ForceSendFields is a list of field names (e.g. "Id") to
4239	// unconditionally include in API requests. By default, fields with
4240	// empty values are omitted from API requests. However, any non-pointer,
4241	// non-interface field appearing in ForceSendFields will be sent to the
4242	// server regardless of whether the field is empty or not. This may be
4243	// used to include empty fields in Patch requests.
4244	ForceSendFields []string `json:"-"`
4245
4246	// NullFields is a list of field names (e.g. "Id") to include in API
4247	// requests with the JSON null value. By default, fields with empty
4248	// values are omitted from API requests. However, any field with an
4249	// empty value appearing in NullFields will be sent to the server as
4250	// null. It is an error if a field in this list has a non-empty value.
4251	// This may be used to include null fields in Patch requests.
4252	NullFields []string `json:"-"`
4253}
4254
4255func (s *BackendBucketList) MarshalJSON() ([]byte, error) {
4256	type NoMethod BackendBucketList
4257	raw := NoMethod(*s)
4258	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4259}
4260
4261// BackendBucketListWarning: [Output Only] Informational warning
4262// message.
4263type BackendBucketListWarning struct {
4264	// Code: [Output Only] A warning code, if applicable. For example,
4265	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4266	// the response.
4267	//
4268	// Possible values:
4269	//   "CLEANUP_FAILED"
4270	//   "DEPRECATED_RESOURCE_USED"
4271	//   "DEPRECATED_TYPE_USED"
4272	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4273	//   "EXPERIMENTAL_TYPE_USED"
4274	//   "EXTERNAL_API_WARNING"
4275	//   "FIELD_VALUE_OVERRIDEN"
4276	//   "INJECTED_KERNELS_DEPRECATED"
4277	//   "MISSING_TYPE_DEPENDENCY"
4278	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4279	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4280	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4281	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4282	//   "NEXT_HOP_NOT_RUNNING"
4283	//   "NOT_CRITICAL_ERROR"
4284	//   "NO_RESULTS_ON_PAGE"
4285	//   "REQUIRED_TOS_AGREEMENT"
4286	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4287	//   "RESOURCE_NOT_DELETED"
4288	//   "SCHEMA_VALIDATION_IGNORED"
4289	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4290	//   "UNDECLARED_PROPERTIES"
4291	//   "UNREACHABLE"
4292	Code string `json:"code,omitempty"`
4293
4294	// Data: [Output Only] Metadata about this warning in key: value format.
4295	// For example:
4296	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4297	Data []*BackendBucketListWarningData `json:"data,omitempty"`
4298
4299	// Message: [Output Only] A human-readable description of the warning
4300	// code.
4301	Message string `json:"message,omitempty"`
4302
4303	// ForceSendFields is a list of field names (e.g. "Code") to
4304	// unconditionally include in API requests. By default, fields with
4305	// empty values are omitted from API requests. However, any non-pointer,
4306	// non-interface field appearing in ForceSendFields will be sent to the
4307	// server regardless of whether the field is empty or not. This may be
4308	// used to include empty fields in Patch requests.
4309	ForceSendFields []string `json:"-"`
4310
4311	// NullFields is a list of field names (e.g. "Code") to include in API
4312	// requests with the JSON null value. By default, fields with empty
4313	// values are omitted from API requests. However, any field with an
4314	// empty value appearing in NullFields will be sent to the server as
4315	// null. It is an error if a field in this list has a non-empty value.
4316	// This may be used to include null fields in Patch requests.
4317	NullFields []string `json:"-"`
4318}
4319
4320func (s *BackendBucketListWarning) MarshalJSON() ([]byte, error) {
4321	type NoMethod BackendBucketListWarning
4322	raw := NoMethod(*s)
4323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4324}
4325
4326type BackendBucketListWarningData struct {
4327	// Key: [Output Only] A key that provides more detail on the warning
4328	// being returned. For example, for warnings where there are no results
4329	// in a list request for a particular zone, this key might be scope and
4330	// the key value might be the zone name. Other examples might be a key
4331	// indicating a deprecated resource and a suggested replacement, or a
4332	// warning about invalid network settings (for example, if an instance
4333	// attempts to perform IP forwarding but is not enabled for IP
4334	// forwarding).
4335	Key string `json:"key,omitempty"`
4336
4337	// Value: [Output Only] A warning data value corresponding to the key.
4338	Value string `json:"value,omitempty"`
4339
4340	// ForceSendFields is a list of field names (e.g. "Key") to
4341	// unconditionally include in API requests. By default, fields with
4342	// empty values are omitted from API requests. However, any non-pointer,
4343	// non-interface field appearing in ForceSendFields will be sent to the
4344	// server regardless of whether the field is empty or not. This may be
4345	// used to include empty fields in Patch requests.
4346	ForceSendFields []string `json:"-"`
4347
4348	// NullFields is a list of field names (e.g. "Key") to include in API
4349	// requests with the JSON null value. By default, fields with empty
4350	// values are omitted from API requests. However, any field with an
4351	// empty value appearing in NullFields will be sent to the server as
4352	// null. It is an error if a field in this list has a non-empty value.
4353	// This may be used to include null fields in Patch requests.
4354	NullFields []string `json:"-"`
4355}
4356
4357func (s *BackendBucketListWarningData) MarshalJSON() ([]byte, error) {
4358	type NoMethod BackendBucketListWarningData
4359	raw := NoMethod(*s)
4360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4361}
4362
4363// BackendService: Represents a Backend Service resource.
4364//
4365// A backend service contains configuration values for Google Cloud
4366// Platform load balancing services.
4367//
4368// Backend services in Google Compute Engine can be either regionally or
4369// globally scoped.
4370//
4371// * [Global](/compute/docs/reference/rest/latest/backendServices) *
4372// [Regional](/compute/docs/reference/rest/latest/regionBackendServices)
4373//
4374//
4375// For more information, read Backend Services.
4376//
4377// (== resource_for {$api_version}.backendService ==)
4378type BackendService struct {
4379	// AffinityCookieTtlSec: If set to 0, the cookie is non-persistent and
4380	// lasts only until the end of the browser session (or equivalent). The
4381	// maximum allowed value is one day (86,400).
4382	AffinityCookieTtlSec int64 `json:"affinityCookieTtlSec,omitempty"`
4383
4384	// Backends: The list of backends that serve this BackendService.
4385	Backends []*Backend `json:"backends,omitempty"`
4386
4387	// CdnPolicy: Cloud CDN configuration for this BackendService.
4388	CdnPolicy *BackendServiceCdnPolicy `json:"cdnPolicy,omitempty"`
4389
4390	// CircuitBreakers: Settings controlling the volume of connections to a
4391	// backend service. If not set, this feature is considered
4392	// disabled.
4393	//
4394	// This field is applicable to either:
4395	// - A regional backend service with the service_protocol set to HTTP,
4396	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4397	//
4398	// - A global backend service with the load_balancing_scheme set to
4399	// INTERNAL_SELF_MANAGED.
4400	CircuitBreakers *CircuitBreakers `json:"circuitBreakers,omitempty"`
4401
4402	ConnectionDraining *ConnectionDraining `json:"connectionDraining,omitempty"`
4403
4404	// ConsistentHash: Consistent Hash-based load balancing can be used to
4405	// provide soft session affinity based on HTTP headers, cookies or other
4406	// properties. This load balancing policy is applicable only for HTTP
4407	// connections. The affinity to a particular destination host will be
4408	// lost when one or more hosts are added/removed from the destination
4409	// service. This field specifies parameters that control consistent
4410	// hashing. This field is only applicable when localityLbPolicy is set
4411	// to MAGLEV or RING_HASH.
4412	//
4413	// This field is applicable to either:
4414	// - A regional backend service with the service_protocol set to HTTP,
4415	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4416	//
4417	// - A global backend service with the load_balancing_scheme set to
4418	// INTERNAL_SELF_MANAGED.
4419	ConsistentHash *ConsistentHashLoadBalancerSettings `json:"consistentHash,omitempty"`
4420
4421	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
4422	// format.
4423	CreationTimestamp string `json:"creationTimestamp,omitempty"`
4424
4425	// CustomRequestHeaders: Headers that the HTTP/S load balancer should
4426	// add to proxied requests.
4427	CustomRequestHeaders []string `json:"customRequestHeaders,omitempty"`
4428
4429	// Description: An optional description of this resource. Provide this
4430	// property when you create the resource.
4431	Description string `json:"description,omitempty"`
4432
4433	// EnableCDN: If true, enables Cloud CDN for the backend service. Only
4434	// applicable if the loadBalancingScheme is EXTERNAL and the protocol is
4435	// HTTP or HTTPS.
4436	EnableCDN bool `json:"enableCDN,omitempty"`
4437
4438	// FailoverPolicy: Applicable only to Failover for Internal TCP/UDP Load
4439	// Balancing. Requires at least one backend instance group to be defined
4440	// as a backup (failover) backend.
4441	FailoverPolicy *BackendServiceFailoverPolicy `json:"failoverPolicy,omitempty"`
4442
4443	// Fingerprint: Fingerprint of this resource. A hash of the contents
4444	// stored in this object. This field is used in optimistic locking. This
4445	// field will be ignored when inserting a BackendService. An up-to-date
4446	// fingerprint must be provided in order to update the BackendService,
4447	// otherwise the request will fail with error 412 conditionNotMet.
4448	//
4449	// To see the latest fingerprint, make a get() request to retrieve a
4450	// BackendService.
4451	Fingerprint string `json:"fingerprint,omitempty"`
4452
4453	// HealthChecks: The list of URLs to the HttpHealthCheck or
4454	// HttpsHealthCheck resource for health checking this BackendService.
4455	// Currently at most one health check can be specified. Health check is
4456	// optional for Compute Engine backend services if there is no backend.
4457	// A health check must not be specified when adding Internet Network
4458	// Endpoint Group or Serverless Network Endpoint Group as backends. In
4459	// all other cases, a health check is required for Compute Engine
4460	// backend services.
4461	//
4462	// For internal load balancing, a URL to a HealthCheck resource must be
4463	// specified instead.
4464	HealthChecks []string `json:"healthChecks,omitempty"`
4465
4466	Iap *BackendServiceIAP `json:"iap,omitempty"`
4467
4468	// Id: [Output Only] The unique identifier for the resource. This
4469	// identifier is defined by the server.
4470	Id uint64 `json:"id,omitempty,string"`
4471
4472	// Kind: [Output Only] Type of resource. Always compute#backendService
4473	// for backend services.
4474	Kind string `json:"kind,omitempty"`
4475
4476	// LoadBalancingScheme: Specifies the load balancer type. Choose
4477	// EXTERNAL for load balancers that receive traffic from external
4478	// clients. Choose INTERNAL for Internal TCP/UDP Load Balancing. Choose
4479	// INTERNAL_MANAGED for Internal HTTP(S) Load Balancing. Choose
4480	// INTERNAL_SELF_MANAGED for Traffic Director. A backend service created
4481	// for one type of load balancing cannot be used with another. For more
4482	// information, refer to Choosing a load balancer.
4483	//
4484	// Possible values:
4485	//   "EXTERNAL"
4486	//   "INTERNAL"
4487	//   "INTERNAL_MANAGED"
4488	//   "INTERNAL_SELF_MANAGED"
4489	//   "INVALID_LOAD_BALANCING_SCHEME"
4490	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
4491
4492	// LocalityLbPolicy: The load balancing algorithm used within the scope
4493	// of the locality. The possible values are:
4494	// - ROUND_ROBIN: This is a simple policy in which each healthy backend
4495	// is selected in round robin order. This is the default.
4496	// - LEAST_REQUEST: An O(1) algorithm which selects two random healthy
4497	// hosts and picks the host which has fewer active requests.
4498	// - RING_HASH: The ring/modulo hash load balancer implements consistent
4499	// hashing to backends. The algorithm has the property that the
4500	// addition/removal of a host from a set of N hosts only affects 1/N of
4501	// the requests.
4502	// - RANDOM: The load balancer selects a random healthy host.
4503	// - ORIGINAL_DESTINATION: Backend host is selected based on the client
4504	// connection metadata, i.e., connections are opened to the same address
4505	// as the destination address of the incoming connection before the
4506	// connection was redirected to the load balancer.
4507	// - MAGLEV: used as a drop in replacement for the ring hash load
4508	// balancer. Maglev is not as stable as ring hash but has faster table
4509	// lookup build times and host selection times. For more information
4510	// about Maglev, refer to https://ai.google/research/pubs/pub44824
4511	//
4512	//
4513	// This field is applicable to either:
4514	// - A regional backend service with the service_protocol set to HTTP,
4515	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4516	//
4517	// - A global backend service with the load_balancing_scheme set to
4518	// INTERNAL_SELF_MANAGED.
4519	//
4520	// If sessionAffinity is not NONE, and this field is not set to >MAGLEV
4521	// or RING_HASH, session affinity settings will not take effect.
4522	//
4523	// Possible values:
4524	//   "INVALID_LB_POLICY"
4525	//   "LEAST_REQUEST"
4526	//   "MAGLEV"
4527	//   "ORIGINAL_DESTINATION"
4528	//   "RANDOM"
4529	//   "RING_HASH"
4530	//   "ROUND_ROBIN"
4531	LocalityLbPolicy string `json:"localityLbPolicy,omitempty"`
4532
4533	// LogConfig: This field denotes the logging options for the load
4534	// balancer traffic served by this backend service. If logging is
4535	// enabled, logs will be exported to Stackdriver.
4536	LogConfig *BackendServiceLogConfig `json:"logConfig,omitempty"`
4537
4538	// Name: Name of the resource. Provided by the client when the resource
4539	// is created. The name must be 1-63 characters long, and comply with
4540	// RFC1035. Specifically, the name must be 1-63 characters long and
4541	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
4542	// the first character must be a lowercase letter, and all following
4543	// characters must be a dash, lowercase letter, or digit, except the
4544	// last character, which cannot be a dash.
4545	Name string `json:"name,omitempty"`
4546
4547	// Network: The URL of the network to which this backend service
4548	// belongs. This field can only be spcified when the load balancing
4549	// scheme is set to INTERNAL.
4550	Network string `json:"network,omitempty"`
4551
4552	// OutlierDetection: Settings controlling the eviction of unhealthy
4553	// hosts from the load balancing pool for the backend service. If not
4554	// set, this feature is considered disabled.
4555	//
4556	// This field is applicable to either:
4557	// - A regional backend service with the service_protocol set to HTTP,
4558	// HTTPS, or HTTP2, and load_balancing_scheme set to INTERNAL_MANAGED.
4559	//
4560	// - A global backend service with the load_balancing_scheme set to
4561	// INTERNAL_SELF_MANAGED.
4562	OutlierDetection *OutlierDetection `json:"outlierDetection,omitempty"`
4563
4564	// Port: Deprecated in favor of portName. The TCP port to connect on the
4565	// backend. The default value is 80.
4566	//
4567	// This cannot be used if the loadBalancingScheme is INTERNAL (Internal
4568	// TCP/UDP Load Balancing).
4569	Port int64 `json:"port,omitempty"`
4570
4571	// PortName: A named port on a backend instance group representing the
4572	// port for communication to the backend VMs in that group. Required
4573	// when the loadBalancingScheme is EXTERNAL and the backends are
4574	// instance groups. The named port must be defined on each backend
4575	// instance group. This parameter has no meaning if the backends are
4576	// NEGs.
4577	//
4578	//
4579	//
4580	// Must be omitted when the loadBalancingScheme is INTERNAL (Internal
4581	// TCP/UDP Load Blaancing).
4582	PortName string `json:"portName,omitempty"`
4583
4584	// Protocol: The protocol this BackendService uses to communicate with
4585	// backends.
4586	//
4587	// Possible values are HTTP, HTTPS, HTTP2, TCP, SSL, or UDP, depending
4588	// on the chosen load balancer or Traffic Director configuration. Refer
4589	// to the documentation for the load balancer or for Traffic Director
4590	// for more information.
4591	//
4592	// Possible values:
4593	//   "HTTP"
4594	//   "HTTP2"
4595	//   "HTTPS"
4596	//   "SSL"
4597	//   "TCP"
4598	//   "UDP"
4599	Protocol string `json:"protocol,omitempty"`
4600
4601	// Region: [Output Only] URL of the region where the regional backend
4602	// service resides. This field is not applicable to global backend
4603	// services. You must specify this field as part of the HTTP request
4604	// URL. It is not settable as a field in the request body.
4605	Region string `json:"region,omitempty"`
4606
4607	// SecurityPolicy: [Output Only] The resource URL for the security
4608	// policy associated with this backend service.
4609	SecurityPolicy string `json:"securityPolicy,omitempty"`
4610
4611	// SelfLink: [Output Only] Server-defined URL for the resource.
4612	SelfLink string `json:"selfLink,omitempty"`
4613
4614	// SessionAffinity: Type of session affinity to use. The default is
4615	// NONE. Session affinity is not applicable if the --protocol is
4616	// UDP.
4617	//
4618	// When the loadBalancingScheme is EXTERNAL, possible values are NONE,
4619	// CLIENT_IP, or GENERATED_COOKIE. You can use GENERATED_COOKIE if the
4620	// protocol is HTTP or HTTPS.
4621	//
4622	// When the loadBalancingScheme is INTERNAL, possible values are NONE,
4623	// CLIENT_IP, CLIENT_IP_PROTO, or CLIENT_IP_PORT_PROTO.
4624	//
4625	// When the loadBalancingScheme is INTERNAL_SELF_MANAGED, or
4626	// INTERNAL_MANAGED, possible values are NONE, CLIENT_IP,
4627	// GENERATED_COOKIE, HEADER_FIELD, or HTTP_COOKIE.
4628	//
4629	// Possible values:
4630	//   "CLIENT_IP"
4631	//   "CLIENT_IP_PORT_PROTO"
4632	//   "CLIENT_IP_PROTO"
4633	//   "GENERATED_COOKIE"
4634	//   "HEADER_FIELD"
4635	//   "HTTP_COOKIE"
4636	//   "NONE"
4637	SessionAffinity string `json:"sessionAffinity,omitempty"`
4638
4639	// TimeoutSec: The backend service timeout has a different meaning
4640	// depending on the type of load balancer. For more information read,
4641	// Backend service settings The default is 30 seconds.
4642	TimeoutSec int64 `json:"timeoutSec,omitempty"`
4643
4644	// ServerResponse contains the HTTP response code and headers from the
4645	// server.
4646	googleapi.ServerResponse `json:"-"`
4647
4648	// ForceSendFields is a list of field names (e.g.
4649	// "AffinityCookieTtlSec") to unconditionally include in API requests.
4650	// By default, fields with empty values are omitted from API requests.
4651	// However, any non-pointer, non-interface field appearing in
4652	// ForceSendFields will be sent to the server regardless of whether the
4653	// field is empty or not. This may be used to include empty fields in
4654	// Patch requests.
4655	ForceSendFields []string `json:"-"`
4656
4657	// NullFields is a list of field names (e.g. "AffinityCookieTtlSec") to
4658	// include in API requests with the JSON null value. By default, fields
4659	// with empty values are omitted from API requests. However, any field
4660	// with an empty value appearing in NullFields will be sent to the
4661	// server as null. It is an error if a field in this list has a
4662	// non-empty value. This may be used to include null fields in Patch
4663	// requests.
4664	NullFields []string `json:"-"`
4665}
4666
4667func (s *BackendService) MarshalJSON() ([]byte, error) {
4668	type NoMethod BackendService
4669	raw := NoMethod(*s)
4670	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4671}
4672
4673// BackendServiceAggregatedList: Contains a list of
4674// BackendServicesScopedList.
4675type BackendServiceAggregatedList struct {
4676	// Id: [Output Only] Unique identifier for the resource; defined by the
4677	// server.
4678	Id string `json:"id,omitempty"`
4679
4680	// Items: A list of BackendServicesScopedList resources.
4681	Items map[string]BackendServicesScopedList `json:"items,omitempty"`
4682
4683	// Kind: Type of resource.
4684	Kind string `json:"kind,omitempty"`
4685
4686	// NextPageToken: [Output Only] This token allows you to get the next
4687	// page of results for list requests. If the number of results is larger
4688	// than maxResults, use the nextPageToken as a value for the query
4689	// parameter pageToken in the next list request. Subsequent list
4690	// requests will have their own nextPageToken to continue paging through
4691	// the results.
4692	NextPageToken string `json:"nextPageToken,omitempty"`
4693
4694	// SelfLink: [Output Only] Server-defined URL for this resource.
4695	SelfLink string `json:"selfLink,omitempty"`
4696
4697	// Warning: [Output Only] Informational warning message.
4698	Warning *BackendServiceAggregatedListWarning `json:"warning,omitempty"`
4699
4700	// ServerResponse contains the HTTP response code and headers from the
4701	// server.
4702	googleapi.ServerResponse `json:"-"`
4703
4704	// ForceSendFields is a list of field names (e.g. "Id") to
4705	// unconditionally include in API requests. By default, fields with
4706	// empty values are omitted from API requests. However, any non-pointer,
4707	// non-interface field appearing in ForceSendFields will be sent to the
4708	// server regardless of whether the field is empty or not. This may be
4709	// used to include empty fields in Patch requests.
4710	ForceSendFields []string `json:"-"`
4711
4712	// NullFields is a list of field names (e.g. "Id") to include in API
4713	// requests with the JSON null value. By default, fields with empty
4714	// values are omitted from API requests. However, any field with an
4715	// empty value appearing in NullFields will be sent to the server as
4716	// null. It is an error if a field in this list has a non-empty value.
4717	// This may be used to include null fields in Patch requests.
4718	NullFields []string `json:"-"`
4719}
4720
4721func (s *BackendServiceAggregatedList) MarshalJSON() ([]byte, error) {
4722	type NoMethod BackendServiceAggregatedList
4723	raw := NoMethod(*s)
4724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4725}
4726
4727// BackendServiceAggregatedListWarning: [Output Only] Informational
4728// warning message.
4729type BackendServiceAggregatedListWarning struct {
4730	// Code: [Output Only] A warning code, if applicable. For example,
4731	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
4732	// the response.
4733	//
4734	// Possible values:
4735	//   "CLEANUP_FAILED"
4736	//   "DEPRECATED_RESOURCE_USED"
4737	//   "DEPRECATED_TYPE_USED"
4738	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
4739	//   "EXPERIMENTAL_TYPE_USED"
4740	//   "EXTERNAL_API_WARNING"
4741	//   "FIELD_VALUE_OVERRIDEN"
4742	//   "INJECTED_KERNELS_DEPRECATED"
4743	//   "MISSING_TYPE_DEPENDENCY"
4744	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
4745	//   "NEXT_HOP_CANNOT_IP_FORWARD"
4746	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
4747	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
4748	//   "NEXT_HOP_NOT_RUNNING"
4749	//   "NOT_CRITICAL_ERROR"
4750	//   "NO_RESULTS_ON_PAGE"
4751	//   "REQUIRED_TOS_AGREEMENT"
4752	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
4753	//   "RESOURCE_NOT_DELETED"
4754	//   "SCHEMA_VALIDATION_IGNORED"
4755	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
4756	//   "UNDECLARED_PROPERTIES"
4757	//   "UNREACHABLE"
4758	Code string `json:"code,omitempty"`
4759
4760	// Data: [Output Only] Metadata about this warning in key: value format.
4761	// For example:
4762	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
4763	Data []*BackendServiceAggregatedListWarningData `json:"data,omitempty"`
4764
4765	// Message: [Output Only] A human-readable description of the warning
4766	// code.
4767	Message string `json:"message,omitempty"`
4768
4769	// ForceSendFields is a list of field names (e.g. "Code") to
4770	// unconditionally include in API requests. By default, fields with
4771	// empty values are omitted from API requests. However, any non-pointer,
4772	// non-interface field appearing in ForceSendFields will be sent to the
4773	// server regardless of whether the field is empty or not. This may be
4774	// used to include empty fields in Patch requests.
4775	ForceSendFields []string `json:"-"`
4776
4777	// NullFields is a list of field names (e.g. "Code") to include in API
4778	// requests with the JSON null value. By default, fields with empty
4779	// values are omitted from API requests. However, any field with an
4780	// empty value appearing in NullFields will be sent to the server as
4781	// null. It is an error if a field in this list has a non-empty value.
4782	// This may be used to include null fields in Patch requests.
4783	NullFields []string `json:"-"`
4784}
4785
4786func (s *BackendServiceAggregatedListWarning) MarshalJSON() ([]byte, error) {
4787	type NoMethod BackendServiceAggregatedListWarning
4788	raw := NoMethod(*s)
4789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4790}
4791
4792type BackendServiceAggregatedListWarningData struct {
4793	// Key: [Output Only] A key that provides more detail on the warning
4794	// being returned. For example, for warnings where there are no results
4795	// in a list request for a particular zone, this key might be scope and
4796	// the key value might be the zone name. Other examples might be a key
4797	// indicating a deprecated resource and a suggested replacement, or a
4798	// warning about invalid network settings (for example, if an instance
4799	// attempts to perform IP forwarding but is not enabled for IP
4800	// forwarding).
4801	Key string `json:"key,omitempty"`
4802
4803	// Value: [Output Only] A warning data value corresponding to the key.
4804	Value string `json:"value,omitempty"`
4805
4806	// ForceSendFields is a list of field names (e.g. "Key") to
4807	// unconditionally include in API requests. By default, fields with
4808	// empty values are omitted from API requests. However, any non-pointer,
4809	// non-interface field appearing in ForceSendFields will be sent to the
4810	// server regardless of whether the field is empty or not. This may be
4811	// used to include empty fields in Patch requests.
4812	ForceSendFields []string `json:"-"`
4813
4814	// NullFields is a list of field names (e.g. "Key") to include in API
4815	// requests with the JSON null value. By default, fields with empty
4816	// values are omitted from API requests. However, any field with an
4817	// empty value appearing in NullFields will be sent to the server as
4818	// null. It is an error if a field in this list has a non-empty value.
4819	// This may be used to include null fields in Patch requests.
4820	NullFields []string `json:"-"`
4821}
4822
4823func (s *BackendServiceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
4824	type NoMethod BackendServiceAggregatedListWarningData
4825	raw := NoMethod(*s)
4826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4827}
4828
4829// BackendServiceCdnPolicy: Message containing Cloud CDN configuration
4830// for a backend service.
4831type BackendServiceCdnPolicy struct {
4832	// CacheKeyPolicy: The CacheKeyPolicy for this CdnPolicy.
4833	CacheKeyPolicy *CacheKeyPolicy `json:"cacheKeyPolicy,omitempty"`
4834
4835	// SignedUrlCacheMaxAgeSec: Maximum number of seconds the response to a
4836	// signed URL request will be considered fresh. After this time period,
4837	// the response will be revalidated before being served. Defaults to 1hr
4838	// (3600s). When serving responses to signed URL requests, Cloud CDN
4839	// will internally behave as though all responses from this backend had
4840	// a "Cache-Control: public, max-age=[TTL]" header, regardless of any
4841	// existing Cache-Control header. The actual headers served in responses
4842	// will not be altered.
4843	SignedUrlCacheMaxAgeSec int64 `json:"signedUrlCacheMaxAgeSec,omitempty,string"`
4844
4845	// SignedUrlKeyNames: [Output Only] Names of the keys for signing
4846	// request URLs.
4847	SignedUrlKeyNames []string `json:"signedUrlKeyNames,omitempty"`
4848
4849	// ForceSendFields is a list of field names (e.g. "CacheKeyPolicy") to
4850	// unconditionally include in API requests. By default, fields with
4851	// empty values are omitted from API requests. However, any non-pointer,
4852	// non-interface field appearing in ForceSendFields will be sent to the
4853	// server regardless of whether the field is empty or not. This may be
4854	// used to include empty fields in Patch requests.
4855	ForceSendFields []string `json:"-"`
4856
4857	// NullFields is a list of field names (e.g. "CacheKeyPolicy") to
4858	// include in API requests with the JSON null value. By default, fields
4859	// with empty values are omitted from API requests. However, any field
4860	// with an empty value appearing in NullFields will be sent to the
4861	// server as null. It is an error if a field in this list has a
4862	// non-empty value. This may be used to include null fields in Patch
4863	// requests.
4864	NullFields []string `json:"-"`
4865}
4866
4867func (s *BackendServiceCdnPolicy) MarshalJSON() ([]byte, error) {
4868	type NoMethod BackendServiceCdnPolicy
4869	raw := NoMethod(*s)
4870	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4871}
4872
4873type BackendServiceFailoverPolicy struct {
4874	// DisableConnectionDrainOnFailover: This can be set to true only if the
4875	// protocol is TCP.
4876	//
4877	// The default is false.
4878	DisableConnectionDrainOnFailover bool `json:"disableConnectionDrainOnFailover,omitempty"`
4879
4880	// DropTrafficIfUnhealthy: Applicable only to Failover for Internal
4881	// TCP/UDP Load Balancing. If set to true, connections to the load
4882	// balancer are dropped when all primary and all backup backend VMs are
4883	// unhealthy. If set to false, connections are distributed among all
4884	// primary VMs when all primary and all backup backend VMs are
4885	// unhealthy.
4886	//
4887	// The default is false.
4888	DropTrafficIfUnhealthy bool `json:"dropTrafficIfUnhealthy,omitempty"`
4889
4890	// FailoverRatio: Applicable only to Failover for Internal TCP/UDP Load
4891	// Balancing. The value of the field must be in the range [0, 1]. If the
4892	// value is 0, the load balancer performs a failover when the number of
4893	// healthy primary VMs equals zero. For all other values, the load
4894	// balancer performs a failover when the total number of healthy primary
4895	// VMs is less than this ratio.
4896	FailoverRatio float64 `json:"failoverRatio,omitempty"`
4897
4898	// ForceSendFields is a list of field names (e.g.
4899	// "DisableConnectionDrainOnFailover") to unconditionally include in API
4900	// requests. By default, fields with empty values are omitted from API
4901	// requests. However, any non-pointer, non-interface field appearing in
4902	// ForceSendFields will be sent to the server regardless of whether the
4903	// field is empty or not. This may be used to include empty fields in
4904	// Patch requests.
4905	ForceSendFields []string `json:"-"`
4906
4907	// NullFields is a list of field names (e.g.
4908	// "DisableConnectionDrainOnFailover") to include in API requests with
4909	// the JSON null value. By default, fields with empty values are omitted
4910	// from API requests. However, any field with an empty value appearing
4911	// in NullFields will be sent to the server as null. It is an error if a
4912	// field in this list has a non-empty value. This may be used to include
4913	// null fields in Patch requests.
4914	NullFields []string `json:"-"`
4915}
4916
4917func (s *BackendServiceFailoverPolicy) MarshalJSON() ([]byte, error) {
4918	type NoMethod BackendServiceFailoverPolicy
4919	raw := NoMethod(*s)
4920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4921}
4922
4923func (s *BackendServiceFailoverPolicy) UnmarshalJSON(data []byte) error {
4924	type NoMethod BackendServiceFailoverPolicy
4925	var s1 struct {
4926		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
4927		*NoMethod
4928	}
4929	s1.NoMethod = (*NoMethod)(s)
4930	if err := json.Unmarshal(data, &s1); err != nil {
4931		return err
4932	}
4933	s.FailoverRatio = float64(s1.FailoverRatio)
4934	return nil
4935}
4936
4937type BackendServiceGroupHealth struct {
4938	// Annotations: Metadata defined as annotations on the network endpoint
4939	// group.
4940	Annotations map[string]string `json:"annotations,omitempty"`
4941
4942	// HealthStatus: Health state of the backend instances or endpoints in
4943	// requested instance or network endpoint group, determined based on
4944	// configured health checks.
4945	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
4946
4947	// Kind: [Output Only] Type of resource. Always
4948	// compute#backendServiceGroupHealth for the health of backend services.
4949	Kind string `json:"kind,omitempty"`
4950
4951	// ServerResponse contains the HTTP response code and headers from the
4952	// server.
4953	googleapi.ServerResponse `json:"-"`
4954
4955	// ForceSendFields is a list of field names (e.g. "Annotations") to
4956	// unconditionally include in API requests. By default, fields with
4957	// empty values are omitted from API requests. However, any non-pointer,
4958	// non-interface field appearing in ForceSendFields will be sent to the
4959	// server regardless of whether the field is empty or not. This may be
4960	// used to include empty fields in Patch requests.
4961	ForceSendFields []string `json:"-"`
4962
4963	// NullFields is a list of field names (e.g. "Annotations") to include
4964	// in API requests with the JSON null value. By default, fields with
4965	// empty values are omitted from API requests. However, any field with
4966	// an empty value appearing in NullFields will be sent to the server as
4967	// null. It is an error if a field in this list has a non-empty value.
4968	// This may be used to include null fields in Patch requests.
4969	NullFields []string `json:"-"`
4970}
4971
4972func (s *BackendServiceGroupHealth) MarshalJSON() ([]byte, error) {
4973	type NoMethod BackendServiceGroupHealth
4974	raw := NoMethod(*s)
4975	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
4976}
4977
4978// BackendServiceIAP: Identity-Aware Proxy
4979type BackendServiceIAP struct {
4980	Enabled bool `json:"enabled,omitempty"`
4981
4982	Oauth2ClientId string `json:"oauth2ClientId,omitempty"`
4983
4984	Oauth2ClientSecret string `json:"oauth2ClientSecret,omitempty"`
4985
4986	// Oauth2ClientSecretSha256: [Output Only] SHA256 hash value for the
4987	// field oauth2_client_secret above.
4988	Oauth2ClientSecretSha256 string `json:"oauth2ClientSecretSha256,omitempty"`
4989
4990	// ForceSendFields is a list of field names (e.g. "Enabled") to
4991	// unconditionally include in API requests. By default, fields with
4992	// empty values are omitted from API requests. However, any non-pointer,
4993	// non-interface field appearing in ForceSendFields will be sent to the
4994	// server regardless of whether the field is empty or not. This may be
4995	// used to include empty fields in Patch requests.
4996	ForceSendFields []string `json:"-"`
4997
4998	// NullFields is a list of field names (e.g. "Enabled") to include in
4999	// API requests with the JSON null value. By default, fields with empty
5000	// values are omitted from API requests. However, any field with an
5001	// empty value appearing in NullFields will be sent to the server as
5002	// null. It is an error if a field in this list has a non-empty value.
5003	// This may be used to include null fields in Patch requests.
5004	NullFields []string `json:"-"`
5005}
5006
5007func (s *BackendServiceIAP) MarshalJSON() ([]byte, error) {
5008	type NoMethod BackendServiceIAP
5009	raw := NoMethod(*s)
5010	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5011}
5012
5013// BackendServiceList: Contains a list of BackendService resources.
5014type BackendServiceList struct {
5015	// Id: [Output Only] Unique identifier for the resource; defined by the
5016	// server.
5017	Id string `json:"id,omitempty"`
5018
5019	// Items: A list of BackendService resources.
5020	Items []*BackendService `json:"items,omitempty"`
5021
5022	// Kind: [Output Only] Type of resource. Always
5023	// compute#backendServiceList for lists of backend services.
5024	Kind string `json:"kind,omitempty"`
5025
5026	// NextPageToken: [Output Only] This token allows you to get the next
5027	// page of results for list requests. If the number of results is larger
5028	// than maxResults, use the nextPageToken as a value for the query
5029	// parameter pageToken in the next list request. Subsequent list
5030	// requests will have their own nextPageToken to continue paging through
5031	// the results.
5032	NextPageToken string `json:"nextPageToken,omitempty"`
5033
5034	// SelfLink: [Output Only] Server-defined URL for this resource.
5035	SelfLink string `json:"selfLink,omitempty"`
5036
5037	// Warning: [Output Only] Informational warning message.
5038	Warning *BackendServiceListWarning `json:"warning,omitempty"`
5039
5040	// ServerResponse contains the HTTP response code and headers from the
5041	// server.
5042	googleapi.ServerResponse `json:"-"`
5043
5044	// ForceSendFields is a list of field names (e.g. "Id") to
5045	// unconditionally include in API requests. By default, fields with
5046	// empty values are omitted from API requests. However, any non-pointer,
5047	// non-interface field appearing in ForceSendFields will be sent to the
5048	// server regardless of whether the field is empty or not. This may be
5049	// used to include empty fields in Patch requests.
5050	ForceSendFields []string `json:"-"`
5051
5052	// NullFields is a list of field names (e.g. "Id") to include in API
5053	// requests with the JSON null value. By default, fields with empty
5054	// values are omitted from API requests. However, any field with an
5055	// empty value appearing in NullFields will be sent to the server as
5056	// null. It is an error if a field in this list has a non-empty value.
5057	// This may be used to include null fields in Patch requests.
5058	NullFields []string `json:"-"`
5059}
5060
5061func (s *BackendServiceList) MarshalJSON() ([]byte, error) {
5062	type NoMethod BackendServiceList
5063	raw := NoMethod(*s)
5064	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5065}
5066
5067// BackendServiceListWarning: [Output Only] Informational warning
5068// message.
5069type BackendServiceListWarning struct {
5070	// Code: [Output Only] A warning code, if applicable. For example,
5071	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5072	// the response.
5073	//
5074	// Possible values:
5075	//   "CLEANUP_FAILED"
5076	//   "DEPRECATED_RESOURCE_USED"
5077	//   "DEPRECATED_TYPE_USED"
5078	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5079	//   "EXPERIMENTAL_TYPE_USED"
5080	//   "EXTERNAL_API_WARNING"
5081	//   "FIELD_VALUE_OVERRIDEN"
5082	//   "INJECTED_KERNELS_DEPRECATED"
5083	//   "MISSING_TYPE_DEPENDENCY"
5084	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5085	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5086	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5087	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5088	//   "NEXT_HOP_NOT_RUNNING"
5089	//   "NOT_CRITICAL_ERROR"
5090	//   "NO_RESULTS_ON_PAGE"
5091	//   "REQUIRED_TOS_AGREEMENT"
5092	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5093	//   "RESOURCE_NOT_DELETED"
5094	//   "SCHEMA_VALIDATION_IGNORED"
5095	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5096	//   "UNDECLARED_PROPERTIES"
5097	//   "UNREACHABLE"
5098	Code string `json:"code,omitempty"`
5099
5100	// Data: [Output Only] Metadata about this warning in key: value format.
5101	// For example:
5102	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5103	Data []*BackendServiceListWarningData `json:"data,omitempty"`
5104
5105	// Message: [Output Only] A human-readable description of the warning
5106	// code.
5107	Message string `json:"message,omitempty"`
5108
5109	// ForceSendFields is a list of field names (e.g. "Code") to
5110	// unconditionally include in API requests. By default, fields with
5111	// empty values are omitted from API requests. However, any non-pointer,
5112	// non-interface field appearing in ForceSendFields will be sent to the
5113	// server regardless of whether the field is empty or not. This may be
5114	// used to include empty fields in Patch requests.
5115	ForceSendFields []string `json:"-"`
5116
5117	// NullFields is a list of field names (e.g. "Code") to include in API
5118	// requests with the JSON null value. By default, fields with empty
5119	// values are omitted from API requests. However, any field with an
5120	// empty value appearing in NullFields will be sent to the server as
5121	// null. It is an error if a field in this list has a non-empty value.
5122	// This may be used to include null fields in Patch requests.
5123	NullFields []string `json:"-"`
5124}
5125
5126func (s *BackendServiceListWarning) MarshalJSON() ([]byte, error) {
5127	type NoMethod BackendServiceListWarning
5128	raw := NoMethod(*s)
5129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5130}
5131
5132type BackendServiceListWarningData struct {
5133	// Key: [Output Only] A key that provides more detail on the warning
5134	// being returned. For example, for warnings where there are no results
5135	// in a list request for a particular zone, this key might be scope and
5136	// the key value might be the zone name. Other examples might be a key
5137	// indicating a deprecated resource and a suggested replacement, or a
5138	// warning about invalid network settings (for example, if an instance
5139	// attempts to perform IP forwarding but is not enabled for IP
5140	// forwarding).
5141	Key string `json:"key,omitempty"`
5142
5143	// Value: [Output Only] A warning data value corresponding to the key.
5144	Value string `json:"value,omitempty"`
5145
5146	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") to include in API
5155	// requests with the JSON null value. By default, fields with empty
5156	// values are omitted from API requests. However, any field with an
5157	// empty value appearing in NullFields will be sent to the server as
5158	// null. It is an error if a field in this list has a non-empty value.
5159	// This may be used to include null fields in Patch requests.
5160	NullFields []string `json:"-"`
5161}
5162
5163func (s *BackendServiceListWarningData) MarshalJSON() ([]byte, error) {
5164	type NoMethod BackendServiceListWarningData
5165	raw := NoMethod(*s)
5166	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5167}
5168
5169// BackendServiceLogConfig: The available logging options for the load
5170// balancer traffic served by this backend service.
5171type BackendServiceLogConfig struct {
5172	// Enable: This field denotes whether to enable logging for the load
5173	// balancer traffic served by this backend service.
5174	Enable bool `json:"enable,omitempty"`
5175
5176	// SampleRate: This field can only be specified if logging is enabled
5177	// for this backend service. The value of the field must be in [0, 1].
5178	// This configures the sampling rate of requests to the load balancer
5179	// where 1.0 means all logged requests are reported and 0.0 means no
5180	// logged requests are reported. The default value is 1.0.
5181	SampleRate float64 `json:"sampleRate,omitempty"`
5182
5183	// ForceSendFields is a list of field names (e.g. "Enable") to
5184	// unconditionally include in API requests. By default, fields with
5185	// empty values are omitted from API requests. However, any non-pointer,
5186	// non-interface field appearing in ForceSendFields will be sent to the
5187	// server regardless of whether the field is empty or not. This may be
5188	// used to include empty fields in Patch requests.
5189	ForceSendFields []string `json:"-"`
5190
5191	// NullFields is a list of field names (e.g. "Enable") to include in API
5192	// requests with the JSON null value. By default, fields with empty
5193	// values are omitted from API requests. However, any field with an
5194	// empty value appearing in NullFields will be sent to the server as
5195	// null. It is an error if a field in this list has a non-empty value.
5196	// This may be used to include null fields in Patch requests.
5197	NullFields []string `json:"-"`
5198}
5199
5200func (s *BackendServiceLogConfig) MarshalJSON() ([]byte, error) {
5201	type NoMethod BackendServiceLogConfig
5202	raw := NoMethod(*s)
5203	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5204}
5205
5206func (s *BackendServiceLogConfig) UnmarshalJSON(data []byte) error {
5207	type NoMethod BackendServiceLogConfig
5208	var s1 struct {
5209		SampleRate gensupport.JSONFloat64 `json:"sampleRate"`
5210		*NoMethod
5211	}
5212	s1.NoMethod = (*NoMethod)(s)
5213	if err := json.Unmarshal(data, &s1); err != nil {
5214		return err
5215	}
5216	s.SampleRate = float64(s1.SampleRate)
5217	return nil
5218}
5219
5220type BackendServiceReference struct {
5221	BackendService string `json:"backendService,omitempty"`
5222
5223	// ForceSendFields is a list of field names (e.g. "BackendService") to
5224	// unconditionally include in API requests. By default, fields with
5225	// empty values are omitted from API requests. However, any non-pointer,
5226	// non-interface field appearing in ForceSendFields will be sent to the
5227	// server regardless of whether the field is empty or not. This may be
5228	// used to include empty fields in Patch requests.
5229	ForceSendFields []string `json:"-"`
5230
5231	// NullFields is a list of field names (e.g. "BackendService") to
5232	// include in API requests with the JSON null value. By default, fields
5233	// with empty values are omitted from API requests. However, any field
5234	// with an empty value appearing in NullFields will be sent to the
5235	// server as null. It is an error if a field in this list has a
5236	// non-empty value. This may be used to include null fields in Patch
5237	// requests.
5238	NullFields []string `json:"-"`
5239}
5240
5241func (s *BackendServiceReference) MarshalJSON() ([]byte, error) {
5242	type NoMethod BackendServiceReference
5243	raw := NoMethod(*s)
5244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5245}
5246
5247type BackendServicesScopedList struct {
5248	// BackendServices: A list of BackendServices contained in this scope.
5249	BackendServices []*BackendService `json:"backendServices,omitempty"`
5250
5251	// Warning: Informational warning which replaces the list of backend
5252	// services when the list is empty.
5253	Warning *BackendServicesScopedListWarning `json:"warning,omitempty"`
5254
5255	// ForceSendFields is a list of field names (e.g. "BackendServices") to
5256	// unconditionally include in API requests. By default, fields with
5257	// empty values are omitted from API requests. However, any non-pointer,
5258	// non-interface field appearing in ForceSendFields will be sent to the
5259	// server regardless of whether the field is empty or not. This may be
5260	// used to include empty fields in Patch requests.
5261	ForceSendFields []string `json:"-"`
5262
5263	// NullFields is a list of field names (e.g. "BackendServices") to
5264	// include in API requests with the JSON null value. By default, fields
5265	// with empty values are omitted from API requests. However, any field
5266	// with an empty value appearing in NullFields will be sent to the
5267	// server as null. It is an error if a field in this list has a
5268	// non-empty value. This may be used to include null fields in Patch
5269	// requests.
5270	NullFields []string `json:"-"`
5271}
5272
5273func (s *BackendServicesScopedList) MarshalJSON() ([]byte, error) {
5274	type NoMethod BackendServicesScopedList
5275	raw := NoMethod(*s)
5276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5277}
5278
5279// BackendServicesScopedListWarning: Informational warning which
5280// replaces the list of backend services when the list is empty.
5281type BackendServicesScopedListWarning struct {
5282	// Code: [Output Only] A warning code, if applicable. For example,
5283	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
5284	// the response.
5285	//
5286	// Possible values:
5287	//   "CLEANUP_FAILED"
5288	//   "DEPRECATED_RESOURCE_USED"
5289	//   "DEPRECATED_TYPE_USED"
5290	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
5291	//   "EXPERIMENTAL_TYPE_USED"
5292	//   "EXTERNAL_API_WARNING"
5293	//   "FIELD_VALUE_OVERRIDEN"
5294	//   "INJECTED_KERNELS_DEPRECATED"
5295	//   "MISSING_TYPE_DEPENDENCY"
5296	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
5297	//   "NEXT_HOP_CANNOT_IP_FORWARD"
5298	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
5299	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
5300	//   "NEXT_HOP_NOT_RUNNING"
5301	//   "NOT_CRITICAL_ERROR"
5302	//   "NO_RESULTS_ON_PAGE"
5303	//   "REQUIRED_TOS_AGREEMENT"
5304	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
5305	//   "RESOURCE_NOT_DELETED"
5306	//   "SCHEMA_VALIDATION_IGNORED"
5307	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
5308	//   "UNDECLARED_PROPERTIES"
5309	//   "UNREACHABLE"
5310	Code string `json:"code,omitempty"`
5311
5312	// Data: [Output Only] Metadata about this warning in key: value format.
5313	// For example:
5314	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
5315	Data []*BackendServicesScopedListWarningData `json:"data,omitempty"`
5316
5317	// Message: [Output Only] A human-readable description of the warning
5318	// code.
5319	Message string `json:"message,omitempty"`
5320
5321	// ForceSendFields is a list of field names (e.g. "Code") to
5322	// unconditionally include in API requests. By default, fields with
5323	// empty values are omitted from API requests. However, any non-pointer,
5324	// non-interface field appearing in ForceSendFields will be sent to the
5325	// server regardless of whether the field is empty or not. This may be
5326	// used to include empty fields in Patch requests.
5327	ForceSendFields []string `json:"-"`
5328
5329	// NullFields is a list of field names (e.g. "Code") to include in API
5330	// requests with the JSON null value. By default, fields with empty
5331	// values are omitted from API requests. However, any field with an
5332	// empty value appearing in NullFields will be sent to the server as
5333	// null. It is an error if a field in this list has a non-empty value.
5334	// This may be used to include null fields in Patch requests.
5335	NullFields []string `json:"-"`
5336}
5337
5338func (s *BackendServicesScopedListWarning) MarshalJSON() ([]byte, error) {
5339	type NoMethod BackendServicesScopedListWarning
5340	raw := NoMethod(*s)
5341	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5342}
5343
5344type BackendServicesScopedListWarningData struct {
5345	// Key: [Output Only] A key that provides more detail on the warning
5346	// being returned. For example, for warnings where there are no results
5347	// in a list request for a particular zone, this key might be scope and
5348	// the key value might be the zone name. Other examples might be a key
5349	// indicating a deprecated resource and a suggested replacement, or a
5350	// warning about invalid network settings (for example, if an instance
5351	// attempts to perform IP forwarding but is not enabled for IP
5352	// forwarding).
5353	Key string `json:"key,omitempty"`
5354
5355	// Value: [Output Only] A warning data value corresponding to the key.
5356	Value string `json:"value,omitempty"`
5357
5358	// ForceSendFields is a list of field names (e.g. "Key") to
5359	// unconditionally include in API requests. By default, fields with
5360	// empty values are omitted from API requests. However, any non-pointer,
5361	// non-interface field appearing in ForceSendFields will be sent to the
5362	// server regardless of whether the field is empty or not. This may be
5363	// used to include empty fields in Patch requests.
5364	ForceSendFields []string `json:"-"`
5365
5366	// NullFields is a list of field names (e.g. "Key") to include in API
5367	// requests with the JSON null value. By default, fields with empty
5368	// values are omitted from API requests. However, any field with an
5369	// empty value appearing in NullFields will be sent to the server as
5370	// null. It is an error if a field in this list has a non-empty value.
5371	// This may be used to include null fields in Patch requests.
5372	NullFields []string `json:"-"`
5373}
5374
5375func (s *BackendServicesScopedListWarningData) MarshalJSON() ([]byte, error) {
5376	type NoMethod BackendServicesScopedListWarningData
5377	raw := NoMethod(*s)
5378	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5379}
5380
5381type BfdPacket struct {
5382	// AuthenticationPresent: The Authentication Present bit of the BFD
5383	// packet. This is specified in section 4.1 of RFC5880
5384	AuthenticationPresent bool `json:"authenticationPresent,omitempty"`
5385
5386	// ControlPlaneIndependent: The Control Plane Independent bit of the BFD
5387	// packet. This is specified in section 4.1 of RFC5880
5388	ControlPlaneIndependent bool `json:"controlPlaneIndependent,omitempty"`
5389
5390	// Demand: The demand bit of the BFD packet. This is specified in
5391	// section 4.1 of RFC5880
5392	Demand bool `json:"demand,omitempty"`
5393
5394	// Diagnostic: The diagnostic code specifies the local system's reason
5395	// for the last change in session state. This allows remote systems to
5396	// determine the reason that the previous session failed, for example.
5397	// These diagnostic codes are specified in section 4.1 of RFC5880
5398	//
5399	// Possible values:
5400	//   "ADMINISTRATIVELY_DOWN"
5401	//   "CONCATENATED_PATH_DOWN"
5402	//   "CONTROL_DETECTION_TIME_EXPIRED"
5403	//   "DIAGNOSTIC_UNSPECIFIED"
5404	//   "ECHO_FUNCTION_FAILED"
5405	//   "FORWARDING_PLANE_RESET"
5406	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5407	//   "NO_DIAGNOSTIC"
5408	//   "PATH_DOWN"
5409	//   "REVERSE_CONCATENATED_PATH_DOWN"
5410	Diagnostic string `json:"diagnostic,omitempty"`
5411
5412	// Final: The Final bit of the BFD packet. This is specified in section
5413	// 4.1 of RFC5880
5414	Final bool `json:"final,omitempty"`
5415
5416	// Length: The length of the BFD Control packet in bytes. This is
5417	// specified in section 4.1 of RFC5880
5418	Length int64 `json:"length,omitempty"`
5419
5420	// MinEchoRxIntervalMs: The Required Min Echo RX Interval value in the
5421	// BFD packet. This is specified in section 4.1 of RFC5880
5422	MinEchoRxIntervalMs int64 `json:"minEchoRxIntervalMs,omitempty"`
5423
5424	// MinRxIntervalMs: The Required Min RX Interval value in the BFD
5425	// packet. This is specified in section 4.1 of RFC5880
5426	MinRxIntervalMs int64 `json:"minRxIntervalMs,omitempty"`
5427
5428	// MinTxIntervalMs: The Desired Min TX Interval value in the BFD packet.
5429	// This is specified in section 4.1 of RFC5880
5430	MinTxIntervalMs int64 `json:"minTxIntervalMs,omitempty"`
5431
5432	// Multiplier: The detection time multiplier of the BFD packet. This is
5433	// specified in section 4.1 of RFC5880
5434	Multiplier int64 `json:"multiplier,omitempty"`
5435
5436	// Multipoint: The multipoint bit of the BFD packet. This is specified
5437	// in section 4.1 of RFC5880
5438	Multipoint bool `json:"multipoint,omitempty"`
5439
5440	// MyDiscriminator: The My Discriminator value in the BFD packet. This
5441	// is specified in section 4.1 of RFC5880
5442	MyDiscriminator int64 `json:"myDiscriminator,omitempty"`
5443
5444	// Poll: The Poll bit of the BFD packet. This is specified in section
5445	// 4.1 of RFC5880
5446	Poll bool `json:"poll,omitempty"`
5447
5448	// State: The current BFD session state as seen by the transmitting
5449	// system. These states are specified in section 4.1 of RFC5880
5450	//
5451	// Possible values:
5452	//   "ADMIN_DOWN"
5453	//   "DOWN"
5454	//   "INIT"
5455	//   "STATE_UNSPECIFIED"
5456	//   "UP"
5457	State string `json:"state,omitempty"`
5458
5459	// Version: The version number of the BFD protocol, as specified in
5460	// section 4.1 of RFC5880.
5461	Version int64 `json:"version,omitempty"`
5462
5463	// YourDiscriminator: The Your Discriminator value in the BFD packet.
5464	// This is specified in section 4.1 of RFC5880
5465	YourDiscriminator int64 `json:"yourDiscriminator,omitempty"`
5466
5467	// ForceSendFields is a list of field names (e.g.
5468	// "AuthenticationPresent") to unconditionally include in API requests.
5469	// By default, fields with empty values are omitted from API requests.
5470	// However, any non-pointer, non-interface field appearing in
5471	// ForceSendFields will be sent to the server regardless of whether the
5472	// field is empty or not. This may be used to include empty fields in
5473	// Patch requests.
5474	ForceSendFields []string `json:"-"`
5475
5476	// NullFields is a list of field names (e.g. "AuthenticationPresent") to
5477	// include in API requests with the JSON null value. By default, fields
5478	// with empty values are omitted from API requests. However, any field
5479	// with an empty value appearing in NullFields will be sent to the
5480	// server as null. It is an error if a field in this list has a
5481	// non-empty value. This may be used to include null fields in Patch
5482	// requests.
5483	NullFields []string `json:"-"`
5484}
5485
5486func (s *BfdPacket) MarshalJSON() ([]byte, error) {
5487	type NoMethod BfdPacket
5488	raw := NoMethod(*s)
5489	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5490}
5491
5492// BfdStatus: Next free: 15
5493type BfdStatus struct {
5494	// BfdSessionInitializationMode: The BFD session initialization mode for
5495	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
5496	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
5497	// will wait for the peer router to initiate the BFD session for this
5498	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer.
5499	//
5500	// Possible values:
5501	//   "ACTIVE"
5502	//   "DISABLED"
5503	//   "PASSIVE"
5504	BfdSessionInitializationMode string `json:"bfdSessionInitializationMode,omitempty"`
5505
5506	// ConfigUpdateTimestampMicros: Unix timestamp of the most recent config
5507	// update.
5508	ConfigUpdateTimestampMicros int64 `json:"configUpdateTimestampMicros,omitempty,string"`
5509
5510	// ControlPacketCounts: Control packet counts for the current BFD
5511	// session.
5512	ControlPacketCounts *BfdStatusPacketCounts `json:"controlPacketCounts,omitempty"`
5513
5514	// ControlPacketIntervals: Inter-packet time interval statistics for
5515	// control packets.
5516	ControlPacketIntervals []*PacketIntervals `json:"controlPacketIntervals,omitempty"`
5517
5518	// LocalDiagnostic: The diagnostic code specifies the local system's
5519	// reason for the last change in session state. This allows remote
5520	// systems to determine the reason that the previous session failed, for
5521	// example. These diagnostic codes are specified in section 4.1 of
5522	// RFC5880
5523	//
5524	// Possible values:
5525	//   "ADMINISTRATIVELY_DOWN"
5526	//   "CONCATENATED_PATH_DOWN"
5527	//   "CONTROL_DETECTION_TIME_EXPIRED"
5528	//   "DIAGNOSTIC_UNSPECIFIED"
5529	//   "ECHO_FUNCTION_FAILED"
5530	//   "FORWARDING_PLANE_RESET"
5531	//   "NEIGHBOR_SIGNALED_SESSION_DOWN"
5532	//   "NO_DIAGNOSTIC"
5533	//   "PATH_DOWN"
5534	//   "REVERSE_CONCATENATED_PATH_DOWN"
5535	LocalDiagnostic string `json:"localDiagnostic,omitempty"`
5536
5537	// LocalState: The current BFD session state as seen by the transmitting
5538	// system. These states are specified in section 4.1 of RFC5880
5539	//
5540	// Possible values:
5541	//   "ADMIN_DOWN"
5542	//   "DOWN"
5543	//   "INIT"
5544	//   "STATE_UNSPECIFIED"
5545	//   "UP"
5546	LocalState string `json:"localState,omitempty"`
5547
5548	// NegotiatedLocalControlTxIntervalMs: Negotiated transmit interval for
5549	// control packets.
5550	NegotiatedLocalControlTxIntervalMs int64 `json:"negotiatedLocalControlTxIntervalMs,omitempty"`
5551
5552	// RxPacket: The most recent Rx control packet for this BFD session.
5553	RxPacket *BfdPacket `json:"rxPacket,omitempty"`
5554
5555	// TxPacket: The most recent Tx control packet for this BFD session.
5556	TxPacket *BfdPacket `json:"txPacket,omitempty"`
5557
5558	// UptimeMs: Session uptime in milliseconds. Value will be 0 if session
5559	// is not up.
5560	UptimeMs int64 `json:"uptimeMs,omitempty,string"`
5561
5562	// ForceSendFields is a list of field names (e.g.
5563	// "BfdSessionInitializationMode") to unconditionally include in API
5564	// requests. By default, fields with empty values are omitted from API
5565	// requests. However, any non-pointer, non-interface field appearing in
5566	// ForceSendFields will be sent to the server regardless of whether the
5567	// field is empty or not. This may be used to include empty fields in
5568	// Patch requests.
5569	ForceSendFields []string `json:"-"`
5570
5571	// NullFields is a list of field names (e.g.
5572	// "BfdSessionInitializationMode") to include in API requests with the
5573	// JSON null value. By default, fields with empty values are omitted
5574	// from API requests. However, any field with an empty value appearing
5575	// in NullFields will be sent to the server as null. It is an error if a
5576	// field in this list has a non-empty value. This may be used to include
5577	// null fields in Patch requests.
5578	NullFields []string `json:"-"`
5579}
5580
5581func (s *BfdStatus) MarshalJSON() ([]byte, error) {
5582	type NoMethod BfdStatus
5583	raw := NoMethod(*s)
5584	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5585}
5586
5587type BfdStatusPacketCounts struct {
5588	// NumRx: Number of packets received since the beginning of the current
5589	// BFD session.
5590	NumRx int64 `json:"numRx,omitempty"`
5591
5592	// NumRxRejected: Number of packets received that were rejected because
5593	// of errors since the beginning of the current BFD session.
5594	NumRxRejected int64 `json:"numRxRejected,omitempty"`
5595
5596	// NumRxSuccessful: Number of packets received that were successfully
5597	// processed since the beginning of the current BFD session.
5598	NumRxSuccessful int64 `json:"numRxSuccessful,omitempty"`
5599
5600	// NumTx: Number of packets transmitted since the beginning of the
5601	// current BFD session.
5602	NumTx int64 `json:"numTx,omitempty"`
5603
5604	// ForceSendFields is a list of field names (e.g. "NumRx") to
5605	// unconditionally include in API requests. By default, fields with
5606	// empty values are omitted from API requests. However, any non-pointer,
5607	// non-interface field appearing in ForceSendFields will be sent to the
5608	// server regardless of whether the field is empty or not. This may be
5609	// used to include empty fields in Patch requests.
5610	ForceSendFields []string `json:"-"`
5611
5612	// NullFields is a list of field names (e.g. "NumRx") to include in API
5613	// requests with the JSON null value. By default, fields with empty
5614	// values are omitted from API requests. However, any field with an
5615	// empty value appearing in NullFields will be sent to the server as
5616	// null. It is an error if a field in this list has a non-empty value.
5617	// This may be used to include null fields in Patch requests.
5618	NullFields []string `json:"-"`
5619}
5620
5621func (s *BfdStatusPacketCounts) MarshalJSON() ([]byte, error) {
5622	type NoMethod BfdStatusPacketCounts
5623	raw := NoMethod(*s)
5624	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5625}
5626
5627// Binding: Associates `members` with a `role`.
5628type Binding struct {
5629	// Condition: The condition that is associated with this binding. NOTE:
5630	// An unsatisfied condition will not allow user access via current
5631	// binding. Different bindings, including their conditions, are examined
5632	// independently.
5633	Condition *Expr `json:"condition,omitempty"`
5634
5635	// Members: Specifies the identities requesting access for a Cloud
5636	// Platform resource. `members` can have the following values:
5637	//
5638	// * `allUsers`: A special identifier that represents anyone who is on
5639	// the internet; with or without a Google account.
5640	//
5641	// * `allAuthenticatedUsers`: A special identifier that represents
5642	// anyone who is authenticated with a Google account or a service
5643	// account.
5644	//
5645	// * `user:{emailid}`: An email address that represents a specific
5646	// Google account. For example, `alice@example.com` .
5647	//
5648	//
5649	//
5650	// * `serviceAccount:{emailid}`: An email address that represents a
5651	// service account. For example,
5652	// `my-other-app@appspot.gserviceaccount.com`.
5653	//
5654	// * `group:{emailid}`: An email address that represents a Google group.
5655	// For example, `admins@example.com`.
5656	//
5657	// * `deleted:user:{emailid}?uid={uniqueid}`: An email address (plus
5658	// unique identifier) representing a user that has been recently
5659	// deleted. For example, `alice@example.com?uid=123456789012345678901`.
5660	// If the user is recovered, this value reverts to `user:{emailid}` and
5661	// the recovered user retains the role in the binding.
5662	//
5663	// * `deleted:serviceAccount:{emailid}?uid={uniqueid}`: An email address
5664	// (plus unique identifier) representing a service account that has been
5665	// recently deleted. For example,
5666	// `my-other-app@appspot.gserviceaccount.com?uid=123456789012345678901`.
5667	// If the service account is undeleted, this value reverts to
5668	// `serviceAccount:{emailid}` and the undeleted service account retains
5669	// the role in the binding.
5670	//
5671	// * `deleted:group:{emailid}?uid={uniqueid}`: An email address (plus
5672	// unique identifier) representing a Google group that has been recently
5673	// deleted. For example, `admins@example.com?uid=123456789012345678901`.
5674	// If the group is recovered, this value reverts to `group:{emailid}`
5675	// and the recovered group retains the role in the binding.
5676	//
5677	//
5678	//
5679	// * `domain:{domain}`: The G Suite domain (primary) that represents all
5680	// the users of that domain. For example, `google.com` or `example.com`.
5681	Members []string `json:"members,omitempty"`
5682
5683	// Role: Role that is assigned to `members`. For example,
5684	// `roles/viewer`, `roles/editor`, or `roles/owner`.
5685	Role string `json:"role,omitempty"`
5686
5687	// ForceSendFields is a list of field names (e.g. "Condition") to
5688	// unconditionally include in API requests. By default, fields with
5689	// empty values are omitted from API requests. However, any non-pointer,
5690	// non-interface field appearing in ForceSendFields will be sent to the
5691	// server regardless of whether the field is empty or not. This may be
5692	// used to include empty fields in Patch requests.
5693	ForceSendFields []string `json:"-"`
5694
5695	// NullFields is a list of field names (e.g. "Condition") to include in
5696	// API requests with the JSON null value. By default, fields with empty
5697	// values are omitted from API requests. However, any field with an
5698	// empty value appearing in NullFields will be sent to the server as
5699	// null. It is an error if a field in this list has a non-empty value.
5700	// This may be used to include null fields in Patch requests.
5701	NullFields []string `json:"-"`
5702}
5703
5704func (s *Binding) MarshalJSON() ([]byte, error) {
5705	type NoMethod Binding
5706	raw := NoMethod(*s)
5707	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5708}
5709
5710type CacheInvalidationRule struct {
5711	// Host: If set, this invalidation rule will only apply to requests with
5712	// a Host header matching host.
5713	Host string `json:"host,omitempty"`
5714
5715	Path string `json:"path,omitempty"`
5716
5717	// ForceSendFields is a list of field names (e.g. "Host") to
5718	// unconditionally include in API requests. By default, fields with
5719	// empty values are omitted from API requests. However, any non-pointer,
5720	// non-interface field appearing in ForceSendFields will be sent to the
5721	// server regardless of whether the field is empty or not. This may be
5722	// used to include empty fields in Patch requests.
5723	ForceSendFields []string `json:"-"`
5724
5725	// NullFields is a list of field names (e.g. "Host") to include in API
5726	// requests with the JSON null value. By default, fields with empty
5727	// values are omitted from API requests. However, any field with an
5728	// empty value appearing in NullFields will be sent to the server as
5729	// null. It is an error if a field in this list has a non-empty value.
5730	// This may be used to include null fields in Patch requests.
5731	NullFields []string `json:"-"`
5732}
5733
5734func (s *CacheInvalidationRule) MarshalJSON() ([]byte, error) {
5735	type NoMethod CacheInvalidationRule
5736	raw := NoMethod(*s)
5737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5738}
5739
5740// CacheKeyPolicy: Message containing what to include in the cache key
5741// for a request for Cloud CDN.
5742type CacheKeyPolicy struct {
5743	// IncludeHost: If true, requests to different hosts will be cached
5744	// separately.
5745	IncludeHost bool `json:"includeHost,omitempty"`
5746
5747	// IncludeProtocol: If true, http and https requests will be cached
5748	// separately.
5749	IncludeProtocol bool `json:"includeProtocol,omitempty"`
5750
5751	// IncludeQueryString: If true, include query string parameters in the
5752	// cache key according to query_string_whitelist and
5753	// query_string_blacklist. If neither is set, the entire query string
5754	// will be included. If false, the query string will be excluded from
5755	// the cache key entirely.
5756	IncludeQueryString bool `json:"includeQueryString,omitempty"`
5757
5758	// QueryStringBlacklist: Names of query string parameters to exclude in
5759	// cache keys. All other parameters will be included. Either specify
5760	// query_string_whitelist or query_string_blacklist, not both. '&' and
5761	// '=' will be percent encoded and not treated as delimiters.
5762	QueryStringBlacklist []string `json:"queryStringBlacklist,omitempty"`
5763
5764	// QueryStringWhitelist: Names of query string parameters to include in
5765	// cache keys. All other parameters will be excluded. Either specify
5766	// query_string_whitelist or query_string_blacklist, not both. '&' and
5767	// '=' will be percent encoded and not treated as delimiters.
5768	QueryStringWhitelist []string `json:"queryStringWhitelist,omitempty"`
5769
5770	// ForceSendFields is a list of field names (e.g. "IncludeHost") to
5771	// unconditionally include in API requests. By default, fields with
5772	// empty values are omitted from API requests. However, any non-pointer,
5773	// non-interface field appearing in ForceSendFields will be sent to the
5774	// server regardless of whether the field is empty or not. This may be
5775	// used to include empty fields in Patch requests.
5776	ForceSendFields []string `json:"-"`
5777
5778	// NullFields is a list of field names (e.g. "IncludeHost") to include
5779	// in API requests with the JSON null value. By default, fields with
5780	// empty values are omitted from API requests. However, any field with
5781	// an empty value appearing in NullFields will be sent to the server as
5782	// null. It is an error if a field in this list has a non-empty value.
5783	// This may be used to include null fields in Patch requests.
5784	NullFields []string `json:"-"`
5785}
5786
5787func (s *CacheKeyPolicy) MarshalJSON() ([]byte, error) {
5788	type NoMethod CacheKeyPolicy
5789	raw := NoMethod(*s)
5790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5791}
5792
5793// CircuitBreakers: Settings controlling the volume of connections to a
5794// backend service.
5795type CircuitBreakers struct {
5796	// ConnectTimeout: The timeout for new network connections to hosts.
5797	ConnectTimeout *Duration `json:"connectTimeout,omitempty"`
5798
5799	// MaxConnections: The maximum number of connections to the backend
5800	// service. If not specified, there is no limit.
5801	MaxConnections int64 `json:"maxConnections,omitempty"`
5802
5803	// MaxPendingRequests: The maximum number of pending requests allowed to
5804	// the backend service. If not specified, there is no limit.
5805	MaxPendingRequests int64 `json:"maxPendingRequests,omitempty"`
5806
5807	// MaxRequests: The maximum number of parallel requests that allowed to
5808	// the backend service. If not specified, there is no limit.
5809	MaxRequests int64 `json:"maxRequests,omitempty"`
5810
5811	// MaxRequestsPerConnection: Maximum requests for a single connection to
5812	// the backend service. This parameter is respected by both the HTTP/1.1
5813	// and HTTP/2 implementations. If not specified, there is no limit.
5814	// Setting this parameter to 1 will effectively disable keep alive.
5815	MaxRequestsPerConnection int64 `json:"maxRequestsPerConnection,omitempty"`
5816
5817	// MaxRetries: The maximum number of parallel retries allowed to the
5818	// backend cluster. If not specified, the default is 1.
5819	MaxRetries int64 `json:"maxRetries,omitempty"`
5820
5821	// ForceSendFields is a list of field names (e.g. "ConnectTimeout") to
5822	// unconditionally include in API requests. By default, fields with
5823	// empty values are omitted from API requests. However, any non-pointer,
5824	// non-interface field appearing in ForceSendFields will be sent to the
5825	// server regardless of whether the field is empty or not. This may be
5826	// used to include empty fields in Patch requests.
5827	ForceSendFields []string `json:"-"`
5828
5829	// NullFields is a list of field names (e.g. "ConnectTimeout") to
5830	// include in API requests with the JSON null value. By default, fields
5831	// with empty values are omitted from API requests. However, any field
5832	// with an empty value appearing in NullFields will be sent to the
5833	// server as null. It is an error if a field in this list has a
5834	// non-empty value. This may be used to include null fields in Patch
5835	// requests.
5836	NullFields []string `json:"-"`
5837}
5838
5839func (s *CircuitBreakers) MarshalJSON() ([]byte, error) {
5840	type NoMethod CircuitBreakers
5841	raw := NoMethod(*s)
5842	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5843}
5844
5845// Commitment: Represents a regional Commitment resource.
5846//
5847// Creating a commitment resource means that you are purchasing a
5848// committed use contract with an explicit start and end time. You can
5849// create commitments based on vCPUs and memory usage and receive
5850// discounted rates. For full details, read Signing Up for Committed Use
5851// Discounts. (== resource_for {$api_version}.regionCommitments ==)
5852type Commitment struct {
5853	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
5854	// format.
5855	CreationTimestamp string `json:"creationTimestamp,omitempty"`
5856
5857	// Description: An optional description of this resource. Provide this
5858	// property when you create the resource.
5859	Description string `json:"description,omitempty"`
5860
5861	// EndTimestamp: [Output Only] Commitment end time in RFC3339 text
5862	// format.
5863	EndTimestamp string `json:"endTimestamp,omitempty"`
5864
5865	// Id: [Output Only] The unique identifier for the resource. This
5866	// identifier is defined by the server.
5867	Id uint64 `json:"id,omitempty,string"`
5868
5869	// Kind: [Output Only] Type of the resource. Always compute#commitment
5870	// for commitments.
5871	Kind string `json:"kind,omitempty"`
5872
5873	// Name: Name of the resource. Provided by the client when the resource
5874	// is created. The name must be 1-63 characters long, and comply with
5875	// RFC1035. Specifically, the name must be 1-63 characters long and
5876	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
5877	// the first character must be a lowercase letter, and all following
5878	// characters must be a dash, lowercase letter, or digit, except the
5879	// last character, which cannot be a dash.
5880	Name string `json:"name,omitempty"`
5881
5882	// Plan: The plan for this commitment, which determines duration and
5883	// discount rate. The currently supported plans are TWELVE_MONTH (1
5884	// year), and THIRTY_SIX_MONTH (3 years).
5885	//
5886	// Possible values:
5887	//   "INVALID"
5888	//   "THIRTY_SIX_MONTH"
5889	//   "TWELVE_MONTH"
5890	Plan string `json:"plan,omitempty"`
5891
5892	// Region: [Output Only] URL of the region where this commitment may be
5893	// used.
5894	Region string `json:"region,omitempty"`
5895
5896	// Reservations: List of reservations in this commitment.
5897	Reservations []*Reservation `json:"reservations,omitempty"`
5898
5899	// Resources: A list of commitment amounts for particular resources.
5900	// Note that VCPU and MEMORY resource commitments must occur together.
5901	Resources []*ResourceCommitment `json:"resources,omitempty"`
5902
5903	// SelfLink: [Output Only] Server-defined URL for the resource.
5904	SelfLink string `json:"selfLink,omitempty"`
5905
5906	// StartTimestamp: [Output Only] Commitment start time in RFC3339 text
5907	// format.
5908	StartTimestamp string `json:"startTimestamp,omitempty"`
5909
5910	// Status: [Output Only] Status of the commitment with regards to
5911	// eventual expiration (each commitment has an end date defined). One of
5912	// the following values: NOT_YET_ACTIVE, ACTIVE, EXPIRED.
5913	//
5914	// Possible values:
5915	//   "ACTIVE"
5916	//   "CREATING"
5917	//   "EXPIRED"
5918	//   "NOT_YET_ACTIVE"
5919	Status string `json:"status,omitempty"`
5920
5921	// StatusMessage: [Output Only] An optional, human-readable explanation
5922	// of the status.
5923	StatusMessage string `json:"statusMessage,omitempty"`
5924
5925	// Type: The type of commitment, which affects the discount rate and the
5926	// eligible resources. Type MEMORY_OPTIMIZED specifies a commitment that
5927	// will only apply to memory optimized machines.
5928	//
5929	// Possible values:
5930	//   "COMPUTE_OPTIMIZED"
5931	//   "GENERAL_PURPOSE"
5932	//   "GENERAL_PURPOSE_E2"
5933	//   "GENERAL_PURPOSE_N2"
5934	//   "GENERAL_PURPOSE_N2D"
5935	//   "MEMORY_OPTIMIZED"
5936	//   "TYPE_UNSPECIFIED"
5937	Type string `json:"type,omitempty"`
5938
5939	// ServerResponse contains the HTTP response code and headers from the
5940	// server.
5941	googleapi.ServerResponse `json:"-"`
5942
5943	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
5944	// to unconditionally include in API requests. By default, fields with
5945	// empty values are omitted from API requests. However, any non-pointer,
5946	// non-interface field appearing in ForceSendFields will be sent to the
5947	// server regardless of whether the field is empty or not. This may be
5948	// used to include empty fields in Patch requests.
5949	ForceSendFields []string `json:"-"`
5950
5951	// NullFields is a list of field names (e.g. "CreationTimestamp") to
5952	// include in API requests with the JSON null value. By default, fields
5953	// with empty values are omitted from API requests. However, any field
5954	// with an empty value appearing in NullFields will be sent to the
5955	// server as null. It is an error if a field in this list has a
5956	// non-empty value. This may be used to include null fields in Patch
5957	// requests.
5958	NullFields []string `json:"-"`
5959}
5960
5961func (s *Commitment) MarshalJSON() ([]byte, error) {
5962	type NoMethod Commitment
5963	raw := NoMethod(*s)
5964	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
5965}
5966
5967type CommitmentAggregatedList struct {
5968	// Id: [Output Only] Unique identifier for the resource; defined by the
5969	// server.
5970	Id string `json:"id,omitempty"`
5971
5972	// Items: A list of CommitmentsScopedList resources.
5973	Items map[string]CommitmentsScopedList `json:"items,omitempty"`
5974
5975	// Kind: [Output Only] Type of resource. Always
5976	// compute#commitmentAggregatedList for aggregated lists of commitments.
5977	Kind string `json:"kind,omitempty"`
5978
5979	// NextPageToken: [Output Only] This token allows you to get the next
5980	// page of results for list requests. If the number of results is larger
5981	// than maxResults, use the nextPageToken as a value for the query
5982	// parameter pageToken in the next list request. Subsequent list
5983	// requests will have their own nextPageToken to continue paging through
5984	// the results.
5985	NextPageToken string `json:"nextPageToken,omitempty"`
5986
5987	// SelfLink: [Output Only] Server-defined URL for this resource.
5988	SelfLink string `json:"selfLink,omitempty"`
5989
5990	// Warning: [Output Only] Informational warning message.
5991	Warning *CommitmentAggregatedListWarning `json:"warning,omitempty"`
5992
5993	// ServerResponse contains the HTTP response code and headers from the
5994	// server.
5995	googleapi.ServerResponse `json:"-"`
5996
5997	// ForceSendFields is a list of field names (e.g. "Id") to
5998	// unconditionally include in API requests. By default, fields with
5999	// empty values are omitted from API requests. However, any non-pointer,
6000	// non-interface field appearing in ForceSendFields will be sent to the
6001	// server regardless of whether the field is empty or not. This may be
6002	// used to include empty fields in Patch requests.
6003	ForceSendFields []string `json:"-"`
6004
6005	// NullFields is a list of field names (e.g. "Id") to include in API
6006	// requests with the JSON null value. By default, fields with empty
6007	// values are omitted from API requests. However, any field with an
6008	// empty value appearing in NullFields will be sent to the server as
6009	// null. It is an error if a field in this list has a non-empty value.
6010	// This may be used to include null fields in Patch requests.
6011	NullFields []string `json:"-"`
6012}
6013
6014func (s *CommitmentAggregatedList) MarshalJSON() ([]byte, error) {
6015	type NoMethod CommitmentAggregatedList
6016	raw := NoMethod(*s)
6017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6018}
6019
6020// CommitmentAggregatedListWarning: [Output Only] Informational warning
6021// message.
6022type CommitmentAggregatedListWarning struct {
6023	// Code: [Output Only] A warning code, if applicable. For example,
6024	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6025	// the response.
6026	//
6027	// Possible values:
6028	//   "CLEANUP_FAILED"
6029	//   "DEPRECATED_RESOURCE_USED"
6030	//   "DEPRECATED_TYPE_USED"
6031	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6032	//   "EXPERIMENTAL_TYPE_USED"
6033	//   "EXTERNAL_API_WARNING"
6034	//   "FIELD_VALUE_OVERRIDEN"
6035	//   "INJECTED_KERNELS_DEPRECATED"
6036	//   "MISSING_TYPE_DEPENDENCY"
6037	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6038	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6039	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6040	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6041	//   "NEXT_HOP_NOT_RUNNING"
6042	//   "NOT_CRITICAL_ERROR"
6043	//   "NO_RESULTS_ON_PAGE"
6044	//   "REQUIRED_TOS_AGREEMENT"
6045	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6046	//   "RESOURCE_NOT_DELETED"
6047	//   "SCHEMA_VALIDATION_IGNORED"
6048	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6049	//   "UNDECLARED_PROPERTIES"
6050	//   "UNREACHABLE"
6051	Code string `json:"code,omitempty"`
6052
6053	// Data: [Output Only] Metadata about this warning in key: value format.
6054	// For example:
6055	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6056	Data []*CommitmentAggregatedListWarningData `json:"data,omitempty"`
6057
6058	// Message: [Output Only] A human-readable description of the warning
6059	// code.
6060	Message string `json:"message,omitempty"`
6061
6062	// ForceSendFields is a list of field names (e.g. "Code") to
6063	// unconditionally include in API requests. By default, fields with
6064	// empty values are omitted from API requests. However, any non-pointer,
6065	// non-interface field appearing in ForceSendFields will be sent to the
6066	// server regardless of whether the field is empty or not. This may be
6067	// used to include empty fields in Patch requests.
6068	ForceSendFields []string `json:"-"`
6069
6070	// NullFields is a list of field names (e.g. "Code") to include in API
6071	// requests with the JSON null value. By default, fields with empty
6072	// values are omitted from API requests. However, any field with an
6073	// empty value appearing in NullFields will be sent to the server as
6074	// null. It is an error if a field in this list has a non-empty value.
6075	// This may be used to include null fields in Patch requests.
6076	NullFields []string `json:"-"`
6077}
6078
6079func (s *CommitmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
6080	type NoMethod CommitmentAggregatedListWarning
6081	raw := NoMethod(*s)
6082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6083}
6084
6085type CommitmentAggregatedListWarningData struct {
6086	// Key: [Output Only] A key that provides more detail on the warning
6087	// being returned. For example, for warnings where there are no results
6088	// in a list request for a particular zone, this key might be scope and
6089	// the key value might be the zone name. Other examples might be a key
6090	// indicating a deprecated resource and a suggested replacement, or a
6091	// warning about invalid network settings (for example, if an instance
6092	// attempts to perform IP forwarding but is not enabled for IP
6093	// forwarding).
6094	Key string `json:"key,omitempty"`
6095
6096	// Value: [Output Only] A warning data value corresponding to the key.
6097	Value string `json:"value,omitempty"`
6098
6099	// ForceSendFields is a list of field names (e.g. "Key") to
6100	// unconditionally include in API requests. By default, fields with
6101	// empty values are omitted from API requests. However, any non-pointer,
6102	// non-interface field appearing in ForceSendFields will be sent to the
6103	// server regardless of whether the field is empty or not. This may be
6104	// used to include empty fields in Patch requests.
6105	ForceSendFields []string `json:"-"`
6106
6107	// NullFields is a list of field names (e.g. "Key") to include in API
6108	// requests with the JSON null value. By default, fields with empty
6109	// values are omitted from API requests. However, any field with an
6110	// empty value appearing in NullFields will be sent to the server as
6111	// null. It is an error if a field in this list has a non-empty value.
6112	// This may be used to include null fields in Patch requests.
6113	NullFields []string `json:"-"`
6114}
6115
6116func (s *CommitmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
6117	type NoMethod CommitmentAggregatedListWarningData
6118	raw := NoMethod(*s)
6119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6120}
6121
6122// CommitmentList: Contains a list of Commitment resources.
6123type CommitmentList struct {
6124	// Id: [Output Only] Unique identifier for the resource; defined by the
6125	// server.
6126	Id string `json:"id,omitempty"`
6127
6128	// Items: A list of Commitment resources.
6129	Items []*Commitment `json:"items,omitempty"`
6130
6131	// Kind: [Output Only] Type of resource. Always compute#commitmentList
6132	// for lists of commitments.
6133	Kind string `json:"kind,omitempty"`
6134
6135	// NextPageToken: [Output Only] This token allows you to get the next
6136	// page of results for list requests. If the number of results is larger
6137	// than maxResults, use the nextPageToken as a value for the query
6138	// parameter pageToken in the next list request. Subsequent list
6139	// requests will have their own nextPageToken to continue paging through
6140	// the results.
6141	NextPageToken string `json:"nextPageToken,omitempty"`
6142
6143	// SelfLink: [Output Only] Server-defined URL for this resource.
6144	SelfLink string `json:"selfLink,omitempty"`
6145
6146	// Warning: [Output Only] Informational warning message.
6147	Warning *CommitmentListWarning `json:"warning,omitempty"`
6148
6149	// ServerResponse contains the HTTP response code and headers from the
6150	// server.
6151	googleapi.ServerResponse `json:"-"`
6152
6153	// ForceSendFields is a list of field names (e.g. "Id") to
6154	// unconditionally include in API requests. By default, fields with
6155	// empty values are omitted from API requests. However, any non-pointer,
6156	// non-interface field appearing in ForceSendFields will be sent to the
6157	// server regardless of whether the field is empty or not. This may be
6158	// used to include empty fields in Patch requests.
6159	ForceSendFields []string `json:"-"`
6160
6161	// NullFields is a list of field names (e.g. "Id") to include in API
6162	// requests with the JSON null value. By default, fields with empty
6163	// values are omitted from API requests. However, any field with an
6164	// empty value appearing in NullFields will be sent to the server as
6165	// null. It is an error if a field in this list has a non-empty value.
6166	// This may be used to include null fields in Patch requests.
6167	NullFields []string `json:"-"`
6168}
6169
6170func (s *CommitmentList) MarshalJSON() ([]byte, error) {
6171	type NoMethod CommitmentList
6172	raw := NoMethod(*s)
6173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6174}
6175
6176// CommitmentListWarning: [Output Only] Informational warning message.
6177type CommitmentListWarning struct {
6178	// Code: [Output Only] A warning code, if applicable. For example,
6179	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6180	// the response.
6181	//
6182	// Possible values:
6183	//   "CLEANUP_FAILED"
6184	//   "DEPRECATED_RESOURCE_USED"
6185	//   "DEPRECATED_TYPE_USED"
6186	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6187	//   "EXPERIMENTAL_TYPE_USED"
6188	//   "EXTERNAL_API_WARNING"
6189	//   "FIELD_VALUE_OVERRIDEN"
6190	//   "INJECTED_KERNELS_DEPRECATED"
6191	//   "MISSING_TYPE_DEPENDENCY"
6192	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6193	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6194	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6195	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6196	//   "NEXT_HOP_NOT_RUNNING"
6197	//   "NOT_CRITICAL_ERROR"
6198	//   "NO_RESULTS_ON_PAGE"
6199	//   "REQUIRED_TOS_AGREEMENT"
6200	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6201	//   "RESOURCE_NOT_DELETED"
6202	//   "SCHEMA_VALIDATION_IGNORED"
6203	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6204	//   "UNDECLARED_PROPERTIES"
6205	//   "UNREACHABLE"
6206	Code string `json:"code,omitempty"`
6207
6208	// Data: [Output Only] Metadata about this warning in key: value format.
6209	// For example:
6210	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6211	Data []*CommitmentListWarningData `json:"data,omitempty"`
6212
6213	// Message: [Output Only] A human-readable description of the warning
6214	// code.
6215	Message string `json:"message,omitempty"`
6216
6217	// ForceSendFields is a list of field names (e.g. "Code") to
6218	// unconditionally include in API requests. By default, fields with
6219	// empty values are omitted from API requests. However, any non-pointer,
6220	// non-interface field appearing in ForceSendFields will be sent to the
6221	// server regardless of whether the field is empty or not. This may be
6222	// used to include empty fields in Patch requests.
6223	ForceSendFields []string `json:"-"`
6224
6225	// NullFields is a list of field names (e.g. "Code") to include in API
6226	// requests with the JSON null value. By default, fields with empty
6227	// values are omitted from API requests. However, any field with an
6228	// empty value appearing in NullFields will be sent to the server as
6229	// null. It is an error if a field in this list has a non-empty value.
6230	// This may be used to include null fields in Patch requests.
6231	NullFields []string `json:"-"`
6232}
6233
6234func (s *CommitmentListWarning) MarshalJSON() ([]byte, error) {
6235	type NoMethod CommitmentListWarning
6236	raw := NoMethod(*s)
6237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6238}
6239
6240type CommitmentListWarningData struct {
6241	// Key: [Output Only] A key that provides more detail on the warning
6242	// being returned. For example, for warnings where there are no results
6243	// in a list request for a particular zone, this key might be scope and
6244	// the key value might be the zone name. Other examples might be a key
6245	// indicating a deprecated resource and a suggested replacement, or a
6246	// warning about invalid network settings (for example, if an instance
6247	// attempts to perform IP forwarding but is not enabled for IP
6248	// forwarding).
6249	Key string `json:"key,omitempty"`
6250
6251	// Value: [Output Only] A warning data value corresponding to the key.
6252	Value string `json:"value,omitempty"`
6253
6254	// ForceSendFields is a list of field names (e.g. "Key") to
6255	// unconditionally include in API requests. By default, fields with
6256	// empty values are omitted from API requests. However, any non-pointer,
6257	// non-interface field appearing in ForceSendFields will be sent to the
6258	// server regardless of whether the field is empty or not. This may be
6259	// used to include empty fields in Patch requests.
6260	ForceSendFields []string `json:"-"`
6261
6262	// NullFields is a list of field names (e.g. "Key") to include in API
6263	// requests with the JSON null value. By default, fields with empty
6264	// values are omitted from API requests. However, any field with an
6265	// empty value appearing in NullFields will be sent to the server as
6266	// null. It is an error if a field in this list has a non-empty value.
6267	// This may be used to include null fields in Patch requests.
6268	NullFields []string `json:"-"`
6269}
6270
6271func (s *CommitmentListWarningData) MarshalJSON() ([]byte, error) {
6272	type NoMethod CommitmentListWarningData
6273	raw := NoMethod(*s)
6274	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6275}
6276
6277type CommitmentsScopedList struct {
6278	// Commitments: [Output Only] A list of commitments contained in this
6279	// scope.
6280	Commitments []*Commitment `json:"commitments,omitempty"`
6281
6282	// Warning: [Output Only] Informational warning which replaces the list
6283	// of commitments when the list is empty.
6284	Warning *CommitmentsScopedListWarning `json:"warning,omitempty"`
6285
6286	// ForceSendFields is a list of field names (e.g. "Commitments") to
6287	// unconditionally include in API requests. By default, fields with
6288	// empty values are omitted from API requests. However, any non-pointer,
6289	// non-interface field appearing in ForceSendFields will be sent to the
6290	// server regardless of whether the field is empty or not. This may be
6291	// used to include empty fields in Patch requests.
6292	ForceSendFields []string `json:"-"`
6293
6294	// NullFields is a list of field names (e.g. "Commitments") to include
6295	// in API requests with the JSON null value. By default, fields with
6296	// empty values are omitted from API requests. However, any field with
6297	// an empty value appearing in NullFields will be sent to the server as
6298	// null. It is an error if a field in this list has a non-empty value.
6299	// This may be used to include null fields in Patch requests.
6300	NullFields []string `json:"-"`
6301}
6302
6303func (s *CommitmentsScopedList) MarshalJSON() ([]byte, error) {
6304	type NoMethod CommitmentsScopedList
6305	raw := NoMethod(*s)
6306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6307}
6308
6309// CommitmentsScopedListWarning: [Output Only] Informational warning
6310// which replaces the list of commitments when the list is empty.
6311type CommitmentsScopedListWarning struct {
6312	// Code: [Output Only] A warning code, if applicable. For example,
6313	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
6314	// the response.
6315	//
6316	// Possible values:
6317	//   "CLEANUP_FAILED"
6318	//   "DEPRECATED_RESOURCE_USED"
6319	//   "DEPRECATED_TYPE_USED"
6320	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
6321	//   "EXPERIMENTAL_TYPE_USED"
6322	//   "EXTERNAL_API_WARNING"
6323	//   "FIELD_VALUE_OVERRIDEN"
6324	//   "INJECTED_KERNELS_DEPRECATED"
6325	//   "MISSING_TYPE_DEPENDENCY"
6326	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
6327	//   "NEXT_HOP_CANNOT_IP_FORWARD"
6328	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
6329	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
6330	//   "NEXT_HOP_NOT_RUNNING"
6331	//   "NOT_CRITICAL_ERROR"
6332	//   "NO_RESULTS_ON_PAGE"
6333	//   "REQUIRED_TOS_AGREEMENT"
6334	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
6335	//   "RESOURCE_NOT_DELETED"
6336	//   "SCHEMA_VALIDATION_IGNORED"
6337	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
6338	//   "UNDECLARED_PROPERTIES"
6339	//   "UNREACHABLE"
6340	Code string `json:"code,omitempty"`
6341
6342	// Data: [Output Only] Metadata about this warning in key: value format.
6343	// For example:
6344	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
6345	Data []*CommitmentsScopedListWarningData `json:"data,omitempty"`
6346
6347	// Message: [Output Only] A human-readable description of the warning
6348	// code.
6349	Message string `json:"message,omitempty"`
6350
6351	// ForceSendFields is a list of field names (e.g. "Code") to
6352	// unconditionally include in API requests. By default, fields with
6353	// empty values are omitted from API requests. However, any non-pointer,
6354	// non-interface field appearing in ForceSendFields will be sent to the
6355	// server regardless of whether the field is empty or not. This may be
6356	// used to include empty fields in Patch requests.
6357	ForceSendFields []string `json:"-"`
6358
6359	// NullFields is a list of field names (e.g. "Code") to include in API
6360	// requests with the JSON null value. By default, fields with empty
6361	// values are omitted from API requests. However, any field with an
6362	// empty value appearing in NullFields will be sent to the server as
6363	// null. It is an error if a field in this list has a non-empty value.
6364	// This may be used to include null fields in Patch requests.
6365	NullFields []string `json:"-"`
6366}
6367
6368func (s *CommitmentsScopedListWarning) MarshalJSON() ([]byte, error) {
6369	type NoMethod CommitmentsScopedListWarning
6370	raw := NoMethod(*s)
6371	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6372}
6373
6374type CommitmentsScopedListWarningData struct {
6375	// Key: [Output Only] A key that provides more detail on the warning
6376	// being returned. For example, for warnings where there are no results
6377	// in a list request for a particular zone, this key might be scope and
6378	// the key value might be the zone name. Other examples might be a key
6379	// indicating a deprecated resource and a suggested replacement, or a
6380	// warning about invalid network settings (for example, if an instance
6381	// attempts to perform IP forwarding but is not enabled for IP
6382	// forwarding).
6383	Key string `json:"key,omitempty"`
6384
6385	// Value: [Output Only] A warning data value corresponding to the key.
6386	Value string `json:"value,omitempty"`
6387
6388	// ForceSendFields is a list of field names (e.g. "Key") to
6389	// unconditionally include in API requests. By default, fields with
6390	// empty values are omitted from API requests. However, any non-pointer,
6391	// non-interface field appearing in ForceSendFields will be sent to the
6392	// server regardless of whether the field is empty or not. This may be
6393	// used to include empty fields in Patch requests.
6394	ForceSendFields []string `json:"-"`
6395
6396	// NullFields is a list of field names (e.g. "Key") to include in API
6397	// requests with the JSON null value. By default, fields with empty
6398	// values are omitted from API requests. However, any field with an
6399	// empty value appearing in NullFields will be sent to the server as
6400	// null. It is an error if a field in this list has a non-empty value.
6401	// This may be used to include null fields in Patch requests.
6402	NullFields []string `json:"-"`
6403}
6404
6405func (s *CommitmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
6406	type NoMethod CommitmentsScopedListWarningData
6407	raw := NoMethod(*s)
6408	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6409}
6410
6411// Condition: A condition to be met.
6412type Condition struct {
6413	// Iam: Trusted attributes supplied by the IAM system.
6414	//
6415	// Possible values:
6416	//   "APPROVER"
6417	//   "ATTRIBUTION"
6418	//   "AUTHORITY"
6419	//   "CREDENTIALS_TYPE"
6420	//   "JUSTIFICATION_TYPE"
6421	//   "NO_ATTR"
6422	//   "SECURITY_REALM"
6423	Iam string `json:"iam,omitempty"`
6424
6425	// Op: An operator to apply the subject with.
6426	//
6427	// Possible values:
6428	//   "DISCHARGED"
6429	//   "EQUALS"
6430	//   "IN"
6431	//   "NOT_EQUALS"
6432	//   "NOT_IN"
6433	//   "NO_OP"
6434	Op string `json:"op,omitempty"`
6435
6436	// Svc: Trusted attributes discharged by the service.
6437	Svc string `json:"svc,omitempty"`
6438
6439	// Sys: Trusted attributes supplied by any service that owns resources
6440	// and uses the IAM system for access control.
6441	//
6442	// Possible values:
6443	//   "IP"
6444	//   "NAME"
6445	//   "NO_ATTR"
6446	//   "REGION"
6447	//   "SERVICE"
6448	Sys string `json:"sys,omitempty"`
6449
6450	// Values: The objects of the condition.
6451	Values []string `json:"values,omitempty"`
6452
6453	// ForceSendFields is a list of field names (e.g. "Iam") to
6454	// unconditionally include in API requests. By default, fields with
6455	// empty values are omitted from API requests. However, any non-pointer,
6456	// non-interface field appearing in ForceSendFields will be sent to the
6457	// server regardless of whether the field is empty or not. This may be
6458	// used to include empty fields in Patch requests.
6459	ForceSendFields []string `json:"-"`
6460
6461	// NullFields is a list of field names (e.g. "Iam") to include in API
6462	// requests with the JSON null value. By default, fields with empty
6463	// values are omitted from API requests. However, any field with an
6464	// empty value appearing in NullFields will be sent to the server as
6465	// null. It is an error if a field in this list has a non-empty value.
6466	// This may be used to include null fields in Patch requests.
6467	NullFields []string `json:"-"`
6468}
6469
6470func (s *Condition) MarshalJSON() ([]byte, error) {
6471	type NoMethod Condition
6472	raw := NoMethod(*s)
6473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6474}
6475
6476// ConnectionDraining: Message containing connection draining
6477// configuration.
6478type ConnectionDraining struct {
6479	// DrainingTimeoutSec: The amount of time in seconds to allow existing
6480	// connections to persist while on unhealthy backend VMs. Only
6481	// applicable if the protocol is not UDP. The valid range is [0, 3600].
6482	DrainingTimeoutSec int64 `json:"drainingTimeoutSec,omitempty"`
6483
6484	// ForceSendFields is a list of field names (e.g. "DrainingTimeoutSec")
6485	// to unconditionally include in API requests. By default, fields with
6486	// empty values are omitted from API requests. However, any non-pointer,
6487	// non-interface field appearing in ForceSendFields will be sent to the
6488	// server regardless of whether the field is empty or not. This may be
6489	// used to include empty fields in Patch requests.
6490	ForceSendFields []string `json:"-"`
6491
6492	// NullFields is a list of field names (e.g. "DrainingTimeoutSec") to
6493	// include in API requests with the JSON null value. By default, fields
6494	// with empty values are omitted from API requests. However, any field
6495	// with an empty value appearing in NullFields will be sent to the
6496	// server as null. It is an error if a field in this list has a
6497	// non-empty value. This may be used to include null fields in Patch
6498	// requests.
6499	NullFields []string `json:"-"`
6500}
6501
6502func (s *ConnectionDraining) MarshalJSON() ([]byte, error) {
6503	type NoMethod ConnectionDraining
6504	raw := NoMethod(*s)
6505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6506}
6507
6508// ConsistentHashLoadBalancerSettings: This message defines settings for
6509// a consistent hash style load balancer.
6510type ConsistentHashLoadBalancerSettings struct {
6511	// HttpCookie: Hash is based on HTTP Cookie. This field describes a HTTP
6512	// cookie that will be used as the hash key for the consistent hash load
6513	// balancer. If the cookie is not present, it will be generated. This
6514	// field is applicable if the sessionAffinity is set to HTTP_COOKIE.
6515	HttpCookie *ConsistentHashLoadBalancerSettingsHttpCookie `json:"httpCookie,omitempty"`
6516
6517	// HttpHeaderName: The hash based on the value of the specified header
6518	// field. This field is applicable if the sessionAffinity is set to
6519	// HEADER_FIELD.
6520	HttpHeaderName string `json:"httpHeaderName,omitempty"`
6521
6522	// MinimumRingSize: The minimum number of virtual nodes to use for the
6523	// hash ring. Defaults to 1024. Larger ring sizes result in more
6524	// granular load distributions. If the number of hosts in the load
6525	// balancing pool is larger than the ring size, each host will be
6526	// assigned a single virtual node.
6527	MinimumRingSize int64 `json:"minimumRingSize,omitempty,string"`
6528
6529	// ForceSendFields is a list of field names (e.g. "HttpCookie") to
6530	// unconditionally include in API requests. By default, fields with
6531	// empty values are omitted from API requests. However, any non-pointer,
6532	// non-interface field appearing in ForceSendFields will be sent to the
6533	// server regardless of whether the field is empty or not. This may be
6534	// used to include empty fields in Patch requests.
6535	ForceSendFields []string `json:"-"`
6536
6537	// NullFields is a list of field names (e.g. "HttpCookie") to include in
6538	// API requests with the JSON null value. By default, fields with empty
6539	// values are omitted from API requests. However, any field with an
6540	// empty value appearing in NullFields will be sent to the server as
6541	// null. It is an error if a field in this list has a non-empty value.
6542	// This may be used to include null fields in Patch requests.
6543	NullFields []string `json:"-"`
6544}
6545
6546func (s *ConsistentHashLoadBalancerSettings) MarshalJSON() ([]byte, error) {
6547	type NoMethod ConsistentHashLoadBalancerSettings
6548	raw := NoMethod(*s)
6549	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6550}
6551
6552// ConsistentHashLoadBalancerSettingsHttpCookie: The information about
6553// the HTTP Cookie on which the hash function is based for load
6554// balancing policies that use a consistent hash.
6555type ConsistentHashLoadBalancerSettingsHttpCookie struct {
6556	// Name: Name of the cookie.
6557	Name string `json:"name,omitempty"`
6558
6559	// Path: Path to set for the cookie.
6560	Path string `json:"path,omitempty"`
6561
6562	// Ttl: Lifetime of the cookie.
6563	Ttl *Duration `json:"ttl,omitempty"`
6564
6565	// ForceSendFields is a list of field names (e.g. "Name") to
6566	// unconditionally include in API requests. By default, fields with
6567	// empty values are omitted from API requests. However, any non-pointer,
6568	// non-interface field appearing in ForceSendFields will be sent to the
6569	// server regardless of whether the field is empty or not. This may be
6570	// used to include empty fields in Patch requests.
6571	ForceSendFields []string `json:"-"`
6572
6573	// NullFields is a list of field names (e.g. "Name") to include in API
6574	// requests with the JSON null value. By default, fields with empty
6575	// values are omitted from API requests. However, any field with an
6576	// empty value appearing in NullFields will be sent to the server as
6577	// null. It is an error if a field in this list has a non-empty value.
6578	// This may be used to include null fields in Patch requests.
6579	NullFields []string `json:"-"`
6580}
6581
6582func (s *ConsistentHashLoadBalancerSettingsHttpCookie) MarshalJSON() ([]byte, error) {
6583	type NoMethod ConsistentHashLoadBalancerSettingsHttpCookie
6584	raw := NoMethod(*s)
6585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6586}
6587
6588// CorsPolicy: The specification for allowing client side cross-origin
6589// requests. Please see W3C Recommendation for Cross Origin Resource
6590// Sharing
6591type CorsPolicy struct {
6592	// AllowCredentials: In response to a preflight request, setting this to
6593	// true indicates that the actual request can include user credentials.
6594	// This translates to the Access-Control-Allow-Credentials
6595	// header.
6596	// Default is false.
6597	AllowCredentials bool `json:"allowCredentials,omitempty"`
6598
6599	// AllowHeaders: Specifies the content for the
6600	// Access-Control-Allow-Headers header.
6601	AllowHeaders []string `json:"allowHeaders,omitempty"`
6602
6603	// AllowMethods: Specifies the content for the
6604	// Access-Control-Allow-Methods header.
6605	AllowMethods []string `json:"allowMethods,omitempty"`
6606
6607	// AllowOriginRegexes: Specifies the regualar expression patterns that
6608	// match allowed origins. For regular expression grammar please see
6609	// en.cppreference.com/w/cpp/regex/ecmascript
6610	// An origin is allowed if it matches either allow_origins or
6611	// allow_origin_regex.
6612	AllowOriginRegexes []string `json:"allowOriginRegexes,omitempty"`
6613
6614	// AllowOrigins: Specifies the list of origins that will be allowed to
6615	// do CORS requests.
6616	// An origin is allowed if it matches either allow_origins or
6617	// allow_origin_regex.
6618	AllowOrigins []string `json:"allowOrigins,omitempty"`
6619
6620	// Disabled: If true, specifies the CORS policy is disabled. The default
6621	// value of false, which indicates that the CORS policy is in effect.
6622	Disabled bool `json:"disabled,omitempty"`
6623
6624	// ExposeHeaders: Specifies the content for the
6625	// Access-Control-Expose-Headers header.
6626	ExposeHeaders []string `json:"exposeHeaders,omitempty"`
6627
6628	// MaxAge: Specifies how long results of a preflight request can be
6629	// cached in seconds. This translates to the Access-Control-Max-Age
6630	// header.
6631	MaxAge int64 `json:"maxAge,omitempty"`
6632
6633	// ForceSendFields is a list of field names (e.g. "AllowCredentials") to
6634	// unconditionally include in API requests. By default, fields with
6635	// empty values are omitted from API requests. However, any non-pointer,
6636	// non-interface field appearing in ForceSendFields will be sent to the
6637	// server regardless of whether the field is empty or not. This may be
6638	// used to include empty fields in Patch requests.
6639	ForceSendFields []string `json:"-"`
6640
6641	// NullFields is a list of field names (e.g. "AllowCredentials") to
6642	// include in API requests with the JSON null value. By default, fields
6643	// with empty values are omitted from API requests. However, any field
6644	// with an empty value appearing in NullFields will be sent to the
6645	// server as null. It is an error if a field in this list has a
6646	// non-empty value. This may be used to include null fields in Patch
6647	// requests.
6648	NullFields []string `json:"-"`
6649}
6650
6651func (s *CorsPolicy) MarshalJSON() ([]byte, error) {
6652	type NoMethod CorsPolicy
6653	raw := NoMethod(*s)
6654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6655}
6656
6657// CustomerEncryptionKey: Represents a customer-supplied encryption key
6658type CustomerEncryptionKey struct {
6659	// KmsKeyName: The name of the encryption key that is stored in Google
6660	// Cloud KMS.
6661	KmsKeyName string `json:"kmsKeyName,omitempty"`
6662
6663	// KmsKeyServiceAccount: The service account being used for the
6664	// encryption request for the given KMS key. If absent, the Compute
6665	// Engine default service account is used.
6666	KmsKeyServiceAccount string `json:"kmsKeyServiceAccount,omitempty"`
6667
6668	// RawKey: Specifies a 256-bit customer-supplied encryption key, encoded
6669	// in RFC 4648 base64 to either encrypt or decrypt this resource.
6670	RawKey string `json:"rawKey,omitempty"`
6671
6672	// RsaEncryptedKey: Specifies an RFC 4648 base64 encoded, RSA-wrapped
6673	// 2048-bit customer-supplied encryption key to either encrypt or
6674	// decrypt this resource.
6675	//
6676	// The key must meet the following requirements before you can provide
6677	// it to Compute Engine:
6678	// - The key is wrapped using a RSA public key certificate provided by
6679	// Google.
6680	// - After being wrapped, the key must be encoded in RFC 4648 base64
6681	// encoding.  Gets the RSA public key certificate provided by Google
6682	// at:
6683	// https://cloud-certs.storage.googleapis.com/google-cloud-csek-ingre
6684	// ss.pem
6685	RsaEncryptedKey string `json:"rsaEncryptedKey,omitempty"`
6686
6687	// Sha256: [Output only] The RFC 4648 base64 encoded SHA-256 hash of the
6688	// customer-supplied encryption key that protects this resource.
6689	Sha256 string `json:"sha256,omitempty"`
6690
6691	// ForceSendFields is a list of field names (e.g. "KmsKeyName") to
6692	// unconditionally include in API requests. By default, fields with
6693	// empty values are omitted from API requests. However, any non-pointer,
6694	// non-interface field appearing in ForceSendFields will be sent to the
6695	// server regardless of whether the field is empty or not. This may be
6696	// used to include empty fields in Patch requests.
6697	ForceSendFields []string `json:"-"`
6698
6699	// NullFields is a list of field names (e.g. "KmsKeyName") to include in
6700	// API requests with the JSON null value. By default, fields with empty
6701	// values are omitted from API requests. However, any field with an
6702	// empty value appearing in NullFields will be sent to the server as
6703	// null. It is an error if a field in this list has a non-empty value.
6704	// This may be used to include null fields in Patch requests.
6705	NullFields []string `json:"-"`
6706}
6707
6708func (s *CustomerEncryptionKey) MarshalJSON() ([]byte, error) {
6709	type NoMethod CustomerEncryptionKey
6710	raw := NoMethod(*s)
6711	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6712}
6713
6714type CustomerEncryptionKeyProtectedDisk struct {
6715	// DiskEncryptionKey: Decrypts data associated with the disk with a
6716	// customer-supplied encryption key.
6717	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
6718
6719	// Source: Specifies a valid partial or full URL to an existing
6720	// Persistent Disk resource. This field is only applicable for
6721	// persistent disks.
6722	Source string `json:"source,omitempty"`
6723
6724	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
6725	// to unconditionally include in API requests. By default, fields with
6726	// empty values are omitted from API requests. However, any non-pointer,
6727	// non-interface field appearing in ForceSendFields will be sent to the
6728	// server regardless of whether the field is empty or not. This may be
6729	// used to include empty fields in Patch requests.
6730	ForceSendFields []string `json:"-"`
6731
6732	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
6733	// include in API requests with the JSON null value. By default, fields
6734	// with empty values are omitted from API requests. However, any field
6735	// with an empty value appearing in NullFields will be sent to the
6736	// server as null. It is an error if a field in this list has a
6737	// non-empty value. This may be used to include null fields in Patch
6738	// requests.
6739	NullFields []string `json:"-"`
6740}
6741
6742func (s *CustomerEncryptionKeyProtectedDisk) MarshalJSON() ([]byte, error) {
6743	type NoMethod CustomerEncryptionKeyProtectedDisk
6744	raw := NoMethod(*s)
6745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6746}
6747
6748// DeprecationStatus: Deprecation status for a public resource.
6749type DeprecationStatus struct {
6750	// Deleted: An optional RFC3339 timestamp on or after which the state of
6751	// this resource is intended to change to DELETED. This is only
6752	// informational and the status will not change unless the client
6753	// explicitly changes it.
6754	Deleted string `json:"deleted,omitempty"`
6755
6756	// Deprecated: An optional RFC3339 timestamp on or after which the state
6757	// of this resource is intended to change to DEPRECATED. This is only
6758	// informational and the status will not change unless the client
6759	// explicitly changes it.
6760	Deprecated string `json:"deprecated,omitempty"`
6761
6762	// Obsolete: An optional RFC3339 timestamp on or after which the state
6763	// of this resource is intended to change to OBSOLETE. This is only
6764	// informational and the status will not change unless the client
6765	// explicitly changes it.
6766	Obsolete string `json:"obsolete,omitempty"`
6767
6768	// Replacement: The URL of the suggested replacement for a deprecated
6769	// resource. The suggested replacement resource must be the same kind of
6770	// resource as the deprecated resource.
6771	Replacement string `json:"replacement,omitempty"`
6772
6773	// State: The deprecation state of this resource. This can be ACTIVE,
6774	// DEPRECATED, OBSOLETE, or DELETED. Operations which communicate the
6775	// end of life date for an image, can use ACTIVE. Operations which
6776	// create a new resource using a DEPRECATED resource will return
6777	// successfully, but with a warning indicating the deprecated resource
6778	// and recommending its replacement. Operations which use OBSOLETE or
6779	// DELETED resources will be rejected and result in an error.
6780	//
6781	// Possible values:
6782	//   "ACTIVE"
6783	//   "DELETED"
6784	//   "DEPRECATED"
6785	//   "OBSOLETE"
6786	State string `json:"state,omitempty"`
6787
6788	// ForceSendFields is a list of field names (e.g. "Deleted") to
6789	// unconditionally include in API requests. By default, fields with
6790	// empty values are omitted from API requests. However, any non-pointer,
6791	// non-interface field appearing in ForceSendFields will be sent to the
6792	// server regardless of whether the field is empty or not. This may be
6793	// used to include empty fields in Patch requests.
6794	ForceSendFields []string `json:"-"`
6795
6796	// NullFields is a list of field names (e.g. "Deleted") to include in
6797	// API requests with the JSON null value. By default, fields with empty
6798	// values are omitted from API requests. However, any field with an
6799	// empty value appearing in NullFields will be sent to the server as
6800	// null. It is an error if a field in this list has a non-empty value.
6801	// This may be used to include null fields in Patch requests.
6802	NullFields []string `json:"-"`
6803}
6804
6805func (s *DeprecationStatus) MarshalJSON() ([]byte, error) {
6806	type NoMethod DeprecationStatus
6807	raw := NoMethod(*s)
6808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
6809}
6810
6811// Disk: Represents a Persistent Disk resource.
6812//
6813// Google Compute Engine has two Disk resources:
6814//
6815// * [Global](/compute/docs/reference/rest/latest/disks) *
6816// [Regional](/compute/docs/reference/rest/latest/regionDisks)
6817//
6818// Persisten
6819// t disks are required for running your VM instances. Create both boot
6820// and non-boot (data) persistent disks. For more information, read
6821// Persistent Disks. For more storage options, read Storage
6822// options.
6823//
6824// The disks resource represents a zonal persistent disk. For more
6825// information, read Zonal persistent disks.
6826//
6827// The regionDisks resource represents a regional persistent disk. For
6828// more information, read  Regional resources. (== resource_for
6829// {$api_version}.disks ==) (== resource_for {$api_version}.regionDisks
6830// ==)
6831type Disk struct {
6832	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
6833	// format.
6834	CreationTimestamp string `json:"creationTimestamp,omitempty"`
6835
6836	// Description: An optional description of this resource. Provide this
6837	// property when you create the resource.
6838	Description string `json:"description,omitempty"`
6839
6840	// DiskEncryptionKey: Encrypts the disk using a customer-supplied
6841	// encryption key.
6842	//
6843	// After you encrypt a disk with a customer-supplied key, you must
6844	// provide the same key if you use the disk later (e.g. to create a disk
6845	// snapshot, to create a disk image, to create a machine image, or to
6846	// attach the disk to a virtual machine).
6847	//
6848	// Customer-supplied encryption keys do not protect access to metadata
6849	// of the disk.
6850	//
6851	// If you do not provide an encryption key when creating the disk, then
6852	// the disk will be encrypted using an automatically generated key and
6853	// you do not need to provide a key to use the disk later.
6854	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
6855
6856	// EraseWindowsVssSignature: Specifies whether the disk restored from a
6857	// source snapshot should erase Windows specific VSS signature.
6858	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
6859
6860	// GuestOsFeatures: A list of features to enable on the guest operating
6861	// system. Applicable only for bootable images. Read  Enabling guest
6862	// operating system features to see a list of available options.
6863	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
6864
6865	// Id: [Output Only] The unique identifier for the resource. This
6866	// identifier is defined by the server.
6867	Id uint64 `json:"id,omitempty,string"`
6868
6869	// Kind: [Output Only] Type of the resource. Always compute#disk for
6870	// disks.
6871	Kind string `json:"kind,omitempty"`
6872
6873	// LabelFingerprint: A fingerprint for the labels being applied to this
6874	// disk, which is essentially a hash of the labels set used for
6875	// optimistic locking. The fingerprint is initially generated by Compute
6876	// Engine and changes after every request to modify or update labels.
6877	// You must always provide an up-to-date fingerprint hash in order to
6878	// update or change labels, otherwise the request will fail with error
6879	// 412 conditionNotMet.
6880	//
6881	// To see the latest fingerprint, make a get() request to retrieve a
6882	// disk.
6883	LabelFingerprint string `json:"labelFingerprint,omitempty"`
6884
6885	// Labels: Labels to apply to this disk. These can be later modified by
6886	// the setLabels method.
6887	Labels map[string]string `json:"labels,omitempty"`
6888
6889	// LastAttachTimestamp: [Output Only] Last attach timestamp in RFC3339
6890	// text format.
6891	LastAttachTimestamp string `json:"lastAttachTimestamp,omitempty"`
6892
6893	// LastDetachTimestamp: [Output Only] Last detach timestamp in RFC3339
6894	// text format.
6895	LastDetachTimestamp string `json:"lastDetachTimestamp,omitempty"`
6896
6897	// LicenseCodes: Integer license codes indicating which licenses are
6898	// attached to this disk.
6899	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
6900
6901	// Licenses: A list of publicly visible licenses. Reserved for Google's
6902	// use.
6903	Licenses []string `json:"licenses,omitempty"`
6904
6905	// Name: Name of the resource. Provided by the client when the resource
6906	// is created. The name must be 1-63 characters long, and comply with
6907	// RFC1035. Specifically, the name must be 1-63 characters long and
6908	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
6909	// the first character must be a lowercase letter, and all following
6910	// characters must be a dash, lowercase letter, or digit, except the
6911	// last character, which cannot be a dash.
6912	Name string `json:"name,omitempty"`
6913
6914	// Options: Internal use only.
6915	Options string `json:"options,omitempty"`
6916
6917	// PhysicalBlockSizeBytes: Physical block size of the persistent disk,
6918	// in bytes. If not present in a request, a default value is used.
6919	// Currently supported sizes are 4096 and 16384, other sizes may be
6920	// added in the future. If an unsupported value is requested, the error
6921	// message will list the supported values for the caller's project.
6922	PhysicalBlockSizeBytes int64 `json:"physicalBlockSizeBytes,omitempty,string"`
6923
6924	// Region: [Output Only] URL of the region where the disk resides. Only
6925	// applicable for regional resources. You must specify this field as
6926	// part of the HTTP request URL. It is not settable as a field in the
6927	// request body.
6928	Region string `json:"region,omitempty"`
6929
6930	// ReplicaZones: URLs of the zones where the disk should be replicated
6931	// to. Only applicable for regional resources.
6932	ReplicaZones []string `json:"replicaZones,omitempty"`
6933
6934	// ResourcePolicies: Resource policies applied to this disk for
6935	// automatic snapshot creations.
6936	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
6937
6938	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
6939	// resource.
6940	SelfLink string `json:"selfLink,omitempty"`
6941
6942	// SizeGb: Size of the persistent disk, specified in GB. You can specify
6943	// this field when creating a persistent disk using the sourceImage or
6944	// sourceSnapshot parameter, or specify it alone to create an empty
6945	// persistent disk.
6946	//
6947	// If you specify this field along with sourceImage or sourceSnapshot,
6948	// the value of sizeGb must not be less than the size of the sourceImage
6949	// or the size of the snapshot. Acceptable values are 1 to 65536,
6950	// inclusive.
6951	SizeGb int64 `json:"sizeGb,omitempty,string"`
6952
6953	// SourceImage: The source image used to create this disk. If the source
6954	// image is deleted, this field will not be set.
6955	//
6956	// To create a disk with one of the public operating system images,
6957	// specify the image by its family name. For example, specify
6958	// family/debian-9 to use the latest Debian 9
6959	// image:
6960	// projects/debian-cloud/global/images/family/debian-9
6961	//
6962	//
6963	// Alternati
6964	// vely, use a specific version of a public operating system
6965	// image:
6966	// projects/debian-cloud/global/images/debian-9-stretch-vYYYYMMDD
6967	//
6968	//
6969	//
6970	// To create a disk with a custom image that you created, specify the
6971	// image name in the following
6972	// format:
6973	// global/images/my-custom-image
6974	//
6975	//
6976	// You can also specify a custom image by its image family, which
6977	// returns the latest version of the image in that family. Replace the
6978	// image name with
6979	// family/family-name:
6980	// global/images/family/my-image-family
6981	SourceImage string `json:"sourceImage,omitempty"`
6982
6983	// SourceImageEncryptionKey: The customer-supplied encryption key of the
6984	// source image. Required if the source image is protected by a
6985	// customer-supplied encryption key.
6986	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
6987
6988	// SourceImageId: [Output Only] The ID value of the image used to create
6989	// this disk. This value identifies the exact image that was used to
6990	// create this persistent disk. For example, if you created the
6991	// persistent disk from an image that was later deleted and recreated
6992	// under the same name, the source image ID would identify the exact
6993	// version of the image that was used.
6994	SourceImageId string `json:"sourceImageId,omitempty"`
6995
6996	// SourceSnapshot: The source snapshot used to create this disk. You can
6997	// provide this as a partial or full URL to the resource. For example,
6998	// the following are valid values:
6999	// -
7000	// https://www.googleapis.com/compute/v1/projects/project/global/snapshots/snapshot
7001	// - projects/project/global/snapshots/snapshot
7002	// - global/snapshots/snapshot
7003	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
7004
7005	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
7006	// the source snapshot. Required if the source snapshot is protected by
7007	// a customer-supplied encryption key.
7008	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
7009
7010	// SourceSnapshotId: [Output Only] The unique ID of the snapshot used to
7011	// create this disk. This value identifies the exact snapshot that was
7012	// used to create this persistent disk. For example, if you created the
7013	// persistent disk from a snapshot that was later deleted and recreated
7014	// under the same name, the source snapshot ID would identify the exact
7015	// version of the snapshot that was used.
7016	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
7017
7018	// Status: [Output Only] The status of disk creation. CREATING: Disk is
7019	// provisioning. RESTORING: Source data is being copied into the disk.
7020	// FAILED: Disk creation failed. READY: Disk is ready for use. DELETING:
7021	// Disk is deleting.
7022	//
7023	// Possible values:
7024	//   "CREATING"
7025	//   "DELETING"
7026	//   "FAILED"
7027	//   "READY"
7028	//   "RESTORING"
7029	Status string `json:"status,omitempty"`
7030
7031	// StorageType: [Deprecated] Storage type of the persistent disk.
7032	//
7033	// Possible values:
7034	//   "HDD"
7035	//   "SSD"
7036	StorageType string `json:"storageType,omitempty"`
7037
7038	// Type: URL of the disk type resource describing which disk type to use
7039	// to create the disk. Provide this when creating the disk. For example:
7040	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
7041	Type string `json:"type,omitempty"`
7042
7043	// Users: [Output Only] Links to the users of the disk (attached
7044	// instances) in form: projects/project/zones/zone/instances/instance
7045	Users []string `json:"users,omitempty"`
7046
7047	// Zone: [Output Only] URL of the zone where the disk resides. You must
7048	// specify this field as part of the HTTP request URL. It is not
7049	// settable as a field in the request body.
7050	Zone string `json:"zone,omitempty"`
7051
7052	// ServerResponse contains the HTTP response code and headers from the
7053	// server.
7054	googleapi.ServerResponse `json:"-"`
7055
7056	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7057	// to 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. "CreationTimestamp") to
7065	// include in API requests with the JSON null value. By default, fields
7066	// with empty values are omitted from API requests. However, any field
7067	// with an empty value appearing in NullFields will be sent to the
7068	// server as null. It is an error if a field in this list has a
7069	// non-empty value. This may be used to include null fields in Patch
7070	// requests.
7071	NullFields []string `json:"-"`
7072}
7073
7074func (s *Disk) MarshalJSON() ([]byte, error) {
7075	type NoMethod Disk
7076	raw := NoMethod(*s)
7077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7078}
7079
7080type DiskAggregatedList struct {
7081	// Id: [Output Only] Unique identifier for the resource; defined by the
7082	// server.
7083	Id string `json:"id,omitempty"`
7084
7085	// Items: A list of DisksScopedList resources.
7086	Items map[string]DisksScopedList `json:"items,omitempty"`
7087
7088	// Kind: [Output Only] Type of resource. Always
7089	// compute#diskAggregatedList for aggregated lists of persistent disks.
7090	Kind string `json:"kind,omitempty"`
7091
7092	// NextPageToken: [Output Only] This token allows you to get the next
7093	// page of results for list requests. If the number of results is larger
7094	// than maxResults, use the nextPageToken as a value for the query
7095	// parameter pageToken in the next list request. Subsequent list
7096	// requests will have their own nextPageToken to continue paging through
7097	// the results.
7098	NextPageToken string `json:"nextPageToken,omitempty"`
7099
7100	// SelfLink: [Output Only] Server-defined URL for this resource.
7101	SelfLink string `json:"selfLink,omitempty"`
7102
7103	// Warning: [Output Only] Informational warning message.
7104	Warning *DiskAggregatedListWarning `json:"warning,omitempty"`
7105
7106	// ServerResponse contains the HTTP response code and headers from the
7107	// server.
7108	googleapi.ServerResponse `json:"-"`
7109
7110	// ForceSendFields is a list of field names (e.g. "Id") to
7111	// unconditionally include in API requests. By default, fields with
7112	// empty values are omitted from API requests. However, any non-pointer,
7113	// non-interface field appearing in ForceSendFields will be sent to the
7114	// server regardless of whether the field is empty or not. This may be
7115	// used to include empty fields in Patch requests.
7116	ForceSendFields []string `json:"-"`
7117
7118	// NullFields is a list of field names (e.g. "Id") to include in API
7119	// requests with the JSON null value. By default, fields with empty
7120	// values are omitted from API requests. However, any field with an
7121	// empty value appearing in NullFields will be sent to the server as
7122	// null. It is an error if a field in this list has a non-empty value.
7123	// This may be used to include null fields in Patch requests.
7124	NullFields []string `json:"-"`
7125}
7126
7127func (s *DiskAggregatedList) MarshalJSON() ([]byte, error) {
7128	type NoMethod DiskAggregatedList
7129	raw := NoMethod(*s)
7130	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7131}
7132
7133// DiskAggregatedListWarning: [Output Only] Informational warning
7134// message.
7135type DiskAggregatedListWarning struct {
7136	// Code: [Output Only] A warning code, if applicable. For example,
7137	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7138	// the response.
7139	//
7140	// Possible values:
7141	//   "CLEANUP_FAILED"
7142	//   "DEPRECATED_RESOURCE_USED"
7143	//   "DEPRECATED_TYPE_USED"
7144	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7145	//   "EXPERIMENTAL_TYPE_USED"
7146	//   "EXTERNAL_API_WARNING"
7147	//   "FIELD_VALUE_OVERRIDEN"
7148	//   "INJECTED_KERNELS_DEPRECATED"
7149	//   "MISSING_TYPE_DEPENDENCY"
7150	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7151	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7152	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7153	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7154	//   "NEXT_HOP_NOT_RUNNING"
7155	//   "NOT_CRITICAL_ERROR"
7156	//   "NO_RESULTS_ON_PAGE"
7157	//   "REQUIRED_TOS_AGREEMENT"
7158	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7159	//   "RESOURCE_NOT_DELETED"
7160	//   "SCHEMA_VALIDATION_IGNORED"
7161	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7162	//   "UNDECLARED_PROPERTIES"
7163	//   "UNREACHABLE"
7164	Code string `json:"code,omitempty"`
7165
7166	// Data: [Output Only] Metadata about this warning in key: value format.
7167	// For example:
7168	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7169	Data []*DiskAggregatedListWarningData `json:"data,omitempty"`
7170
7171	// Message: [Output Only] A human-readable description of the warning
7172	// code.
7173	Message string `json:"message,omitempty"`
7174
7175	// ForceSendFields is a list of field names (e.g. "Code") to
7176	// unconditionally include in API requests. By default, fields with
7177	// empty values are omitted from API requests. However, any non-pointer,
7178	// non-interface field appearing in ForceSendFields will be sent to the
7179	// server regardless of whether the field is empty or not. This may be
7180	// used to include empty fields in Patch requests.
7181	ForceSendFields []string `json:"-"`
7182
7183	// NullFields is a list of field names (e.g. "Code") to include in API
7184	// requests with the JSON null value. By default, fields with empty
7185	// values are omitted from API requests. However, any field with an
7186	// empty value appearing in NullFields will be sent to the server as
7187	// null. It is an error if a field in this list has a non-empty value.
7188	// This may be used to include null fields in Patch requests.
7189	NullFields []string `json:"-"`
7190}
7191
7192func (s *DiskAggregatedListWarning) MarshalJSON() ([]byte, error) {
7193	type NoMethod DiskAggregatedListWarning
7194	raw := NoMethod(*s)
7195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7196}
7197
7198type DiskAggregatedListWarningData struct {
7199	// Key: [Output Only] A key that provides more detail on the warning
7200	// being returned. For example, for warnings where there are no results
7201	// in a list request for a particular zone, this key might be scope and
7202	// the key value might be the zone name. Other examples might be a key
7203	// indicating a deprecated resource and a suggested replacement, or a
7204	// warning about invalid network settings (for example, if an instance
7205	// attempts to perform IP forwarding but is not enabled for IP
7206	// forwarding).
7207	Key string `json:"key,omitempty"`
7208
7209	// Value: [Output Only] A warning data value corresponding to the key.
7210	Value string `json:"value,omitempty"`
7211
7212	// ForceSendFields is a list of field names (e.g. "Key") to
7213	// unconditionally include in API requests. By default, fields with
7214	// empty values are omitted from API requests. However, any non-pointer,
7215	// non-interface field appearing in ForceSendFields will be sent to the
7216	// server regardless of whether the field is empty or not. This may be
7217	// used to include empty fields in Patch requests.
7218	ForceSendFields []string `json:"-"`
7219
7220	// NullFields is a list of field names (e.g. "Key") to include in API
7221	// requests with the JSON null value. By default, fields with empty
7222	// values are omitted from API requests. However, any field with an
7223	// empty value appearing in NullFields will be sent to the server as
7224	// null. It is an error if a field in this list has a non-empty value.
7225	// This may be used to include null fields in Patch requests.
7226	NullFields []string `json:"-"`
7227}
7228
7229func (s *DiskAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7230	type NoMethod DiskAggregatedListWarningData
7231	raw := NoMethod(*s)
7232	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7233}
7234
7235// DiskInstantiationConfig: A specification of the desired way to
7236// instantiate a disk in the instance template when its created from a
7237// source instance.
7238type DiskInstantiationConfig struct {
7239	// AutoDelete: Specifies whether the disk will be auto-deleted when the
7240	// instance is deleted (but not when the disk is detached from the
7241	// instance).
7242	AutoDelete bool `json:"autoDelete,omitempty"`
7243
7244	// CustomImage: The custom source image to be used to restore this disk
7245	// when instantiating this instance template.
7246	CustomImage string `json:"customImage,omitempty"`
7247
7248	// DeviceName: Specifies the device name of the disk to which the
7249	// configurations apply to.
7250	DeviceName string `json:"deviceName,omitempty"`
7251
7252	// InstantiateFrom: Specifies whether to include the disk and what image
7253	// to use. Possible values are:
7254	// - source-image: to use the same image that was used to create the
7255	// source instance's corresponding disk. Applicable to the boot disk and
7256	// additional read-write disks.
7257	// - source-image-family: to use the same image family that was used to
7258	// create the source instance's corresponding disk. Applicable to the
7259	// boot disk and additional read-write disks.
7260	// - custom-image: to use a user-provided image url for disk creation.
7261	// Applicable to the boot disk and additional read-write disks.
7262	// - attach-read-only: to attach a read-only disk. Applicable to
7263	// read-only disks.
7264	// - do-not-include: to exclude a disk from the template. Applicable to
7265	// additional read-write disks, local SSDs, and read-only disks.
7266	//
7267	// Possible values:
7268	//   "ATTACH_READ_ONLY"
7269	//   "BLANK"
7270	//   "CUSTOM_IMAGE"
7271	//   "DEFAULT"
7272	//   "DO_NOT_INCLUDE"
7273	//   "SOURCE_IMAGE"
7274	//   "SOURCE_IMAGE_FAMILY"
7275	InstantiateFrom string `json:"instantiateFrom,omitempty"`
7276
7277	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
7278	// unconditionally include in API requests. By default, fields with
7279	// empty values are omitted from API requests. However, any non-pointer,
7280	// non-interface field appearing in ForceSendFields will be sent to the
7281	// server regardless of whether the field is empty or not. This may be
7282	// used to include empty fields in Patch requests.
7283	ForceSendFields []string `json:"-"`
7284
7285	// NullFields is a list of field names (e.g. "AutoDelete") to include in
7286	// API requests with the JSON null value. By default, fields with empty
7287	// values are omitted from API requests. However, any field with an
7288	// empty value appearing in NullFields will be sent to the server as
7289	// null. It is an error if a field in this list has a non-empty value.
7290	// This may be used to include null fields in Patch requests.
7291	NullFields []string `json:"-"`
7292}
7293
7294func (s *DiskInstantiationConfig) MarshalJSON() ([]byte, error) {
7295	type NoMethod DiskInstantiationConfig
7296	raw := NoMethod(*s)
7297	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7298}
7299
7300// DiskList: A list of Disk resources.
7301type DiskList struct {
7302	// Id: [Output Only] Unique identifier for the resource; defined by the
7303	// server.
7304	Id string `json:"id,omitempty"`
7305
7306	// Items: A list of Disk resources.
7307	Items []*Disk `json:"items,omitempty"`
7308
7309	// Kind: [Output Only] Type of resource. Always compute#diskList for
7310	// lists of disks.
7311	Kind string `json:"kind,omitempty"`
7312
7313	// NextPageToken: [Output Only] This token allows you to get the next
7314	// page of results for list requests. If the number of results is larger
7315	// than maxResults, use the nextPageToken as a value for the query
7316	// parameter pageToken in the next list request. Subsequent list
7317	// requests will have their own nextPageToken to continue paging through
7318	// the results.
7319	NextPageToken string `json:"nextPageToken,omitempty"`
7320
7321	// SelfLink: [Output Only] Server-defined URL for this resource.
7322	SelfLink string `json:"selfLink,omitempty"`
7323
7324	// Warning: [Output Only] Informational warning message.
7325	Warning *DiskListWarning `json:"warning,omitempty"`
7326
7327	// ServerResponse contains the HTTP response code and headers from the
7328	// server.
7329	googleapi.ServerResponse `json:"-"`
7330
7331	// ForceSendFields is a list of field names (e.g. "Id") to
7332	// unconditionally include in API requests. By default, fields with
7333	// empty values are omitted from API requests. However, any non-pointer,
7334	// non-interface field appearing in ForceSendFields will be sent to the
7335	// server regardless of whether the field is empty or not. This may be
7336	// used to include empty fields in Patch requests.
7337	ForceSendFields []string `json:"-"`
7338
7339	// NullFields is a list of field names (e.g. "Id") to include in API
7340	// requests with the JSON null value. By default, fields with empty
7341	// values are omitted from API requests. However, any field with an
7342	// empty value appearing in NullFields will be sent to the server as
7343	// null. It is an error if a field in this list has a non-empty value.
7344	// This may be used to include null fields in Patch requests.
7345	NullFields []string `json:"-"`
7346}
7347
7348func (s *DiskList) MarshalJSON() ([]byte, error) {
7349	type NoMethod DiskList
7350	raw := NoMethod(*s)
7351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7352}
7353
7354// DiskListWarning: [Output Only] Informational warning message.
7355type DiskListWarning struct {
7356	// Code: [Output Only] A warning code, if applicable. For example,
7357	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7358	// the response.
7359	//
7360	// Possible values:
7361	//   "CLEANUP_FAILED"
7362	//   "DEPRECATED_RESOURCE_USED"
7363	//   "DEPRECATED_TYPE_USED"
7364	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7365	//   "EXPERIMENTAL_TYPE_USED"
7366	//   "EXTERNAL_API_WARNING"
7367	//   "FIELD_VALUE_OVERRIDEN"
7368	//   "INJECTED_KERNELS_DEPRECATED"
7369	//   "MISSING_TYPE_DEPENDENCY"
7370	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7371	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7372	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7373	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7374	//   "NEXT_HOP_NOT_RUNNING"
7375	//   "NOT_CRITICAL_ERROR"
7376	//   "NO_RESULTS_ON_PAGE"
7377	//   "REQUIRED_TOS_AGREEMENT"
7378	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7379	//   "RESOURCE_NOT_DELETED"
7380	//   "SCHEMA_VALIDATION_IGNORED"
7381	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7382	//   "UNDECLARED_PROPERTIES"
7383	//   "UNREACHABLE"
7384	Code string `json:"code,omitempty"`
7385
7386	// Data: [Output Only] Metadata about this warning in key: value format.
7387	// For example:
7388	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7389	Data []*DiskListWarningData `json:"data,omitempty"`
7390
7391	// Message: [Output Only] A human-readable description of the warning
7392	// code.
7393	Message string `json:"message,omitempty"`
7394
7395	// ForceSendFields is a list of field names (e.g. "Code") to
7396	// unconditionally include in API requests. By default, fields with
7397	// empty values are omitted from API requests. However, any non-pointer,
7398	// non-interface field appearing in ForceSendFields will be sent to the
7399	// server regardless of whether the field is empty or not. This may be
7400	// used to include empty fields in Patch requests.
7401	ForceSendFields []string `json:"-"`
7402
7403	// NullFields is a list of field names (e.g. "Code") to include in API
7404	// requests with the JSON null value. By default, fields with empty
7405	// values are omitted from API requests. However, any field with an
7406	// empty value appearing in NullFields will be sent to the server as
7407	// null. It is an error if a field in this list has a non-empty value.
7408	// This may be used to include null fields in Patch requests.
7409	NullFields []string `json:"-"`
7410}
7411
7412func (s *DiskListWarning) MarshalJSON() ([]byte, error) {
7413	type NoMethod DiskListWarning
7414	raw := NoMethod(*s)
7415	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7416}
7417
7418type DiskListWarningData struct {
7419	// Key: [Output Only] A key that provides more detail on the warning
7420	// being returned. For example, for warnings where there are no results
7421	// in a list request for a particular zone, this key might be scope and
7422	// the key value might be the zone name. Other examples might be a key
7423	// indicating a deprecated resource and a suggested replacement, or a
7424	// warning about invalid network settings (for example, if an instance
7425	// attempts to perform IP forwarding but is not enabled for IP
7426	// forwarding).
7427	Key string `json:"key,omitempty"`
7428
7429	// Value: [Output Only] A warning data value corresponding to the key.
7430	Value string `json:"value,omitempty"`
7431
7432	// ForceSendFields is a list of field names (e.g. "Key") to
7433	// unconditionally include in API requests. By default, fields with
7434	// empty values are omitted from API requests. However, any non-pointer,
7435	// non-interface field appearing in ForceSendFields will be sent to the
7436	// server regardless of whether the field is empty or not. This may be
7437	// used to include empty fields in Patch requests.
7438	ForceSendFields []string `json:"-"`
7439
7440	// NullFields is a list of field names (e.g. "Key") to include in API
7441	// requests with the JSON null value. By default, fields with empty
7442	// values are omitted from API requests. However, any field with an
7443	// empty value appearing in NullFields will be sent to the server as
7444	// null. It is an error if a field in this list has a non-empty value.
7445	// This may be used to include null fields in Patch requests.
7446	NullFields []string `json:"-"`
7447}
7448
7449func (s *DiskListWarningData) MarshalJSON() ([]byte, error) {
7450	type NoMethod DiskListWarningData
7451	raw := NoMethod(*s)
7452	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7453}
7454
7455type DiskMoveRequest struct {
7456	// DestinationZone: The URL of the destination zone to move the disk.
7457	// This can be a full or partial URL. For example, the following are all
7458	// valid URLs to a zone:
7459	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
7460	//
7461	// - projects/project/zones/zone
7462	// - zones/zone
7463	DestinationZone string `json:"destinationZone,omitempty"`
7464
7465	// TargetDisk: The URL of the target disk to move. This can be a full or
7466	// partial URL. For example, the following are all valid URLs to a disk:
7467	//
7468	// -
7469	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
7470	// - projects/project/zones/zone/disks/disk
7471	// - zones/zone/disks/disk
7472	TargetDisk string `json:"targetDisk,omitempty"`
7473
7474	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
7475	// unconditionally include in API requests. By default, fields with
7476	// empty values are omitted from API requests. However, any non-pointer,
7477	// non-interface field appearing in ForceSendFields will be sent to the
7478	// server regardless of whether the field is empty or not. This may be
7479	// used to include empty fields in Patch requests.
7480	ForceSendFields []string `json:"-"`
7481
7482	// NullFields is a list of field names (e.g. "DestinationZone") to
7483	// include in API requests with the JSON null value. By default, fields
7484	// with empty values are omitted from API requests. However, any field
7485	// with an empty value appearing in NullFields will be sent to the
7486	// server as null. It is an error if a field in this list has a
7487	// non-empty value. This may be used to include null fields in Patch
7488	// requests.
7489	NullFields []string `json:"-"`
7490}
7491
7492func (s *DiskMoveRequest) MarshalJSON() ([]byte, error) {
7493	type NoMethod DiskMoveRequest
7494	raw := NoMethod(*s)
7495	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7496}
7497
7498// DiskType: Represents a Disk Type resource.
7499//
7500// Google Compute Engine has two Disk Type resources:
7501//
7502// * [Global](/compute/docs/reference/rest/latest/diskTypes) *
7503// [Regional](/compute/docs/reference/rest/latest/regionDiskTypes)
7504//
7505// You can choose from a variety of disk types based on your needs. For
7506// more information, read Storage options.
7507//
7508// The diskTypes resource represents disk types for a zonal persistent
7509// disk. For more information, read Zonal persistent disks.
7510//
7511// The regionDiskTypes resource represents disk types for a regional
7512// persistent disk. For more information, read Regional persistent
7513// disks. (== resource_for {$api_version}.diskTypes ==) (== resource_for
7514// {$api_version}.regionDiskTypes ==)
7515type DiskType struct {
7516	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
7517	// format.
7518	CreationTimestamp string `json:"creationTimestamp,omitempty"`
7519
7520	// DefaultDiskSizeGb: [Output Only] Server-defined default disk size in
7521	// GB.
7522	DefaultDiskSizeGb int64 `json:"defaultDiskSizeGb,omitempty,string"`
7523
7524	// Deprecated: [Output Only] The deprecation status associated with this
7525	// disk type.
7526	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
7527
7528	// Description: [Output Only] An optional description of this resource.
7529	Description string `json:"description,omitempty"`
7530
7531	// Id: [Output Only] The unique identifier for the resource. This
7532	// identifier is defined by the server.
7533	Id uint64 `json:"id,omitempty,string"`
7534
7535	// Kind: [Output Only] Type of the resource. Always compute#diskType for
7536	// disk types.
7537	Kind string `json:"kind,omitempty"`
7538
7539	// Name: [Output Only] Name of the resource.
7540	Name string `json:"name,omitempty"`
7541
7542	// Region: [Output Only] URL of the region where the disk type resides.
7543	// Only applicable for regional resources. You must specify this field
7544	// as part of the HTTP request URL. It is not settable as a field in the
7545	// request body.
7546	Region string `json:"region,omitempty"`
7547
7548	// SelfLink: [Output Only] Server-defined URL for the resource.
7549	SelfLink string `json:"selfLink,omitempty"`
7550
7551	// ValidDiskSize: [Output Only] An optional textual description of the
7552	// valid disk size, such as "10GB-10TB".
7553	ValidDiskSize string `json:"validDiskSize,omitempty"`
7554
7555	// Zone: [Output Only] URL of the zone where the disk type resides. You
7556	// must specify this field as part of the HTTP request URL. It is not
7557	// settable as a field in the request body.
7558	Zone string `json:"zone,omitempty"`
7559
7560	// ServerResponse contains the HTTP response code and headers from the
7561	// server.
7562	googleapi.ServerResponse `json:"-"`
7563
7564	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
7565	// to unconditionally include in API requests. By default, fields with
7566	// empty values are omitted from API requests. However, any non-pointer,
7567	// non-interface field appearing in ForceSendFields will be sent to the
7568	// server regardless of whether the field is empty or not. This may be
7569	// used to include empty fields in Patch requests.
7570	ForceSendFields []string `json:"-"`
7571
7572	// NullFields is a list of field names (e.g. "CreationTimestamp") to
7573	// include in API requests with the JSON null value. By default, fields
7574	// with empty values are omitted from API requests. However, any field
7575	// with an empty value appearing in NullFields will be sent to the
7576	// server as null. It is an error if a field in this list has a
7577	// non-empty value. This may be used to include null fields in Patch
7578	// requests.
7579	NullFields []string `json:"-"`
7580}
7581
7582func (s *DiskType) MarshalJSON() ([]byte, error) {
7583	type NoMethod DiskType
7584	raw := NoMethod(*s)
7585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7586}
7587
7588type DiskTypeAggregatedList struct {
7589	// Id: [Output Only] Unique identifier for the resource; defined by the
7590	// server.
7591	Id string `json:"id,omitempty"`
7592
7593	// Items: A list of DiskTypesScopedList resources.
7594	Items map[string]DiskTypesScopedList `json:"items,omitempty"`
7595
7596	// Kind: [Output Only] Type of resource. Always
7597	// compute#diskTypeAggregatedList.
7598	Kind string `json:"kind,omitempty"`
7599
7600	// NextPageToken: [Output Only] This token allows you to get the next
7601	// page of results for list requests. If the number of results is larger
7602	// than maxResults, use the nextPageToken as a value for the query
7603	// parameter pageToken in the next list request. Subsequent list
7604	// requests will have their own nextPageToken to continue paging through
7605	// the results.
7606	NextPageToken string `json:"nextPageToken,omitempty"`
7607
7608	// SelfLink: [Output Only] Server-defined URL for this resource.
7609	SelfLink string `json:"selfLink,omitempty"`
7610
7611	// Warning: [Output Only] Informational warning message.
7612	Warning *DiskTypeAggregatedListWarning `json:"warning,omitempty"`
7613
7614	// ServerResponse contains the HTTP response code and headers from the
7615	// server.
7616	googleapi.ServerResponse `json:"-"`
7617
7618	// ForceSendFields is a list of field names (e.g. "Id") to
7619	// unconditionally include in API requests. By default, fields with
7620	// empty values are omitted from API requests. However, any non-pointer,
7621	// non-interface field appearing in ForceSendFields will be sent to the
7622	// server regardless of whether the field is empty or not. This may be
7623	// used to include empty fields in Patch requests.
7624	ForceSendFields []string `json:"-"`
7625
7626	// NullFields is a list of field names (e.g. "Id") to include in API
7627	// requests with the JSON null value. By default, fields with empty
7628	// values are omitted from API requests. However, any field with an
7629	// empty value appearing in NullFields will be sent to the server as
7630	// null. It is an error if a field in this list has a non-empty value.
7631	// This may be used to include null fields in Patch requests.
7632	NullFields []string `json:"-"`
7633}
7634
7635func (s *DiskTypeAggregatedList) MarshalJSON() ([]byte, error) {
7636	type NoMethod DiskTypeAggregatedList
7637	raw := NoMethod(*s)
7638	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7639}
7640
7641// DiskTypeAggregatedListWarning: [Output Only] Informational warning
7642// message.
7643type DiskTypeAggregatedListWarning struct {
7644	// Code: [Output Only] A warning code, if applicable. For example,
7645	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7646	// the response.
7647	//
7648	// Possible values:
7649	//   "CLEANUP_FAILED"
7650	//   "DEPRECATED_RESOURCE_USED"
7651	//   "DEPRECATED_TYPE_USED"
7652	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7653	//   "EXPERIMENTAL_TYPE_USED"
7654	//   "EXTERNAL_API_WARNING"
7655	//   "FIELD_VALUE_OVERRIDEN"
7656	//   "INJECTED_KERNELS_DEPRECATED"
7657	//   "MISSING_TYPE_DEPENDENCY"
7658	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7659	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7660	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7661	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7662	//   "NEXT_HOP_NOT_RUNNING"
7663	//   "NOT_CRITICAL_ERROR"
7664	//   "NO_RESULTS_ON_PAGE"
7665	//   "REQUIRED_TOS_AGREEMENT"
7666	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7667	//   "RESOURCE_NOT_DELETED"
7668	//   "SCHEMA_VALIDATION_IGNORED"
7669	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7670	//   "UNDECLARED_PROPERTIES"
7671	//   "UNREACHABLE"
7672	Code string `json:"code,omitempty"`
7673
7674	// Data: [Output Only] Metadata about this warning in key: value format.
7675	// For example:
7676	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7677	Data []*DiskTypeAggregatedListWarningData `json:"data,omitempty"`
7678
7679	// Message: [Output Only] A human-readable description of the warning
7680	// code.
7681	Message string `json:"message,omitempty"`
7682
7683	// ForceSendFields is a list of field names (e.g. "Code") to
7684	// unconditionally include in API requests. By default, fields with
7685	// empty values are omitted from API requests. However, any non-pointer,
7686	// non-interface field appearing in ForceSendFields will be sent to the
7687	// server regardless of whether the field is empty or not. This may be
7688	// used to include empty fields in Patch requests.
7689	ForceSendFields []string `json:"-"`
7690
7691	// NullFields is a list of field names (e.g. "Code") to include in API
7692	// requests with the JSON null value. By default, fields with empty
7693	// values are omitted from API requests. However, any field with an
7694	// empty value appearing in NullFields will be sent to the server as
7695	// null. It is an error if a field in this list has a non-empty value.
7696	// This may be used to include null fields in Patch requests.
7697	NullFields []string `json:"-"`
7698}
7699
7700func (s *DiskTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
7701	type NoMethod DiskTypeAggregatedListWarning
7702	raw := NoMethod(*s)
7703	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7704}
7705
7706type DiskTypeAggregatedListWarningData struct {
7707	// Key: [Output Only] A key that provides more detail on the warning
7708	// being returned. For example, for warnings where there are no results
7709	// in a list request for a particular zone, this key might be scope and
7710	// the key value might be the zone name. Other examples might be a key
7711	// indicating a deprecated resource and a suggested replacement, or a
7712	// warning about invalid network settings (for example, if an instance
7713	// attempts to perform IP forwarding but is not enabled for IP
7714	// forwarding).
7715	Key string `json:"key,omitempty"`
7716
7717	// Value: [Output Only] A warning data value corresponding to the key.
7718	Value string `json:"value,omitempty"`
7719
7720	// ForceSendFields is a list of field names (e.g. "Key") to
7721	// unconditionally include in API requests. By default, fields with
7722	// empty values are omitted from API requests. However, any non-pointer,
7723	// non-interface field appearing in ForceSendFields will be sent to the
7724	// server regardless of whether the field is empty or not. This may be
7725	// used to include empty fields in Patch requests.
7726	ForceSendFields []string `json:"-"`
7727
7728	// NullFields is a list of field names (e.g. "Key") to include in API
7729	// requests with the JSON null value. By default, fields with empty
7730	// values are omitted from API requests. However, any field with an
7731	// empty value appearing in NullFields will be sent to the server as
7732	// null. It is an error if a field in this list has a non-empty value.
7733	// This may be used to include null fields in Patch requests.
7734	NullFields []string `json:"-"`
7735}
7736
7737func (s *DiskTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
7738	type NoMethod DiskTypeAggregatedListWarningData
7739	raw := NoMethod(*s)
7740	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7741}
7742
7743// DiskTypeList: Contains a list of disk types.
7744type DiskTypeList struct {
7745	// Id: [Output Only] Unique identifier for the resource; defined by the
7746	// server.
7747	Id string `json:"id,omitempty"`
7748
7749	// Items: A list of DiskType resources.
7750	Items []*DiskType `json:"items,omitempty"`
7751
7752	// Kind: [Output Only] Type of resource. Always compute#diskTypeList for
7753	// disk types.
7754	Kind string `json:"kind,omitempty"`
7755
7756	// NextPageToken: [Output Only] This token allows you to get the next
7757	// page of results for list requests. If the number of results is larger
7758	// than maxResults, use the nextPageToken as a value for the query
7759	// parameter pageToken in the next list request. Subsequent list
7760	// requests will have their own nextPageToken to continue paging through
7761	// the results.
7762	NextPageToken string `json:"nextPageToken,omitempty"`
7763
7764	// SelfLink: [Output Only] Server-defined URL for this resource.
7765	SelfLink string `json:"selfLink,omitempty"`
7766
7767	// Warning: [Output Only] Informational warning message.
7768	Warning *DiskTypeListWarning `json:"warning,omitempty"`
7769
7770	// ServerResponse contains the HTTP response code and headers from the
7771	// server.
7772	googleapi.ServerResponse `json:"-"`
7773
7774	// ForceSendFields is a list of field names (e.g. "Id") to
7775	// unconditionally include in API requests. By default, fields with
7776	// empty values are omitted from API requests. However, any non-pointer,
7777	// non-interface field appearing in ForceSendFields will be sent to the
7778	// server regardless of whether the field is empty or not. This may be
7779	// used to include empty fields in Patch requests.
7780	ForceSendFields []string `json:"-"`
7781
7782	// NullFields is a list of field names (e.g. "Id") to include in API
7783	// requests with the JSON null value. By default, fields with empty
7784	// values are omitted from API requests. However, any field with an
7785	// empty value appearing in NullFields will be sent to the server as
7786	// null. It is an error if a field in this list has a non-empty value.
7787	// This may be used to include null fields in Patch requests.
7788	NullFields []string `json:"-"`
7789}
7790
7791func (s *DiskTypeList) MarshalJSON() ([]byte, error) {
7792	type NoMethod DiskTypeList
7793	raw := NoMethod(*s)
7794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7795}
7796
7797// DiskTypeListWarning: [Output Only] Informational warning message.
7798type DiskTypeListWarning struct {
7799	// Code: [Output Only] A warning code, if applicable. For example,
7800	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7801	// the response.
7802	//
7803	// Possible values:
7804	//   "CLEANUP_FAILED"
7805	//   "DEPRECATED_RESOURCE_USED"
7806	//   "DEPRECATED_TYPE_USED"
7807	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7808	//   "EXPERIMENTAL_TYPE_USED"
7809	//   "EXTERNAL_API_WARNING"
7810	//   "FIELD_VALUE_OVERRIDEN"
7811	//   "INJECTED_KERNELS_DEPRECATED"
7812	//   "MISSING_TYPE_DEPENDENCY"
7813	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7814	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7815	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7816	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7817	//   "NEXT_HOP_NOT_RUNNING"
7818	//   "NOT_CRITICAL_ERROR"
7819	//   "NO_RESULTS_ON_PAGE"
7820	//   "REQUIRED_TOS_AGREEMENT"
7821	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7822	//   "RESOURCE_NOT_DELETED"
7823	//   "SCHEMA_VALIDATION_IGNORED"
7824	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7825	//   "UNDECLARED_PROPERTIES"
7826	//   "UNREACHABLE"
7827	Code string `json:"code,omitempty"`
7828
7829	// Data: [Output Only] Metadata about this warning in key: value format.
7830	// For example:
7831	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7832	Data []*DiskTypeListWarningData `json:"data,omitempty"`
7833
7834	// Message: [Output Only] A human-readable description of the warning
7835	// code.
7836	Message string `json:"message,omitempty"`
7837
7838	// ForceSendFields is a list of field names (e.g. "Code") to
7839	// unconditionally include in API requests. By default, fields with
7840	// empty values are omitted from API requests. However, any non-pointer,
7841	// non-interface field appearing in ForceSendFields will be sent to the
7842	// server regardless of whether the field is empty or not. This may be
7843	// used to include empty fields in Patch requests.
7844	ForceSendFields []string `json:"-"`
7845
7846	// NullFields is a list of field names (e.g. "Code") to include in API
7847	// requests with the JSON null value. By default, fields with empty
7848	// values are omitted from API requests. However, any field with an
7849	// empty value appearing in NullFields will be sent to the server as
7850	// null. It is an error if a field in this list has a non-empty value.
7851	// This may be used to include null fields in Patch requests.
7852	NullFields []string `json:"-"`
7853}
7854
7855func (s *DiskTypeListWarning) MarshalJSON() ([]byte, error) {
7856	type NoMethod DiskTypeListWarning
7857	raw := NoMethod(*s)
7858	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7859}
7860
7861type DiskTypeListWarningData struct {
7862	// Key: [Output Only] A key that provides more detail on the warning
7863	// being returned. For example, for warnings where there are no results
7864	// in a list request for a particular zone, this key might be scope and
7865	// the key value might be the zone name. Other examples might be a key
7866	// indicating a deprecated resource and a suggested replacement, or a
7867	// warning about invalid network settings (for example, if an instance
7868	// attempts to perform IP forwarding but is not enabled for IP
7869	// forwarding).
7870	Key string `json:"key,omitempty"`
7871
7872	// Value: [Output Only] A warning data value corresponding to the key.
7873	Value string `json:"value,omitempty"`
7874
7875	// ForceSendFields is a list of field names (e.g. "Key") to
7876	// unconditionally include in API requests. By default, fields with
7877	// empty values are omitted from API requests. However, any non-pointer,
7878	// non-interface field appearing in ForceSendFields will be sent to the
7879	// server regardless of whether the field is empty or not. This may be
7880	// used to include empty fields in Patch requests.
7881	ForceSendFields []string `json:"-"`
7882
7883	// NullFields is a list of field names (e.g. "Key") to include in API
7884	// requests with the JSON null value. By default, fields with empty
7885	// values are omitted from API requests. However, any field with an
7886	// empty value appearing in NullFields will be sent to the server as
7887	// null. It is an error if a field in this list has a non-empty value.
7888	// This may be used to include null fields in Patch requests.
7889	NullFields []string `json:"-"`
7890}
7891
7892func (s *DiskTypeListWarningData) MarshalJSON() ([]byte, error) {
7893	type NoMethod DiskTypeListWarningData
7894	raw := NoMethod(*s)
7895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7896}
7897
7898type DiskTypesScopedList struct {
7899	// DiskTypes: [Output Only] A list of disk types contained in this
7900	// scope.
7901	DiskTypes []*DiskType `json:"diskTypes,omitempty"`
7902
7903	// Warning: [Output Only] Informational warning which replaces the list
7904	// of disk types when the list is empty.
7905	Warning *DiskTypesScopedListWarning `json:"warning,omitempty"`
7906
7907	// ForceSendFields is a list of field names (e.g. "DiskTypes") to
7908	// unconditionally include in API requests. By default, fields with
7909	// empty values are omitted from API requests. However, any non-pointer,
7910	// non-interface field appearing in ForceSendFields will be sent to the
7911	// server regardless of whether the field is empty or not. This may be
7912	// used to include empty fields in Patch requests.
7913	ForceSendFields []string `json:"-"`
7914
7915	// NullFields is a list of field names (e.g. "DiskTypes") to include in
7916	// API requests with the JSON null value. By default, fields with empty
7917	// values are omitted from API requests. However, any field with an
7918	// empty value appearing in NullFields will be sent to the server as
7919	// null. It is an error if a field in this list has a non-empty value.
7920	// This may be used to include null fields in Patch requests.
7921	NullFields []string `json:"-"`
7922}
7923
7924func (s *DiskTypesScopedList) MarshalJSON() ([]byte, error) {
7925	type NoMethod DiskTypesScopedList
7926	raw := NoMethod(*s)
7927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7928}
7929
7930// DiskTypesScopedListWarning: [Output Only] Informational warning which
7931// replaces the list of disk types when the list is empty.
7932type DiskTypesScopedListWarning struct {
7933	// Code: [Output Only] A warning code, if applicable. For example,
7934	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
7935	// the response.
7936	//
7937	// Possible values:
7938	//   "CLEANUP_FAILED"
7939	//   "DEPRECATED_RESOURCE_USED"
7940	//   "DEPRECATED_TYPE_USED"
7941	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
7942	//   "EXPERIMENTAL_TYPE_USED"
7943	//   "EXTERNAL_API_WARNING"
7944	//   "FIELD_VALUE_OVERRIDEN"
7945	//   "INJECTED_KERNELS_DEPRECATED"
7946	//   "MISSING_TYPE_DEPENDENCY"
7947	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
7948	//   "NEXT_HOP_CANNOT_IP_FORWARD"
7949	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
7950	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
7951	//   "NEXT_HOP_NOT_RUNNING"
7952	//   "NOT_CRITICAL_ERROR"
7953	//   "NO_RESULTS_ON_PAGE"
7954	//   "REQUIRED_TOS_AGREEMENT"
7955	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
7956	//   "RESOURCE_NOT_DELETED"
7957	//   "SCHEMA_VALIDATION_IGNORED"
7958	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
7959	//   "UNDECLARED_PROPERTIES"
7960	//   "UNREACHABLE"
7961	Code string `json:"code,omitempty"`
7962
7963	// Data: [Output Only] Metadata about this warning in key: value format.
7964	// For example:
7965	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
7966	Data []*DiskTypesScopedListWarningData `json:"data,omitempty"`
7967
7968	// Message: [Output Only] A human-readable description of the warning
7969	// code.
7970	Message string `json:"message,omitempty"`
7971
7972	// ForceSendFields is a list of field names (e.g. "Code") to
7973	// unconditionally include in API requests. By default, fields with
7974	// empty values are omitted from API requests. However, any non-pointer,
7975	// non-interface field appearing in ForceSendFields will be sent to the
7976	// server regardless of whether the field is empty or not. This may be
7977	// used to include empty fields in Patch requests.
7978	ForceSendFields []string `json:"-"`
7979
7980	// NullFields is a list of field names (e.g. "Code") to include in API
7981	// requests with the JSON null value. By default, fields with empty
7982	// values are omitted from API requests. However, any field with an
7983	// empty value appearing in NullFields will be sent to the server as
7984	// null. It is an error if a field in this list has a non-empty value.
7985	// This may be used to include null fields in Patch requests.
7986	NullFields []string `json:"-"`
7987}
7988
7989func (s *DiskTypesScopedListWarning) MarshalJSON() ([]byte, error) {
7990	type NoMethod DiskTypesScopedListWarning
7991	raw := NoMethod(*s)
7992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
7993}
7994
7995type DiskTypesScopedListWarningData struct {
7996	// Key: [Output Only] A key that provides more detail on the warning
7997	// being returned. For example, for warnings where there are no results
7998	// in a list request for a particular zone, this key might be scope and
7999	// the key value might be the zone name. Other examples might be a key
8000	// indicating a deprecated resource and a suggested replacement, or a
8001	// warning about invalid network settings (for example, if an instance
8002	// attempts to perform IP forwarding but is not enabled for IP
8003	// forwarding).
8004	Key string `json:"key,omitempty"`
8005
8006	// Value: [Output Only] A warning data value corresponding to the key.
8007	Value string `json:"value,omitempty"`
8008
8009	// ForceSendFields is a list of field names (e.g. "Key") to
8010	// unconditionally include in API requests. By default, fields with
8011	// empty values are omitted from API requests. However, any non-pointer,
8012	// non-interface field appearing in ForceSendFields will be sent to the
8013	// server regardless of whether the field is empty or not. This may be
8014	// used to include empty fields in Patch requests.
8015	ForceSendFields []string `json:"-"`
8016
8017	// NullFields is a list of field names (e.g. "Key") to include in API
8018	// requests with the JSON null value. By default, fields with empty
8019	// values are omitted from API requests. However, any field with an
8020	// empty value appearing in NullFields will be sent to the server as
8021	// null. It is an error if a field in this list has a non-empty value.
8022	// This may be used to include null fields in Patch requests.
8023	NullFields []string `json:"-"`
8024}
8025
8026func (s *DiskTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
8027	type NoMethod DiskTypesScopedListWarningData
8028	raw := NoMethod(*s)
8029	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8030}
8031
8032type DisksAddResourcePoliciesRequest struct {
8033	// ResourcePolicies: Resource policies to be added to this disk.
8034	// Currently you can only specify one policy here.
8035	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8036
8037	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8038	// unconditionally include in API requests. By default, fields with
8039	// empty values are omitted from API requests. However, any non-pointer,
8040	// non-interface field appearing in ForceSendFields will be sent to the
8041	// server regardless of whether the field is empty or not. This may be
8042	// used to include empty fields in Patch requests.
8043	ForceSendFields []string `json:"-"`
8044
8045	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8046	// include in API requests with the JSON null value. By default, fields
8047	// with empty values are omitted from API requests. However, any field
8048	// with an empty value appearing in NullFields will be sent to the
8049	// server as null. It is an error if a field in this list has a
8050	// non-empty value. This may be used to include null fields in Patch
8051	// requests.
8052	NullFields []string `json:"-"`
8053}
8054
8055func (s *DisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8056	type NoMethod DisksAddResourcePoliciesRequest
8057	raw := NoMethod(*s)
8058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8059}
8060
8061type DisksRemoveResourcePoliciesRequest struct {
8062	// ResourcePolicies: Resource policies to be removed from this disk.
8063	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
8064
8065	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
8066	// unconditionally include in API requests. By default, fields with
8067	// empty values are omitted from API requests. However, any non-pointer,
8068	// non-interface field appearing in ForceSendFields will be sent to the
8069	// server regardless of whether the field is empty or not. This may be
8070	// used to include empty fields in Patch requests.
8071	ForceSendFields []string `json:"-"`
8072
8073	// NullFields is a list of field names (e.g. "ResourcePolicies") to
8074	// include in API requests with the JSON null value. By default, fields
8075	// with empty values are omitted from API requests. However, any field
8076	// with an empty value appearing in NullFields will be sent to the
8077	// server as null. It is an error if a field in this list has a
8078	// non-empty value. This may be used to include null fields in Patch
8079	// requests.
8080	NullFields []string `json:"-"`
8081}
8082
8083func (s *DisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
8084	type NoMethod DisksRemoveResourcePoliciesRequest
8085	raw := NoMethod(*s)
8086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8087}
8088
8089type DisksResizeRequest struct {
8090	// SizeGb: The new size of the persistent disk, which is specified in
8091	// GB.
8092	SizeGb int64 `json:"sizeGb,omitempty,string"`
8093
8094	// ForceSendFields is a list of field names (e.g. "SizeGb") to
8095	// unconditionally include in API requests. By default, fields with
8096	// empty values are omitted from API requests. However, any non-pointer,
8097	// non-interface field appearing in ForceSendFields will be sent to the
8098	// server regardless of whether the field is empty or not. This may be
8099	// used to include empty fields in Patch requests.
8100	ForceSendFields []string `json:"-"`
8101
8102	// NullFields is a list of field names (e.g. "SizeGb") to include in API
8103	// requests with the JSON null value. By default, fields with empty
8104	// values are omitted from API requests. However, any field with an
8105	// empty value appearing in NullFields will be sent to the server as
8106	// null. It is an error if a field in this list has a non-empty value.
8107	// This may be used to include null fields in Patch requests.
8108	NullFields []string `json:"-"`
8109}
8110
8111func (s *DisksResizeRequest) MarshalJSON() ([]byte, error) {
8112	type NoMethod DisksResizeRequest
8113	raw := NoMethod(*s)
8114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8115}
8116
8117type DisksScopedList struct {
8118	// Disks: [Output Only] A list of disks contained in this scope.
8119	Disks []*Disk `json:"disks,omitempty"`
8120
8121	// Warning: [Output Only] Informational warning which replaces the list
8122	// of disks when the list is empty.
8123	Warning *DisksScopedListWarning `json:"warning,omitempty"`
8124
8125	// ForceSendFields is a list of field names (e.g. "Disks") to
8126	// unconditionally include in API requests. By default, fields with
8127	// empty values are omitted from API requests. However, any non-pointer,
8128	// non-interface field appearing in ForceSendFields will be sent to the
8129	// server regardless of whether the field is empty or not. This may be
8130	// used to include empty fields in Patch requests.
8131	ForceSendFields []string `json:"-"`
8132
8133	// NullFields is a list of field names (e.g. "Disks") to include in API
8134	// requests with the JSON null value. By default, fields with empty
8135	// values are omitted from API requests. However, any field with an
8136	// empty value appearing in NullFields will be sent to the server as
8137	// null. It is an error if a field in this list has a non-empty value.
8138	// This may be used to include null fields in Patch requests.
8139	NullFields []string `json:"-"`
8140}
8141
8142func (s *DisksScopedList) MarshalJSON() ([]byte, error) {
8143	type NoMethod DisksScopedList
8144	raw := NoMethod(*s)
8145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8146}
8147
8148// DisksScopedListWarning: [Output Only] Informational warning which
8149// replaces the list of disks when the list is empty.
8150type DisksScopedListWarning struct {
8151	// Code: [Output Only] A warning code, if applicable. For example,
8152	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8153	// the response.
8154	//
8155	// Possible values:
8156	//   "CLEANUP_FAILED"
8157	//   "DEPRECATED_RESOURCE_USED"
8158	//   "DEPRECATED_TYPE_USED"
8159	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8160	//   "EXPERIMENTAL_TYPE_USED"
8161	//   "EXTERNAL_API_WARNING"
8162	//   "FIELD_VALUE_OVERRIDEN"
8163	//   "INJECTED_KERNELS_DEPRECATED"
8164	//   "MISSING_TYPE_DEPENDENCY"
8165	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8166	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8167	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8168	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8169	//   "NEXT_HOP_NOT_RUNNING"
8170	//   "NOT_CRITICAL_ERROR"
8171	//   "NO_RESULTS_ON_PAGE"
8172	//   "REQUIRED_TOS_AGREEMENT"
8173	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8174	//   "RESOURCE_NOT_DELETED"
8175	//   "SCHEMA_VALIDATION_IGNORED"
8176	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8177	//   "UNDECLARED_PROPERTIES"
8178	//   "UNREACHABLE"
8179	Code string `json:"code,omitempty"`
8180
8181	// Data: [Output Only] Metadata about this warning in key: value format.
8182	// For example:
8183	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8184	Data []*DisksScopedListWarningData `json:"data,omitempty"`
8185
8186	// Message: [Output Only] A human-readable description of the warning
8187	// code.
8188	Message string `json:"message,omitempty"`
8189
8190	// ForceSendFields is a list of field names (e.g. "Code") to
8191	// unconditionally include in API requests. By default, fields with
8192	// empty values are omitted from API requests. However, any non-pointer,
8193	// non-interface field appearing in ForceSendFields will be sent to the
8194	// server regardless of whether the field is empty or not. This may be
8195	// used to include empty fields in Patch requests.
8196	ForceSendFields []string `json:"-"`
8197
8198	// NullFields is a list of field names (e.g. "Code") to include in API
8199	// requests with the JSON null value. By default, fields with empty
8200	// values are omitted from API requests. However, any field with an
8201	// empty value appearing in NullFields will be sent to the server as
8202	// null. It is an error if a field in this list has a non-empty value.
8203	// This may be used to include null fields in Patch requests.
8204	NullFields []string `json:"-"`
8205}
8206
8207func (s *DisksScopedListWarning) MarshalJSON() ([]byte, error) {
8208	type NoMethod DisksScopedListWarning
8209	raw := NoMethod(*s)
8210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8211}
8212
8213type DisksScopedListWarningData struct {
8214	// Key: [Output Only] A key that provides more detail on the warning
8215	// being returned. For example, for warnings where there are no results
8216	// in a list request for a particular zone, this key might be scope and
8217	// the key value might be the zone name. Other examples might be a key
8218	// indicating a deprecated resource and a suggested replacement, or a
8219	// warning about invalid network settings (for example, if an instance
8220	// attempts to perform IP forwarding but is not enabled for IP
8221	// forwarding).
8222	Key string `json:"key,omitempty"`
8223
8224	// Value: [Output Only] A warning data value corresponding to the key.
8225	Value string `json:"value,omitempty"`
8226
8227	// ForceSendFields is a list of field names (e.g. "Key") to
8228	// unconditionally include in API requests. By default, fields with
8229	// empty values are omitted from API requests. However, any non-pointer,
8230	// non-interface field appearing in ForceSendFields will be sent to the
8231	// server regardless of whether the field is empty or not. This may be
8232	// used to include empty fields in Patch requests.
8233	ForceSendFields []string `json:"-"`
8234
8235	// NullFields is a list of field names (e.g. "Key") to include in API
8236	// requests with the JSON null value. By default, fields with empty
8237	// values are omitted from API requests. However, any field with an
8238	// empty value appearing in NullFields will be sent to the server as
8239	// null. It is an error if a field in this list has a non-empty value.
8240	// This may be used to include null fields in Patch requests.
8241	NullFields []string `json:"-"`
8242}
8243
8244func (s *DisksScopedListWarningData) MarshalJSON() ([]byte, error) {
8245	type NoMethod DisksScopedListWarningData
8246	raw := NoMethod(*s)
8247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8248}
8249
8250// DisplayDevice: A set of Display Device options
8251type DisplayDevice struct {
8252	// EnableDisplay: Defines whether the instance has Display enabled.
8253	EnableDisplay bool `json:"enableDisplay,omitempty"`
8254
8255	// ForceSendFields is a list of field names (e.g. "EnableDisplay") to
8256	// unconditionally include in API requests. By default, fields with
8257	// empty values are omitted from API requests. However, any non-pointer,
8258	// non-interface field appearing in ForceSendFields will be sent to the
8259	// server regardless of whether the field is empty or not. This may be
8260	// used to include empty fields in Patch requests.
8261	ForceSendFields []string `json:"-"`
8262
8263	// NullFields is a list of field names (e.g. "EnableDisplay") to include
8264	// in API requests with the JSON null value. By default, fields with
8265	// empty values are omitted from API requests. However, any field with
8266	// an empty value appearing in NullFields will be sent to the server as
8267	// null. It is an error if a field in this list has a non-empty value.
8268	// This may be used to include null fields in Patch requests.
8269	NullFields []string `json:"-"`
8270}
8271
8272func (s *DisplayDevice) MarshalJSON() ([]byte, error) {
8273	type NoMethod DisplayDevice
8274	raw := NoMethod(*s)
8275	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8276}
8277
8278type DistributionPolicy struct {
8279	// Zones: Zones where the regional managed instance group will create
8280	// and manage instances.
8281	Zones []*DistributionPolicyZoneConfiguration `json:"zones,omitempty"`
8282
8283	// ForceSendFields is a list of field names (e.g. "Zones") to
8284	// unconditionally include in API requests. By default, fields with
8285	// empty values are omitted from API requests. However, any non-pointer,
8286	// non-interface field appearing in ForceSendFields will be sent to the
8287	// server regardless of whether the field is empty or not. This may be
8288	// used to include empty fields in Patch requests.
8289	ForceSendFields []string `json:"-"`
8290
8291	// NullFields is a list of field names (e.g. "Zones") to include in API
8292	// requests with the JSON null value. By default, fields with empty
8293	// values are omitted from API requests. However, any field with an
8294	// empty value appearing in NullFields will be sent to the server as
8295	// null. It is an error if a field in this list has a non-empty value.
8296	// This may be used to include null fields in Patch requests.
8297	NullFields []string `json:"-"`
8298}
8299
8300func (s *DistributionPolicy) MarshalJSON() ([]byte, error) {
8301	type NoMethod DistributionPolicy
8302	raw := NoMethod(*s)
8303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8304}
8305
8306type DistributionPolicyZoneConfiguration struct {
8307	// Zone: The URL of the zone. The zone must exist in the region where
8308	// the managed instance group is located.
8309	Zone string `json:"zone,omitempty"`
8310
8311	// ForceSendFields is a list of field names (e.g. "Zone") to
8312	// unconditionally include in API requests. By default, fields with
8313	// empty values are omitted from API requests. However, any non-pointer,
8314	// non-interface field appearing in ForceSendFields will be sent to the
8315	// server regardless of whether the field is empty or not. This may be
8316	// used to include empty fields in Patch requests.
8317	ForceSendFields []string `json:"-"`
8318
8319	// NullFields is a list of field names (e.g. "Zone") to include in API
8320	// requests with the JSON null value. By default, fields with empty
8321	// values are omitted from API requests. However, any field with an
8322	// empty value appearing in NullFields will be sent to the server as
8323	// null. It is an error if a field in this list has a non-empty value.
8324	// This may be used to include null fields in Patch requests.
8325	NullFields []string `json:"-"`
8326}
8327
8328func (s *DistributionPolicyZoneConfiguration) MarshalJSON() ([]byte, error) {
8329	type NoMethod DistributionPolicyZoneConfiguration
8330	raw := NoMethod(*s)
8331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8332}
8333
8334// Duration: A Duration represents a fixed-length span of time
8335// represented as a count of seconds and fractions of seconds at
8336// nanosecond resolution. It is independent of any calendar and concepts
8337// like "day" or "month". Range is approximately 10,000 years.
8338type Duration struct {
8339	// Nanos: Span of time that's a fraction of a second at nanosecond
8340	// resolution. Durations less than one second are represented with a 0
8341	// `seconds` field and a positive `nanos` field. Must be from 0 to
8342	// 999,999,999 inclusive.
8343	Nanos int64 `json:"nanos,omitempty"`
8344
8345	// Seconds: Span of time at a resolution of a second. Must be from 0 to
8346	// 315,576,000,000 inclusive. Note: these bounds are computed from: 60
8347	// sec/min * 60 min/hr * 24 hr/day * 365.25 days/year * 10000 years
8348	Seconds int64 `json:"seconds,omitempty,string"`
8349
8350	// ForceSendFields is a list of field names (e.g. "Nanos") to
8351	// unconditionally include in API requests. By default, fields with
8352	// empty values are omitted from API requests. However, any non-pointer,
8353	// non-interface field appearing in ForceSendFields will be sent to the
8354	// server regardless of whether the field is empty or not. This may be
8355	// used to include empty fields in Patch requests.
8356	ForceSendFields []string `json:"-"`
8357
8358	// NullFields is a list of field names (e.g. "Nanos") to include in API
8359	// requests with the JSON null value. By default, fields with empty
8360	// values are omitted from API requests. However, any field with an
8361	// empty value appearing in NullFields will be sent to the server as
8362	// null. It is an error if a field in this list has a non-empty value.
8363	// This may be used to include null fields in Patch requests.
8364	NullFields []string `json:"-"`
8365}
8366
8367func (s *Duration) MarshalJSON() ([]byte, error) {
8368	type NoMethod Duration
8369	raw := NoMethod(*s)
8370	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8371}
8372
8373type ExchangedPeeringRoute struct {
8374	// DestRange: The destination range of the route.
8375	DestRange string `json:"destRange,omitempty"`
8376
8377	// Imported: True if the peering route has been imported from a peer.
8378	// The actual import happens if the field
8379	// networkPeering.importCustomRoutes is true for this network, and
8380	// networkPeering.exportCustomRoutes is true for the peer network, and
8381	// the import does not result in a route conflict.
8382	Imported bool `json:"imported,omitempty"`
8383
8384	// NextHopRegion: The region of peering route next hop, only applies to
8385	// dynamic routes.
8386	NextHopRegion string `json:"nextHopRegion,omitempty"`
8387
8388	// Priority: The priority of the peering route.
8389	Priority int64 `json:"priority,omitempty"`
8390
8391	// Type: The type of the peering route.
8392	//
8393	// Possible values:
8394	//   "DYNAMIC_PEERING_ROUTE"
8395	//   "STATIC_PEERING_ROUTE"
8396	//   "SUBNET_PEERING_ROUTE"
8397	Type string `json:"type,omitempty"`
8398
8399	// ForceSendFields is a list of field names (e.g. "DestRange") to
8400	// unconditionally include in API requests. By default, fields with
8401	// empty values are omitted from API requests. However, any non-pointer,
8402	// non-interface field appearing in ForceSendFields will be sent to the
8403	// server regardless of whether the field is empty or not. This may be
8404	// used to include empty fields in Patch requests.
8405	ForceSendFields []string `json:"-"`
8406
8407	// NullFields is a list of field names (e.g. "DestRange") to include in
8408	// API requests with the JSON null value. By default, fields with empty
8409	// values are omitted from API requests. However, any field with an
8410	// empty value appearing in NullFields will be sent to the server as
8411	// null. It is an error if a field in this list has a non-empty value.
8412	// This may be used to include null fields in Patch requests.
8413	NullFields []string `json:"-"`
8414}
8415
8416func (s *ExchangedPeeringRoute) MarshalJSON() ([]byte, error) {
8417	type NoMethod ExchangedPeeringRoute
8418	raw := NoMethod(*s)
8419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8420}
8421
8422type ExchangedPeeringRoutesList struct {
8423	// Id: [Output Only] Unique identifier for the resource; defined by the
8424	// server.
8425	Id string `json:"id,omitempty"`
8426
8427	// Items: A list of ExchangedPeeringRoute resources.
8428	Items []*ExchangedPeeringRoute `json:"items,omitempty"`
8429
8430	// Kind: [Output Only] Type of resource. Always
8431	// compute#exchangedPeeringRoutesList for exchanged peering routes
8432	// lists.
8433	Kind string `json:"kind,omitempty"`
8434
8435	// NextPageToken: [Output Only] This token allows you to get the next
8436	// page of results for list requests. If the number of results is larger
8437	// than maxResults, use the nextPageToken as a value for the query
8438	// parameter pageToken in the next list request. Subsequent list
8439	// requests will have their own nextPageToken to continue paging through
8440	// the results.
8441	NextPageToken string `json:"nextPageToken,omitempty"`
8442
8443	// SelfLink: [Output Only] Server-defined URL for this resource.
8444	SelfLink string `json:"selfLink,omitempty"`
8445
8446	// Warning: [Output Only] Informational warning message.
8447	Warning *ExchangedPeeringRoutesListWarning `json:"warning,omitempty"`
8448
8449	// ServerResponse contains the HTTP response code and headers from the
8450	// server.
8451	googleapi.ServerResponse `json:"-"`
8452
8453	// ForceSendFields is a list of field names (e.g. "Id") to
8454	// unconditionally include in API requests. By default, fields with
8455	// empty values are omitted from API requests. However, any non-pointer,
8456	// non-interface field appearing in ForceSendFields will be sent to the
8457	// server regardless of whether the field is empty or not. This may be
8458	// used to include empty fields in Patch requests.
8459	ForceSendFields []string `json:"-"`
8460
8461	// NullFields is a list of field names (e.g. "Id") to include in API
8462	// requests with the JSON null value. By default, fields with empty
8463	// values are omitted from API requests. However, any field with an
8464	// empty value appearing in NullFields will be sent to the server as
8465	// null. It is an error if a field in this list has a non-empty value.
8466	// This may be used to include null fields in Patch requests.
8467	NullFields []string `json:"-"`
8468}
8469
8470func (s *ExchangedPeeringRoutesList) MarshalJSON() ([]byte, error) {
8471	type NoMethod ExchangedPeeringRoutesList
8472	raw := NoMethod(*s)
8473	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8474}
8475
8476// ExchangedPeeringRoutesListWarning: [Output Only] Informational
8477// warning message.
8478type ExchangedPeeringRoutesListWarning struct {
8479	// Code: [Output Only] A warning code, if applicable. For example,
8480	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8481	// the response.
8482	//
8483	// Possible values:
8484	//   "CLEANUP_FAILED"
8485	//   "DEPRECATED_RESOURCE_USED"
8486	//   "DEPRECATED_TYPE_USED"
8487	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8488	//   "EXPERIMENTAL_TYPE_USED"
8489	//   "EXTERNAL_API_WARNING"
8490	//   "FIELD_VALUE_OVERRIDEN"
8491	//   "INJECTED_KERNELS_DEPRECATED"
8492	//   "MISSING_TYPE_DEPENDENCY"
8493	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8494	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8495	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8496	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8497	//   "NEXT_HOP_NOT_RUNNING"
8498	//   "NOT_CRITICAL_ERROR"
8499	//   "NO_RESULTS_ON_PAGE"
8500	//   "REQUIRED_TOS_AGREEMENT"
8501	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8502	//   "RESOURCE_NOT_DELETED"
8503	//   "SCHEMA_VALIDATION_IGNORED"
8504	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8505	//   "UNDECLARED_PROPERTIES"
8506	//   "UNREACHABLE"
8507	Code string `json:"code,omitempty"`
8508
8509	// Data: [Output Only] Metadata about this warning in key: value format.
8510	// For example:
8511	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8512	Data []*ExchangedPeeringRoutesListWarningData `json:"data,omitempty"`
8513
8514	// Message: [Output Only] A human-readable description of the warning
8515	// code.
8516	Message string `json:"message,omitempty"`
8517
8518	// ForceSendFields is a list of field names (e.g. "Code") to
8519	// unconditionally include in API requests. By default, fields with
8520	// empty values are omitted from API requests. However, any non-pointer,
8521	// non-interface field appearing in ForceSendFields will be sent to the
8522	// server regardless of whether the field is empty or not. This may be
8523	// used to include empty fields in Patch requests.
8524	ForceSendFields []string `json:"-"`
8525
8526	// NullFields is a list of field names (e.g. "Code") to include in API
8527	// requests with the JSON null value. By default, fields with empty
8528	// values are omitted from API requests. However, any field with an
8529	// empty value appearing in NullFields will be sent to the server as
8530	// null. It is an error if a field in this list has a non-empty value.
8531	// This may be used to include null fields in Patch requests.
8532	NullFields []string `json:"-"`
8533}
8534
8535func (s *ExchangedPeeringRoutesListWarning) MarshalJSON() ([]byte, error) {
8536	type NoMethod ExchangedPeeringRoutesListWarning
8537	raw := NoMethod(*s)
8538	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8539}
8540
8541type ExchangedPeeringRoutesListWarningData struct {
8542	// Key: [Output Only] A key that provides more detail on the warning
8543	// being returned. For example, for warnings where there are no results
8544	// in a list request for a particular zone, this key might be scope and
8545	// the key value might be the zone name. Other examples might be a key
8546	// indicating a deprecated resource and a suggested replacement, or a
8547	// warning about invalid network settings (for example, if an instance
8548	// attempts to perform IP forwarding but is not enabled for IP
8549	// forwarding).
8550	Key string `json:"key,omitempty"`
8551
8552	// Value: [Output Only] A warning data value corresponding to the key.
8553	Value string `json:"value,omitempty"`
8554
8555	// ForceSendFields is a list of field names (e.g. "Key") to
8556	// unconditionally include in API requests. By default, fields with
8557	// empty values are omitted from API requests. However, any non-pointer,
8558	// non-interface field appearing in ForceSendFields will be sent to the
8559	// server regardless of whether the field is empty or not. This may be
8560	// used to include empty fields in Patch requests.
8561	ForceSendFields []string `json:"-"`
8562
8563	// NullFields is a list of field names (e.g. "Key") to include in API
8564	// requests with the JSON null value. By default, fields with empty
8565	// values are omitted from API requests. However, any field with an
8566	// empty value appearing in NullFields will be sent to the server as
8567	// null. It is an error if a field in this list has a non-empty value.
8568	// This may be used to include null fields in Patch requests.
8569	NullFields []string `json:"-"`
8570}
8571
8572func (s *ExchangedPeeringRoutesListWarningData) MarshalJSON() ([]byte, error) {
8573	type NoMethod ExchangedPeeringRoutesListWarningData
8574	raw := NoMethod(*s)
8575	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8576}
8577
8578// Expr: Represents a textual expression in the Common Expression
8579// Language (CEL) syntax. CEL is a C-like expression language. The
8580// syntax and semantics of CEL are documented at
8581// https://github.com/google/cel-spec.
8582//
8583// Example (Comparison):
8584//
8585// title: "Summary size limit" description: "Determines if a summary is
8586// less than 100 chars" expression: "document.summary.size() <
8587// 100"
8588//
8589// Example (Equality):
8590//
8591// title: "Requestor is owner" description: "Determines if requestor is
8592// the document owner" expression: "document.owner ==
8593// request.auth.claims.email"
8594//
8595// Example (Logic):
8596//
8597// title: "Public documents" description: "Determine whether the
8598// document should be publicly visible" expression: "document.type !=
8599// 'private' && document.type != 'internal'"
8600//
8601// Example (Data Manipulation):
8602//
8603// title: "Notification string" description: "Create a notification
8604// string with a timestamp." expression: "'New message received at ' +
8605// string(document.create_time)"
8606//
8607// The exact variables and functions that may be referenced within an
8608// expression are determined by the service that evaluates it. See the
8609// service documentation for additional information.
8610type Expr struct {
8611	// Description: Optional. Description of the expression. This is a
8612	// longer text which describes the expression, e.g. when hovered over it
8613	// in a UI.
8614	Description string `json:"description,omitempty"`
8615
8616	// Expression: Textual representation of an expression in Common
8617	// Expression Language syntax.
8618	Expression string `json:"expression,omitempty"`
8619
8620	// Location: Optional. String indicating the location of the expression
8621	// for error reporting, e.g. a file name and a position in the file.
8622	Location string `json:"location,omitempty"`
8623
8624	// Title: Optional. Title for the expression, i.e. a short string
8625	// describing its purpose. This can be used e.g. in UIs which allow to
8626	// enter the expression.
8627	Title string `json:"title,omitempty"`
8628
8629	// ForceSendFields is a list of field names (e.g. "Description") to
8630	// unconditionally include in API requests. By default, fields with
8631	// empty values are omitted from API requests. However, any non-pointer,
8632	// non-interface field appearing in ForceSendFields will be sent to the
8633	// server regardless of whether the field is empty or not. This may be
8634	// used to include empty fields in Patch requests.
8635	ForceSendFields []string `json:"-"`
8636
8637	// NullFields is a list of field names (e.g. "Description") to include
8638	// in API requests with the JSON null value. By default, fields with
8639	// empty values are omitted from API requests. However, any field with
8640	// an empty value appearing in NullFields will be sent to the server as
8641	// null. It is an error if a field in this list has a non-empty value.
8642	// This may be used to include null fields in Patch requests.
8643	NullFields []string `json:"-"`
8644}
8645
8646func (s *Expr) MarshalJSON() ([]byte, error) {
8647	type NoMethod Expr
8648	raw := NoMethod(*s)
8649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8650}
8651
8652// ExternalVpnGateway: External VPN gateway is the on-premises VPN
8653// gateway(s) or another cloud provider's VPN gateway that connects to
8654// your Google Cloud VPN gateway. To create a highly available VPN from
8655// Google Cloud to your on-premises side or another Cloud provider's VPN
8656// gateway, you must create a external VPN gateway resource in GCP,
8657// which provides the information to GCP about your external VPN
8658// gateway.
8659type ExternalVpnGateway struct {
8660	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8661	// format.
8662	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8663
8664	// Description: An optional description of this resource. Provide this
8665	// property when you create the resource.
8666	Description string `json:"description,omitempty"`
8667
8668	// Id: [Output Only] The unique identifier for the resource. This
8669	// identifier is defined by the server.
8670	Id uint64 `json:"id,omitempty,string"`
8671
8672	// Interfaces: List of interfaces for this external VPN gateway.
8673	Interfaces []*ExternalVpnGatewayInterface `json:"interfaces,omitempty"`
8674
8675	// Kind: [Output Only] Type of the resource. Always
8676	// compute#externalVpnGateway for externalVpnGateways.
8677	Kind string `json:"kind,omitempty"`
8678
8679	// LabelFingerprint: A fingerprint for the labels being applied to this
8680	// ExternalVpnGateway, which is essentially a hash of the labels set
8681	// used for optimistic locking. The fingerprint is initially generated
8682	// by Compute Engine and changes after every request to modify or update
8683	// labels. You must always provide an up-to-date fingerprint hash in
8684	// order to update or change labels, otherwise the request will fail
8685	// with error 412 conditionNotMet.
8686	//
8687	// To see the latest fingerprint, make a get() request to retrieve an
8688	// ExternalVpnGateway.
8689	LabelFingerprint string `json:"labelFingerprint,omitempty"`
8690
8691	// Labels: Labels to apply to this ExternalVpnGateway resource. These
8692	// can be later modified by the setLabels method. Each label key/value
8693	// must comply with RFC1035. Label values may be empty.
8694	Labels map[string]string `json:"labels,omitempty"`
8695
8696	// Name: Name of the resource. Provided by the client when the resource
8697	// is created. The name must be 1-63 characters long, and comply with
8698	// RFC1035. Specifically, the name must be 1-63 characters long and
8699	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
8700	// the first character must be a lowercase letter, and all following
8701	// characters must be a dash, lowercase letter, or digit, except the
8702	// last character, which cannot be a dash.
8703	Name string `json:"name,omitempty"`
8704
8705	// RedundancyType: Indicates the user-supplied redundancy type of this
8706	// external VPN gateway.
8707	//
8708	// Possible values:
8709	//   "FOUR_IPS_REDUNDANCY"
8710	//   "SINGLE_IP_INTERNALLY_REDUNDANT"
8711	//   "TWO_IPS_REDUNDANCY"
8712	RedundancyType string `json:"redundancyType,omitempty"`
8713
8714	// SelfLink: [Output Only] Server-defined URL for the resource.
8715	SelfLink string `json:"selfLink,omitempty"`
8716
8717	// ServerResponse contains the HTTP response code and headers from the
8718	// server.
8719	googleapi.ServerResponse `json:"-"`
8720
8721	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
8722	// to unconditionally include in API requests. By default, fields with
8723	// empty values are omitted from API requests. However, any non-pointer,
8724	// non-interface field appearing in ForceSendFields will be sent to the
8725	// server regardless of whether the field is empty or not. This may be
8726	// used to include empty fields in Patch requests.
8727	ForceSendFields []string `json:"-"`
8728
8729	// NullFields is a list of field names (e.g. "CreationTimestamp") to
8730	// include in API requests with the JSON null value. By default, fields
8731	// with empty values are omitted from API requests. However, any field
8732	// with an empty value appearing in NullFields will be sent to the
8733	// server as null. It is an error if a field in this list has a
8734	// non-empty value. This may be used to include null fields in Patch
8735	// requests.
8736	NullFields []string `json:"-"`
8737}
8738
8739func (s *ExternalVpnGateway) MarshalJSON() ([]byte, error) {
8740	type NoMethod ExternalVpnGateway
8741	raw := NoMethod(*s)
8742	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8743}
8744
8745// ExternalVpnGatewayInterface: The interface for the external VPN
8746// gateway.
8747type ExternalVpnGatewayInterface struct {
8748	// Id: The numeric ID of this interface. The allowed input values for
8749	// this id for different redundancy types of external VPN gateway:
8750	// SINGLE_IP_INTERNALLY_REDUNDANT - 0 TWO_IPS_REDUNDANCY - 0, 1
8751	// FOUR_IPS_REDUNDANCY - 0, 1, 2, 3
8752	Id int64 `json:"id,omitempty"`
8753
8754	// IpAddress: IP address of the interface in the external VPN gateway.
8755	// Only IPv4 is supported. This IP address can be either from your
8756	// on-premise gateway or another Cloud provider's VPN gateway, it cannot
8757	// be an IP address from Google Compute Engine.
8758	IpAddress string `json:"ipAddress,omitempty"`
8759
8760	// ForceSendFields is a list of field names (e.g. "Id") to
8761	// unconditionally include in API requests. By default, fields with
8762	// empty values are omitted from API requests. However, any non-pointer,
8763	// non-interface field appearing in ForceSendFields will be sent to the
8764	// server regardless of whether the field is empty or not. This may be
8765	// used to include empty fields in Patch requests.
8766	ForceSendFields []string `json:"-"`
8767
8768	// NullFields is a list of field names (e.g. "Id") to include in API
8769	// requests with the JSON null value. By default, fields with empty
8770	// values are omitted from API requests. However, any field with an
8771	// empty value appearing in NullFields will be sent to the server as
8772	// null. It is an error if a field in this list has a non-empty value.
8773	// This may be used to include null fields in Patch requests.
8774	NullFields []string `json:"-"`
8775}
8776
8777func (s *ExternalVpnGatewayInterface) MarshalJSON() ([]byte, error) {
8778	type NoMethod ExternalVpnGatewayInterface
8779	raw := NoMethod(*s)
8780	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8781}
8782
8783// ExternalVpnGatewayList: Response to the list request, and contains a
8784// list of externalVpnGateways.
8785type ExternalVpnGatewayList struct {
8786	Etag string `json:"etag,omitempty"`
8787
8788	// Id: [Output Only] Unique identifier for the resource; defined by the
8789	// server.
8790	Id string `json:"id,omitempty"`
8791
8792	// Items: A list of ExternalVpnGateway resources.
8793	Items []*ExternalVpnGateway `json:"items,omitempty"`
8794
8795	// Kind: [Output Only] Type of resource. Always
8796	// compute#externalVpnGatewayList  for lists of externalVpnGateways.
8797	Kind string `json:"kind,omitempty"`
8798
8799	// NextPageToken: [Output Only] This token allows you to get the next
8800	// page of results for list requests. If the number of results is larger
8801	// than maxResults, use the nextPageToken as a value for the query
8802	// parameter pageToken in the next list request. Subsequent list
8803	// requests will have their own nextPageToken to continue paging through
8804	// the results.
8805	NextPageToken string `json:"nextPageToken,omitempty"`
8806
8807	// SelfLink: [Output Only] Server-defined URL for this resource.
8808	SelfLink string `json:"selfLink,omitempty"`
8809
8810	// Warning: [Output Only] Informational warning message.
8811	Warning *ExternalVpnGatewayListWarning `json:"warning,omitempty"`
8812
8813	// ServerResponse contains the HTTP response code and headers from the
8814	// server.
8815	googleapi.ServerResponse `json:"-"`
8816
8817	// ForceSendFields is a list of field names (e.g. "Etag") to
8818	// unconditionally include in API requests. By default, fields with
8819	// empty values are omitted from API requests. However, any non-pointer,
8820	// non-interface field appearing in ForceSendFields will be sent to the
8821	// server regardless of whether the field is empty or not. This may be
8822	// used to include empty fields in Patch requests.
8823	ForceSendFields []string `json:"-"`
8824
8825	// NullFields is a list of field names (e.g. "Etag") to include in API
8826	// requests with the JSON null value. By default, fields with empty
8827	// values are omitted from API requests. However, any field with an
8828	// empty value appearing in NullFields will be sent to the server as
8829	// null. It is an error if a field in this list has a non-empty value.
8830	// This may be used to include null fields in Patch requests.
8831	NullFields []string `json:"-"`
8832}
8833
8834func (s *ExternalVpnGatewayList) MarshalJSON() ([]byte, error) {
8835	type NoMethod ExternalVpnGatewayList
8836	raw := NoMethod(*s)
8837	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8838}
8839
8840// ExternalVpnGatewayListWarning: [Output Only] Informational warning
8841// message.
8842type ExternalVpnGatewayListWarning struct {
8843	// Code: [Output Only] A warning code, if applicable. For example,
8844	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
8845	// the response.
8846	//
8847	// Possible values:
8848	//   "CLEANUP_FAILED"
8849	//   "DEPRECATED_RESOURCE_USED"
8850	//   "DEPRECATED_TYPE_USED"
8851	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
8852	//   "EXPERIMENTAL_TYPE_USED"
8853	//   "EXTERNAL_API_WARNING"
8854	//   "FIELD_VALUE_OVERRIDEN"
8855	//   "INJECTED_KERNELS_DEPRECATED"
8856	//   "MISSING_TYPE_DEPENDENCY"
8857	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
8858	//   "NEXT_HOP_CANNOT_IP_FORWARD"
8859	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
8860	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
8861	//   "NEXT_HOP_NOT_RUNNING"
8862	//   "NOT_CRITICAL_ERROR"
8863	//   "NO_RESULTS_ON_PAGE"
8864	//   "REQUIRED_TOS_AGREEMENT"
8865	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
8866	//   "RESOURCE_NOT_DELETED"
8867	//   "SCHEMA_VALIDATION_IGNORED"
8868	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
8869	//   "UNDECLARED_PROPERTIES"
8870	//   "UNREACHABLE"
8871	Code string `json:"code,omitempty"`
8872
8873	// Data: [Output Only] Metadata about this warning in key: value format.
8874	// For example:
8875	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
8876	Data []*ExternalVpnGatewayListWarningData `json:"data,omitempty"`
8877
8878	// Message: [Output Only] A human-readable description of the warning
8879	// code.
8880	Message string `json:"message,omitempty"`
8881
8882	// ForceSendFields is a list of field names (e.g. "Code") to
8883	// unconditionally include in API requests. By default, fields with
8884	// empty values are omitted from API requests. However, any non-pointer,
8885	// non-interface field appearing in ForceSendFields will be sent to the
8886	// server regardless of whether the field is empty or not. This may be
8887	// used to include empty fields in Patch requests.
8888	ForceSendFields []string `json:"-"`
8889
8890	// NullFields is a list of field names (e.g. "Code") to include in API
8891	// requests with the JSON null value. By default, fields with empty
8892	// values are omitted from API requests. However, any field with an
8893	// empty value appearing in NullFields will be sent to the server as
8894	// null. It is an error if a field in this list has a non-empty value.
8895	// This may be used to include null fields in Patch requests.
8896	NullFields []string `json:"-"`
8897}
8898
8899func (s *ExternalVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
8900	type NoMethod ExternalVpnGatewayListWarning
8901	raw := NoMethod(*s)
8902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8903}
8904
8905type ExternalVpnGatewayListWarningData struct {
8906	// Key: [Output Only] A key that provides more detail on the warning
8907	// being returned. For example, for warnings where there are no results
8908	// in a list request for a particular zone, this key might be scope and
8909	// the key value might be the zone name. Other examples might be a key
8910	// indicating a deprecated resource and a suggested replacement, or a
8911	// warning about invalid network settings (for example, if an instance
8912	// attempts to perform IP forwarding but is not enabled for IP
8913	// forwarding).
8914	Key string `json:"key,omitempty"`
8915
8916	// Value: [Output Only] A warning data value corresponding to the key.
8917	Value string `json:"value,omitempty"`
8918
8919	// ForceSendFields is a list of field names (e.g. "Key") to
8920	// unconditionally include in API requests. By default, fields with
8921	// empty values are omitted from API requests. However, any non-pointer,
8922	// non-interface field appearing in ForceSendFields will be sent to the
8923	// server regardless of whether the field is empty or not. This may be
8924	// used to include empty fields in Patch requests.
8925	ForceSendFields []string `json:"-"`
8926
8927	// NullFields is a list of field names (e.g. "Key") to include in API
8928	// requests with the JSON null value. By default, fields with empty
8929	// values are omitted from API requests. However, any field with an
8930	// empty value appearing in NullFields will be sent to the server as
8931	// null. It is an error if a field in this list has a non-empty value.
8932	// This may be used to include null fields in Patch requests.
8933	NullFields []string `json:"-"`
8934}
8935
8936func (s *ExternalVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
8937	type NoMethod ExternalVpnGatewayListWarningData
8938	raw := NoMethod(*s)
8939	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
8940}
8941
8942// Firewall: Represents a Firewall Rule resource.
8943//
8944// Firewall rules allow or deny ingress traffic to, and egress traffic
8945// from your instances. For more information, read Firewall rules.
8946type Firewall struct {
8947	// Allowed: The list of ALLOW rules specified by this firewall. Each
8948	// rule specifies a protocol and port-range tuple that describes a
8949	// permitted connection.
8950	Allowed []*FirewallAllowed `json:"allowed,omitempty"`
8951
8952	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
8953	// format.
8954	CreationTimestamp string `json:"creationTimestamp,omitempty"`
8955
8956	// Denied: The list of DENY rules specified by this firewall. Each rule
8957	// specifies a protocol and port-range tuple that describes a denied
8958	// connection.
8959	Denied []*FirewallDenied `json:"denied,omitempty"`
8960
8961	// Description: An optional description of this resource. Provide this
8962	// field when you create the resource.
8963	Description string `json:"description,omitempty"`
8964
8965	// DestinationRanges: If destination ranges are specified, the firewall
8966	// rule applies only to traffic that has destination IP address in these
8967	// ranges. These ranges must be expressed in CIDR format. Only IPv4 is
8968	// supported.
8969	DestinationRanges []string `json:"destinationRanges,omitempty"`
8970
8971	// Direction: Direction of traffic to which this firewall applies,
8972	// either `INGRESS` or `EGRESS`. The default is `INGRESS`. For `INGRESS`
8973	// traffic, you cannot specify the destinationRanges field, and for
8974	// `EGRESS` traffic, you cannot specify the sourceRanges or sourceTags
8975	// fields.
8976	//
8977	// Possible values:
8978	//   "EGRESS"
8979	//   "INGRESS"
8980	Direction string `json:"direction,omitempty"`
8981
8982	// Disabled: Denotes whether the firewall rule is disabled. When set to
8983	// true, the firewall rule is not enforced and the network behaves as if
8984	// it did not exist. If this is unspecified, the firewall rule will be
8985	// enabled.
8986	Disabled bool `json:"disabled,omitempty"`
8987
8988	// EnableLogging: Deprecated in favor of enable in LogConfig. This field
8989	// denotes whether to enable logging for a particular firewall rule. If
8990	// logging is enabled, logs will be exported to Stackdriver.
8991	EnableLogging bool `json:"enableLogging,omitempty"`
8992
8993	// Id: [Output Only] The unique identifier for the resource. This
8994	// identifier is defined by the server.
8995	Id uint64 `json:"id,omitempty,string"`
8996
8997	// Kind: [Output Only] Type of the resource. Always compute#firewall for
8998	// firewall rules.
8999	Kind string `json:"kind,omitempty"`
9000
9001	// LogConfig: This field denotes the logging options for a particular
9002	// firewall rule. If logging is enabled, logs will be exported to
9003	// Stackdriver.
9004	LogConfig *FirewallLogConfig `json:"logConfig,omitempty"`
9005
9006	// Name: Name of the resource; provided by the client when the resource
9007	// is created. The name must be 1-63 characters long, and comply with
9008	// RFC1035. Specifically, the name must be 1-63 characters long and
9009	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?. The first
9010	// character must be a lowercase letter, and all following characters
9011	// (except for the last character) must be a dash, lowercase letter, or
9012	// digit. The last character must be a lowercase letter or digit.
9013	Name string `json:"name,omitempty"`
9014
9015	// Network: URL of the network resource for this firewall rule. If not
9016	// specified when creating a firewall rule, the default network is
9017	// used:
9018	// global/networks/default
9019	// If you choose to specify this field, you can specify the network as a
9020	// full or partial URL. For example, the following are all valid URLs:
9021	//
9022	// -
9023	// https://www.googleapis.com/compute/v1/projects/myproject/global/networks/my-network
9024	// - projects/myproject/global/networks/my-network
9025	// - global/networks/default
9026	Network string `json:"network,omitempty"`
9027
9028	// Priority: Priority for this rule. This is an integer between `0` and
9029	// `65535`, both inclusive. The default value is `1000`. Relative
9030	// priorities determine which rule takes effect if multiple rules apply.
9031	// Lower values indicate higher priority. For example, a rule with
9032	// priority `0` has higher precedence than a rule with priority `1`.
9033	// DENY rules take precedence over ALLOW rules if they have equal
9034	// priority. Note that VPC networks have implied rules with a priority
9035	// of `65535`. To avoid conflicts with the implied rules, use a priority
9036	// number less than `65535`.
9037	Priority int64 `json:"priority,omitempty"`
9038
9039	// SelfLink: [Output Only] Server-defined URL for the resource.
9040	SelfLink string `json:"selfLink,omitempty"`
9041
9042	// SourceRanges: If source ranges are specified, the firewall rule
9043	// applies only to traffic that has a source IP address in these ranges.
9044	// These ranges must be expressed in CIDR format. One or both of
9045	// sourceRanges and sourceTags may be set. If both fields are set, the
9046	// rule applies to traffic that has a source IP address within
9047	// sourceRanges OR a source IP from a resource with a matching tag
9048	// listed in the sourceTags field. The connection does not need to match
9049	// both fields for the rule to apply. Only IPv4 is supported.
9050	SourceRanges []string `json:"sourceRanges,omitempty"`
9051
9052	// SourceServiceAccounts: If source service accounts are specified, the
9053	// firewall rules apply only to traffic originating from an instance
9054	// with a service account in this list. Source service accounts cannot
9055	// be used to control traffic to an instance's external IP address
9056	// because service accounts are associated with an instance, not an IP
9057	// address. sourceRanges can be set at the same time as
9058	// sourceServiceAccounts. If both are set, the firewall applies to
9059	// traffic that has a source IP address within the sourceRanges OR a
9060	// source IP that belongs to an instance with service account listed in
9061	// sourceServiceAccount. The connection does not need to match both
9062	// fields for the firewall to apply. sourceServiceAccounts cannot be
9063	// used at the same time as sourceTags or targetTags.
9064	SourceServiceAccounts []string `json:"sourceServiceAccounts,omitempty"`
9065
9066	// SourceTags: If source tags are specified, the firewall rule applies
9067	// only to traffic with source IPs that match the primary network
9068	// interfaces of VM instances that have the tag and are in the same VPC
9069	// network. Source tags cannot be used to control traffic to an
9070	// instance's external IP address, it only applies to traffic between
9071	// instances in the same virtual network. Because tags are associated
9072	// with instances, not IP addresses. One or both of sourceRanges and
9073	// sourceTags may be set. If both fields are set, the firewall applies
9074	// to traffic that has a source IP address within sourceRanges OR a
9075	// source IP from a resource with a matching tag listed in the
9076	// sourceTags field. The connection does not need to match both fields
9077	// for the firewall to apply.
9078	SourceTags []string `json:"sourceTags,omitempty"`
9079
9080	// TargetServiceAccounts: A list of service accounts indicating sets of
9081	// instances located in the network that may make network connections as
9082	// specified in allowed[]. targetServiceAccounts cannot be used at the
9083	// same time as targetTags or sourceTags. If neither
9084	// targetServiceAccounts nor targetTags are specified, the firewall rule
9085	// applies to all instances on the specified network.
9086	TargetServiceAccounts []string `json:"targetServiceAccounts,omitempty"`
9087
9088	// TargetTags: A list of tags that controls which instances the firewall
9089	// rule applies to. If targetTags are specified, then the firewall rule
9090	// applies only to instances in the VPC network that have one of those
9091	// tags. If no targetTags are specified, the firewall rule applies to
9092	// all instances on the specified network.
9093	TargetTags []string `json:"targetTags,omitempty"`
9094
9095	// ServerResponse contains the HTTP response code and headers from the
9096	// server.
9097	googleapi.ServerResponse `json:"-"`
9098
9099	// ForceSendFields is a list of field names (e.g. "Allowed") to
9100	// unconditionally include in API requests. By default, fields with
9101	// empty values are omitted from API requests. However, any non-pointer,
9102	// non-interface field appearing in ForceSendFields will be sent to the
9103	// server regardless of whether the field is empty or not. This may be
9104	// used to include empty fields in Patch requests.
9105	ForceSendFields []string `json:"-"`
9106
9107	// NullFields is a list of field names (e.g. "Allowed") to include in
9108	// API requests with the JSON null value. By default, fields with empty
9109	// values are omitted from API requests. However, any field with an
9110	// empty value appearing in NullFields will be sent to the server as
9111	// null. It is an error if a field in this list has a non-empty value.
9112	// This may be used to include null fields in Patch requests.
9113	NullFields []string `json:"-"`
9114}
9115
9116func (s *Firewall) MarshalJSON() ([]byte, error) {
9117	type NoMethod Firewall
9118	raw := NoMethod(*s)
9119	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9120}
9121
9122type FirewallAllowed struct {
9123	// IPProtocol: The IP protocol to which this rule applies. The protocol
9124	// type is required when creating a firewall rule. This value can either
9125	// be one of the following well known protocol strings (tcp, udp, icmp,
9126	// esp, ah, ipip, sctp) or the IP protocol number.
9127	IPProtocol string `json:"IPProtocol,omitempty"`
9128
9129	// Ports: An optional list of ports to which this rule applies. This
9130	// field is only applicable for the UDP or TCP protocol. Each entry must
9131	// be either an integer or a range. If not specified, this rule applies
9132	// to connections through any port.
9133	//
9134	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9135	Ports []string `json:"ports,omitempty"`
9136
9137	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9138	// unconditionally include in API requests. By default, fields with
9139	// empty values are omitted from API requests. However, any non-pointer,
9140	// non-interface field appearing in ForceSendFields will be sent to the
9141	// server regardless of whether the field is empty or not. This may be
9142	// used to include empty fields in Patch requests.
9143	ForceSendFields []string `json:"-"`
9144
9145	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9146	// API requests with the JSON null value. By default, fields with empty
9147	// values are omitted from API requests. However, any field with an
9148	// empty value appearing in NullFields will be sent to the server as
9149	// null. It is an error if a field in this list has a non-empty value.
9150	// This may be used to include null fields in Patch requests.
9151	NullFields []string `json:"-"`
9152}
9153
9154func (s *FirewallAllowed) MarshalJSON() ([]byte, error) {
9155	type NoMethod FirewallAllowed
9156	raw := NoMethod(*s)
9157	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9158}
9159
9160type FirewallDenied struct {
9161	// IPProtocol: The IP protocol to which this rule applies. The protocol
9162	// type is required when creating a firewall rule. This value can either
9163	// be one of the following well known protocol strings (tcp, udp, icmp,
9164	// esp, ah, ipip, sctp) or the IP protocol number.
9165	IPProtocol string `json:"IPProtocol,omitempty"`
9166
9167	// Ports: An optional list of ports to which this rule applies. This
9168	// field is only applicable for the UDP or TCP protocol. Each entry must
9169	// be either an integer or a range. If not specified, this rule applies
9170	// to connections through any port.
9171	//
9172	// Example inputs include: ["22"], ["80","443"], and ["12345-12349"].
9173	Ports []string `json:"ports,omitempty"`
9174
9175	// ForceSendFields is a list of field names (e.g. "IPProtocol") to
9176	// unconditionally include in API requests. By default, fields with
9177	// empty values are omitted from API requests. However, any non-pointer,
9178	// non-interface field appearing in ForceSendFields will be sent to the
9179	// server regardless of whether the field is empty or not. This may be
9180	// used to include empty fields in Patch requests.
9181	ForceSendFields []string `json:"-"`
9182
9183	// NullFields is a list of field names (e.g. "IPProtocol") to include in
9184	// API requests with the JSON null value. By default, fields with empty
9185	// values are omitted from API requests. However, any field with an
9186	// empty value appearing in NullFields will be sent to the server as
9187	// null. It is an error if a field in this list has a non-empty value.
9188	// This may be used to include null fields in Patch requests.
9189	NullFields []string `json:"-"`
9190}
9191
9192func (s *FirewallDenied) MarshalJSON() ([]byte, error) {
9193	type NoMethod FirewallDenied
9194	raw := NoMethod(*s)
9195	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9196}
9197
9198// FirewallList: Contains a list of firewalls.
9199type FirewallList struct {
9200	// Id: [Output Only] Unique identifier for the resource; defined by the
9201	// server.
9202	Id string `json:"id,omitempty"`
9203
9204	// Items: A list of Firewall resources.
9205	Items []*Firewall `json:"items,omitempty"`
9206
9207	// Kind: [Output Only] Type of resource. Always compute#firewallList for
9208	// lists of firewalls.
9209	Kind string `json:"kind,omitempty"`
9210
9211	// NextPageToken: [Output Only] This token allows you to get the next
9212	// page of results for list requests. If the number of results is larger
9213	// than maxResults, use the nextPageToken as a value for the query
9214	// parameter pageToken in the next list request. Subsequent list
9215	// requests will have their own nextPageToken to continue paging through
9216	// the results.
9217	NextPageToken string `json:"nextPageToken,omitempty"`
9218
9219	// SelfLink: [Output Only] Server-defined URL for this resource.
9220	SelfLink string `json:"selfLink,omitempty"`
9221
9222	// Warning: [Output Only] Informational warning message.
9223	Warning *FirewallListWarning `json:"warning,omitempty"`
9224
9225	// ServerResponse contains the HTTP response code and headers from the
9226	// server.
9227	googleapi.ServerResponse `json:"-"`
9228
9229	// ForceSendFields is a list of field names (e.g. "Id") to
9230	// unconditionally include in API requests. By default, fields with
9231	// empty values are omitted from API requests. However, any non-pointer,
9232	// non-interface field appearing in ForceSendFields will be sent to the
9233	// server regardless of whether the field is empty or not. This may be
9234	// used to include empty fields in Patch requests.
9235	ForceSendFields []string `json:"-"`
9236
9237	// NullFields is a list of field names (e.g. "Id") to include in API
9238	// requests with the JSON null value. By default, fields with empty
9239	// values are omitted from API requests. However, any field with an
9240	// empty value appearing in NullFields will be sent to the server as
9241	// null. It is an error if a field in this list has a non-empty value.
9242	// This may be used to include null fields in Patch requests.
9243	NullFields []string `json:"-"`
9244}
9245
9246func (s *FirewallList) MarshalJSON() ([]byte, error) {
9247	type NoMethod FirewallList
9248	raw := NoMethod(*s)
9249	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9250}
9251
9252// FirewallListWarning: [Output Only] Informational warning message.
9253type FirewallListWarning struct {
9254	// Code: [Output Only] A warning code, if applicable. For example,
9255	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9256	// the response.
9257	//
9258	// Possible values:
9259	//   "CLEANUP_FAILED"
9260	//   "DEPRECATED_RESOURCE_USED"
9261	//   "DEPRECATED_TYPE_USED"
9262	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9263	//   "EXPERIMENTAL_TYPE_USED"
9264	//   "EXTERNAL_API_WARNING"
9265	//   "FIELD_VALUE_OVERRIDEN"
9266	//   "INJECTED_KERNELS_DEPRECATED"
9267	//   "MISSING_TYPE_DEPENDENCY"
9268	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9269	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9270	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9271	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9272	//   "NEXT_HOP_NOT_RUNNING"
9273	//   "NOT_CRITICAL_ERROR"
9274	//   "NO_RESULTS_ON_PAGE"
9275	//   "REQUIRED_TOS_AGREEMENT"
9276	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9277	//   "RESOURCE_NOT_DELETED"
9278	//   "SCHEMA_VALIDATION_IGNORED"
9279	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9280	//   "UNDECLARED_PROPERTIES"
9281	//   "UNREACHABLE"
9282	Code string `json:"code,omitempty"`
9283
9284	// Data: [Output Only] Metadata about this warning in key: value format.
9285	// For example:
9286	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9287	Data []*FirewallListWarningData `json:"data,omitempty"`
9288
9289	// Message: [Output Only] A human-readable description of the warning
9290	// code.
9291	Message string `json:"message,omitempty"`
9292
9293	// ForceSendFields is a list of field names (e.g. "Code") to
9294	// unconditionally include in API requests. By default, fields with
9295	// empty values are omitted from API requests. However, any non-pointer,
9296	// non-interface field appearing in ForceSendFields will be sent to the
9297	// server regardless of whether the field is empty or not. This may be
9298	// used to include empty fields in Patch requests.
9299	ForceSendFields []string `json:"-"`
9300
9301	// NullFields is a list of field names (e.g. "Code") to include in API
9302	// requests with the JSON null value. By default, fields with empty
9303	// values are omitted from API requests. However, any field with an
9304	// empty value appearing in NullFields will be sent to the server as
9305	// null. It is an error if a field in this list has a non-empty value.
9306	// This may be used to include null fields in Patch requests.
9307	NullFields []string `json:"-"`
9308}
9309
9310func (s *FirewallListWarning) MarshalJSON() ([]byte, error) {
9311	type NoMethod FirewallListWarning
9312	raw := NoMethod(*s)
9313	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9314}
9315
9316type FirewallListWarningData struct {
9317	// Key: [Output Only] A key that provides more detail on the warning
9318	// being returned. For example, for warnings where there are no results
9319	// in a list request for a particular zone, this key might be scope and
9320	// the key value might be the zone name. Other examples might be a key
9321	// indicating a deprecated resource and a suggested replacement, or a
9322	// warning about invalid network settings (for example, if an instance
9323	// attempts to perform IP forwarding but is not enabled for IP
9324	// forwarding).
9325	Key string `json:"key,omitempty"`
9326
9327	// Value: [Output Only] A warning data value corresponding to the key.
9328	Value string `json:"value,omitempty"`
9329
9330	// ForceSendFields is a list of field names (e.g. "Key") to
9331	// unconditionally include in API requests. By default, fields with
9332	// empty values are omitted from API requests. However, any non-pointer,
9333	// non-interface field appearing in ForceSendFields will be sent to the
9334	// server regardless of whether the field is empty or not. This may be
9335	// used to include empty fields in Patch requests.
9336	ForceSendFields []string `json:"-"`
9337
9338	// NullFields is a list of field names (e.g. "Key") to include in API
9339	// requests with the JSON null value. By default, fields with empty
9340	// values are omitted from API requests. However, any field with an
9341	// empty value appearing in NullFields will be sent to the server as
9342	// null. It is an error if a field in this list has a non-empty value.
9343	// This may be used to include null fields in Patch requests.
9344	NullFields []string `json:"-"`
9345}
9346
9347func (s *FirewallListWarningData) MarshalJSON() ([]byte, error) {
9348	type NoMethod FirewallListWarningData
9349	raw := NoMethod(*s)
9350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9351}
9352
9353// FirewallLogConfig: The available logging options for a firewall rule.
9354type FirewallLogConfig struct {
9355	// Enable: This field denotes whether to enable logging for a particular
9356	// firewall rule.
9357	Enable bool `json:"enable,omitempty"`
9358
9359	// Metadata: This field can only be specified for a particular firewall
9360	// rule if logging is enabled for that rule. This field denotes whether
9361	// to include or exclude metadata for firewall logs.
9362	//
9363	// Possible values:
9364	//   "EXCLUDE_ALL_METADATA"
9365	//   "INCLUDE_ALL_METADATA"
9366	Metadata string `json:"metadata,omitempty"`
9367
9368	// ForceSendFields is a list of field names (e.g. "Enable") to
9369	// unconditionally include in API requests. By default, fields with
9370	// empty values are omitted from API requests. However, any non-pointer,
9371	// non-interface field appearing in ForceSendFields will be sent to the
9372	// server regardless of whether the field is empty or not. This may be
9373	// used to include empty fields in Patch requests.
9374	ForceSendFields []string `json:"-"`
9375
9376	// NullFields is a list of field names (e.g. "Enable") to include in API
9377	// requests with the JSON null value. By default, fields with empty
9378	// values are omitted from API requests. However, any field with an
9379	// empty value appearing in NullFields will be sent to the server as
9380	// null. It is an error if a field in this list has a non-empty value.
9381	// This may be used to include null fields in Patch requests.
9382	NullFields []string `json:"-"`
9383}
9384
9385func (s *FirewallLogConfig) MarshalJSON() ([]byte, error) {
9386	type NoMethod FirewallLogConfig
9387	raw := NoMethod(*s)
9388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9389}
9390
9391// FixedOrPercent: Encapsulates numeric value that can be either
9392// absolute or relative.
9393type FixedOrPercent struct {
9394	// Calculated: [Output Only] Absolute value of VM instances calculated
9395	// based on the specific mode.
9396	//
9397	//
9398	// - If the value is fixed, then the calculated value is equal to the
9399	// fixed value.
9400	// - If the value is a percent, then the calculated value is percent/100
9401	// * targetSize. For example, the calculated value of a 80% of a managed
9402	// instance group with 150 instances would be (80/100 * 150) = 120 VM
9403	// instances. If there is a remainder, the number is rounded up.
9404	Calculated int64 `json:"calculated,omitempty"`
9405
9406	// Fixed: Specifies a fixed number of VM instances. This must be a
9407	// positive integer.
9408	Fixed int64 `json:"fixed,omitempty"`
9409
9410	// Percent: Specifies a percentage of instances between 0 to 100%,
9411	// inclusive. For example, specify 80 for 80%.
9412	Percent int64 `json:"percent,omitempty"`
9413
9414	// ForceSendFields is a list of field names (e.g. "Calculated") to
9415	// unconditionally include in API requests. By default, fields with
9416	// empty values are omitted from API requests. However, any non-pointer,
9417	// non-interface field appearing in ForceSendFields will be sent to the
9418	// server regardless of whether the field is empty or not. This may be
9419	// used to include empty fields in Patch requests.
9420	ForceSendFields []string `json:"-"`
9421
9422	// NullFields is a list of field names (e.g. "Calculated") to include in
9423	// API requests with the JSON null value. By default, fields with empty
9424	// values are omitted from API requests. However, any field with an
9425	// empty value appearing in NullFields will be sent to the server as
9426	// null. It is an error if a field in this list has a non-empty value.
9427	// This may be used to include null fields in Patch requests.
9428	NullFields []string `json:"-"`
9429}
9430
9431func (s *FixedOrPercent) MarshalJSON() ([]byte, error) {
9432	type NoMethod FixedOrPercent
9433	raw := NoMethod(*s)
9434	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9435}
9436
9437// ForwardingRule: Represents a Forwarding Rule resource.
9438//
9439// Forwarding rule resources in GCP can be either regional or global in
9440// scope:
9441//
9442// * [Global](/compute/docs/reference/rest/latest/globalForwardingRules)
9443// * [Regional](/compute/docs/reference/rest/latest/forwardingRules)
9444//
9445// A forwarding rule and its corresponding IP address represent the
9446// frontend configuration of a Google Cloud Platform load balancer.
9447// Forwarding rules can also reference target instances and Cloud VPN
9448// Classic gateways (targetVpnGateway).
9449//
9450// For more information, read Forwarding rule concepts and Using
9451// protocol forwarding.
9452//
9453// (== resource_for {$api_version}.forwardingRules ==) (== resource_for
9454// {$api_version}.globalForwardingRules ==) (== resource_for
9455// {$api_version}.regionForwardingRules ==)
9456type ForwardingRule struct {
9457	// IPAddress: IP address that this forwarding rule serves. When a client
9458	// sends traffic to this IP address, the forwarding rule directs the
9459	// traffic to the target that you specify in the forwarding rule.
9460	//
9461	// If you don't specify a reserved IP address, an ephemeral IP address
9462	// is assigned. Methods for specifying an IP address:
9463	//
9464	// * IPv4 dotted decimal, as in `100.1.2.3` * Full URL, as in
9465	// 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
9466	//
9467	// The loadBalancingScheme and the forwarding rule's target determine
9468	// the type of IP address that you can use. For detailed information,
9469	// refer to [IP address
9470	// specifications](/load-balancing/docs/forwarding-rule-concepts#ip_addre
9471	// ss_specifications).
9472	IPAddress string `json:"IPAddress,omitempty"`
9473
9474	// IPProtocol: The IP protocol to which this rule applies. For protocol
9475	// forwarding, valid options are TCP, UDP, ESP, AH, SCTP or ICMP.
9476	//
9477	// For Internal TCP/UDP Load Balancing, the load balancing scheme is
9478	// INTERNAL, and one of TCP or UDP are valid. For Traffic Director, the
9479	// load balancing scheme is INTERNAL_SELF_MANAGED, and only TCPis valid.
9480	// For Internal HTTP(S) Load Balancing, the load balancing scheme is
9481	// INTERNAL_MANAGED, and only TCP is valid. For HTTP(S), SSL Proxy, and
9482	// TCP Proxy Load Balancing, the load balancing scheme is EXTERNAL and
9483	// only TCP is valid. For Network TCP/UDP Load Balancing, the load
9484	// balancing scheme is EXTERNAL, and one of TCP or UDP is valid.
9485	//
9486	// Possible values:
9487	//   "AH"
9488	//   "ESP"
9489	//   "ICMP"
9490	//   "SCTP"
9491	//   "TCP"
9492	//   "UDP"
9493	IPProtocol string `json:"IPProtocol,omitempty"`
9494
9495	// AllPorts: This field is used along with the backend_service field for
9496	// internal load balancing or with the target field for internal
9497	// TargetInstance. This field cannot be used with port or portRange
9498	// fields.
9499	//
9500	// When the load balancing scheme is INTERNAL and protocol is TCP/UDP,
9501	// specify this field to allow packets addressed to any ports will be
9502	// forwarded to the backends configured with this forwarding rule.
9503	AllPorts bool `json:"allPorts,omitempty"`
9504
9505	// AllowGlobalAccess: This field is used along with the backend_service
9506	// field for internal load balancing or with the target field for
9507	// internal TargetInstance. If the field is set to TRUE, clients can
9508	// access ILB from all regions. Otherwise only allows access from
9509	// clients in the same region as the internal load balancer.
9510	AllowGlobalAccess bool `json:"allowGlobalAccess,omitempty"`
9511
9512	// BackendService: This field is only used for INTERNAL load
9513	// balancing.
9514	//
9515	// For internal load balancing, this field identifies the BackendService
9516	// resource to receive the matched traffic.
9517	BackendService string `json:"backendService,omitempty"`
9518
9519	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
9520	// format.
9521	CreationTimestamp string `json:"creationTimestamp,omitempty"`
9522
9523	// Description: An optional description of this resource. Provide this
9524	// property when you create the resource.
9525	Description string `json:"description,omitempty"`
9526
9527	// Fingerprint: Fingerprint of this resource. A hash of the contents
9528	// stored in this object. This field is used in optimistic locking. This
9529	// field will be ignored when inserting a ForwardingRule. Include the
9530	// fingerprint in patch request to ensure that you do not overwrite
9531	// changes that were applied from another concurrent request.
9532	//
9533	// To see the latest fingerprint, make a get() request to retrieve a
9534	// ForwardingRule.
9535	Fingerprint string `json:"fingerprint,omitempty"`
9536
9537	// Id: [Output Only] The unique identifier for the resource. This
9538	// identifier is defined by the server.
9539	Id uint64 `json:"id,omitempty,string"`
9540
9541	// IpVersion: The IP Version that will be used by this forwarding rule.
9542	// Valid options are IPV4 or IPV6. This can only be specified for an
9543	// external global forwarding rule.
9544	//
9545	// Possible values:
9546	//   "IPV4"
9547	//   "IPV6"
9548	//   "UNSPECIFIED_VERSION"
9549	IpVersion string `json:"ipVersion,omitempty"`
9550
9551	// IsMirroringCollector: Indicates whether or not this load balancer can
9552	// be used as a collector for packet mirroring. To prevent mirroring
9553	// loops, instances behind this load balancer will not have their
9554	// traffic mirrored even if a PacketMirroring rule applies to them. This
9555	// can only be set to true for load balancers that have their
9556	// loadBalancingScheme set to INTERNAL.
9557	IsMirroringCollector bool `json:"isMirroringCollector,omitempty"`
9558
9559	// Kind: [Output Only] Type of the resource. Always
9560	// compute#forwardingRule for Forwarding Rule resources.
9561	Kind string `json:"kind,omitempty"`
9562
9563	// LabelFingerprint: A fingerprint for the labels being applied to this
9564	// resource, which is essentially a hash of the labels set used for
9565	// optimistic locking. The fingerprint is initially generated by Compute
9566	// Engine and changes after every request to modify or update labels.
9567	// You must always provide an up-to-date fingerprint hash in order to
9568	// update or change labels, otherwise the request will fail with error
9569	// 412 conditionNotMet.
9570	//
9571	// To see the latest fingerprint, make a get() request to retrieve a
9572	// ForwardingRule.
9573	LabelFingerprint string `json:"labelFingerprint,omitempty"`
9574
9575	// Labels: Labels to apply to this resource. These can be later modified
9576	// by the setLabels method. Each label key/value pair must comply with
9577	// RFC1035. Label values may be empty.
9578	Labels map[string]string `json:"labels,omitempty"`
9579
9580	// LoadBalancingScheme: Specifies the forwarding rule type.
9581	//
9582	//
9583	// - EXTERNAL is used for:
9584	// - Classic Cloud VPN gateways
9585	// - Protocol forwarding to VMs from an external IP address
9586	// - The following load balancers: HTTP(S), SSL Proxy, TCP Proxy, and
9587	// Network TCP/UDP
9588	// - INTERNAL is used for:
9589	// - Protocol forwarding to VMs from an internal IP address
9590	// - Internal TCP/UDP load balancers
9591	// - INTERNAL_MANAGED is used for:
9592	// - Internal HTTP(S) load balancers
9593	// - >INTERNAL_SELF_MANAGED is used for:
9594	// - Traffic Director
9595	//
9596	// For more information about forwarding rules, refer to Forwarding rule
9597	// concepts.
9598	//
9599	// Possible values:
9600	//   "EXTERNAL"
9601	//   "INTERNAL"
9602	//   "INTERNAL_MANAGED"
9603	//   "INTERNAL_SELF_MANAGED"
9604	//   "INVALID"
9605	LoadBalancingScheme string `json:"loadBalancingScheme,omitempty"`
9606
9607	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
9608	// restrict routing configuration to a limited set of xDS compliant
9609	// clients. In their xDS requests to Loadbalancer, xDS clients present
9610	// node metadata. If a match takes place, the relevant configuration is
9611	// made available to those proxies. Otherwise, all the resources (e.g.
9612	// TargetHttpProxy, UrlMap) referenced by the ForwardingRule will not be
9613	// visible to those proxies.
9614	// For each metadataFilter in this list, if its filterMatchCriteria is
9615	// set to MATCH_ANY, at least one of the filterLabels must match the
9616	// corresponding label provided in the metadata. If its
9617	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
9618	// must match with corresponding labels provided in the
9619	// metadata.
9620	// metadataFilters specified here will be applifed before those
9621	// specified in the UrlMap that this ForwardingRule
9622	// references.
9623	// metadataFilters only applies to Loadbalancers that have their
9624	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
9625	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
9626
9627	// Name: Name of the resource; provided by the client when the resource
9628	// is created. The name must be 1-63 characters long, and comply with
9629	// RFC1035. Specifically, the name must be 1-63 characters long and
9630	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
9631	// the first character must be a lowercase letter, and all following
9632	// characters must be a dash, lowercase letter, or digit, except the
9633	// last character, which cannot be a dash.
9634	Name string `json:"name,omitempty"`
9635
9636	// Network: This field is not used for external load balancing.
9637	//
9638	// For INTERNAL and INTERNAL_SELF_MANAGED load balancing, this field
9639	// identifies the network that the load balanced IP should belong to for
9640	// this Forwarding Rule. If this field is not specified, the default
9641	// network will be used.
9642	Network string `json:"network,omitempty"`
9643
9644	// NetworkTier: This signifies the networking tier used for configuring
9645	// this load balancer and can only take the following values: PREMIUM ,
9646	// STANDARD.
9647	//
9648	// For regional ForwardingRule, the valid values are PREMIUM and
9649	// STANDARD. For GlobalForwardingRule, the valid value is PREMIUM.
9650	//
9651	// If this field is not specified, it is assumed to be PREMIUM. If
9652	// IPAddress is specified, this value must be equal to the networkTier
9653	// of the Address.
9654	//
9655	// Possible values:
9656	//   "PREMIUM"
9657	//   "STANDARD"
9658	NetworkTier string `json:"networkTier,omitempty"`
9659
9660	// PortRange: When the load balancing scheme is EXTERNAL,
9661	// INTERNAL_SELF_MANAGED and INTERNAL_MANAGED, you can specify a
9662	// port_range. Use with a forwarding rule that points to a target proxy
9663	// or a target pool. Do not use with a forwarding rule that points to a
9664	// backend service. This field is used along with the target field for
9665	// TargetHttpProxy, TargetHttpsProxy, TargetSslProxy, TargetTcpProxy,
9666	// TargetVpnGateway, TargetPool, TargetInstance.
9667	//
9668	// Applicable only when IPProtocol is TCP, UDP, or SCTP, only packets
9669	// addressed to ports in the specified range will be forwarded to
9670	// target. Forwarding rules with the same [IPAddress, IPProtocol] pair
9671	// must have disjoint port ranges.
9672	//
9673	// Some types of forwarding target have constraints on the acceptable
9674	// ports:
9675	// - TargetHttpProxy: 80, 8080
9676	// - TargetHttpsProxy: 443
9677	// - TargetTcpProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
9678	// 995, 1688, 1883, 5222
9679	// - TargetSslProxy: 25, 43, 110, 143, 195, 443, 465, 587, 700, 993,
9680	// 995, 1688, 1883, 5222
9681	// - TargetVpnGateway: 500, 4500
9682	PortRange string `json:"portRange,omitempty"`
9683
9684	// Ports: This field is used along with the backend_service field for
9685	// internal load balancing.
9686	//
9687	// When the load balancing scheme is INTERNAL, a list of ports can be
9688	// configured, for example, ['80'], ['8000','9000']. Only packets
9689	// addressed to these ports are forwarded to the backends configured
9690	// with the forwarding rule.
9691	//
9692	// If the forwarding rule's loadBalancingScheme is INTERNAL, you can
9693	// specify ports in one of the following ways:
9694	//
9695	// * A list of up to five ports, which can be non-contiguous * Keyword
9696	// ALL, which causes the forwarding rule to forward traffic on any port
9697	// of the forwarding rule's protocol.
9698	Ports []string `json:"ports,omitempty"`
9699
9700	// Region: [Output Only] URL of the region where the regional forwarding
9701	// rule resides. This field is not applicable to global forwarding
9702	// rules. You must specify this field as part of the HTTP request URL.
9703	// It is not settable as a field in the request body.
9704	Region string `json:"region,omitempty"`
9705
9706	// SelfLink: [Output Only] Server-defined URL for the resource.
9707	SelfLink string `json:"selfLink,omitempty"`
9708
9709	// ServiceLabel: An optional prefix to the service name for this
9710	// Forwarding Rule. If specified, the prefix is the first label of the
9711	// fully qualified service name.
9712	//
9713	// The label must be 1-63 characters long, and comply with RFC1035.
9714	// Specifically, the label must be 1-63 characters long and match the
9715	// regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first
9716	// character must be a lowercase letter, and all following characters
9717	// must be a dash, lowercase letter, or digit, except the last
9718	// character, which cannot be a dash.
9719	//
9720	// This field is only used for internal load balancing.
9721	ServiceLabel string `json:"serviceLabel,omitempty"`
9722
9723	// ServiceName: [Output Only] The internal fully qualified service name
9724	// for this Forwarding Rule.
9725	//
9726	// This field is only used for internal load balancing.
9727	ServiceName string `json:"serviceName,omitempty"`
9728
9729	// Subnetwork: This field is only used for INTERNAL load balancing.
9730	//
9731	// For internal load balancing, this field identifies the subnetwork
9732	// that the load balanced IP should belong to for this Forwarding
9733	// Rule.
9734	//
9735	// If the network specified is in auto subnet mode, this field is
9736	// optional. However, if the network is in custom subnet mode, a
9737	// subnetwork must be specified.
9738	Subnetwork string `json:"subnetwork,omitempty"`
9739
9740	// Target: The URL of the target resource to receive the matched
9741	// traffic. For regional forwarding rules, this target must live in the
9742	// same region as the forwarding rule. For global forwarding rules, this
9743	// target must be a global load balancing resource. The forwarded
9744	// traffic must be of a type appropriate to the target object. For
9745	// INTERNAL_SELF_MANAGED load balancing, only targetHttpProxy is valid,
9746	// not targetHttpsProxy.
9747	Target string `json:"target,omitempty"`
9748
9749	// ServerResponse contains the HTTP response code and headers from the
9750	// server.
9751	googleapi.ServerResponse `json:"-"`
9752
9753	// ForceSendFields is a list of field names (e.g. "IPAddress") to
9754	// unconditionally include in API requests. By default, fields with
9755	// empty values are omitted from API requests. However, any non-pointer,
9756	// non-interface field appearing in ForceSendFields will be sent to the
9757	// server regardless of whether the field is empty or not. This may be
9758	// used to include empty fields in Patch requests.
9759	ForceSendFields []string `json:"-"`
9760
9761	// NullFields is a list of field names (e.g. "IPAddress") to include in
9762	// API requests with the JSON null value. By default, fields with empty
9763	// values are omitted from API requests. However, any field with an
9764	// empty value appearing in NullFields will be sent to the server as
9765	// null. It is an error if a field in this list has a non-empty value.
9766	// This may be used to include null fields in Patch requests.
9767	NullFields []string `json:"-"`
9768}
9769
9770func (s *ForwardingRule) MarshalJSON() ([]byte, error) {
9771	type NoMethod ForwardingRule
9772	raw := NoMethod(*s)
9773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9774}
9775
9776type ForwardingRuleAggregatedList struct {
9777	// Id: [Output Only] Unique identifier for the resource; defined by the
9778	// server.
9779	Id string `json:"id,omitempty"`
9780
9781	// Items: A list of ForwardingRulesScopedList resources.
9782	Items map[string]ForwardingRulesScopedList `json:"items,omitempty"`
9783
9784	// Kind: [Output Only] Type of resource. Always
9785	// compute#forwardingRuleAggregatedList for lists of forwarding rules.
9786	Kind string `json:"kind,omitempty"`
9787
9788	// NextPageToken: [Output Only] This token allows you to get the next
9789	// page of results for list requests. If the number of results is larger
9790	// than maxResults, use the nextPageToken as a value for the query
9791	// parameter pageToken in the next list request. Subsequent list
9792	// requests will have their own nextPageToken to continue paging through
9793	// the results.
9794	NextPageToken string `json:"nextPageToken,omitempty"`
9795
9796	// SelfLink: [Output Only] Server-defined URL for this resource.
9797	SelfLink string `json:"selfLink,omitempty"`
9798
9799	// Warning: [Output Only] Informational warning message.
9800	Warning *ForwardingRuleAggregatedListWarning `json:"warning,omitempty"`
9801
9802	// ServerResponse contains the HTTP response code and headers from the
9803	// server.
9804	googleapi.ServerResponse `json:"-"`
9805
9806	// ForceSendFields is a list of field names (e.g. "Id") to
9807	// unconditionally include in API requests. By default, fields with
9808	// empty values are omitted from API requests. However, any non-pointer,
9809	// non-interface field appearing in ForceSendFields will be sent to the
9810	// server regardless of whether the field is empty or not. This may be
9811	// used to include empty fields in Patch requests.
9812	ForceSendFields []string `json:"-"`
9813
9814	// NullFields is a list of field names (e.g. "Id") to include in API
9815	// requests with the JSON null value. By default, fields with empty
9816	// values are omitted from API requests. However, any field with an
9817	// empty value appearing in NullFields will be sent to the server as
9818	// null. It is an error if a field in this list has a non-empty value.
9819	// This may be used to include null fields in Patch requests.
9820	NullFields []string `json:"-"`
9821}
9822
9823func (s *ForwardingRuleAggregatedList) MarshalJSON() ([]byte, error) {
9824	type NoMethod ForwardingRuleAggregatedList
9825	raw := NoMethod(*s)
9826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9827}
9828
9829// ForwardingRuleAggregatedListWarning: [Output Only] Informational
9830// warning message.
9831type ForwardingRuleAggregatedListWarning struct {
9832	// Code: [Output Only] A warning code, if applicable. For example,
9833	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9834	// the response.
9835	//
9836	// Possible values:
9837	//   "CLEANUP_FAILED"
9838	//   "DEPRECATED_RESOURCE_USED"
9839	//   "DEPRECATED_TYPE_USED"
9840	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9841	//   "EXPERIMENTAL_TYPE_USED"
9842	//   "EXTERNAL_API_WARNING"
9843	//   "FIELD_VALUE_OVERRIDEN"
9844	//   "INJECTED_KERNELS_DEPRECATED"
9845	//   "MISSING_TYPE_DEPENDENCY"
9846	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
9847	//   "NEXT_HOP_CANNOT_IP_FORWARD"
9848	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
9849	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
9850	//   "NEXT_HOP_NOT_RUNNING"
9851	//   "NOT_CRITICAL_ERROR"
9852	//   "NO_RESULTS_ON_PAGE"
9853	//   "REQUIRED_TOS_AGREEMENT"
9854	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
9855	//   "RESOURCE_NOT_DELETED"
9856	//   "SCHEMA_VALIDATION_IGNORED"
9857	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
9858	//   "UNDECLARED_PROPERTIES"
9859	//   "UNREACHABLE"
9860	Code string `json:"code,omitempty"`
9861
9862	// Data: [Output Only] Metadata about this warning in key: value format.
9863	// For example:
9864	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
9865	Data []*ForwardingRuleAggregatedListWarningData `json:"data,omitempty"`
9866
9867	// Message: [Output Only] A human-readable description of the warning
9868	// code.
9869	Message string `json:"message,omitempty"`
9870
9871	// ForceSendFields is a list of field names (e.g. "Code") to
9872	// unconditionally include in API requests. By default, fields with
9873	// empty values are omitted from API requests. However, any non-pointer,
9874	// non-interface field appearing in ForceSendFields will be sent to the
9875	// server regardless of whether the field is empty or not. This may be
9876	// used to include empty fields in Patch requests.
9877	ForceSendFields []string `json:"-"`
9878
9879	// NullFields is a list of field names (e.g. "Code") to include in API
9880	// requests with the JSON null value. By default, fields with empty
9881	// values are omitted from API requests. However, any field with an
9882	// empty value appearing in NullFields will be sent to the server as
9883	// null. It is an error if a field in this list has a non-empty value.
9884	// This may be used to include null fields in Patch requests.
9885	NullFields []string `json:"-"`
9886}
9887
9888func (s *ForwardingRuleAggregatedListWarning) MarshalJSON() ([]byte, error) {
9889	type NoMethod ForwardingRuleAggregatedListWarning
9890	raw := NoMethod(*s)
9891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9892}
9893
9894type ForwardingRuleAggregatedListWarningData struct {
9895	// Key: [Output Only] A key that provides more detail on the warning
9896	// being returned. For example, for warnings where there are no results
9897	// in a list request for a particular zone, this key might be scope and
9898	// the key value might be the zone name. Other examples might be a key
9899	// indicating a deprecated resource and a suggested replacement, or a
9900	// warning about invalid network settings (for example, if an instance
9901	// attempts to perform IP forwarding but is not enabled for IP
9902	// forwarding).
9903	Key string `json:"key,omitempty"`
9904
9905	// Value: [Output Only] A warning data value corresponding to the key.
9906	Value string `json:"value,omitempty"`
9907
9908	// ForceSendFields is a list of field names (e.g. "Key") to
9909	// unconditionally include in API requests. By default, fields with
9910	// empty values are omitted from API requests. However, any non-pointer,
9911	// non-interface field appearing in ForceSendFields will be sent to the
9912	// server regardless of whether the field is empty or not. This may be
9913	// used to include empty fields in Patch requests.
9914	ForceSendFields []string `json:"-"`
9915
9916	// NullFields is a list of field names (e.g. "Key") to include in API
9917	// requests with the JSON null value. By default, fields with empty
9918	// values are omitted from API requests. However, any field with an
9919	// empty value appearing in NullFields will be sent to the server as
9920	// null. It is an error if a field in this list has a non-empty value.
9921	// This may be used to include null fields in Patch requests.
9922	NullFields []string `json:"-"`
9923}
9924
9925func (s *ForwardingRuleAggregatedListWarningData) MarshalJSON() ([]byte, error) {
9926	type NoMethod ForwardingRuleAggregatedListWarningData
9927	raw := NoMethod(*s)
9928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9929}
9930
9931// ForwardingRuleList: Contains a list of ForwardingRule resources.
9932type ForwardingRuleList struct {
9933	// Id: [Output Only] Unique identifier for the resource; defined by the
9934	// server.
9935	Id string `json:"id,omitempty"`
9936
9937	// Items: A list of ForwardingRule resources.
9938	Items []*ForwardingRule `json:"items,omitempty"`
9939
9940	// Kind: Type of resource.
9941	Kind string `json:"kind,omitempty"`
9942
9943	// NextPageToken: [Output Only] This token allows you to get the next
9944	// page of results for list requests. If the number of results is larger
9945	// than maxResults, use the nextPageToken as a value for the query
9946	// parameter pageToken in the next list request. Subsequent list
9947	// requests will have their own nextPageToken to continue paging through
9948	// the results.
9949	NextPageToken string `json:"nextPageToken,omitempty"`
9950
9951	// SelfLink: [Output Only] Server-defined URL for this resource.
9952	SelfLink string `json:"selfLink,omitempty"`
9953
9954	// Warning: [Output Only] Informational warning message.
9955	Warning *ForwardingRuleListWarning `json:"warning,omitempty"`
9956
9957	// ServerResponse contains the HTTP response code and headers from the
9958	// server.
9959	googleapi.ServerResponse `json:"-"`
9960
9961	// ForceSendFields is a list of field names (e.g. "Id") to
9962	// unconditionally include in API requests. By default, fields with
9963	// empty values are omitted from API requests. However, any non-pointer,
9964	// non-interface field appearing in ForceSendFields will be sent to the
9965	// server regardless of whether the field is empty or not. This may be
9966	// used to include empty fields in Patch requests.
9967	ForceSendFields []string `json:"-"`
9968
9969	// NullFields is a list of field names (e.g. "Id") to include in API
9970	// requests with the JSON null value. By default, fields with empty
9971	// values are omitted from API requests. However, any field with an
9972	// empty value appearing in NullFields will be sent to the server as
9973	// null. It is an error if a field in this list has a non-empty value.
9974	// This may be used to include null fields in Patch requests.
9975	NullFields []string `json:"-"`
9976}
9977
9978func (s *ForwardingRuleList) MarshalJSON() ([]byte, error) {
9979	type NoMethod ForwardingRuleList
9980	raw := NoMethod(*s)
9981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
9982}
9983
9984// ForwardingRuleListWarning: [Output Only] Informational warning
9985// message.
9986type ForwardingRuleListWarning struct {
9987	// Code: [Output Only] A warning code, if applicable. For example,
9988	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
9989	// the response.
9990	//
9991	// Possible values:
9992	//   "CLEANUP_FAILED"
9993	//   "DEPRECATED_RESOURCE_USED"
9994	//   "DEPRECATED_TYPE_USED"
9995	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
9996	//   "EXPERIMENTAL_TYPE_USED"
9997	//   "EXTERNAL_API_WARNING"
9998	//   "FIELD_VALUE_OVERRIDEN"
9999	//   "INJECTED_KERNELS_DEPRECATED"
10000	//   "MISSING_TYPE_DEPENDENCY"
10001	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10002	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10003	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10004	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10005	//   "NEXT_HOP_NOT_RUNNING"
10006	//   "NOT_CRITICAL_ERROR"
10007	//   "NO_RESULTS_ON_PAGE"
10008	//   "REQUIRED_TOS_AGREEMENT"
10009	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10010	//   "RESOURCE_NOT_DELETED"
10011	//   "SCHEMA_VALIDATION_IGNORED"
10012	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10013	//   "UNDECLARED_PROPERTIES"
10014	//   "UNREACHABLE"
10015	Code string `json:"code,omitempty"`
10016
10017	// Data: [Output Only] Metadata about this warning in key: value format.
10018	// For example:
10019	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10020	Data []*ForwardingRuleListWarningData `json:"data,omitempty"`
10021
10022	// Message: [Output Only] A human-readable description of the warning
10023	// code.
10024	Message string `json:"message,omitempty"`
10025
10026	// ForceSendFields is a list of field names (e.g. "Code") to
10027	// unconditionally include in API requests. By default, fields with
10028	// empty values are omitted from API requests. However, any non-pointer,
10029	// non-interface field appearing in ForceSendFields will be sent to the
10030	// server regardless of whether the field is empty or not. This may be
10031	// used to include empty fields in Patch requests.
10032	ForceSendFields []string `json:"-"`
10033
10034	// NullFields is a list of field names (e.g. "Code") to include in API
10035	// requests with the JSON null value. By default, fields with empty
10036	// values are omitted from API requests. However, any field with an
10037	// empty value appearing in NullFields will be sent to the server as
10038	// null. It is an error if a field in this list has a non-empty value.
10039	// This may be used to include null fields in Patch requests.
10040	NullFields []string `json:"-"`
10041}
10042
10043func (s *ForwardingRuleListWarning) MarshalJSON() ([]byte, error) {
10044	type NoMethod ForwardingRuleListWarning
10045	raw := NoMethod(*s)
10046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10047}
10048
10049type ForwardingRuleListWarningData struct {
10050	// Key: [Output Only] A key that provides more detail on the warning
10051	// being returned. For example, for warnings where there are no results
10052	// in a list request for a particular zone, this key might be scope and
10053	// the key value might be the zone name. Other examples might be a key
10054	// indicating a deprecated resource and a suggested replacement, or a
10055	// warning about invalid network settings (for example, if an instance
10056	// attempts to perform IP forwarding but is not enabled for IP
10057	// forwarding).
10058	Key string `json:"key,omitempty"`
10059
10060	// Value: [Output Only] A warning data value corresponding to the key.
10061	Value string `json:"value,omitempty"`
10062
10063	// ForceSendFields is a list of field names (e.g. "Key") to
10064	// unconditionally include in API requests. By default, fields with
10065	// empty values are omitted from API requests. However, any non-pointer,
10066	// non-interface field appearing in ForceSendFields will be sent to the
10067	// server regardless of whether the field is empty or not. This may be
10068	// used to include empty fields in Patch requests.
10069	ForceSendFields []string `json:"-"`
10070
10071	// NullFields is a list of field names (e.g. "Key") to include in API
10072	// requests with the JSON null value. By default, fields with empty
10073	// values are omitted from API requests. However, any field with an
10074	// empty value appearing in NullFields will be sent to the server as
10075	// null. It is an error if a field in this list has a non-empty value.
10076	// This may be used to include null fields in Patch requests.
10077	NullFields []string `json:"-"`
10078}
10079
10080func (s *ForwardingRuleListWarningData) MarshalJSON() ([]byte, error) {
10081	type NoMethod ForwardingRuleListWarningData
10082	raw := NoMethod(*s)
10083	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10084}
10085
10086type ForwardingRuleReference struct {
10087	ForwardingRule string `json:"forwardingRule,omitempty"`
10088
10089	// ForceSendFields is a list of field names (e.g. "ForwardingRule") to
10090	// unconditionally include in API requests. By default, fields with
10091	// empty values are omitted from API requests. However, any non-pointer,
10092	// non-interface field appearing in ForceSendFields will be sent to the
10093	// server regardless of whether the field is empty or not. This may be
10094	// used to include empty fields in Patch requests.
10095	ForceSendFields []string `json:"-"`
10096
10097	// NullFields is a list of field names (e.g. "ForwardingRule") to
10098	// include in API requests with the JSON null value. By default, fields
10099	// with empty values are omitted from API requests. However, any field
10100	// with an empty value appearing in NullFields will be sent to the
10101	// server as null. It is an error if a field in this list has a
10102	// non-empty value. This may be used to include null fields in Patch
10103	// requests.
10104	NullFields []string `json:"-"`
10105}
10106
10107func (s *ForwardingRuleReference) MarshalJSON() ([]byte, error) {
10108	type NoMethod ForwardingRuleReference
10109	raw := NoMethod(*s)
10110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10111}
10112
10113type ForwardingRulesScopedList struct {
10114	// ForwardingRules: A list of forwarding rules contained in this scope.
10115	ForwardingRules []*ForwardingRule `json:"forwardingRules,omitempty"`
10116
10117	// Warning: Informational warning which replaces the list of forwarding
10118	// rules when the list is empty.
10119	Warning *ForwardingRulesScopedListWarning `json:"warning,omitempty"`
10120
10121	// ForceSendFields is a list of field names (e.g. "ForwardingRules") to
10122	// unconditionally include in API requests. By default, fields with
10123	// empty values are omitted from API requests. However, any non-pointer,
10124	// non-interface field appearing in ForceSendFields will be sent to the
10125	// server regardless of whether the field is empty or not. This may be
10126	// used to include empty fields in Patch requests.
10127	ForceSendFields []string `json:"-"`
10128
10129	// NullFields is a list of field names (e.g. "ForwardingRules") to
10130	// include in API requests with the JSON null value. By default, fields
10131	// with empty values are omitted from API requests. However, any field
10132	// with an empty value appearing in NullFields will be sent to the
10133	// server as null. It is an error if a field in this list has a
10134	// non-empty value. This may be used to include null fields in Patch
10135	// requests.
10136	NullFields []string `json:"-"`
10137}
10138
10139func (s *ForwardingRulesScopedList) MarshalJSON() ([]byte, error) {
10140	type NoMethod ForwardingRulesScopedList
10141	raw := NoMethod(*s)
10142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10143}
10144
10145// ForwardingRulesScopedListWarning: Informational warning which
10146// replaces the list of forwarding rules when the list is empty.
10147type ForwardingRulesScopedListWarning struct {
10148	// Code: [Output Only] A warning code, if applicable. For example,
10149	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
10150	// the response.
10151	//
10152	// Possible values:
10153	//   "CLEANUP_FAILED"
10154	//   "DEPRECATED_RESOURCE_USED"
10155	//   "DEPRECATED_TYPE_USED"
10156	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
10157	//   "EXPERIMENTAL_TYPE_USED"
10158	//   "EXTERNAL_API_WARNING"
10159	//   "FIELD_VALUE_OVERRIDEN"
10160	//   "INJECTED_KERNELS_DEPRECATED"
10161	//   "MISSING_TYPE_DEPENDENCY"
10162	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
10163	//   "NEXT_HOP_CANNOT_IP_FORWARD"
10164	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
10165	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
10166	//   "NEXT_HOP_NOT_RUNNING"
10167	//   "NOT_CRITICAL_ERROR"
10168	//   "NO_RESULTS_ON_PAGE"
10169	//   "REQUIRED_TOS_AGREEMENT"
10170	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
10171	//   "RESOURCE_NOT_DELETED"
10172	//   "SCHEMA_VALIDATION_IGNORED"
10173	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
10174	//   "UNDECLARED_PROPERTIES"
10175	//   "UNREACHABLE"
10176	Code string `json:"code,omitempty"`
10177
10178	// Data: [Output Only] Metadata about this warning in key: value format.
10179	// For example:
10180	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
10181	Data []*ForwardingRulesScopedListWarningData `json:"data,omitempty"`
10182
10183	// Message: [Output Only] A human-readable description of the warning
10184	// code.
10185	Message string `json:"message,omitempty"`
10186
10187	// ForceSendFields is a list of field names (e.g. "Code") to
10188	// unconditionally include in API requests. By default, fields with
10189	// empty values are omitted from API requests. However, any non-pointer,
10190	// non-interface field appearing in ForceSendFields will be sent to the
10191	// server regardless of whether the field is empty or not. This may be
10192	// used to include empty fields in Patch requests.
10193	ForceSendFields []string `json:"-"`
10194
10195	// NullFields is a list of field names (e.g. "Code") to include in API
10196	// requests with the JSON null value. By default, fields with empty
10197	// values are omitted from API requests. However, any field with an
10198	// empty value appearing in NullFields will be sent to the server as
10199	// null. It is an error if a field in this list has a non-empty value.
10200	// This may be used to include null fields in Patch requests.
10201	NullFields []string `json:"-"`
10202}
10203
10204func (s *ForwardingRulesScopedListWarning) MarshalJSON() ([]byte, error) {
10205	type NoMethod ForwardingRulesScopedListWarning
10206	raw := NoMethod(*s)
10207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10208}
10209
10210type ForwardingRulesScopedListWarningData struct {
10211	// Key: [Output Only] A key that provides more detail on the warning
10212	// being returned. For example, for warnings where there are no results
10213	// in a list request for a particular zone, this key might be scope and
10214	// the key value might be the zone name. Other examples might be a key
10215	// indicating a deprecated resource and a suggested replacement, or a
10216	// warning about invalid network settings (for example, if an instance
10217	// attempts to perform IP forwarding but is not enabled for IP
10218	// forwarding).
10219	Key string `json:"key,omitempty"`
10220
10221	// Value: [Output Only] A warning data value corresponding to the key.
10222	Value string `json:"value,omitempty"`
10223
10224	// ForceSendFields is a list of field names (e.g. "Key") to
10225	// unconditionally include in API requests. By default, fields with
10226	// empty values are omitted from API requests. However, any non-pointer,
10227	// non-interface field appearing in ForceSendFields will be sent to the
10228	// server regardless of whether the field is empty or not. This may be
10229	// used to include empty fields in Patch requests.
10230	ForceSendFields []string `json:"-"`
10231
10232	// NullFields is a list of field names (e.g. "Key") to include in API
10233	// requests with the JSON null value. By default, fields with empty
10234	// values are omitted from API requests. However, any field with an
10235	// empty value appearing in NullFields will be sent to the server as
10236	// null. It is an error if a field in this list has a non-empty value.
10237	// This may be used to include null fields in Patch requests.
10238	NullFields []string `json:"-"`
10239}
10240
10241func (s *ForwardingRulesScopedListWarningData) MarshalJSON() ([]byte, error) {
10242	type NoMethod ForwardingRulesScopedListWarningData
10243	raw := NoMethod(*s)
10244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10245}
10246
10247type GlobalNetworkEndpointGroupsAttachEndpointsRequest struct {
10248	// NetworkEndpoints: The list of network endpoints to be attached.
10249	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
10250
10251	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
10252	// unconditionally include in API requests. By default, fields with
10253	// empty values are omitted from API requests. However, any non-pointer,
10254	// non-interface field appearing in ForceSendFields will be sent to the
10255	// server regardless of whether the field is empty or not. This may be
10256	// used to include empty fields in Patch requests.
10257	ForceSendFields []string `json:"-"`
10258
10259	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
10260	// include in API requests with the JSON null value. By default, fields
10261	// with empty values are omitted from API requests. However, any field
10262	// with an empty value appearing in NullFields will be sent to the
10263	// server as null. It is an error if a field in this list has a
10264	// non-empty value. This may be used to include null fields in Patch
10265	// requests.
10266	NullFields []string `json:"-"`
10267}
10268
10269func (s *GlobalNetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
10270	type NoMethod GlobalNetworkEndpointGroupsAttachEndpointsRequest
10271	raw := NoMethod(*s)
10272	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10273}
10274
10275type GlobalNetworkEndpointGroupsDetachEndpointsRequest struct {
10276	// NetworkEndpoints: The list of network endpoints to be detached.
10277	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
10278
10279	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
10280	// unconditionally include in API requests. By default, fields with
10281	// empty values are omitted from API requests. However, any non-pointer,
10282	// non-interface field appearing in ForceSendFields will be sent to the
10283	// server regardless of whether the field is empty or not. This may be
10284	// used to include empty fields in Patch requests.
10285	ForceSendFields []string `json:"-"`
10286
10287	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
10288	// include in API requests with the JSON null value. By default, fields
10289	// with empty values are omitted from API requests. However, any field
10290	// with an empty value appearing in NullFields will be sent to the
10291	// server as null. It is an error if a field in this list has a
10292	// non-empty value. This may be used to include null fields in Patch
10293	// requests.
10294	NullFields []string `json:"-"`
10295}
10296
10297func (s *GlobalNetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
10298	type NoMethod GlobalNetworkEndpointGroupsDetachEndpointsRequest
10299	raw := NoMethod(*s)
10300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10301}
10302
10303type GlobalSetLabelsRequest struct {
10304	// LabelFingerprint: The fingerprint of the previous set of labels for
10305	// this resource, used to detect conflicts. The fingerprint is initially
10306	// generated by Compute Engine and changes after every request to modify
10307	// or update labels. You must always provide an up-to-date fingerprint
10308	// hash when updating or changing labels, otherwise the request will
10309	// fail with error 412 conditionNotMet. Make a get() request to the
10310	// resource to get the latest fingerprint.
10311	LabelFingerprint string `json:"labelFingerprint,omitempty"`
10312
10313	// Labels: A list of labels to apply for this resource. Each label key &
10314	// value must comply with RFC1035. Specifically, the name must be 1-63
10315	// characters long and match the regular expression
10316	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
10317	// a lowercase letter, and all following characters must be a dash,
10318	// lowercase letter, or digit, except the last character, which cannot
10319	// be a dash. For example, "webserver-frontend": "images". A label value
10320	// can also be empty (e.g. "my-label": "").
10321	Labels map[string]string `json:"labels,omitempty"`
10322
10323	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
10324	// unconditionally include in API requests. By default, fields with
10325	// empty values are omitted from API requests. However, any non-pointer,
10326	// non-interface field appearing in ForceSendFields will be sent to the
10327	// server regardless of whether the field is empty or not. This may be
10328	// used to include empty fields in Patch requests.
10329	ForceSendFields []string `json:"-"`
10330
10331	// NullFields is a list of field names (e.g. "LabelFingerprint") to
10332	// include in API requests with the JSON null value. By default, fields
10333	// with empty values are omitted from API requests. However, any field
10334	// with an empty value appearing in NullFields will be sent to the
10335	// server as null. It is an error if a field in this list has a
10336	// non-empty value. This may be used to include null fields in Patch
10337	// requests.
10338	NullFields []string `json:"-"`
10339}
10340
10341func (s *GlobalSetLabelsRequest) MarshalJSON() ([]byte, error) {
10342	type NoMethod GlobalSetLabelsRequest
10343	raw := NoMethod(*s)
10344	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10345}
10346
10347type GlobalSetPolicyRequest struct {
10348	// Bindings: Flatten Policy to create a backward compatible wire-format.
10349	// Deprecated. Use 'policy' to specify bindings.
10350	Bindings []*Binding `json:"bindings,omitempty"`
10351
10352	// Etag: Flatten Policy to create a backward compatible wire-format.
10353	// Deprecated. Use 'policy' to specify the etag.
10354	Etag string `json:"etag,omitempty"`
10355
10356	// Policy: REQUIRED: The complete policy to be applied to the
10357	// 'resource'. The size of the policy is limited to a few 10s of KB. An
10358	// empty policy is in general a valid policy but certain services (like
10359	// Projects) might reject them.
10360	Policy *Policy `json:"policy,omitempty"`
10361
10362	// ForceSendFields is a list of field names (e.g. "Bindings") to
10363	// unconditionally include in API requests. By default, fields with
10364	// empty values are omitted from API requests. However, any non-pointer,
10365	// non-interface field appearing in ForceSendFields will be sent to the
10366	// server regardless of whether the field is empty or not. This may be
10367	// used to include empty fields in Patch requests.
10368	ForceSendFields []string `json:"-"`
10369
10370	// NullFields is a list of field names (e.g. "Bindings") to include in
10371	// API requests with the JSON null value. By default, fields with empty
10372	// values are omitted from API requests. However, any field with an
10373	// empty value appearing in NullFields will be sent to the server as
10374	// null. It is an error if a field in this list has a non-empty value.
10375	// This may be used to include null fields in Patch requests.
10376	NullFields []string `json:"-"`
10377}
10378
10379func (s *GlobalSetPolicyRequest) MarshalJSON() ([]byte, error) {
10380	type NoMethod GlobalSetPolicyRequest
10381	raw := NoMethod(*s)
10382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10383}
10384
10385// GoogleDuration: A Duration represents a signed, fixed-length span of
10386// time represented as a count of seconds and fractions of seconds at
10387// nanosecond resolution. It is independent of any calendar and concepts
10388// like "day" or "month". It is related to Timestamp in that the
10389// difference between two Timestamp values is a Duration and it can be
10390// added or subtracted from a Timestamp. Range is approximately +-10,000
10391// years.
10392//
10393// # Examples
10394//
10395// Example 1: Compute Duration from two Timestamps in pseudo
10396// code.
10397//
10398// Timestamp start = ...; Timestamp end = ...; Duration duration =
10399// ...;
10400//
10401// duration.seconds = end.seconds - start.seconds; duration.nanos =
10402// end.nanos - start.nanos;
10403//
10404// if (duration.seconds  0) { duration.seconds += 1; duration.nanos -=
10405// 1000000000; } else if (duration.seconds > 0 && duration.nanos < 0) {
10406// duration.seconds -= 1; duration.nanos += 1000000000; }
10407//
10408// Example 2: Compute Timestamp from Timestamp + Duration in pseudo
10409// code.
10410//
10411// Timestamp start = ...; Duration duration = ...; Timestamp end =
10412// ...;
10413//
10414// end.seconds = start.seconds + duration.seconds; end.nanos =
10415// start.nanos + duration.nanos;
10416//
10417// if (end.nanos = 1000000000) { end.seconds += 1; end.nanos -=
10418// 1000000000; }
10419//
10420// Example 3: Compute Duration from datetime.timedelta in Python.
10421//
10422// td = datetime.timedelta(days=3, minutes=10) duration = Duration()
10423// duration.FromTimedelta(td)
10424//
10425// # JSON Mapping
10426//
10427// In JSON format, the Duration type is encoded as a string rather than
10428// an object, where the string ends in the suffix "s" (indicating
10429// seconds) and is preceded by the number of seconds, with nanoseconds
10430// expressed as fractional seconds. For example, 3 seconds with 0
10431// nanoseconds should be encoded in JSON format as "3s", while 3 seconds
10432// and 1 nanosecond should be expressed in JSON format as
10433// "3.000000001s", and 3 seconds and 1 microsecond should be expressed
10434// in JSON format as "3.000001s".
10435type GoogleDuration struct {
10436	// Nanos: Signed fractions of a second at nanosecond resolution of the
10437	// span of time. Durations less than one second are represented with a 0
10438	// `seconds` field and a positive or negative `nanos` field. For
10439	// durations of one second or more, a non-zero value for the `nanos`
10440	// field must be of the same sign as the `seconds` field. Must be from
10441	// -999,999,999 to +999,999,999 inclusive.
10442	Nanos int64 `json:"nanos,omitempty"`
10443
10444	// Seconds: Signed seconds of the span of time. Must be from
10445	// -315,576,000,000 to +315,576,000,000 inclusive. Note: these bounds
10446	// are computed from: 60 sec/min * 60 min/hr * 24 hr/day * 365.25
10447	// days/year * 10000 years
10448	Seconds int64 `json:"seconds,omitempty,string"`
10449
10450	// ForceSendFields is a list of field names (e.g. "Nanos") to
10451	// unconditionally include in API requests. By default, fields with
10452	// empty values are omitted from API requests. However, any non-pointer,
10453	// non-interface field appearing in ForceSendFields will be sent to the
10454	// server regardless of whether the field is empty or not. This may be
10455	// used to include empty fields in Patch requests.
10456	ForceSendFields []string `json:"-"`
10457
10458	// NullFields is a list of field names (e.g. "Nanos") to include in API
10459	// requests with the JSON null value. By default, fields with empty
10460	// values are omitted from API requests. However, any field with an
10461	// empty value appearing in NullFields will be sent to the server as
10462	// null. It is an error if a field in this list has a non-empty value.
10463	// This may be used to include null fields in Patch requests.
10464	NullFields []string `json:"-"`
10465}
10466
10467func (s *GoogleDuration) MarshalJSON() ([]byte, error) {
10468	type NoMethod GoogleDuration
10469	raw := NoMethod(*s)
10470	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10471}
10472
10473// GuestAttributes: A guest attributes entry.
10474type GuestAttributes struct {
10475	// Kind: [Output Only] Type of the resource. Always
10476	// compute#guestAttributes for guest attributes entry.
10477	Kind string `json:"kind,omitempty"`
10478
10479	// QueryPath: The path to be queried. This can be the default namespace
10480	// ('/') or a nested namespace ('/\/') or a specified key ('/\/\')
10481	QueryPath string `json:"queryPath,omitempty"`
10482
10483	// QueryValue: [Output Only] The value of the requested queried path.
10484	QueryValue *GuestAttributesValue `json:"queryValue,omitempty"`
10485
10486	// SelfLink: [Output Only] Server-defined URL for this resource.
10487	SelfLink string `json:"selfLink,omitempty"`
10488
10489	// VariableKey: The key to search for.
10490	VariableKey string `json:"variableKey,omitempty"`
10491
10492	// VariableValue: [Output Only] The value found for the requested key.
10493	VariableValue string `json:"variableValue,omitempty"`
10494
10495	// ServerResponse contains the HTTP response code and headers from the
10496	// server.
10497	googleapi.ServerResponse `json:"-"`
10498
10499	// ForceSendFields is a list of field names (e.g. "Kind") to
10500	// unconditionally include in API requests. By default, fields with
10501	// empty values are omitted from API requests. However, any non-pointer,
10502	// non-interface field appearing in ForceSendFields will be sent to the
10503	// server regardless of whether the field is empty or not. This may be
10504	// used to include empty fields in Patch requests.
10505	ForceSendFields []string `json:"-"`
10506
10507	// NullFields is a list of field names (e.g. "Kind") to include in API
10508	// requests with the JSON null value. By default, fields with empty
10509	// values are omitted from API requests. However, any field with an
10510	// empty value appearing in NullFields will be sent to the server as
10511	// null. It is an error if a field in this list has a non-empty value.
10512	// This may be used to include null fields in Patch requests.
10513	NullFields []string `json:"-"`
10514}
10515
10516func (s *GuestAttributes) MarshalJSON() ([]byte, error) {
10517	type NoMethod GuestAttributes
10518	raw := NoMethod(*s)
10519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10520}
10521
10522// GuestAttributesEntry: A guest attributes namespace/key/value entry.
10523type GuestAttributesEntry struct {
10524	// Key: Key for the guest attribute entry.
10525	Key string `json:"key,omitempty"`
10526
10527	// Namespace: Namespace for the guest attribute entry.
10528	Namespace string `json:"namespace,omitempty"`
10529
10530	// Value: Value for the guest attribute entry.
10531	Value string `json:"value,omitempty"`
10532
10533	// ForceSendFields is a list of field names (e.g. "Key") to
10534	// unconditionally include in API requests. By default, fields with
10535	// empty values are omitted from API requests. However, any non-pointer,
10536	// non-interface field appearing in ForceSendFields will be sent to the
10537	// server regardless of whether the field is empty or not. This may be
10538	// used to include empty fields in Patch requests.
10539	ForceSendFields []string `json:"-"`
10540
10541	// NullFields is a list of field names (e.g. "Key") to include in API
10542	// requests with the JSON null value. By default, fields with empty
10543	// values are omitted from API requests. However, any field with an
10544	// empty value appearing in NullFields will be sent to the server as
10545	// null. It is an error if a field in this list has a non-empty value.
10546	// This may be used to include null fields in Patch requests.
10547	NullFields []string `json:"-"`
10548}
10549
10550func (s *GuestAttributesEntry) MarshalJSON() ([]byte, error) {
10551	type NoMethod GuestAttributesEntry
10552	raw := NoMethod(*s)
10553	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10554}
10555
10556// GuestAttributesValue: Array of guest attribute namespace/key/value
10557// tuples.
10558type GuestAttributesValue struct {
10559	Items []*GuestAttributesEntry `json:"items,omitempty"`
10560
10561	// ForceSendFields is a list of field names (e.g. "Items") to
10562	// unconditionally include in API requests. By default, fields with
10563	// empty values are omitted from API requests. However, any non-pointer,
10564	// non-interface field appearing in ForceSendFields will be sent to the
10565	// server regardless of whether the field is empty or not. This may be
10566	// used to include empty fields in Patch requests.
10567	ForceSendFields []string `json:"-"`
10568
10569	// NullFields is a list of field names (e.g. "Items") to include in API
10570	// requests with the JSON null value. By default, fields with empty
10571	// values are omitted from API requests. However, any field with an
10572	// empty value appearing in NullFields will be sent to the server as
10573	// null. It is an error if a field in this list has a non-empty value.
10574	// This may be used to include null fields in Patch requests.
10575	NullFields []string `json:"-"`
10576}
10577
10578func (s *GuestAttributesValue) MarshalJSON() ([]byte, error) {
10579	type NoMethod GuestAttributesValue
10580	raw := NoMethod(*s)
10581	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10582}
10583
10584// GuestOsFeature: Guest OS features.
10585type GuestOsFeature struct {
10586	// Type: The ID of a supported feature. Read  Enabling guest operating
10587	// system features to see a list of available options.
10588	//
10589	// Possible values:
10590	//   "FEATURE_TYPE_UNSPECIFIED"
10591	//   "GVNIC"
10592	//   "MULTI_IP_SUBNET"
10593	//   "SECURE_BOOT"
10594	//   "UEFI_COMPATIBLE"
10595	//   "VIRTIO_SCSI_MULTIQUEUE"
10596	//   "WINDOWS"
10597	Type string `json:"type,omitempty"`
10598
10599	// ForceSendFields is a list of field names (e.g. "Type") to
10600	// unconditionally include in API requests. By default, fields with
10601	// empty values are omitted from API requests. However, any non-pointer,
10602	// non-interface field appearing in ForceSendFields will be sent to the
10603	// server regardless of whether the field is empty or not. This may be
10604	// used to include empty fields in Patch requests.
10605	ForceSendFields []string `json:"-"`
10606
10607	// NullFields is a list of field names (e.g. "Type") to include in API
10608	// requests with the JSON null value. By default, fields with empty
10609	// values are omitted from API requests. However, any field with an
10610	// empty value appearing in NullFields will be sent to the server as
10611	// null. It is an error if a field in this list has a non-empty value.
10612	// This may be used to include null fields in Patch requests.
10613	NullFields []string `json:"-"`
10614}
10615
10616func (s *GuestOsFeature) MarshalJSON() ([]byte, error) {
10617	type NoMethod GuestOsFeature
10618	raw := NoMethod(*s)
10619	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10620}
10621
10622type HTTP2HealthCheck struct {
10623	// Host: The value of the host header in the HTTP/2 health check
10624	// request. If left empty (default value), the IP on behalf of which
10625	// this health check is performed will be used.
10626	Host string `json:"host,omitempty"`
10627
10628	// Port: The TCP port number for the health check request. The default
10629	// value is 443. Valid values are 1 through 65535.
10630	Port int64 `json:"port,omitempty"`
10631
10632	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10633	// both port and port_name are defined, port takes precedence.
10634	PortName string `json:"portName,omitempty"`
10635
10636	// PortSpecification: Specifies how port is selected for health
10637	// checking, can be one of following values:
10638	// USE_FIXED_PORT: The port number in port is used for health
10639	// checking.
10640	// USE_NAMED_PORT: The portName is used for health
10641	// checking.
10642	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10643	// each network endpoint is used for health checking. For other
10644	// backends, the port or named port specified in the Backend Service is
10645	// used for health checking.
10646	//
10647	//
10648	// If not specified, HTTP2 health check follows behavior specified in
10649	// port and portName fields.
10650	//
10651	// Possible values:
10652	//   "USE_FIXED_PORT"
10653	//   "USE_NAMED_PORT"
10654	//   "USE_SERVING_PORT"
10655	PortSpecification string `json:"portSpecification,omitempty"`
10656
10657	// ProxyHeader: Specifies the type of proxy header to append before
10658	// sending data to the backend, either NONE or PROXY_V1. The default is
10659	// NONE.
10660	//
10661	// Possible values:
10662	//   "NONE"
10663	//   "PROXY_V1"
10664	ProxyHeader string `json:"proxyHeader,omitempty"`
10665
10666	// RequestPath: The request path of the HTTP/2 health check request. The
10667	// default value is /.
10668	RequestPath string `json:"requestPath,omitempty"`
10669
10670	// Response: The string to match anywhere in the first 1024 bytes of the
10671	// response body. If left empty (the default value), the status code
10672	// determines health. The response data can only be ASCII.
10673	Response string `json:"response,omitempty"`
10674
10675	// ForceSendFields is a list of field names (e.g. "Host") to
10676	// unconditionally include in API requests. By default, fields with
10677	// empty values are omitted from API requests. However, any non-pointer,
10678	// non-interface field appearing in ForceSendFields will be sent to the
10679	// server regardless of whether the field is empty or not. This may be
10680	// used to include empty fields in Patch requests.
10681	ForceSendFields []string `json:"-"`
10682
10683	// NullFields is a list of field names (e.g. "Host") to include in API
10684	// requests with the JSON null value. By default, fields with empty
10685	// values are omitted from API requests. However, any field with an
10686	// empty value appearing in NullFields will be sent to the server as
10687	// null. It is an error if a field in this list has a non-empty value.
10688	// This may be used to include null fields in Patch requests.
10689	NullFields []string `json:"-"`
10690}
10691
10692func (s *HTTP2HealthCheck) MarshalJSON() ([]byte, error) {
10693	type NoMethod HTTP2HealthCheck
10694	raw := NoMethod(*s)
10695	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10696}
10697
10698type HTTPHealthCheck struct {
10699	// Host: The value of the host header in the HTTP health check request.
10700	// If left empty (default value), the IP on behalf of which this health
10701	// check is performed will be used.
10702	Host string `json:"host,omitempty"`
10703
10704	// Port: The TCP port number for the health check request. The default
10705	// value is 80. Valid values are 1 through 65535.
10706	Port int64 `json:"port,omitempty"`
10707
10708	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10709	// both port and port_name are defined, port takes precedence.
10710	PortName string `json:"portName,omitempty"`
10711
10712	// PortSpecification: Specifies how port is selected for health
10713	// checking, can be one of following values:
10714	// USE_FIXED_PORT: The port number in port is used for health
10715	// checking.
10716	// USE_NAMED_PORT: The portName is used for health
10717	// checking.
10718	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10719	// each network endpoint is used for health checking. For other
10720	// backends, the port or named port specified in the Backend Service is
10721	// used for health checking.
10722	//
10723	//
10724	// If not specified, HTTP health check follows behavior specified in
10725	// port and portName fields.
10726	//
10727	// Possible values:
10728	//   "USE_FIXED_PORT"
10729	//   "USE_NAMED_PORT"
10730	//   "USE_SERVING_PORT"
10731	PortSpecification string `json:"portSpecification,omitempty"`
10732
10733	// ProxyHeader: Specifies the type of proxy header to append before
10734	// sending data to the backend, either NONE or PROXY_V1. The default is
10735	// NONE.
10736	//
10737	// Possible values:
10738	//   "NONE"
10739	//   "PROXY_V1"
10740	ProxyHeader string `json:"proxyHeader,omitempty"`
10741
10742	// RequestPath: The request path of the HTTP health check request. The
10743	// default value is /.
10744	RequestPath string `json:"requestPath,omitempty"`
10745
10746	// Response: The string to match anywhere in the first 1024 bytes of the
10747	// response body. If left empty (the default value), the status code
10748	// determines health. The response data can only be ASCII.
10749	Response string `json:"response,omitempty"`
10750
10751	// ForceSendFields is a list of field names (e.g. "Host") to
10752	// unconditionally include in API requests. By default, fields with
10753	// empty values are omitted from API requests. However, any non-pointer,
10754	// non-interface field appearing in ForceSendFields will be sent to the
10755	// server regardless of whether the field is empty or not. This may be
10756	// used to include empty fields in Patch requests.
10757	ForceSendFields []string `json:"-"`
10758
10759	// NullFields is a list of field names (e.g. "Host") to include in API
10760	// requests with the JSON null value. By default, fields with empty
10761	// values are omitted from API requests. However, any field with an
10762	// empty value appearing in NullFields will be sent to the server as
10763	// null. It is an error if a field in this list has a non-empty value.
10764	// This may be used to include null fields in Patch requests.
10765	NullFields []string `json:"-"`
10766}
10767
10768func (s *HTTPHealthCheck) MarshalJSON() ([]byte, error) {
10769	type NoMethod HTTPHealthCheck
10770	raw := NoMethod(*s)
10771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10772}
10773
10774type HTTPSHealthCheck struct {
10775	// Host: The value of the host header in the HTTPS health check request.
10776	// If left empty (default value), the IP on behalf of which this health
10777	// check is performed will be used.
10778	Host string `json:"host,omitempty"`
10779
10780	// Port: The TCP port number for the health check request. The default
10781	// value is 443. Valid values are 1 through 65535.
10782	Port int64 `json:"port,omitempty"`
10783
10784	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
10785	// both port and port_name are defined, port takes precedence.
10786	PortName string `json:"portName,omitempty"`
10787
10788	// PortSpecification: Specifies how port is selected for health
10789	// checking, can be one of following values:
10790	// USE_FIXED_PORT: The port number in port is used for health
10791	// checking.
10792	// USE_NAMED_PORT: The portName is used for health
10793	// checking.
10794	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
10795	// each network endpoint is used for health checking. For other
10796	// backends, the port or named port specified in the Backend Service is
10797	// used for health checking.
10798	//
10799	//
10800	// If not specified, HTTPS health check follows behavior specified in
10801	// port and portName fields.
10802	//
10803	// Possible values:
10804	//   "USE_FIXED_PORT"
10805	//   "USE_NAMED_PORT"
10806	//   "USE_SERVING_PORT"
10807	PortSpecification string `json:"portSpecification,omitempty"`
10808
10809	// ProxyHeader: Specifies the type of proxy header to append before
10810	// sending data to the backend, either NONE or PROXY_V1. The default is
10811	// NONE.
10812	//
10813	// Possible values:
10814	//   "NONE"
10815	//   "PROXY_V1"
10816	ProxyHeader string `json:"proxyHeader,omitempty"`
10817
10818	// RequestPath: The request path of the HTTPS health check request. The
10819	// default value is /.
10820	RequestPath string `json:"requestPath,omitempty"`
10821
10822	// Response: The string to match anywhere in the first 1024 bytes of the
10823	// response body. If left empty (the default value), the status code
10824	// determines health. The response data can only be ASCII.
10825	Response string `json:"response,omitempty"`
10826
10827	// ForceSendFields is a list of field names (e.g. "Host") to
10828	// unconditionally include in API requests. By default, fields with
10829	// empty values are omitted from API requests. However, any non-pointer,
10830	// non-interface field appearing in ForceSendFields will be sent to the
10831	// server regardless of whether the field is empty or not. This may be
10832	// used to include empty fields in Patch requests.
10833	ForceSendFields []string `json:"-"`
10834
10835	// NullFields is a list of field names (e.g. "Host") to include in API
10836	// requests with the JSON null value. By default, fields with empty
10837	// values are omitted from API requests. However, any field with an
10838	// empty value appearing in NullFields will be sent to the server as
10839	// null. It is an error if a field in this list has a non-empty value.
10840	// This may be used to include null fields in Patch requests.
10841	NullFields []string `json:"-"`
10842}
10843
10844func (s *HTTPSHealthCheck) MarshalJSON() ([]byte, error) {
10845	type NoMethod HTTPSHealthCheck
10846	raw := NoMethod(*s)
10847	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10848}
10849
10850// HealthCheck: Represents a Health Check resource.
10851//
10852// Google Compute Engine has two Health Check resources:
10853//
10854// * [Global](/compute/docs/reference/rest/latest/healthChecks) *
10855// [Regional](/compute/docs/reference/rest/latest/regionHealthChecks)
10856//
10857// In
10858// ternal HTTP(S) load balancers use regional health checks. All other
10859// types of GCP load balancers and managed instance group auto-healing
10860// use global health checks. For more information, read Health Check
10861// Concepts.
10862//
10863// To perform health checks on network load balancers, you must use
10864// either httpHealthChecks or httpsHealthChecks.
10865type HealthCheck struct {
10866	// CheckIntervalSec: How often (in seconds) to send a health check. The
10867	// default value is 5 seconds.
10868	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
10869
10870	// CreationTimestamp: [Output Only] Creation timestamp in 3339 text
10871	// format.
10872	CreationTimestamp string `json:"creationTimestamp,omitempty"`
10873
10874	// Description: An optional description of this resource. Provide this
10875	// property when you create the resource.
10876	Description string `json:"description,omitempty"`
10877
10878	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
10879	// after this many consecutive successes. The default value is 2.
10880	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
10881
10882	Http2HealthCheck *HTTP2HealthCheck `json:"http2HealthCheck,omitempty"`
10883
10884	HttpHealthCheck *HTTPHealthCheck `json:"httpHealthCheck,omitempty"`
10885
10886	HttpsHealthCheck *HTTPSHealthCheck `json:"httpsHealthCheck,omitempty"`
10887
10888	// Id: [Output Only] The unique identifier for the resource. This
10889	// identifier is defined by the server.
10890	Id uint64 `json:"id,omitempty,string"`
10891
10892	// Kind: Type of the resource.
10893	Kind string `json:"kind,omitempty"`
10894
10895	// LogConfig: Configure logging on this health check.
10896	LogConfig *HealthCheckLogConfig `json:"logConfig,omitempty"`
10897
10898	// Name: Name of the resource. Provided by the client when the resource
10899	// is created. The name must be 1-63 characters long, and comply with
10900	// RFC1035. Specifically, the name must be 1-63 characters long and
10901	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
10902	// the first character must be a lowercase letter, and all following
10903	// characters must be a dash, lowercase letter, or digit, except the
10904	// last character, which cannot be a dash.
10905	Name string `json:"name,omitempty"`
10906
10907	// Region: [Output Only] Region where the health check resides. Not
10908	// applicable to global health checks.
10909	Region string `json:"region,omitempty"`
10910
10911	// SelfLink: [Output Only] Server-defined URL for the resource.
10912	SelfLink string `json:"selfLink,omitempty"`
10913
10914	SslHealthCheck *SSLHealthCheck `json:"sslHealthCheck,omitempty"`
10915
10916	TcpHealthCheck *TCPHealthCheck `json:"tcpHealthCheck,omitempty"`
10917
10918	// TimeoutSec: How long (in seconds) to wait before claiming failure.
10919	// The default value is 5 seconds. It is invalid for timeoutSec to have
10920	// greater value than checkIntervalSec.
10921	TimeoutSec int64 `json:"timeoutSec,omitempty"`
10922
10923	// Type: Specifies the type of the healthCheck, either TCP, SSL, HTTP,
10924	// HTTPS or HTTP2. If not specified, the default is TCP. Exactly one of
10925	// the protocol-specific health check field must be specified, which
10926	// must match type field.
10927	//
10928	// Possible values:
10929	//   "HTTP"
10930	//   "HTTP2"
10931	//   "HTTPS"
10932	//   "INVALID"
10933	//   "SSL"
10934	//   "TCP"
10935	Type string `json:"type,omitempty"`
10936
10937	// UnhealthyThreshold: A so-far healthy instance will be marked
10938	// unhealthy after this many consecutive failures. The default value is
10939	// 2.
10940	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
10941
10942	// ServerResponse contains the HTTP response code and headers from the
10943	// server.
10944	googleapi.ServerResponse `json:"-"`
10945
10946	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
10947	// unconditionally include in API requests. By default, fields with
10948	// empty values are omitted from API requests. However, any non-pointer,
10949	// non-interface field appearing in ForceSendFields will be sent to the
10950	// server regardless of whether the field is empty or not. This may be
10951	// used to include empty fields in Patch requests.
10952	ForceSendFields []string `json:"-"`
10953
10954	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
10955	// include in API requests with the JSON null value. By default, fields
10956	// with empty values are omitted from API requests. However, any field
10957	// with an empty value appearing in NullFields will be sent to the
10958	// server as null. It is an error if a field in this list has a
10959	// non-empty value. This may be used to include null fields in Patch
10960	// requests.
10961	NullFields []string `json:"-"`
10962}
10963
10964func (s *HealthCheck) MarshalJSON() ([]byte, error) {
10965	type NoMethod HealthCheck
10966	raw := NoMethod(*s)
10967	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
10968}
10969
10970// HealthCheckList: Contains a list of HealthCheck resources.
10971type HealthCheckList struct {
10972	// Id: [Output Only] Unique identifier for the resource; defined by the
10973	// server.
10974	Id string `json:"id,omitempty"`
10975
10976	// Items: A list of HealthCheck resources.
10977	Items []*HealthCheck `json:"items,omitempty"`
10978
10979	// Kind: Type of resource.
10980	Kind string `json:"kind,omitempty"`
10981
10982	// NextPageToken: [Output Only] This token allows you to get the next
10983	// page of results for list requests. If the number of results is larger
10984	// than maxResults, use the nextPageToken as a value for the query
10985	// parameter pageToken in the next list request. Subsequent list
10986	// requests will have their own nextPageToken to continue paging through
10987	// the results.
10988	NextPageToken string `json:"nextPageToken,omitempty"`
10989
10990	// SelfLink: [Output Only] Server-defined URL for this resource.
10991	SelfLink string `json:"selfLink,omitempty"`
10992
10993	// Warning: [Output Only] Informational warning message.
10994	Warning *HealthCheckListWarning `json:"warning,omitempty"`
10995
10996	// ServerResponse contains the HTTP response code and headers from the
10997	// server.
10998	googleapi.ServerResponse `json:"-"`
10999
11000	// ForceSendFields is a list of field names (e.g. "Id") to
11001	// unconditionally include in API requests. By default, fields with
11002	// empty values are omitted from API requests. However, any non-pointer,
11003	// non-interface field appearing in ForceSendFields will be sent to the
11004	// server regardless of whether the field is empty or not. This may be
11005	// used to include empty fields in Patch requests.
11006	ForceSendFields []string `json:"-"`
11007
11008	// NullFields is a list of field names (e.g. "Id") to include in API
11009	// requests with the JSON null value. By default, fields with empty
11010	// values are omitted from API requests. However, any field with an
11011	// empty value appearing in NullFields will be sent to the server as
11012	// null. It is an error if a field in this list has a non-empty value.
11013	// This may be used to include null fields in Patch requests.
11014	NullFields []string `json:"-"`
11015}
11016
11017func (s *HealthCheckList) MarshalJSON() ([]byte, error) {
11018	type NoMethod HealthCheckList
11019	raw := NoMethod(*s)
11020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11021}
11022
11023// HealthCheckListWarning: [Output Only] Informational warning message.
11024type HealthCheckListWarning struct {
11025	// Code: [Output Only] A warning code, if applicable. For example,
11026	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11027	// the response.
11028	//
11029	// Possible values:
11030	//   "CLEANUP_FAILED"
11031	//   "DEPRECATED_RESOURCE_USED"
11032	//   "DEPRECATED_TYPE_USED"
11033	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11034	//   "EXPERIMENTAL_TYPE_USED"
11035	//   "EXTERNAL_API_WARNING"
11036	//   "FIELD_VALUE_OVERRIDEN"
11037	//   "INJECTED_KERNELS_DEPRECATED"
11038	//   "MISSING_TYPE_DEPENDENCY"
11039	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11040	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11041	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11042	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11043	//   "NEXT_HOP_NOT_RUNNING"
11044	//   "NOT_CRITICAL_ERROR"
11045	//   "NO_RESULTS_ON_PAGE"
11046	//   "REQUIRED_TOS_AGREEMENT"
11047	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11048	//   "RESOURCE_NOT_DELETED"
11049	//   "SCHEMA_VALIDATION_IGNORED"
11050	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11051	//   "UNDECLARED_PROPERTIES"
11052	//   "UNREACHABLE"
11053	Code string `json:"code,omitempty"`
11054
11055	// Data: [Output Only] Metadata about this warning in key: value format.
11056	// For example:
11057	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11058	Data []*HealthCheckListWarningData `json:"data,omitempty"`
11059
11060	// Message: [Output Only] A human-readable description of the warning
11061	// code.
11062	Message string `json:"message,omitempty"`
11063
11064	// ForceSendFields is a list of field names (e.g. "Code") to
11065	// unconditionally include in API requests. By default, fields with
11066	// empty values are omitted from API requests. However, any non-pointer,
11067	// non-interface field appearing in ForceSendFields will be sent to the
11068	// server regardless of whether the field is empty or not. This may be
11069	// used to include empty fields in Patch requests.
11070	ForceSendFields []string `json:"-"`
11071
11072	// NullFields is a list of field names (e.g. "Code") to include in API
11073	// requests with the JSON null value. By default, fields with empty
11074	// values are omitted from API requests. However, any field with an
11075	// empty value appearing in NullFields will be sent to the server as
11076	// null. It is an error if a field in this list has a non-empty value.
11077	// This may be used to include null fields in Patch requests.
11078	NullFields []string `json:"-"`
11079}
11080
11081func (s *HealthCheckListWarning) MarshalJSON() ([]byte, error) {
11082	type NoMethod HealthCheckListWarning
11083	raw := NoMethod(*s)
11084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11085}
11086
11087type HealthCheckListWarningData struct {
11088	// Key: [Output Only] A key that provides more detail on the warning
11089	// being returned. For example, for warnings where there are no results
11090	// in a list request for a particular zone, this key might be scope and
11091	// the key value might be the zone name. Other examples might be a key
11092	// indicating a deprecated resource and a suggested replacement, or a
11093	// warning about invalid network settings (for example, if an instance
11094	// attempts to perform IP forwarding but is not enabled for IP
11095	// forwarding).
11096	Key string `json:"key,omitempty"`
11097
11098	// Value: [Output Only] A warning data value corresponding to the key.
11099	Value string `json:"value,omitempty"`
11100
11101	// ForceSendFields is a list of field names (e.g. "Key") to
11102	// unconditionally include in API requests. By default, fields with
11103	// empty values are omitted from API requests. However, any non-pointer,
11104	// non-interface field appearing in ForceSendFields will be sent to the
11105	// server regardless of whether the field is empty or not. This may be
11106	// used to include empty fields in Patch requests.
11107	ForceSendFields []string `json:"-"`
11108
11109	// NullFields is a list of field names (e.g. "Key") to include in API
11110	// requests with the JSON null value. By default, fields with empty
11111	// values are omitted from API requests. However, any field with an
11112	// empty value appearing in NullFields will be sent to the server as
11113	// null. It is an error if a field in this list has a non-empty value.
11114	// This may be used to include null fields in Patch requests.
11115	NullFields []string `json:"-"`
11116}
11117
11118func (s *HealthCheckListWarningData) MarshalJSON() ([]byte, error) {
11119	type NoMethod HealthCheckListWarningData
11120	raw := NoMethod(*s)
11121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11122}
11123
11124// HealthCheckLogConfig: Configuration of logging on a health check. If
11125// logging is enabled, logs will be exported to Stackdriver.
11126type HealthCheckLogConfig struct {
11127	// Enable: Indicates whether or not to export logs. This is false by
11128	// default, which means no health check logging will be done.
11129	Enable bool `json:"enable,omitempty"`
11130
11131	// ForceSendFields is a list of field names (e.g. "Enable") to
11132	// unconditionally include in API requests. By default, fields with
11133	// empty values are omitted from API requests. However, any non-pointer,
11134	// non-interface field appearing in ForceSendFields will be sent to the
11135	// server regardless of whether the field is empty or not. This may be
11136	// used to include empty fields in Patch requests.
11137	ForceSendFields []string `json:"-"`
11138
11139	// NullFields is a list of field names (e.g. "Enable") to include in API
11140	// requests with the JSON null value. By default, fields with empty
11141	// values are omitted from API requests. However, any field with an
11142	// empty value appearing in NullFields will be sent to the server as
11143	// null. It is an error if a field in this list has a non-empty value.
11144	// This may be used to include null fields in Patch requests.
11145	NullFields []string `json:"-"`
11146}
11147
11148func (s *HealthCheckLogConfig) MarshalJSON() ([]byte, error) {
11149	type NoMethod HealthCheckLogConfig
11150	raw := NoMethod(*s)
11151	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11152}
11153
11154// HealthCheckReference: A full or valid partial URL to a health check.
11155// For example, the following are valid URLs:
11156// -
11157// https://www.googleapis.com/compute/beta/projects/project-id/global/httpHealthChecks/health-check
11158// - projects/project-id/global/httpHealthChecks/health-check
11159// - global/httpHealthChecks/health-check
11160type HealthCheckReference struct {
11161	HealthCheck string `json:"healthCheck,omitempty"`
11162
11163	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
11164	// unconditionally include in API requests. By default, fields with
11165	// empty values are omitted from API requests. However, any non-pointer,
11166	// non-interface field appearing in ForceSendFields will be sent to the
11167	// server regardless of whether the field is empty or not. This may be
11168	// used to include empty fields in Patch requests.
11169	ForceSendFields []string `json:"-"`
11170
11171	// NullFields is a list of field names (e.g. "HealthCheck") to include
11172	// in API requests with the JSON null value. By default, fields with
11173	// empty values are omitted from API requests. However, any field with
11174	// an empty value appearing in NullFields will be sent to the server as
11175	// null. It is an error if a field in this list has a non-empty value.
11176	// This may be used to include null fields in Patch requests.
11177	NullFields []string `json:"-"`
11178}
11179
11180func (s *HealthCheckReference) MarshalJSON() ([]byte, error) {
11181	type NoMethod HealthCheckReference
11182	raw := NoMethod(*s)
11183	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11184}
11185
11186// HealthCheckService: A HealthCheckService defines a set of backends on
11187// which to perform periodic health checks and an endpoint to which to
11188// send notification of changes in the health status of the backends.
11189type HealthCheckService struct {
11190	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
11191	// format.
11192	CreationTimestamp string `json:"creationTimestamp,omitempty"`
11193
11194	// Description: An optional description of this resource. Provide this
11195	// property when you create the resource.
11196	Description string `json:"description,omitempty"`
11197
11198	// Fingerprint: Fingerprint of this resource. A hash of the contents
11199	// stored in this object. This field is used in optimistic locking. This
11200	// field will be ignored when inserting a HealthCheckService. An
11201	// up-to-date fingerprint must be provided in order to patch/update the
11202	// HealthCheckService; Otherwise, the request will fail with error 412
11203	// conditionNotMet. To see the latest fingerprint, make a get() request
11204	// to retrieve the HealthCheckService.
11205	Fingerprint string `json:"fingerprint,omitempty"`
11206
11207	// HealthChecks: List of URLs to the HealthCheck resources. Must have at
11208	// least one HealthCheck, and not more than 10. HealthCheck resources
11209	// must have portSpecification=USE_SERVING_PORT. For regional
11210	// HealthCheckService, the HealthCheck must be regional and in the same
11211	// region. For global HealthCheckService, HealthCheck must be global.
11212	// Mix of regional and global HealthChecks is not supported. Multiple
11213	// regional HealthChecks must belong to the same region. Regional
11214	// HealthChecks</code? must belong to the same region as zones of NEGs.
11215	HealthChecks []string `json:"healthChecks,omitempty"`
11216
11217	// HealthStatusAggregationPolicy: Optional. Policy for how the results
11218	// from multiple health checks for the same endpoint are aggregated.
11219	// Defaults to NO_AGGREGATION if unspecified.
11220	// - NO_AGGREGATION. An EndpointHealth message is returned for each
11221	// backend in the health check service.
11222	// - AND. If any backend's health check reports UNHEALTHY, then
11223	// UNHEALTHY is the HealthState of the entire health check service. If
11224	// all backend's are healthy, the HealthState of the health check
11225	// service is HEALTHY. .
11226	//
11227	// Possible values:
11228	//   "AND"
11229	//   "NO_AGGREGATION"
11230	HealthStatusAggregationPolicy string `json:"healthStatusAggregationPolicy,omitempty"`
11231
11232	// HealthStatusAggregationStrategy: Policy for how the results from
11233	// multiple health checks for the same endpoint are aggregated.
11234	// - NO_AGGREGATION. An EndpointHealth message is returned for each
11235	// backend in the health check service.
11236	// - AND. If any backend's health check reports UNHEALTHY, then
11237	// UNHEALTHY is the HealthState of the entire health check service. If
11238	// all backend's are healthy, the HealthState of the health check
11239	// service is HEALTHY. .
11240	HealthStatusAggregationStrategy interface{} `json:"healthStatusAggregationStrategy,omitempty"`
11241
11242	// Id: [Output Only] The unique identifier for the resource. This
11243	// identifier is defined by the server.
11244	Id uint64 `json:"id,omitempty,string"`
11245
11246	// Kind: [Output only] Type of the resource. Always
11247	// compute#healthCheckServicefor health check services.
11248	Kind string `json:"kind,omitempty"`
11249
11250	// Name: Name of the resource. The name must be 1-63 characters long,
11251	// and comply with RFC1035. Specifically, the name must be 1-63
11252	// characters long and match the regular expression
11253	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
11254	// a lowercase letter, and all following characters must be a dash,
11255	// lowercase letter, or digit, except the last character, which cannot
11256	// be a dash.
11257	Name string `json:"name,omitempty"`
11258
11259	// NetworkEndpointGroups: List of URLs to the NetworkEndpointGroup
11260	// resources. Must not have more than 100. For regional
11261	// HealthCheckService, NEGs must be in zones in the region of the
11262	// HealthCheckService.
11263	NetworkEndpointGroups []string `json:"networkEndpointGroups,omitempty"`
11264
11265	// NotificationEndpoints: List of URLs to the NotificationEndpoint
11266	// resources. Must not have more than 10. A list of endpoints for
11267	// receiving notifications of change in health status. For regional
11268	// HealthCheckService, NotificationEndpoint must be regional and in the
11269	// same region. For global HealthCheckService, NotificationEndpoint must
11270	// be global.
11271	NotificationEndpoints []string `json:"notificationEndpoints,omitempty"`
11272
11273	// Region: [Output Only] URL of the region where the health check
11274	// service resides. This field is not applicable to global health check
11275	// services. You must specify this field as part of the HTTP request
11276	// URL. It is not settable as a field in the request body.
11277	Region string `json:"region,omitempty"`
11278
11279	// SelfLink: [Output Only] Server-defined URL for the resource.
11280	SelfLink string `json:"selfLink,omitempty"`
11281
11282	// ServerResponse contains the HTTP response code and headers from the
11283	// server.
11284	googleapi.ServerResponse `json:"-"`
11285
11286	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
11287	// to unconditionally include in API requests. By default, fields with
11288	// empty values are omitted from API requests. However, any non-pointer,
11289	// non-interface field appearing in ForceSendFields will be sent to the
11290	// server regardless of whether the field is empty or not. This may be
11291	// used to include empty fields in Patch requests.
11292	ForceSendFields []string `json:"-"`
11293
11294	// NullFields is a list of field names (e.g. "CreationTimestamp") to
11295	// include in API requests with the JSON null value. By default, fields
11296	// with empty values are omitted from API requests. However, any field
11297	// with an empty value appearing in NullFields will be sent to the
11298	// server as null. It is an error if a field in this list has a
11299	// non-empty value. This may be used to include null fields in Patch
11300	// requests.
11301	NullFields []string `json:"-"`
11302}
11303
11304func (s *HealthCheckService) MarshalJSON() ([]byte, error) {
11305	type NoMethod HealthCheckService
11306	raw := NoMethod(*s)
11307	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11308}
11309
11310type HealthCheckServicesList struct {
11311	// Id: [Output Only] Unique identifier for the resource; defined by the
11312	// server.
11313	Id string `json:"id,omitempty"`
11314
11315	// Items: A list of HealthCheckService resources.
11316	Items []*HealthCheckService `json:"items,omitempty"`
11317
11318	// Kind: [Output Only] Type of the resource. Always
11319	// compute#healthCheckServicesList for lists of HealthCheckServices.
11320	Kind string `json:"kind,omitempty"`
11321
11322	// NextPageToken: [Output Only] This token allows you to get the next
11323	// page of results for list requests. If the number of results is larger
11324	// than maxResults, use the nextPageToken as a value for the query
11325	// parameter pageToken in the next list request. Subsequent list
11326	// requests will have their own nextPageToken to continue paging through
11327	// the results.
11328	NextPageToken string `json:"nextPageToken,omitempty"`
11329
11330	// SelfLink: [Output Only] Server-defined URL for this resource.
11331	SelfLink string `json:"selfLink,omitempty"`
11332
11333	// Warning: [Output Only] Informational warning message.
11334	Warning *HealthCheckServicesListWarning `json:"warning,omitempty"`
11335
11336	// ServerResponse contains the HTTP response code and headers from the
11337	// server.
11338	googleapi.ServerResponse `json:"-"`
11339
11340	// ForceSendFields is a list of field names (e.g. "Id") to
11341	// unconditionally include in API requests. By default, fields with
11342	// empty values are omitted from API requests. However, any non-pointer,
11343	// non-interface field appearing in ForceSendFields will be sent to the
11344	// server regardless of whether the field is empty or not. This may be
11345	// used to include empty fields in Patch requests.
11346	ForceSendFields []string `json:"-"`
11347
11348	// NullFields is a list of field names (e.g. "Id") to include in API
11349	// requests with the JSON null value. By default, fields with empty
11350	// values are omitted from API requests. However, any field with an
11351	// empty value appearing in NullFields will be sent to the server as
11352	// null. It is an error if a field in this list has a non-empty value.
11353	// This may be used to include null fields in Patch requests.
11354	NullFields []string `json:"-"`
11355}
11356
11357func (s *HealthCheckServicesList) MarshalJSON() ([]byte, error) {
11358	type NoMethod HealthCheckServicesList
11359	raw := NoMethod(*s)
11360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11361}
11362
11363// HealthCheckServicesListWarning: [Output Only] Informational warning
11364// message.
11365type HealthCheckServicesListWarning struct {
11366	// Code: [Output Only] A warning code, if applicable. For example,
11367	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11368	// the response.
11369	//
11370	// Possible values:
11371	//   "CLEANUP_FAILED"
11372	//   "DEPRECATED_RESOURCE_USED"
11373	//   "DEPRECATED_TYPE_USED"
11374	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11375	//   "EXPERIMENTAL_TYPE_USED"
11376	//   "EXTERNAL_API_WARNING"
11377	//   "FIELD_VALUE_OVERRIDEN"
11378	//   "INJECTED_KERNELS_DEPRECATED"
11379	//   "MISSING_TYPE_DEPENDENCY"
11380	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11381	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11382	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11383	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11384	//   "NEXT_HOP_NOT_RUNNING"
11385	//   "NOT_CRITICAL_ERROR"
11386	//   "NO_RESULTS_ON_PAGE"
11387	//   "REQUIRED_TOS_AGREEMENT"
11388	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11389	//   "RESOURCE_NOT_DELETED"
11390	//   "SCHEMA_VALIDATION_IGNORED"
11391	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11392	//   "UNDECLARED_PROPERTIES"
11393	//   "UNREACHABLE"
11394	Code string `json:"code,omitempty"`
11395
11396	// Data: [Output Only] Metadata about this warning in key: value format.
11397	// For example:
11398	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11399	Data []*HealthCheckServicesListWarningData `json:"data,omitempty"`
11400
11401	// Message: [Output Only] A human-readable description of the warning
11402	// code.
11403	Message string `json:"message,omitempty"`
11404
11405	// ForceSendFields is a list of field names (e.g. "Code") to
11406	// unconditionally include in API requests. By default, fields with
11407	// empty values are omitted from API requests. However, any non-pointer,
11408	// non-interface field appearing in ForceSendFields will be sent to the
11409	// server regardless of whether the field is empty or not. This may be
11410	// used to include empty fields in Patch requests.
11411	ForceSendFields []string `json:"-"`
11412
11413	// NullFields is a list of field names (e.g. "Code") to include in API
11414	// requests with the JSON null value. By default, fields with empty
11415	// values are omitted from API requests. However, any field with an
11416	// empty value appearing in NullFields will be sent to the server as
11417	// null. It is an error if a field in this list has a non-empty value.
11418	// This may be used to include null fields in Patch requests.
11419	NullFields []string `json:"-"`
11420}
11421
11422func (s *HealthCheckServicesListWarning) MarshalJSON() ([]byte, error) {
11423	type NoMethod HealthCheckServicesListWarning
11424	raw := NoMethod(*s)
11425	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11426}
11427
11428type HealthCheckServicesListWarningData struct {
11429	// Key: [Output Only] A key that provides more detail on the warning
11430	// being returned. For example, for warnings where there are no results
11431	// in a list request for a particular zone, this key might be scope and
11432	// the key value might be the zone name. Other examples might be a key
11433	// indicating a deprecated resource and a suggested replacement, or a
11434	// warning about invalid network settings (for example, if an instance
11435	// attempts to perform IP forwarding but is not enabled for IP
11436	// forwarding).
11437	Key string `json:"key,omitempty"`
11438
11439	// Value: [Output Only] A warning data value corresponding to the key.
11440	Value string `json:"value,omitempty"`
11441
11442	// ForceSendFields is a list of field names (e.g. "Key") to
11443	// unconditionally include in API requests. By default, fields with
11444	// empty values are omitted from API requests. However, any non-pointer,
11445	// non-interface field appearing in ForceSendFields will be sent to the
11446	// server regardless of whether the field is empty or not. This may be
11447	// used to include empty fields in Patch requests.
11448	ForceSendFields []string `json:"-"`
11449
11450	// NullFields is a list of field names (e.g. "Key") to include in API
11451	// requests with the JSON null value. By default, fields with empty
11452	// values are omitted from API requests. However, any field with an
11453	// empty value appearing in NullFields will be sent to the server as
11454	// null. It is an error if a field in this list has a non-empty value.
11455	// This may be used to include null fields in Patch requests.
11456	NullFields []string `json:"-"`
11457}
11458
11459func (s *HealthCheckServicesListWarningData) MarshalJSON() ([]byte, error) {
11460	type NoMethod HealthCheckServicesListWarningData
11461	raw := NoMethod(*s)
11462	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11463}
11464
11465type HealthChecksAggregatedList struct {
11466	// Id: [Output Only] Unique identifier for the resource; defined by the
11467	// server.
11468	Id string `json:"id,omitempty"`
11469
11470	// Items: A list of HealthChecksScopedList resources.
11471	Items map[string]HealthChecksScopedList `json:"items,omitempty"`
11472
11473	// Kind: Type of resource.
11474	Kind string `json:"kind,omitempty"`
11475
11476	// NextPageToken: [Output Only] This token allows you to get the next
11477	// page of results for list requests. If the number of results is larger
11478	// than maxResults, use the nextPageToken as a value for the query
11479	// parameter pageToken in the next list request. Subsequent list
11480	// requests will have their own nextPageToken to continue paging through
11481	// the results.
11482	NextPageToken string `json:"nextPageToken,omitempty"`
11483
11484	// SelfLink: [Output Only] Server-defined URL for this resource.
11485	SelfLink string `json:"selfLink,omitempty"`
11486
11487	// Warning: [Output Only] Informational warning message.
11488	Warning *HealthChecksAggregatedListWarning `json:"warning,omitempty"`
11489
11490	// ServerResponse contains the HTTP response code and headers from the
11491	// server.
11492	googleapi.ServerResponse `json:"-"`
11493
11494	// ForceSendFields is a list of field names (e.g. "Id") to
11495	// unconditionally include in API requests. By default, fields with
11496	// empty values are omitted from API requests. However, any non-pointer,
11497	// non-interface field appearing in ForceSendFields will be sent to the
11498	// server regardless of whether the field is empty or not. This may be
11499	// used to include empty fields in Patch requests.
11500	ForceSendFields []string `json:"-"`
11501
11502	// NullFields is a list of field names (e.g. "Id") to include in API
11503	// requests with the JSON null value. By default, fields with empty
11504	// values are omitted from API requests. However, any field with an
11505	// empty value appearing in NullFields will be sent to the server as
11506	// null. It is an error if a field in this list has a non-empty value.
11507	// This may be used to include null fields in Patch requests.
11508	NullFields []string `json:"-"`
11509}
11510
11511func (s *HealthChecksAggregatedList) MarshalJSON() ([]byte, error) {
11512	type NoMethod HealthChecksAggregatedList
11513	raw := NoMethod(*s)
11514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11515}
11516
11517// HealthChecksAggregatedListWarning: [Output Only] Informational
11518// warning message.
11519type HealthChecksAggregatedListWarning struct {
11520	// Code: [Output Only] A warning code, if applicable. For example,
11521	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11522	// the response.
11523	//
11524	// Possible values:
11525	//   "CLEANUP_FAILED"
11526	//   "DEPRECATED_RESOURCE_USED"
11527	//   "DEPRECATED_TYPE_USED"
11528	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11529	//   "EXPERIMENTAL_TYPE_USED"
11530	//   "EXTERNAL_API_WARNING"
11531	//   "FIELD_VALUE_OVERRIDEN"
11532	//   "INJECTED_KERNELS_DEPRECATED"
11533	//   "MISSING_TYPE_DEPENDENCY"
11534	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11535	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11536	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11537	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11538	//   "NEXT_HOP_NOT_RUNNING"
11539	//   "NOT_CRITICAL_ERROR"
11540	//   "NO_RESULTS_ON_PAGE"
11541	//   "REQUIRED_TOS_AGREEMENT"
11542	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11543	//   "RESOURCE_NOT_DELETED"
11544	//   "SCHEMA_VALIDATION_IGNORED"
11545	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11546	//   "UNDECLARED_PROPERTIES"
11547	//   "UNREACHABLE"
11548	Code string `json:"code,omitempty"`
11549
11550	// Data: [Output Only] Metadata about this warning in key: value format.
11551	// For example:
11552	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11553	Data []*HealthChecksAggregatedListWarningData `json:"data,omitempty"`
11554
11555	// Message: [Output Only] A human-readable description of the warning
11556	// code.
11557	Message string `json:"message,omitempty"`
11558
11559	// ForceSendFields is a list of field names (e.g. "Code") to
11560	// unconditionally include in API requests. By default, fields with
11561	// empty values are omitted from API requests. However, any non-pointer,
11562	// non-interface field appearing in ForceSendFields will be sent to the
11563	// server regardless of whether the field is empty or not. This may be
11564	// used to include empty fields in Patch requests.
11565	ForceSendFields []string `json:"-"`
11566
11567	// NullFields is a list of field names (e.g. "Code") to include in API
11568	// requests with the JSON null value. By default, fields with empty
11569	// values are omitted from API requests. However, any field with an
11570	// empty value appearing in NullFields will be sent to the server as
11571	// null. It is an error if a field in this list has a non-empty value.
11572	// This may be used to include null fields in Patch requests.
11573	NullFields []string `json:"-"`
11574}
11575
11576func (s *HealthChecksAggregatedListWarning) MarshalJSON() ([]byte, error) {
11577	type NoMethod HealthChecksAggregatedListWarning
11578	raw := NoMethod(*s)
11579	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11580}
11581
11582type HealthChecksAggregatedListWarningData struct {
11583	// Key: [Output Only] A key that provides more detail on the warning
11584	// being returned. For example, for warnings where there are no results
11585	// in a list request for a particular zone, this key might be scope and
11586	// the key value might be the zone name. Other examples might be a key
11587	// indicating a deprecated resource and a suggested replacement, or a
11588	// warning about invalid network settings (for example, if an instance
11589	// attempts to perform IP forwarding but is not enabled for IP
11590	// forwarding).
11591	Key string `json:"key,omitempty"`
11592
11593	// Value: [Output Only] A warning data value corresponding to the key.
11594	Value string `json:"value,omitempty"`
11595
11596	// ForceSendFields is a list of field names (e.g. "Key") to
11597	// unconditionally include in API requests. By default, fields with
11598	// empty values are omitted from API requests. However, any non-pointer,
11599	// non-interface field appearing in ForceSendFields will be sent to the
11600	// server regardless of whether the field is empty or not. This may be
11601	// used to include empty fields in Patch requests.
11602	ForceSendFields []string `json:"-"`
11603
11604	// NullFields is a list of field names (e.g. "Key") to include in API
11605	// requests with the JSON null value. By default, fields with empty
11606	// values are omitted from API requests. However, any field with an
11607	// empty value appearing in NullFields will be sent to the server as
11608	// null. It is an error if a field in this list has a non-empty value.
11609	// This may be used to include null fields in Patch requests.
11610	NullFields []string `json:"-"`
11611}
11612
11613func (s *HealthChecksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
11614	type NoMethod HealthChecksAggregatedListWarningData
11615	raw := NoMethod(*s)
11616	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11617}
11618
11619type HealthChecksScopedList struct {
11620	// HealthChecks: A list of HealthChecks contained in this scope.
11621	HealthChecks []*HealthCheck `json:"healthChecks,omitempty"`
11622
11623	// Warning: Informational warning which replaces the list of backend
11624	// services when the list is empty.
11625	Warning *HealthChecksScopedListWarning `json:"warning,omitempty"`
11626
11627	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
11628	// unconditionally include in API requests. By default, fields with
11629	// empty values are omitted from API requests. However, any non-pointer,
11630	// non-interface field appearing in ForceSendFields will be sent to the
11631	// server regardless of whether the field is empty or not. This may be
11632	// used to include empty fields in Patch requests.
11633	ForceSendFields []string `json:"-"`
11634
11635	// NullFields is a list of field names (e.g. "HealthChecks") to include
11636	// in API requests with the JSON null value. By default, fields with
11637	// empty values are omitted from API requests. However, any field with
11638	// an empty value appearing in NullFields will be sent to the server as
11639	// null. It is an error if a field in this list has a non-empty value.
11640	// This may be used to include null fields in Patch requests.
11641	NullFields []string `json:"-"`
11642}
11643
11644func (s *HealthChecksScopedList) MarshalJSON() ([]byte, error) {
11645	type NoMethod HealthChecksScopedList
11646	raw := NoMethod(*s)
11647	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11648}
11649
11650// HealthChecksScopedListWarning: Informational warning which replaces
11651// the list of backend services when the list is empty.
11652type HealthChecksScopedListWarning struct {
11653	// Code: [Output Only] A warning code, if applicable. For example,
11654	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
11655	// the response.
11656	//
11657	// Possible values:
11658	//   "CLEANUP_FAILED"
11659	//   "DEPRECATED_RESOURCE_USED"
11660	//   "DEPRECATED_TYPE_USED"
11661	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
11662	//   "EXPERIMENTAL_TYPE_USED"
11663	//   "EXTERNAL_API_WARNING"
11664	//   "FIELD_VALUE_OVERRIDEN"
11665	//   "INJECTED_KERNELS_DEPRECATED"
11666	//   "MISSING_TYPE_DEPENDENCY"
11667	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
11668	//   "NEXT_HOP_CANNOT_IP_FORWARD"
11669	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
11670	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
11671	//   "NEXT_HOP_NOT_RUNNING"
11672	//   "NOT_CRITICAL_ERROR"
11673	//   "NO_RESULTS_ON_PAGE"
11674	//   "REQUIRED_TOS_AGREEMENT"
11675	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
11676	//   "RESOURCE_NOT_DELETED"
11677	//   "SCHEMA_VALIDATION_IGNORED"
11678	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
11679	//   "UNDECLARED_PROPERTIES"
11680	//   "UNREACHABLE"
11681	Code string `json:"code,omitempty"`
11682
11683	// Data: [Output Only] Metadata about this warning in key: value format.
11684	// For example:
11685	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
11686	Data []*HealthChecksScopedListWarningData `json:"data,omitempty"`
11687
11688	// Message: [Output Only] A human-readable description of the warning
11689	// code.
11690	Message string `json:"message,omitempty"`
11691
11692	// ForceSendFields is a list of field names (e.g. "Code") to
11693	// unconditionally include in API requests. By default, fields with
11694	// empty values are omitted from API requests. However, any non-pointer,
11695	// non-interface field appearing in ForceSendFields will be sent to the
11696	// server regardless of whether the field is empty or not. This may be
11697	// used to include empty fields in Patch requests.
11698	ForceSendFields []string `json:"-"`
11699
11700	// NullFields is a list of field names (e.g. "Code") to include in API
11701	// requests with the JSON null value. By default, fields with empty
11702	// values are omitted from API requests. However, any field with an
11703	// empty value appearing in NullFields will be sent to the server as
11704	// null. It is an error if a field in this list has a non-empty value.
11705	// This may be used to include null fields in Patch requests.
11706	NullFields []string `json:"-"`
11707}
11708
11709func (s *HealthChecksScopedListWarning) MarshalJSON() ([]byte, error) {
11710	type NoMethod HealthChecksScopedListWarning
11711	raw := NoMethod(*s)
11712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11713}
11714
11715type HealthChecksScopedListWarningData struct {
11716	// Key: [Output Only] A key that provides more detail on the warning
11717	// being returned. For example, for warnings where there are no results
11718	// in a list request for a particular zone, this key might be scope and
11719	// the key value might be the zone name. Other examples might be a key
11720	// indicating a deprecated resource and a suggested replacement, or a
11721	// warning about invalid network settings (for example, if an instance
11722	// attempts to perform IP forwarding but is not enabled for IP
11723	// forwarding).
11724	Key string `json:"key,omitempty"`
11725
11726	// Value: [Output Only] A warning data value corresponding to the key.
11727	Value string `json:"value,omitempty"`
11728
11729	// ForceSendFields is a list of field names (e.g. "Key") to
11730	// unconditionally include in API requests. By default, fields with
11731	// empty values are omitted from API requests. However, any non-pointer,
11732	// non-interface field appearing in ForceSendFields will be sent to the
11733	// server regardless of whether the field is empty or not. This may be
11734	// used to include empty fields in Patch requests.
11735	ForceSendFields []string `json:"-"`
11736
11737	// NullFields is a list of field names (e.g. "Key") to include in API
11738	// requests with the JSON null value. By default, fields with empty
11739	// values are omitted from API requests. However, any field with an
11740	// empty value appearing in NullFields will be sent to the server as
11741	// null. It is an error if a field in this list has a non-empty value.
11742	// This may be used to include null fields in Patch requests.
11743	NullFields []string `json:"-"`
11744}
11745
11746func (s *HealthChecksScopedListWarningData) MarshalJSON() ([]byte, error) {
11747	type NoMethod HealthChecksScopedListWarningData
11748	raw := NoMethod(*s)
11749	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11750}
11751
11752type HealthStatus struct {
11753	// Annotations: Metadata defined as annotations for network endpoint.
11754	Annotations map[string]string `json:"annotations,omitempty"`
11755
11756	// HealthState: Health state of the instance.
11757	//
11758	// Possible values:
11759	//   "HEALTHY"
11760	//   "UNHEALTHY"
11761	HealthState string `json:"healthState,omitempty"`
11762
11763	// Instance: URL of the instance resource.
11764	Instance string `json:"instance,omitempty"`
11765
11766	// IpAddress: A forwarding rule IP address assigned to this instance.
11767	IpAddress string `json:"ipAddress,omitempty"`
11768
11769	// Port: The named port of the instance group, not necessarily the port
11770	// that is health-checked.
11771	Port int64 `json:"port,omitempty"`
11772
11773	// ForceSendFields is a list of field names (e.g. "Annotations") to
11774	// unconditionally include in API requests. By default, fields with
11775	// empty values are omitted from API requests. However, any non-pointer,
11776	// non-interface field appearing in ForceSendFields will be sent to the
11777	// server regardless of whether the field is empty or not. This may be
11778	// used to include empty fields in Patch requests.
11779	ForceSendFields []string `json:"-"`
11780
11781	// NullFields is a list of field names (e.g. "Annotations") to include
11782	// in API requests with the JSON null value. By default, fields with
11783	// empty values are omitted from API requests. However, any field with
11784	// an empty value appearing in NullFields will be sent to the server as
11785	// null. It is an error if a field in this list has a non-empty value.
11786	// This may be used to include null fields in Patch requests.
11787	NullFields []string `json:"-"`
11788}
11789
11790func (s *HealthStatus) MarshalJSON() ([]byte, error) {
11791	type NoMethod HealthStatus
11792	raw := NoMethod(*s)
11793	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11794}
11795
11796type HealthStatusForNetworkEndpoint struct {
11797	// BackendService: URL of the backend service associated with the health
11798	// state of the network endpoint.
11799	BackendService *BackendServiceReference `json:"backendService,omitempty"`
11800
11801	// ForwardingRule: URL of the forwarding rule associated with the health
11802	// state of the network endpoint.
11803	ForwardingRule *ForwardingRuleReference `json:"forwardingRule,omitempty"`
11804
11805	// HealthCheck: URL of the health check associated with the health state
11806	// of the network endpoint.
11807	HealthCheck *HealthCheckReference `json:"healthCheck,omitempty"`
11808
11809	// HealthState: Health state of the network endpoint determined based on
11810	// the health checks configured.
11811	//
11812	// Possible values:
11813	//   "DRAINING"
11814	//   "HEALTHY"
11815	//   "UNHEALTHY"
11816	//   "UNKNOWN"
11817	HealthState string `json:"healthState,omitempty"`
11818
11819	// ForceSendFields is a list of field names (e.g. "BackendService") to
11820	// unconditionally include in API requests. By default, fields with
11821	// empty values are omitted from API requests. However, any non-pointer,
11822	// non-interface field appearing in ForceSendFields will be sent to the
11823	// server regardless of whether the field is empty or not. This may be
11824	// used to include empty fields in Patch requests.
11825	ForceSendFields []string `json:"-"`
11826
11827	// NullFields is a list of field names (e.g. "BackendService") to
11828	// include in API requests with the JSON null value. By default, fields
11829	// with empty values are omitted from API requests. However, any field
11830	// with an empty value appearing in NullFields will be sent to the
11831	// server as null. It is an error if a field in this list has a
11832	// non-empty value. This may be used to include null fields in Patch
11833	// requests.
11834	NullFields []string `json:"-"`
11835}
11836
11837func (s *HealthStatusForNetworkEndpoint) MarshalJSON() ([]byte, error) {
11838	type NoMethod HealthStatusForNetworkEndpoint
11839	raw := NoMethod(*s)
11840	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11841}
11842
11843// HostRule: UrlMaps A host-matching rule for a URL. If matched, will
11844// use the named PathMatcher to select the BackendService.
11845type HostRule struct {
11846	// Description: An optional description of this resource. Provide this
11847	// property when you create the resource.
11848	Description string `json:"description,omitempty"`
11849
11850	// Hosts: The list of host patterns to match. They must be valid
11851	// hostnames, except * will match any string of ([a-z0-9-.]*). In that
11852	// case, * must be the first character and must be followed in the
11853	// pattern by either - or ..
11854	Hosts []string `json:"hosts,omitempty"`
11855
11856	// PathMatcher: The name of the PathMatcher to use to match the path
11857	// portion of the URL if the hostRule matches the URL's host portion.
11858	PathMatcher string `json:"pathMatcher,omitempty"`
11859
11860	// ForceSendFields is a list of field names (e.g. "Description") to
11861	// unconditionally include in API requests. By default, fields with
11862	// empty values are omitted from API requests. However, any non-pointer,
11863	// non-interface field appearing in ForceSendFields will be sent to the
11864	// server regardless of whether the field is empty or not. This may be
11865	// used to include empty fields in Patch requests.
11866	ForceSendFields []string `json:"-"`
11867
11868	// NullFields is a list of field names (e.g. "Description") to include
11869	// in API requests with the JSON null value. By default, fields with
11870	// empty values are omitted from API requests. However, any field with
11871	// an empty value appearing in NullFields will be sent to the server as
11872	// null. It is an error if a field in this list has a non-empty value.
11873	// This may be used to include null fields in Patch requests.
11874	NullFields []string `json:"-"`
11875}
11876
11877func (s *HostRule) MarshalJSON() ([]byte, error) {
11878	type NoMethod HostRule
11879	raw := NoMethod(*s)
11880	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11881}
11882
11883// HttpFaultAbort: Specification for how requests are aborted as part of
11884// fault injection.
11885type HttpFaultAbort struct {
11886	// HttpStatus: The HTTP status code used to abort the request.
11887	// The value must be between 200 and 599 inclusive.
11888	HttpStatus int64 `json:"httpStatus,omitempty"`
11889
11890	// Percentage: The percentage of traffic
11891	// (connections/operations/requests) which will be aborted as part of
11892	// fault injection.
11893	// The value must be between 0.0 and 100.0 inclusive.
11894	Percentage float64 `json:"percentage,omitempty"`
11895
11896	// ForceSendFields is a list of field names (e.g. "HttpStatus") to
11897	// unconditionally include in API requests. By default, fields with
11898	// empty values are omitted from API requests. However, any non-pointer,
11899	// non-interface field appearing in ForceSendFields will be sent to the
11900	// server regardless of whether the field is empty or not. This may be
11901	// used to include empty fields in Patch requests.
11902	ForceSendFields []string `json:"-"`
11903
11904	// NullFields is a list of field names (e.g. "HttpStatus") to include in
11905	// API requests with the JSON null value. By default, fields with empty
11906	// values are omitted from API requests. However, any field with an
11907	// empty value appearing in NullFields will be sent to the server as
11908	// null. It is an error if a field in this list has a non-empty value.
11909	// This may be used to include null fields in Patch requests.
11910	NullFields []string `json:"-"`
11911}
11912
11913func (s *HttpFaultAbort) MarshalJSON() ([]byte, error) {
11914	type NoMethod HttpFaultAbort
11915	raw := NoMethod(*s)
11916	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11917}
11918
11919func (s *HttpFaultAbort) UnmarshalJSON(data []byte) error {
11920	type NoMethod HttpFaultAbort
11921	var s1 struct {
11922		Percentage gensupport.JSONFloat64 `json:"percentage"`
11923		*NoMethod
11924	}
11925	s1.NoMethod = (*NoMethod)(s)
11926	if err := json.Unmarshal(data, &s1); err != nil {
11927		return err
11928	}
11929	s.Percentage = float64(s1.Percentage)
11930	return nil
11931}
11932
11933// HttpFaultDelay: Specifies the delay introduced by Loadbalancer before
11934// forwarding the request to the backend service as part of fault
11935// injection.
11936type HttpFaultDelay struct {
11937	// FixedDelay: Specifies the value of the fixed delay interval.
11938	FixedDelay *Duration `json:"fixedDelay,omitempty"`
11939
11940	// Percentage: The percentage of traffic
11941	// (connections/operations/requests) on which delay will be introduced
11942	// as part of fault injection.
11943	// The value must be between 0.0 and 100.0 inclusive.
11944	Percentage float64 `json:"percentage,omitempty"`
11945
11946	// ForceSendFields is a list of field names (e.g. "FixedDelay") to
11947	// unconditionally include in API requests. By default, fields with
11948	// empty values are omitted from API requests. However, any non-pointer,
11949	// non-interface field appearing in ForceSendFields will be sent to the
11950	// server regardless of whether the field is empty or not. This may be
11951	// used to include empty fields in Patch requests.
11952	ForceSendFields []string `json:"-"`
11953
11954	// NullFields is a list of field names (e.g. "FixedDelay") to include in
11955	// API requests with the JSON null value. By default, fields with empty
11956	// values are omitted from API requests. However, any field with an
11957	// empty value appearing in NullFields will be sent to the server as
11958	// null. It is an error if a field in this list has a non-empty value.
11959	// This may be used to include null fields in Patch requests.
11960	NullFields []string `json:"-"`
11961}
11962
11963func (s *HttpFaultDelay) MarshalJSON() ([]byte, error) {
11964	type NoMethod HttpFaultDelay
11965	raw := NoMethod(*s)
11966	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
11967}
11968
11969func (s *HttpFaultDelay) UnmarshalJSON(data []byte) error {
11970	type NoMethod HttpFaultDelay
11971	var s1 struct {
11972		Percentage gensupport.JSONFloat64 `json:"percentage"`
11973		*NoMethod
11974	}
11975	s1.NoMethod = (*NoMethod)(s)
11976	if err := json.Unmarshal(data, &s1); err != nil {
11977		return err
11978	}
11979	s.Percentage = float64(s1.Percentage)
11980	return nil
11981}
11982
11983// HttpFaultInjection: The specification for fault injection introduced
11984// into traffic to test the resiliency of clients to backend service
11985// failure. As part of fault injection, when clients send requests to a
11986// backend service, delays can be introduced by Loadbalancer on a
11987// percentage of requests before sending those request to the backend
11988// service. Similarly requests from clients can be aborted by the
11989// Loadbalancer for a percentage of requests.
11990type HttpFaultInjection struct {
11991	// Abort: The specification for how client requests are aborted as part
11992	// of fault injection.
11993	Abort *HttpFaultAbort `json:"abort,omitempty"`
11994
11995	// Delay: The specification for how client requests are delayed as part
11996	// of fault injection, before being sent to a backend service.
11997	Delay *HttpFaultDelay `json:"delay,omitempty"`
11998
11999	// ForceSendFields is a list of field names (e.g. "Abort") to
12000	// unconditionally include in API requests. By default, fields with
12001	// empty values are omitted from API requests. However, any non-pointer,
12002	// non-interface field appearing in ForceSendFields will be sent to the
12003	// server regardless of whether the field is empty or not. This may be
12004	// used to include empty fields in Patch requests.
12005	ForceSendFields []string `json:"-"`
12006
12007	// NullFields is a list of field names (e.g. "Abort") to include in API
12008	// requests with the JSON null value. By default, fields with empty
12009	// values are omitted from API requests. However, any field with an
12010	// empty value appearing in NullFields will be sent to the server as
12011	// null. It is an error if a field in this list has a non-empty value.
12012	// This may be used to include null fields in Patch requests.
12013	NullFields []string `json:"-"`
12014}
12015
12016func (s *HttpFaultInjection) MarshalJSON() ([]byte, error) {
12017	type NoMethod HttpFaultInjection
12018	raw := NoMethod(*s)
12019	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12020}
12021
12022// HttpHeaderAction: The request and response header transformations
12023// that take effect before the request is passed along to the selected
12024// backendService.
12025type HttpHeaderAction struct {
12026	// RequestHeadersToAdd: Headers to add to a matching request prior to
12027	// forwarding the request to the backendService.
12028	RequestHeadersToAdd []*HttpHeaderOption `json:"requestHeadersToAdd,omitempty"`
12029
12030	// RequestHeadersToRemove: A list of header names for headers that need
12031	// to be removed from the request prior to forwarding the request to the
12032	// backendService.
12033	RequestHeadersToRemove []string `json:"requestHeadersToRemove,omitempty"`
12034
12035	// ResponseHeadersToAdd: Headers to add the response prior to sending
12036	// the response back to the client.
12037	ResponseHeadersToAdd []*HttpHeaderOption `json:"responseHeadersToAdd,omitempty"`
12038
12039	// ResponseHeadersToRemove: A list of header names for headers that need
12040	// to be removed from the response prior to sending the response back to
12041	// the client.
12042	ResponseHeadersToRemove []string `json:"responseHeadersToRemove,omitempty"`
12043
12044	// ForceSendFields is a list of field names (e.g. "RequestHeadersToAdd")
12045	// to unconditionally include in API requests. By default, fields with
12046	// empty values are omitted from API requests. However, any non-pointer,
12047	// non-interface field appearing in ForceSendFields will be sent to the
12048	// server regardless of whether the field is empty or not. This may be
12049	// used to include empty fields in Patch requests.
12050	ForceSendFields []string `json:"-"`
12051
12052	// NullFields is a list of field names (e.g. "RequestHeadersToAdd") to
12053	// include in API requests with the JSON null value. By default, fields
12054	// with empty values are omitted from API requests. However, any field
12055	// with an empty value appearing in NullFields will be sent to the
12056	// server as null. It is an error if a field in this list has a
12057	// non-empty value. This may be used to include null fields in Patch
12058	// requests.
12059	NullFields []string `json:"-"`
12060}
12061
12062func (s *HttpHeaderAction) MarshalJSON() ([]byte, error) {
12063	type NoMethod HttpHeaderAction
12064	raw := NoMethod(*s)
12065	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12066}
12067
12068// HttpHeaderMatch: matchRule criteria for request header matches.
12069type HttpHeaderMatch struct {
12070	// ExactMatch: The value should exactly match contents of
12071	// exactMatch.
12072	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12073	// presentMatch or rangeMatch must be set.
12074	ExactMatch string `json:"exactMatch,omitempty"`
12075
12076	// HeaderName: The name of the HTTP header to match.
12077	// For matching against the HTTP request's authority, use a headerMatch
12078	// with the header name ":authority".
12079	// For matching a request's method, use the headerName ":method".
12080	HeaderName string `json:"headerName,omitempty"`
12081
12082	// InvertMatch: If set to false, the headerMatch is considered a match
12083	// if the match criteria above are met. If set to true, the headerMatch
12084	// is considered a match if the match criteria above are NOT met.
12085	// The default setting is false.
12086	InvertMatch bool `json:"invertMatch,omitempty"`
12087
12088	// PrefixMatch: The value of the header must start with the contents of
12089	// prefixMatch.
12090	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12091	// presentMatch or rangeMatch must be set.
12092	PrefixMatch string `json:"prefixMatch,omitempty"`
12093
12094	// PresentMatch: A header with the contents of headerName must exist.
12095	// The match takes place whether or not the request's header has a
12096	// value.
12097	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12098	// presentMatch or rangeMatch must be set.
12099	PresentMatch bool `json:"presentMatch,omitempty"`
12100
12101	// RangeMatch: The header value must be an integer and its value must be
12102	// in the range specified in rangeMatch. If the header does not contain
12103	// an integer, number or is empty, the match fails.
12104	// For example for a range [-5, 0]
12105	// - -3 will match.
12106	// - 0 will not match.
12107	// - 0.25 will not match.
12108	// - -3someString will not match.
12109	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12110	// presentMatch or rangeMatch must be set.
12111	// Note that rangeMatch is not supported for Loadbalancers that have
12112	// their loadBalancingScheme set to EXTERNAL.
12113	RangeMatch *Int64RangeMatch `json:"rangeMatch,omitempty"`
12114
12115	// RegexMatch: The value of the header must match the regular expression
12116	// specified in regexMatch. For regular expression grammar, please see:
12117	// en.cppreference.com/w/cpp/regex/ecmascript
12118	// For matching against a port specified in the HTTP request, use a
12119	// headerMatch with headerName set to PORT and a regular expression that
12120	// satisfies the RFC2616 Host header's port specifier.
12121	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12122	// presentMatch or rangeMatch must be set.
12123	// Note that regexMatch only applies to Loadbalancers that have their
12124	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
12125	RegexMatch string `json:"regexMatch,omitempty"`
12126
12127	// SuffixMatch: The value of the header must end with the contents of
12128	// suffixMatch.
12129	// Only one of exactMatch, prefixMatch, suffixMatch, regexMatch,
12130	// presentMatch or rangeMatch must be set.
12131	SuffixMatch string `json:"suffixMatch,omitempty"`
12132
12133	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
12134	// unconditionally include in API requests. By default, fields with
12135	// empty values are omitted from API requests. However, any non-pointer,
12136	// non-interface field appearing in ForceSendFields will be sent to the
12137	// server regardless of whether the field is empty or not. This may be
12138	// used to include empty fields in Patch requests.
12139	ForceSendFields []string `json:"-"`
12140
12141	// NullFields is a list of field names (e.g. "ExactMatch") to include in
12142	// API requests with the JSON null value. By default, fields with empty
12143	// values are omitted from API requests. However, any field with an
12144	// empty value appearing in NullFields will be sent to the server as
12145	// null. It is an error if a field in this list has a non-empty value.
12146	// This may be used to include null fields in Patch requests.
12147	NullFields []string `json:"-"`
12148}
12149
12150func (s *HttpHeaderMatch) MarshalJSON() ([]byte, error) {
12151	type NoMethod HttpHeaderMatch
12152	raw := NoMethod(*s)
12153	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12154}
12155
12156// HttpHeaderOption: Specification determining how headers are added to
12157// requests or responses.
12158type HttpHeaderOption struct {
12159	// HeaderName: The name of the header.
12160	HeaderName string `json:"headerName,omitempty"`
12161
12162	// HeaderValue: The value of the header to add.
12163	HeaderValue string `json:"headerValue,omitempty"`
12164
12165	// Replace: If false, headerValue is appended to any values that already
12166	// exist for the header. If true, headerValue is set for the header,
12167	// discarding any values that were set for that header.
12168	// The default value is false.
12169	Replace bool `json:"replace,omitempty"`
12170
12171	// ForceSendFields is a list of field names (e.g. "HeaderName") 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. "HeaderName") to include in
12180	// API requests with the JSON null value. By default, fields with empty
12181	// values are omitted from API requests. However, any field with an
12182	// 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 *HttpHeaderOption) MarshalJSON() ([]byte, error) {
12189	type NoMethod HttpHeaderOption
12190	raw := NoMethod(*s)
12191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12192}
12193
12194// HttpHealthCheck: Represents a legacy HTTP Health Check
12195// resource.
12196//
12197// Legacy health checks are required by network load balancers. For more
12198// information, read Health Check Concepts.
12199type HttpHealthCheck struct {
12200	// CheckIntervalSec: How often (in seconds) to send a health check. The
12201	// default value is 5 seconds.
12202	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12203
12204	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12205	// format.
12206	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12207
12208	// Description: An optional description of this resource. Provide this
12209	// property when you create the resource.
12210	Description string `json:"description,omitempty"`
12211
12212	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12213	// after this many consecutive successes. The default value is 2.
12214	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12215
12216	// Host: The value of the host header in the HTTP health check request.
12217	// If left empty (default value), the public IP on behalf of which this
12218	// health check is performed will be used.
12219	Host string `json:"host,omitempty"`
12220
12221	// Id: [Output Only] The unique identifier for the resource. This
12222	// identifier is defined by the server.
12223	Id uint64 `json:"id,omitempty,string"`
12224
12225	// Kind: [Output Only] Type of the resource. Always
12226	// compute#httpHealthCheck for HTTP health checks.
12227	Kind string `json:"kind,omitempty"`
12228
12229	// Name: Name of the resource. Provided by the client when the resource
12230	// is created. The name must be 1-63 characters long, and comply with
12231	// RFC1035. Specifically, the name must be 1-63 characters long and
12232	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
12233	// the first character must be a lowercase letter, and all following
12234	// characters must be a dash, lowercase letter, or digit, except the
12235	// last character, which cannot be a dash.
12236	Name string `json:"name,omitempty"`
12237
12238	// Port: The TCP port number for the HTTP health check request. The
12239	// default value is 80.
12240	Port int64 `json:"port,omitempty"`
12241
12242	// RequestPath: The request path of the HTTP health check request. The
12243	// default value is /. This field does not support query parameters.
12244	RequestPath string `json:"requestPath,omitempty"`
12245
12246	// SelfLink: [Output Only] Server-defined URL for the resource.
12247	SelfLink string `json:"selfLink,omitempty"`
12248
12249	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12250	// The default value is 5 seconds. It is invalid for timeoutSec to have
12251	// greater value than checkIntervalSec.
12252	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12253
12254	// UnhealthyThreshold: A so-far healthy instance will be marked
12255	// unhealthy after this many consecutive failures. The default value is
12256	// 2.
12257	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12258
12259	// ServerResponse contains the HTTP response code and headers from the
12260	// server.
12261	googleapi.ServerResponse `json:"-"`
12262
12263	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12264	// unconditionally include in API requests. By default, fields with
12265	// empty values are omitted from API requests. However, any non-pointer,
12266	// non-interface field appearing in ForceSendFields will be sent to the
12267	// server regardless of whether the field is empty or not. This may be
12268	// used to include empty fields in Patch requests.
12269	ForceSendFields []string `json:"-"`
12270
12271	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12272	// include in API requests with the JSON null value. By default, fields
12273	// with empty values are omitted from API requests. However, any field
12274	// with an empty value appearing in NullFields will be sent to the
12275	// server as null. It is an error if a field in this list has a
12276	// non-empty value. This may be used to include null fields in Patch
12277	// requests.
12278	NullFields []string `json:"-"`
12279}
12280
12281func (s *HttpHealthCheck) MarshalJSON() ([]byte, error) {
12282	type NoMethod HttpHealthCheck
12283	raw := NoMethod(*s)
12284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12285}
12286
12287// HttpHealthCheckList: Contains a list of HttpHealthCheck resources.
12288type HttpHealthCheckList struct {
12289	// Id: [Output Only] Unique identifier for the resource; defined by the
12290	// server.
12291	Id string `json:"id,omitempty"`
12292
12293	// Items: A list of HttpHealthCheck resources.
12294	Items []*HttpHealthCheck `json:"items,omitempty"`
12295
12296	// Kind: Type of resource.
12297	Kind string `json:"kind,omitempty"`
12298
12299	// NextPageToken: [Output Only] This token allows you to get the next
12300	// page of results for list requests. If the number of results is larger
12301	// than maxResults, use the nextPageToken as a value for the query
12302	// parameter pageToken in the next list request. Subsequent list
12303	// requests will have their own nextPageToken to continue paging through
12304	// the results.
12305	NextPageToken string `json:"nextPageToken,omitempty"`
12306
12307	// SelfLink: [Output Only] Server-defined URL for this resource.
12308	SelfLink string `json:"selfLink,omitempty"`
12309
12310	// Warning: [Output Only] Informational warning message.
12311	Warning *HttpHealthCheckListWarning `json:"warning,omitempty"`
12312
12313	// ServerResponse contains the HTTP response code and headers from the
12314	// server.
12315	googleapi.ServerResponse `json:"-"`
12316
12317	// ForceSendFields is a list of field names (e.g. "Id") to
12318	// unconditionally include in API requests. By default, fields with
12319	// empty values are omitted from API requests. However, any non-pointer,
12320	// non-interface field appearing in ForceSendFields will be sent to the
12321	// server regardless of whether the field is empty or not. This may be
12322	// used to include empty fields in Patch requests.
12323	ForceSendFields []string `json:"-"`
12324
12325	// NullFields is a list of field names (e.g. "Id") to include in API
12326	// requests with the JSON null value. By default, fields with empty
12327	// values are omitted from API requests. However, any field with an
12328	// empty value appearing in NullFields will be sent to the server as
12329	// null. It is an error if a field in this list has a non-empty value.
12330	// This may be used to include null fields in Patch requests.
12331	NullFields []string `json:"-"`
12332}
12333
12334func (s *HttpHealthCheckList) MarshalJSON() ([]byte, error) {
12335	type NoMethod HttpHealthCheckList
12336	raw := NoMethod(*s)
12337	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12338}
12339
12340// HttpHealthCheckListWarning: [Output Only] Informational warning
12341// message.
12342type HttpHealthCheckListWarning struct {
12343	// Code: [Output Only] A warning code, if applicable. For example,
12344	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
12345	// the response.
12346	//
12347	// Possible values:
12348	//   "CLEANUP_FAILED"
12349	//   "DEPRECATED_RESOURCE_USED"
12350	//   "DEPRECATED_TYPE_USED"
12351	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
12352	//   "EXPERIMENTAL_TYPE_USED"
12353	//   "EXTERNAL_API_WARNING"
12354	//   "FIELD_VALUE_OVERRIDEN"
12355	//   "INJECTED_KERNELS_DEPRECATED"
12356	//   "MISSING_TYPE_DEPENDENCY"
12357	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
12358	//   "NEXT_HOP_CANNOT_IP_FORWARD"
12359	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
12360	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
12361	//   "NEXT_HOP_NOT_RUNNING"
12362	//   "NOT_CRITICAL_ERROR"
12363	//   "NO_RESULTS_ON_PAGE"
12364	//   "REQUIRED_TOS_AGREEMENT"
12365	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
12366	//   "RESOURCE_NOT_DELETED"
12367	//   "SCHEMA_VALIDATION_IGNORED"
12368	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
12369	//   "UNDECLARED_PROPERTIES"
12370	//   "UNREACHABLE"
12371	Code string `json:"code,omitempty"`
12372
12373	// Data: [Output Only] Metadata about this warning in key: value format.
12374	// For example:
12375	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
12376	Data []*HttpHealthCheckListWarningData `json:"data,omitempty"`
12377
12378	// Message: [Output Only] A human-readable description of the warning
12379	// code.
12380	Message string `json:"message,omitempty"`
12381
12382	// ForceSendFields is a list of field names (e.g. "Code") to
12383	// unconditionally include in API requests. By default, fields with
12384	// empty values are omitted from API requests. However, any non-pointer,
12385	// non-interface field appearing in ForceSendFields will be sent to the
12386	// server regardless of whether the field is empty or not. This may be
12387	// used to include empty fields in Patch requests.
12388	ForceSendFields []string `json:"-"`
12389
12390	// NullFields is a list of field names (e.g. "Code") to include in API
12391	// requests with the JSON null value. By default, fields with empty
12392	// values are omitted from API requests. However, any field with an
12393	// empty value appearing in NullFields will be sent to the server as
12394	// null. It is an error if a field in this list has a non-empty value.
12395	// This may be used to include null fields in Patch requests.
12396	NullFields []string `json:"-"`
12397}
12398
12399func (s *HttpHealthCheckListWarning) MarshalJSON() ([]byte, error) {
12400	type NoMethod HttpHealthCheckListWarning
12401	raw := NoMethod(*s)
12402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12403}
12404
12405type HttpHealthCheckListWarningData struct {
12406	// Key: [Output Only] A key that provides more detail on the warning
12407	// being returned. For example, for warnings where there are no results
12408	// in a list request for a particular zone, this key might be scope and
12409	// the key value might be the zone name. Other examples might be a key
12410	// indicating a deprecated resource and a suggested replacement, or a
12411	// warning about invalid network settings (for example, if an instance
12412	// attempts to perform IP forwarding but is not enabled for IP
12413	// forwarding).
12414	Key string `json:"key,omitempty"`
12415
12416	// Value: [Output Only] A warning data value corresponding to the key.
12417	Value string `json:"value,omitempty"`
12418
12419	// ForceSendFields is a list of field names (e.g. "Key") to
12420	// unconditionally include in API requests. By default, fields with
12421	// empty values are omitted from API requests. However, any non-pointer,
12422	// non-interface field appearing in ForceSendFields will be sent to the
12423	// server regardless of whether the field is empty or not. This may be
12424	// used to include empty fields in Patch requests.
12425	ForceSendFields []string `json:"-"`
12426
12427	// NullFields is a list of field names (e.g. "Key") to include in API
12428	// requests with the JSON null value. By default, fields with empty
12429	// values are omitted from API requests. However, any field with an
12430	// empty value appearing in NullFields will be sent to the server as
12431	// null. It is an error if a field in this list has a non-empty value.
12432	// This may be used to include null fields in Patch requests.
12433	NullFields []string `json:"-"`
12434}
12435
12436func (s *HttpHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
12437	type NoMethod HttpHealthCheckListWarningData
12438	raw := NoMethod(*s)
12439	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12440}
12441
12442// HttpQueryParameterMatch: HttpRouteRuleMatch criteria for a request's
12443// query parameter.
12444type HttpQueryParameterMatch struct {
12445	// ExactMatch: The queryParameterMatch matches if the value of the
12446	// parameter exactly matches the contents of exactMatch.
12447	// Only one of presentMatch, exactMatch or regexMatch must be set.
12448	ExactMatch string `json:"exactMatch,omitempty"`
12449
12450	// Name: The name of the query parameter to match. The query parameter
12451	// must exist in the request, in the absence of which the request match
12452	// fails.
12453	Name string `json:"name,omitempty"`
12454
12455	// PresentMatch: Specifies that the queryParameterMatch matches if the
12456	// request contains the query parameter, irrespective of whether the
12457	// parameter has a value or not.
12458	// Only one of presentMatch, exactMatch or regexMatch must be set.
12459	PresentMatch bool `json:"presentMatch,omitempty"`
12460
12461	// RegexMatch: The queryParameterMatch matches if the value of the
12462	// parameter matches the regular expression specified by regexMatch. For
12463	// the regular expression grammar, please see
12464	// en.cppreference.com/w/cpp/regex/ecmascript
12465	// Only one of presentMatch, exactMatch or regexMatch must be set.
12466	// Note that regexMatch only applies when the loadBalancingScheme is set
12467	// to INTERNAL_SELF_MANAGED.
12468	RegexMatch string `json:"regexMatch,omitempty"`
12469
12470	// ForceSendFields is a list of field names (e.g. "ExactMatch") to
12471	// unconditionally include in API requests. By default, fields with
12472	// empty values are omitted from API requests. However, any non-pointer,
12473	// non-interface field appearing in ForceSendFields will be sent to the
12474	// server regardless of whether the field is empty or not. This may be
12475	// used to include empty fields in Patch requests.
12476	ForceSendFields []string `json:"-"`
12477
12478	// NullFields is a list of field names (e.g. "ExactMatch") to include in
12479	// API requests with the JSON null value. By default, fields with empty
12480	// values are omitted from API requests. However, any field with an
12481	// empty value appearing in NullFields will be sent to the server as
12482	// null. It is an error if a field in this list has a non-empty value.
12483	// This may be used to include null fields in Patch requests.
12484	NullFields []string `json:"-"`
12485}
12486
12487func (s *HttpQueryParameterMatch) MarshalJSON() ([]byte, error) {
12488	type NoMethod HttpQueryParameterMatch
12489	raw := NoMethod(*s)
12490	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12491}
12492
12493// HttpRedirectAction: Specifies settings for an HTTP redirect.
12494type HttpRedirectAction struct {
12495	// HostRedirect: The host that will be used in the redirect response
12496	// instead of the one that was supplied in the request.
12497	// The value must be between 1 and 255 characters.
12498	HostRedirect string `json:"hostRedirect,omitempty"`
12499
12500	// HttpsRedirect: If set to true, the URL scheme in the redirected
12501	// request is set to https. If set to false, the URL scheme of the
12502	// redirected request will remain the same as that of the request.
12503	// This must only be set for UrlMaps used in TargetHttpProxys. Setting
12504	// this true for TargetHttpsProxy is not permitted.
12505	// The default is set to false.
12506	HttpsRedirect bool `json:"httpsRedirect,omitempty"`
12507
12508	// PathRedirect: The path that will be used in the redirect response
12509	// instead of the one that was supplied in the request.
12510	// pathRedirect cannot be supplied together with prefixRedirect. Supply
12511	// one alone or neither. If neither is supplied, the path of the
12512	// original request will be used for the redirect.
12513	// The value must be between 1 and 1024 characters.
12514	PathRedirect string `json:"pathRedirect,omitempty"`
12515
12516	// PrefixRedirect: The prefix that replaces the prefixMatch specified in
12517	// the HttpRouteRuleMatch, retaining the remaining portion of the URL
12518	// before redirecting the request.
12519	// prefixRedirect cannot be supplied together with pathRedirect. Supply
12520	// one alone or neither. If neither is supplied, the path of the
12521	// original request will be used for the redirect.
12522	// The value must be between 1 and 1024 characters.
12523	PrefixRedirect string `json:"prefixRedirect,omitempty"`
12524
12525	// RedirectResponseCode: The HTTP Status code to use for this
12526	// RedirectAction.
12527	// Supported values are:
12528	// - MOVED_PERMANENTLY_DEFAULT, which is the default value and
12529	// corresponds to 301.
12530	// - FOUND, which corresponds to 302.
12531	// - SEE_OTHER which corresponds to 303.
12532	// - TEMPORARY_REDIRECT, which corresponds to 307. In this case, the
12533	// request method will be retained.
12534	// - PERMANENT_REDIRECT, which corresponds to 308. In this case, the
12535	// request method will be retained.
12536	//
12537	// Possible values:
12538	//   "FOUND"
12539	//   "MOVED_PERMANENTLY_DEFAULT"
12540	//   "PERMANENT_REDIRECT"
12541	//   "SEE_OTHER"
12542	//   "TEMPORARY_REDIRECT"
12543	RedirectResponseCode string `json:"redirectResponseCode,omitempty"`
12544
12545	// StripQuery: If set to true, any accompanying query portion of the
12546	// original URL is removed prior to redirecting the request. If set to
12547	// false, the query portion of the original URL is retained.
12548	// The default is set to false.
12549	StripQuery bool `json:"stripQuery,omitempty"`
12550
12551	// ForceSendFields is a list of field names (e.g. "HostRedirect") to
12552	// unconditionally include in API requests. By default, fields with
12553	// empty values are omitted from API requests. However, any non-pointer,
12554	// non-interface field appearing in ForceSendFields will be sent to the
12555	// server regardless of whether the field is empty or not. This may be
12556	// used to include empty fields in Patch requests.
12557	ForceSendFields []string `json:"-"`
12558
12559	// NullFields is a list of field names (e.g. "HostRedirect") to include
12560	// in API requests with the JSON null value. By default, fields with
12561	// empty values are omitted from API requests. However, any field with
12562	// an empty value appearing in NullFields will be sent to the server as
12563	// null. It is an error if a field in this list has a non-empty value.
12564	// This may be used to include null fields in Patch requests.
12565	NullFields []string `json:"-"`
12566}
12567
12568func (s *HttpRedirectAction) MarshalJSON() ([]byte, error) {
12569	type NoMethod HttpRedirectAction
12570	raw := NoMethod(*s)
12571	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12572}
12573
12574// HttpRetryPolicy: The retry policy associates with HttpRouteRule
12575type HttpRetryPolicy struct {
12576	// NumRetries: Specifies the allowed number retries. This number must be
12577	// > 0. If not specified, defaults to 1.
12578	NumRetries int64 `json:"numRetries,omitempty"`
12579
12580	// PerTryTimeout: Specifies a non-zero timeout per retry attempt.
12581	// If not specified, will use the timeout set in HttpRouteAction. If
12582	// timeout in HttpRouteAction is not set, will use the largest timeout
12583	// among all backend services associated with the route.
12584	PerTryTimeout *Duration `json:"perTryTimeout,omitempty"`
12585
12586	// RetryConditions: Specfies one or more conditions when this retry rule
12587	// applies. Valid values are:
12588	// - 5xx: Loadbalancer will attempt a retry if the backend service
12589	// responds with any 5xx response code, or if the backend service does
12590	// not respond at all, example: disconnects, reset, read timeout,
12591	// connection failure, and refused streams.
12592	// - gateway-error: Similar to 5xx, but only applies to response codes
12593	// 502, 503 or 504.
12594	// -
12595	// - connect-failure: Loadbalancer will retry on failures connecting to
12596	// backend services, for example due to connection timeouts.
12597	// - retriable-4xx: Loadbalancer will retry for retriable 4xx response
12598	// codes. Currently the only retriable error supported is 409.
12599	// - refused-stream:Loadbalancer will retry if the backend service
12600	// resets the stream with a REFUSED_STREAM error code. This reset type
12601	// indicates that it is safe to retry.
12602	// - cancelledLoadbalancer will retry if the gRPC status code in the
12603	// response header is set to cancelled
12604	// - deadline-exceeded: Loadbalancer will retry if the gRPC status code
12605	// in the response header is set to deadline-exceeded
12606	// - resource-exhausted: Loadbalancer will retry if the gRPC status code
12607	// in the response header is set to resource-exhausted
12608	// - unavailable: Loadbalancer will retry if the gRPC status code in the
12609	// response header is set to unavailable
12610	RetryConditions []string `json:"retryConditions,omitempty"`
12611
12612	// ForceSendFields is a list of field names (e.g. "NumRetries") to
12613	// unconditionally include in API requests. By default, fields with
12614	// empty values are omitted from API requests. However, any non-pointer,
12615	// non-interface field appearing in ForceSendFields will be sent to the
12616	// server regardless of whether the field is empty or not. This may be
12617	// used to include empty fields in Patch requests.
12618	ForceSendFields []string `json:"-"`
12619
12620	// NullFields is a list of field names (e.g. "NumRetries") to include in
12621	// API requests with the JSON null value. By default, fields with empty
12622	// values are omitted from API requests. However, any field with an
12623	// empty value appearing in NullFields will be sent to the server as
12624	// null. It is an error if a field in this list has a non-empty value.
12625	// This may be used to include null fields in Patch requests.
12626	NullFields []string `json:"-"`
12627}
12628
12629func (s *HttpRetryPolicy) MarshalJSON() ([]byte, error) {
12630	type NoMethod HttpRetryPolicy
12631	raw := NoMethod(*s)
12632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12633}
12634
12635type HttpRouteAction struct {
12636	// CorsPolicy: The specification for allowing client side cross-origin
12637	// requests. Please see W3C Recommendation for Cross Origin Resource
12638	// Sharing
12639	CorsPolicy *CorsPolicy `json:"corsPolicy,omitempty"`
12640
12641	// FaultInjectionPolicy: The specification for fault injection
12642	// introduced into traffic to test the resiliency of clients to backend
12643	// service failure. As part of fault injection, when clients send
12644	// requests to a backend service, delays can be introduced by
12645	// Loadbalancer on a percentage of requests before sending those request
12646	// to the backend service. Similarly requests from clients can be
12647	// aborted by the Loadbalancer for a percentage of requests.
12648	// timeout and retry_policy will be ignored by clients that are
12649	// configured with a fault_injection_policy.
12650	FaultInjectionPolicy *HttpFaultInjection `json:"faultInjectionPolicy,omitempty"`
12651
12652	// RequestMirrorPolicy: Specifies the policy on how requests intended
12653	// for the route's backends are shadowed to a separate mirrored backend
12654	// service. Loadbalancer does not wait for responses from the shadow
12655	// service. Prior to sending traffic to the shadow service, the host /
12656	// authority header is suffixed with -shadow.
12657	RequestMirrorPolicy *RequestMirrorPolicy `json:"requestMirrorPolicy,omitempty"`
12658
12659	// RetryPolicy: Specifies the retry policy associated with this route.
12660	RetryPolicy *HttpRetryPolicy `json:"retryPolicy,omitempty"`
12661
12662	// Timeout: Specifies the timeout for the selected route. Timeout is
12663	// computed from the time the request has been fully processed (i.e.
12664	// end-of-stream) up until the response has been completely processed.
12665	// Timeout includes all retries.
12666	// If not specified, will use the largest timeout among all backend
12667	// services associated with the route.
12668	Timeout *Duration `json:"timeout,omitempty"`
12669
12670	// UrlRewrite: The spec to modify the URL of the request, prior to
12671	// forwarding the request to the matched service.
12672	UrlRewrite *UrlRewrite `json:"urlRewrite,omitempty"`
12673
12674	// WeightedBackendServices: A list of weighted backend services to send
12675	// traffic to when a route match occurs. The weights determine the
12676	// fraction of traffic that flows to their corresponding backend
12677	// service. If all traffic needs to go to a single backend service,
12678	// there must be one  weightedBackendService with weight set to a non 0
12679	// number.
12680	// Once a backendService is identified and before forwarding the request
12681	// to the backend service, advanced routing actions like Url rewrites
12682	// and header transformations are applied depending on additional
12683	// settings specified in this HttpRouteAction.
12684	WeightedBackendServices []*WeightedBackendService `json:"weightedBackendServices,omitempty"`
12685
12686	// ForceSendFields is a list of field names (e.g. "CorsPolicy") to
12687	// unconditionally include in API requests. By default, fields with
12688	// empty values are omitted from API requests. However, any non-pointer,
12689	// non-interface field appearing in ForceSendFields will be sent to the
12690	// server regardless of whether the field is empty or not. This may be
12691	// used to include empty fields in Patch requests.
12692	ForceSendFields []string `json:"-"`
12693
12694	// NullFields is a list of field names (e.g. "CorsPolicy") to include in
12695	// API requests with the JSON null value. By default, fields with empty
12696	// values are omitted from API requests. However, any field with an
12697	// empty value appearing in NullFields will be sent to the server as
12698	// null. It is an error if a field in this list has a non-empty value.
12699	// This may be used to include null fields in Patch requests.
12700	NullFields []string `json:"-"`
12701}
12702
12703func (s *HttpRouteAction) MarshalJSON() ([]byte, error) {
12704	type NoMethod HttpRouteAction
12705	raw := NoMethod(*s)
12706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12707}
12708
12709// HttpRouteRule: An HttpRouteRule specifies how to match an HTTP
12710// request and the corresponding routing action that load balancing
12711// proxies will perform.
12712type HttpRouteRule struct {
12713	// Description: The short description conveying the intent of this
12714	// routeRule.
12715	// The description can have a maximum length of 1024 characters.
12716	Description string `json:"description,omitempty"`
12717
12718	// HeaderAction: Specifies changes to request and response headers that
12719	// need to take effect for the selected backendService.
12720	// The headerAction specified here are applied before the matching
12721	// pathMatchers[].headerAction and after
12722	// pathMatchers[].routeRules[].routeAction.weightedBackendService.backend
12723	// ServiceWeightAction[].headerAction
12724	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
12725
12726	MatchRules []*HttpRouteRuleMatch `json:"matchRules,omitempty"`
12727
12728	// Priority: For routeRules within a given pathMatcher, priority
12729	// determines the order in which load balancer will interpret
12730	// routeRules. RouteRules are evaluated in order of priority, from the
12731	// lowest to highest number. The priority of a rule decreases as its
12732	// number increases (1, 2, 3, N+1). The first rule that matches the
12733	// request is applied.
12734	// You cannot configure two or more routeRules with the same priority.
12735	// Priority for each rule must be set to a number between 0 and
12736	// 2147483647 inclusive.
12737	// Priority numbers can have gaps, which enable you to add or remove
12738	// rules in the future without affecting the rest of the rules. For
12739	// example, 1, 2, 3, 4, 5, 9, 12, 16 is a valid series of priority
12740	// numbers to which you could add rules numbered from 6 to 8, 10 to 11,
12741	// and 13 to 15 in the future without any impact on existing rules.
12742	Priority int64 `json:"priority,omitempty"`
12743
12744	// RouteAction: In response to a matching matchRule, the load balancer
12745	// performs advanced routing actions like URL rewrites, header
12746	// transformations, etc. prior to forwarding the request to the selected
12747	// backend. If  routeAction specifies any  weightedBackendServices,
12748	// service must not be set. Conversely if service is set, routeAction
12749	// cannot contain any  weightedBackendServices.
12750	// Only one of urlRedirect, service or
12751	// routeAction.weightedBackendService must be set.
12752	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
12753
12754	// Service: The full or partial URL of the backend service resource to
12755	// which traffic is directed if this rule is matched. If routeAction is
12756	// additionally specified, advanced routing actions like URL Rewrites,
12757	// etc. take effect prior to sending the request to the backend.
12758	// However, if service is specified, routeAction cannot contain any
12759	// weightedBackendService s. Conversely, if routeAction specifies any
12760	// weightedBackendServices, service must not be specified.
12761	// Only one of urlRedirect, service or
12762	// routeAction.weightedBackendService must be set.
12763	Service string `json:"service,omitempty"`
12764
12765	// UrlRedirect: When this rule is matched, the request is redirected to
12766	// a URL specified by urlRedirect.
12767	// If urlRedirect is specified, service or routeAction must not be set.
12768	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
12769
12770	// ForceSendFields is a list of field names (e.g. "Description") to
12771	// unconditionally include in API requests. By default, fields with
12772	// empty values are omitted from API requests. However, any non-pointer,
12773	// non-interface field appearing in ForceSendFields will be sent to the
12774	// server regardless of whether the field is empty or not. This may be
12775	// used to include empty fields in Patch requests.
12776	ForceSendFields []string `json:"-"`
12777
12778	// NullFields is a list of field names (e.g. "Description") to include
12779	// in API requests with the JSON null value. By default, fields with
12780	// empty values are omitted from API requests. However, any field with
12781	// an empty value appearing in NullFields will be sent to the server as
12782	// null. It is an error if a field in this list has a non-empty value.
12783	// This may be used to include null fields in Patch requests.
12784	NullFields []string `json:"-"`
12785}
12786
12787func (s *HttpRouteRule) MarshalJSON() ([]byte, error) {
12788	type NoMethod HttpRouteRule
12789	raw := NoMethod(*s)
12790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12791}
12792
12793// HttpRouteRuleMatch: HttpRouteRuleMatch specifies a set of criteria
12794// for matching requests to an HttpRouteRule. All specified criteria
12795// must be satisfied for a match to occur.
12796type HttpRouteRuleMatch struct {
12797	// FullPathMatch: For satisfying the matchRule condition, the path of
12798	// the request must exactly match the value specified in fullPathMatch
12799	// after removing any query parameters and anchor that may be part of
12800	// the original URL.
12801	// fullPathMatch must be between 1 and 1024 characters.
12802	// Only one of prefixMatch, fullPathMatch or regexMatch must be
12803	// specified.
12804	FullPathMatch string `json:"fullPathMatch,omitempty"`
12805
12806	// HeaderMatches: Specifies a list of header match criteria, all of
12807	// which must match corresponding headers in the request.
12808	HeaderMatches []*HttpHeaderMatch `json:"headerMatches,omitempty"`
12809
12810	// IgnoreCase: Specifies that prefixMatch and fullPathMatch matches are
12811	// case sensitive.
12812	// The default value is false.
12813	// ignoreCase must not be used with regexMatch.
12814	IgnoreCase bool `json:"ignoreCase,omitempty"`
12815
12816	// MetadataFilters: Opaque filter criteria used by Loadbalancer to
12817	// restrict routing configuration to a limited set of xDS compliant
12818	// clients. In their xDS requests to Loadbalancer, xDS clients present
12819	// node metadata. If a match takes place, the relevant routing
12820	// configuration is made available to those proxies.
12821	// For each metadataFilter in this list, if its filterMatchCriteria is
12822	// set to MATCH_ANY, at least one of the filterLabels must match the
12823	// corresponding label provided in the metadata. If its
12824	// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
12825	// must match with corresponding labels provided in the
12826	// metadata.
12827	// metadataFilters specified here will be applied after those specified
12828	// in ForwardingRule that refers to the UrlMap this HttpRouteRuleMatch
12829	// belongs to.
12830	// metadataFilters only applies to Loadbalancers that have their
12831	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
12832	MetadataFilters []*MetadataFilter `json:"metadataFilters,omitempty"`
12833
12834	// PrefixMatch: For satisfying the matchRule condition, the request's
12835	// path must begin with the specified prefixMatch. prefixMatch must
12836	// begin with a /.
12837	// The value must be between 1 and 1024 characters.
12838	// Only one of prefixMatch, fullPathMatch or regexMatch must be
12839	// specified.
12840	PrefixMatch string `json:"prefixMatch,omitempty"`
12841
12842	// QueryParameterMatches: Specifies a list of query parameter match
12843	// criteria, all of which must match corresponding query parameters in
12844	// the request.
12845	QueryParameterMatches []*HttpQueryParameterMatch `json:"queryParameterMatches,omitempty"`
12846
12847	// RegexMatch: For satisfying the matchRule condition, the path of the
12848	// request must satisfy the regular expression specified in regexMatch
12849	// after removing any query parameters and anchor supplied with the
12850	// original URL. For regular expression grammar please see
12851	// en.cppreference.com/w/cpp/regex/ecmascript
12852	// Only one of prefixMatch, fullPathMatch or regexMatch must be
12853	// specified.
12854	// Note that regexMatch only applies to Loadbalancers that have their
12855	// loadBalancingScheme set to INTERNAL_SELF_MANAGED.
12856	RegexMatch string `json:"regexMatch,omitempty"`
12857
12858	// ForceSendFields is a list of field names (e.g. "FullPathMatch") to
12859	// unconditionally include in API requests. By default, fields with
12860	// empty values are omitted from API requests. However, any non-pointer,
12861	// non-interface field appearing in ForceSendFields will be sent to the
12862	// server regardless of whether the field is empty or not. This may be
12863	// used to include empty fields in Patch requests.
12864	ForceSendFields []string `json:"-"`
12865
12866	// NullFields is a list of field names (e.g. "FullPathMatch") to include
12867	// in API requests with the JSON null value. By default, fields with
12868	// empty values are omitted from API requests. However, any field with
12869	// an empty value appearing in NullFields will be sent to the server as
12870	// null. It is an error if a field in this list has a non-empty value.
12871	// This may be used to include null fields in Patch requests.
12872	NullFields []string `json:"-"`
12873}
12874
12875func (s *HttpRouteRuleMatch) MarshalJSON() ([]byte, error) {
12876	type NoMethod HttpRouteRuleMatch
12877	raw := NoMethod(*s)
12878	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12879}
12880
12881// HttpsHealthCheck: Represents a legacy HTTPS Health Check
12882// resource.
12883//
12884// Legacy health checks are required by network load balancers. For more
12885// information, read Health Check Concepts.
12886type HttpsHealthCheck struct {
12887	// CheckIntervalSec: How often (in seconds) to send a health check. The
12888	// default value is 5 seconds.
12889	CheckIntervalSec int64 `json:"checkIntervalSec,omitempty"`
12890
12891	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
12892	// format.
12893	CreationTimestamp string `json:"creationTimestamp,omitempty"`
12894
12895	// Description: An optional description of this resource. Provide this
12896	// property when you create the resource.
12897	Description string `json:"description,omitempty"`
12898
12899	// HealthyThreshold: A so-far unhealthy instance will be marked healthy
12900	// after this many consecutive successes. The default value is 2.
12901	HealthyThreshold int64 `json:"healthyThreshold,omitempty"`
12902
12903	// Host: The value of the host header in the HTTPS health check request.
12904	// If left empty (default value), the public IP on behalf of which this
12905	// health check is performed will be used.
12906	Host string `json:"host,omitempty"`
12907
12908	// Id: [Output Only] The unique identifier for the resource. This
12909	// identifier is defined by the server.
12910	Id uint64 `json:"id,omitempty,string"`
12911
12912	// Kind: Type of the resource.
12913	Kind string `json:"kind,omitempty"`
12914
12915	// Name: Name of the resource. Provided by the client when the resource
12916	// is created. The name must be 1-63 characters long, and comply with
12917	// RFC1035. Specifically, the name must be 1-63 characters long and
12918	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
12919	// the first character must be a lowercase letter, and all following
12920	// characters must be a dash, lowercase letter, or digit, except the
12921	// last character, which cannot be a dash.
12922	Name string `json:"name,omitempty"`
12923
12924	// Port: The TCP port number for the HTTPS health check request. The
12925	// default value is 443.
12926	Port int64 `json:"port,omitempty"`
12927
12928	// RequestPath: The request path of the HTTPS health check request. The
12929	// default value is "/".
12930	RequestPath string `json:"requestPath,omitempty"`
12931
12932	// SelfLink: [Output Only] Server-defined URL for the resource.
12933	SelfLink string `json:"selfLink,omitempty"`
12934
12935	// TimeoutSec: How long (in seconds) to wait before claiming failure.
12936	// The default value is 5 seconds. It is invalid for timeoutSec to have
12937	// a greater value than checkIntervalSec.
12938	TimeoutSec int64 `json:"timeoutSec,omitempty"`
12939
12940	// UnhealthyThreshold: A so-far healthy instance will be marked
12941	// unhealthy after this many consecutive failures. The default value is
12942	// 2.
12943	UnhealthyThreshold int64 `json:"unhealthyThreshold,omitempty"`
12944
12945	// ServerResponse contains the HTTP response code and headers from the
12946	// server.
12947	googleapi.ServerResponse `json:"-"`
12948
12949	// ForceSendFields is a list of field names (e.g. "CheckIntervalSec") to
12950	// unconditionally include in API requests. By default, fields with
12951	// empty values are omitted from API requests. However, any non-pointer,
12952	// non-interface field appearing in ForceSendFields will be sent to the
12953	// server regardless of whether the field is empty or not. This may be
12954	// used to include empty fields in Patch requests.
12955	ForceSendFields []string `json:"-"`
12956
12957	// NullFields is a list of field names (e.g. "CheckIntervalSec") to
12958	// include in API requests with the JSON null value. By default, fields
12959	// with empty values are omitted from API requests. However, any field
12960	// with an empty value appearing in NullFields will be sent to the
12961	// server as null. It is an error if a field in this list has a
12962	// non-empty value. This may be used to include null fields in Patch
12963	// requests.
12964	NullFields []string `json:"-"`
12965}
12966
12967func (s *HttpsHealthCheck) MarshalJSON() ([]byte, error) {
12968	type NoMethod HttpsHealthCheck
12969	raw := NoMethod(*s)
12970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
12971}
12972
12973// HttpsHealthCheckList: Contains a list of HttpsHealthCheck resources.
12974type HttpsHealthCheckList struct {
12975	// Id: [Output Only] Unique identifier for the resource; defined by the
12976	// server.
12977	Id string `json:"id,omitempty"`
12978
12979	// Items: A list of HttpsHealthCheck resources.
12980	Items []*HttpsHealthCheck `json:"items,omitempty"`
12981
12982	// Kind: Type of resource.
12983	Kind string `json:"kind,omitempty"`
12984
12985	// NextPageToken: [Output Only] This token allows you to get the next
12986	// page of results for list requests. If the number of results is larger
12987	// than maxResults, use the nextPageToken as a value for the query
12988	// parameter pageToken in the next list request. Subsequent list
12989	// requests will have their own nextPageToken to continue paging through
12990	// the results.
12991	NextPageToken string `json:"nextPageToken,omitempty"`
12992
12993	// SelfLink: [Output Only] Server-defined URL for this resource.
12994	SelfLink string `json:"selfLink,omitempty"`
12995
12996	// Warning: [Output Only] Informational warning message.
12997	Warning *HttpsHealthCheckListWarning `json:"warning,omitempty"`
12998
12999	// ServerResponse contains the HTTP response code and headers from the
13000	// server.
13001	googleapi.ServerResponse `json:"-"`
13002
13003	// ForceSendFields is a list of field names (e.g. "Id") to
13004	// unconditionally include in API requests. By default, fields with
13005	// empty values are omitted from API requests. However, any non-pointer,
13006	// non-interface field appearing in ForceSendFields will be sent to the
13007	// server regardless of whether the field is empty or not. This may be
13008	// used to include empty fields in Patch requests.
13009	ForceSendFields []string `json:"-"`
13010
13011	// NullFields is a list of field names (e.g. "Id") to include in API
13012	// requests with the JSON null value. By default, fields with empty
13013	// values are omitted from API requests. However, any field with an
13014	// empty value appearing in NullFields will be sent to the server as
13015	// null. It is an error if a field in this list has a non-empty value.
13016	// This may be used to include null fields in Patch requests.
13017	NullFields []string `json:"-"`
13018}
13019
13020func (s *HttpsHealthCheckList) MarshalJSON() ([]byte, error) {
13021	type NoMethod HttpsHealthCheckList
13022	raw := NoMethod(*s)
13023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13024}
13025
13026// HttpsHealthCheckListWarning: [Output Only] Informational warning
13027// message.
13028type HttpsHealthCheckListWarning struct {
13029	// Code: [Output Only] A warning code, if applicable. For example,
13030	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13031	// the response.
13032	//
13033	// Possible values:
13034	//   "CLEANUP_FAILED"
13035	//   "DEPRECATED_RESOURCE_USED"
13036	//   "DEPRECATED_TYPE_USED"
13037	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13038	//   "EXPERIMENTAL_TYPE_USED"
13039	//   "EXTERNAL_API_WARNING"
13040	//   "FIELD_VALUE_OVERRIDEN"
13041	//   "INJECTED_KERNELS_DEPRECATED"
13042	//   "MISSING_TYPE_DEPENDENCY"
13043	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13044	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13045	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13046	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13047	//   "NEXT_HOP_NOT_RUNNING"
13048	//   "NOT_CRITICAL_ERROR"
13049	//   "NO_RESULTS_ON_PAGE"
13050	//   "REQUIRED_TOS_AGREEMENT"
13051	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13052	//   "RESOURCE_NOT_DELETED"
13053	//   "SCHEMA_VALIDATION_IGNORED"
13054	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13055	//   "UNDECLARED_PROPERTIES"
13056	//   "UNREACHABLE"
13057	Code string `json:"code,omitempty"`
13058
13059	// Data: [Output Only] Metadata about this warning in key: value format.
13060	// For example:
13061	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13062	Data []*HttpsHealthCheckListWarningData `json:"data,omitempty"`
13063
13064	// Message: [Output Only] A human-readable description of the warning
13065	// code.
13066	Message string `json:"message,omitempty"`
13067
13068	// ForceSendFields is a list of field names (e.g. "Code") to
13069	// unconditionally include in API requests. By default, fields with
13070	// empty values are omitted from API requests. However, any non-pointer,
13071	// non-interface field appearing in ForceSendFields will be sent to the
13072	// server regardless of whether the field is empty or not. This may be
13073	// used to include empty fields in Patch requests.
13074	ForceSendFields []string `json:"-"`
13075
13076	// NullFields is a list of field names (e.g. "Code") to include in API
13077	// requests with the JSON null value. By default, fields with empty
13078	// values are omitted from API requests. However, any field with an
13079	// empty value appearing in NullFields will be sent to the server as
13080	// null. It is an error if a field in this list has a non-empty value.
13081	// This may be used to include null fields in Patch requests.
13082	NullFields []string `json:"-"`
13083}
13084
13085func (s *HttpsHealthCheckListWarning) MarshalJSON() ([]byte, error) {
13086	type NoMethod HttpsHealthCheckListWarning
13087	raw := NoMethod(*s)
13088	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13089}
13090
13091type HttpsHealthCheckListWarningData struct {
13092	// Key: [Output Only] A key that provides more detail on the warning
13093	// being returned. For example, for warnings where there are no results
13094	// in a list request for a particular zone, this key might be scope and
13095	// the key value might be the zone name. Other examples might be a key
13096	// indicating a deprecated resource and a suggested replacement, or a
13097	// warning about invalid network settings (for example, if an instance
13098	// attempts to perform IP forwarding but is not enabled for IP
13099	// forwarding).
13100	Key string `json:"key,omitempty"`
13101
13102	// Value: [Output Only] A warning data value corresponding to the key.
13103	Value string `json:"value,omitempty"`
13104
13105	// ForceSendFields is a list of field names (e.g. "Key") to
13106	// unconditionally include in API requests. By default, fields with
13107	// empty values are omitted from API requests. However, any non-pointer,
13108	// non-interface field appearing in ForceSendFields will be sent to the
13109	// server regardless of whether the field is empty or not. This may be
13110	// used to include empty fields in Patch requests.
13111	ForceSendFields []string `json:"-"`
13112
13113	// NullFields is a list of field names (e.g. "Key") to include in API
13114	// requests with the JSON null value. By default, fields with empty
13115	// values are omitted from API requests. However, any field with an
13116	// empty value appearing in NullFields will be sent to the server as
13117	// null. It is an error if a field in this list has a non-empty value.
13118	// This may be used to include null fields in Patch requests.
13119	NullFields []string `json:"-"`
13120}
13121
13122func (s *HttpsHealthCheckListWarningData) MarshalJSON() ([]byte, error) {
13123	type NoMethod HttpsHealthCheckListWarningData
13124	raw := NoMethod(*s)
13125	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13126}
13127
13128// Image: Represents an Image resource.
13129//
13130// You can use images to create boot disks for your VM instances. For
13131// more information, read Images. (== resource_for {$api_version}.images
13132// ==)
13133type Image struct {
13134	// ArchiveSizeBytes: Size of the image tar.gz archive stored in Google
13135	// Cloud Storage (in bytes).
13136	ArchiveSizeBytes int64 `json:"archiveSizeBytes,omitempty,string"`
13137
13138	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13139	// format.
13140	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13141
13142	// Deprecated: The deprecation status associated with this image.
13143	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
13144
13145	// Description: An optional description of this resource. Provide this
13146	// property when you create the resource.
13147	Description string `json:"description,omitempty"`
13148
13149	// DiskSizeGb: Size of the image when restored onto a persistent disk
13150	// (in GB).
13151	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
13152
13153	// Family: The name of the image family to which this image belongs. You
13154	// can create disks by specifying an image family instead of a specific
13155	// image name. The image family always returns its latest image that is
13156	// not deprecated. The name of the image family must comply with
13157	// RFC1035.
13158	Family string `json:"family,omitempty"`
13159
13160	// GuestOsFeatures: A list of features to enable on the guest operating
13161	// system. Applicable only for bootable images. Read  Enabling guest
13162	// operating system features to see a list of available options.
13163	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
13164
13165	// Id: [Output Only] The unique identifier for the resource. This
13166	// identifier is defined by the server.
13167	Id uint64 `json:"id,omitempty,string"`
13168
13169	// ImageEncryptionKey: Encrypts the image using a customer-supplied
13170	// encryption key.
13171	//
13172	// After you encrypt an image with a customer-supplied key, you must
13173	// provide the same key if you use the image later (e.g. to create a
13174	// disk from the image).
13175	//
13176	// Customer-supplied encryption keys do not protect access to metadata
13177	// of the disk.
13178	//
13179	// If you do not provide an encryption key when creating the image, then
13180	// the disk will be encrypted using an automatically generated key and
13181	// you do not need to provide a key to use the image later.
13182	ImageEncryptionKey *CustomerEncryptionKey `json:"imageEncryptionKey,omitempty"`
13183
13184	// Kind: [Output Only] Type of the resource. Always compute#image for
13185	// images.
13186	Kind string `json:"kind,omitempty"`
13187
13188	// LabelFingerprint: A fingerprint for the labels being applied to this
13189	// image, which is essentially a hash of the labels used for optimistic
13190	// locking. The fingerprint is initially generated by Compute Engine and
13191	// changes after every request to modify or update labels. You must
13192	// always provide an up-to-date fingerprint hash in order to update or
13193	// change labels, otherwise the request will fail with error 412
13194	// conditionNotMet.
13195	//
13196	// To see the latest fingerprint, make a get() request to retrieve an
13197	// image.
13198	LabelFingerprint string `json:"labelFingerprint,omitempty"`
13199
13200	// Labels: Labels to apply to this image. These can be later modified by
13201	// the setLabels method.
13202	Labels map[string]string `json:"labels,omitempty"`
13203
13204	// LicenseCodes: Integer license codes indicating which licenses are
13205	// attached to this image.
13206	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
13207
13208	// Licenses: Any applicable license URI.
13209	Licenses []string `json:"licenses,omitempty"`
13210
13211	// Name: Name of the resource; provided by the client when the resource
13212	// is created. The name must be 1-63 characters long, and comply with
13213	// RFC1035. Specifically, the name must be 1-63 characters long and
13214	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
13215	// the first character must be a lowercase letter, and all following
13216	// characters must be a dash, lowercase letter, or digit, except the
13217	// last character, which cannot be a dash.
13218	Name string `json:"name,omitempty"`
13219
13220	// RawDisk: The parameters of the raw disk image.
13221	RawDisk *ImageRawDisk `json:"rawDisk,omitempty"`
13222
13223	// SelfLink: [Output Only] Server-defined URL for the resource.
13224	SelfLink string `json:"selfLink,omitempty"`
13225
13226	// SourceDisk: URL of the source disk used to create this image. This
13227	// can be a full or valid partial URL. You must provide either this
13228	// property or the rawDisk.source property but not both to create an
13229	// image. For example, the following are valid values:
13230	// -
13231	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
13232	// - projects/project/zones/zone/disks/disk
13233	// - zones/zone/disks/disk
13234	SourceDisk string `json:"sourceDisk,omitempty"`
13235
13236	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
13237	// source disk. Required if the source disk is protected by a
13238	// customer-supplied encryption key.
13239	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
13240
13241	// SourceDiskId: [Output Only] The ID value of the disk used to create
13242	// this image. This value may be used to determine whether the image was
13243	// taken from the current or a previous instance of a given disk name.
13244	SourceDiskId string `json:"sourceDiskId,omitempty"`
13245
13246	// SourceImage: URL of the source image used to create this image. This
13247	// can be a full or valid partial URL. You must provide exactly one of:
13248	//
13249	// - this property, or
13250	// - the rawDisk.source property, or
13251	// - the sourceDisk property   in order to create an image.
13252	SourceImage string `json:"sourceImage,omitempty"`
13253
13254	// SourceImageEncryptionKey: The customer-supplied encryption key of the
13255	// source image. Required if the source image is protected by a
13256	// customer-supplied encryption key.
13257	SourceImageEncryptionKey *CustomerEncryptionKey `json:"sourceImageEncryptionKey,omitempty"`
13258
13259	// SourceImageId: [Output Only] The ID value of the image used to create
13260	// this image. This value may be used to determine whether the image was
13261	// taken from the current or a previous instance of a given image name.
13262	SourceImageId string `json:"sourceImageId,omitempty"`
13263
13264	// SourceSnapshot: URL of the source snapshot used to create this image.
13265	// This can be a full or valid partial URL. You must provide exactly one
13266	// of:
13267	// - this property, or
13268	// - the sourceImage property, or
13269	// - the rawDisk.source property, or
13270	// - the sourceDisk property   in order to create an image.
13271	SourceSnapshot string `json:"sourceSnapshot,omitempty"`
13272
13273	// SourceSnapshotEncryptionKey: The customer-supplied encryption key of
13274	// the source snapshot. Required if the source snapshot is protected by
13275	// a customer-supplied encryption key.
13276	SourceSnapshotEncryptionKey *CustomerEncryptionKey `json:"sourceSnapshotEncryptionKey,omitempty"`
13277
13278	// SourceSnapshotId: [Output Only] The ID value of the snapshot used to
13279	// create this image. This value may be used to determine whether the
13280	// snapshot was taken from the current or a previous instance of a given
13281	// snapshot name.
13282	SourceSnapshotId string `json:"sourceSnapshotId,omitempty"`
13283
13284	// SourceType: The type of the image used to create this disk. The
13285	// default and only value is RAW
13286	//
13287	// Possible values:
13288	//   "RAW" (default)
13289	SourceType string `json:"sourceType,omitempty"`
13290
13291	// Status: [Output Only] The status of the image. An image can be used
13292	// to create other resources, such as instances, only after the image
13293	// has been successfully created and the status is set to READY.
13294	// Possible values are FAILED, PENDING, or READY.
13295	//
13296	// Possible values:
13297	//   "DELETING"
13298	//   "FAILED"
13299	//   "PENDING"
13300	//   "READY"
13301	Status string `json:"status,omitempty"`
13302
13303	// StorageLocations: Cloud Storage bucket storage location of the image
13304	// (regional or multi-regional).
13305	StorageLocations []string `json:"storageLocations,omitempty"`
13306
13307	// ServerResponse contains the HTTP response code and headers from the
13308	// server.
13309	googleapi.ServerResponse `json:"-"`
13310
13311	// ForceSendFields is a list of field names (e.g. "ArchiveSizeBytes") to
13312	// unconditionally include in API requests. By default, fields with
13313	// empty values are omitted from API requests. However, any non-pointer,
13314	// non-interface field appearing in ForceSendFields will be sent to the
13315	// server regardless of whether the field is empty or not. This may be
13316	// used to include empty fields in Patch requests.
13317	ForceSendFields []string `json:"-"`
13318
13319	// NullFields is a list of field names (e.g. "ArchiveSizeBytes") to
13320	// include in API requests with the JSON null value. By default, fields
13321	// with empty values are omitted from API requests. However, any field
13322	// with an empty value appearing in NullFields will be sent to the
13323	// server as null. It is an error if a field in this list has a
13324	// non-empty value. This may be used to include null fields in Patch
13325	// requests.
13326	NullFields []string `json:"-"`
13327}
13328
13329func (s *Image) MarshalJSON() ([]byte, error) {
13330	type NoMethod Image
13331	raw := NoMethod(*s)
13332	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13333}
13334
13335// ImageRawDisk: The parameters of the raw disk image.
13336type ImageRawDisk struct {
13337	// ContainerType: The format used to encode and transmit the block
13338	// device, which should be TAR. This is just a container and
13339	// transmission format and not a runtime format. Provided by the client
13340	// when the disk image is created.
13341	//
13342	// Possible values:
13343	//   "TAR"
13344	ContainerType string `json:"containerType,omitempty"`
13345
13346	// Sha1Checksum: [Deprecated] This field is deprecated. An optional SHA1
13347	// checksum of the disk image before unpackaging provided by the client
13348	// when the disk image is created.
13349	Sha1Checksum string `json:"sha1Checksum,omitempty"`
13350
13351	// Source: The full Google Cloud Storage URL where the disk image is
13352	// stored. You must provide either this property or the sourceDisk
13353	// property but not both.
13354	Source string `json:"source,omitempty"`
13355
13356	// ForceSendFields is a list of field names (e.g. "ContainerType") to
13357	// unconditionally include in API requests. By default, fields with
13358	// empty values are omitted from API requests. However, any non-pointer,
13359	// non-interface field appearing in ForceSendFields will be sent to the
13360	// server regardless of whether the field is empty or not. This may be
13361	// used to include empty fields in Patch requests.
13362	ForceSendFields []string `json:"-"`
13363
13364	// NullFields is a list of field names (e.g. "ContainerType") to include
13365	// in API requests with the JSON null value. By default, fields with
13366	// empty values are omitted from API requests. However, any field with
13367	// an empty value appearing in NullFields will be sent to the server as
13368	// null. It is an error if a field in this list has a non-empty value.
13369	// This may be used to include null fields in Patch requests.
13370	NullFields []string `json:"-"`
13371}
13372
13373func (s *ImageRawDisk) MarshalJSON() ([]byte, error) {
13374	type NoMethod ImageRawDisk
13375	raw := NoMethod(*s)
13376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13377}
13378
13379// ImageList: Contains a list of images.
13380type ImageList struct {
13381	// Id: [Output Only] Unique identifier for the resource; defined by the
13382	// server.
13383	Id string `json:"id,omitempty"`
13384
13385	// Items: A list of Image resources.
13386	Items []*Image `json:"items,omitempty"`
13387
13388	// Kind: Type of resource.
13389	Kind string `json:"kind,omitempty"`
13390
13391	// NextPageToken: [Output Only] This token allows you to get the next
13392	// page of results for list requests. If the number of results is larger
13393	// than maxResults, use the nextPageToken as a value for the query
13394	// parameter pageToken in the next list request. Subsequent list
13395	// requests will have their own nextPageToken to continue paging through
13396	// the results.
13397	NextPageToken string `json:"nextPageToken,omitempty"`
13398
13399	// SelfLink: [Output Only] Server-defined URL for this resource.
13400	SelfLink string `json:"selfLink,omitempty"`
13401
13402	// Warning: [Output Only] Informational warning message.
13403	Warning *ImageListWarning `json:"warning,omitempty"`
13404
13405	// ServerResponse contains the HTTP response code and headers from the
13406	// server.
13407	googleapi.ServerResponse `json:"-"`
13408
13409	// ForceSendFields is a list of field names (e.g. "Id") to
13410	// unconditionally include in API requests. By default, fields with
13411	// empty values are omitted from API requests. However, any non-pointer,
13412	// non-interface field appearing in ForceSendFields will be sent to the
13413	// server regardless of whether the field is empty or not. This may be
13414	// used to include empty fields in Patch requests.
13415	ForceSendFields []string `json:"-"`
13416
13417	// NullFields is a list of field names (e.g. "Id") to include in API
13418	// requests with the JSON null value. By default, fields with empty
13419	// values are omitted from API requests. However, any field with an
13420	// empty value appearing in NullFields will be sent to the server as
13421	// null. It is an error if a field in this list has a non-empty value.
13422	// This may be used to include null fields in Patch requests.
13423	NullFields []string `json:"-"`
13424}
13425
13426func (s *ImageList) MarshalJSON() ([]byte, error) {
13427	type NoMethod ImageList
13428	raw := NoMethod(*s)
13429	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13430}
13431
13432// ImageListWarning: [Output Only] Informational warning message.
13433type ImageListWarning struct {
13434	// Code: [Output Only] A warning code, if applicable. For example,
13435	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13436	// the response.
13437	//
13438	// Possible values:
13439	//   "CLEANUP_FAILED"
13440	//   "DEPRECATED_RESOURCE_USED"
13441	//   "DEPRECATED_TYPE_USED"
13442	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13443	//   "EXPERIMENTAL_TYPE_USED"
13444	//   "EXTERNAL_API_WARNING"
13445	//   "FIELD_VALUE_OVERRIDEN"
13446	//   "INJECTED_KERNELS_DEPRECATED"
13447	//   "MISSING_TYPE_DEPENDENCY"
13448	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13449	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13450	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13451	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13452	//   "NEXT_HOP_NOT_RUNNING"
13453	//   "NOT_CRITICAL_ERROR"
13454	//   "NO_RESULTS_ON_PAGE"
13455	//   "REQUIRED_TOS_AGREEMENT"
13456	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13457	//   "RESOURCE_NOT_DELETED"
13458	//   "SCHEMA_VALIDATION_IGNORED"
13459	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13460	//   "UNDECLARED_PROPERTIES"
13461	//   "UNREACHABLE"
13462	Code string `json:"code,omitempty"`
13463
13464	// Data: [Output Only] Metadata about this warning in key: value format.
13465	// For example:
13466	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13467	Data []*ImageListWarningData `json:"data,omitempty"`
13468
13469	// Message: [Output Only] A human-readable description of the warning
13470	// code.
13471	Message string `json:"message,omitempty"`
13472
13473	// ForceSendFields is a list of field names (e.g. "Code") to
13474	// unconditionally include in API requests. By default, fields with
13475	// empty values are omitted from API requests. However, any non-pointer,
13476	// non-interface field appearing in ForceSendFields will be sent to the
13477	// server regardless of whether the field is empty or not. This may be
13478	// used to include empty fields in Patch requests.
13479	ForceSendFields []string `json:"-"`
13480
13481	// NullFields is a list of field names (e.g. "Code") to include in API
13482	// requests with the JSON null value. By default, fields with empty
13483	// values are omitted from API requests. However, any field with an
13484	// empty value appearing in NullFields will be sent to the server as
13485	// null. It is an error if a field in this list has a non-empty value.
13486	// This may be used to include null fields in Patch requests.
13487	NullFields []string `json:"-"`
13488}
13489
13490func (s *ImageListWarning) MarshalJSON() ([]byte, error) {
13491	type NoMethod ImageListWarning
13492	raw := NoMethod(*s)
13493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13494}
13495
13496type ImageListWarningData struct {
13497	// Key: [Output Only] A key that provides more detail on the warning
13498	// being returned. For example, for warnings where there are no results
13499	// in a list request for a particular zone, this key might be scope and
13500	// the key value might be the zone name. Other examples might be a key
13501	// indicating a deprecated resource and a suggested replacement, or a
13502	// warning about invalid network settings (for example, if an instance
13503	// attempts to perform IP forwarding but is not enabled for IP
13504	// forwarding).
13505	Key string `json:"key,omitempty"`
13506
13507	// Value: [Output Only] A warning data value corresponding to the key.
13508	Value string `json:"value,omitempty"`
13509
13510	// ForceSendFields is a list of field names (e.g. "Key") to
13511	// unconditionally include in API requests. By default, fields with
13512	// empty values are omitted from API requests. However, any non-pointer,
13513	// non-interface field appearing in ForceSendFields will be sent to the
13514	// server regardless of whether the field is empty or not. This may be
13515	// used to include empty fields in Patch requests.
13516	ForceSendFields []string `json:"-"`
13517
13518	// NullFields is a list of field names (e.g. "Key") to include in API
13519	// requests with the JSON null value. By default, fields with empty
13520	// values are omitted from API requests. However, any field with an
13521	// empty value appearing in NullFields will be sent to the server as
13522	// null. It is an error if a field in this list has a non-empty value.
13523	// This may be used to include null fields in Patch requests.
13524	NullFields []string `json:"-"`
13525}
13526
13527func (s *ImageListWarningData) MarshalJSON() ([]byte, error) {
13528	type NoMethod ImageListWarningData
13529	raw := NoMethod(*s)
13530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13531}
13532
13533// Instance: Represents an Instance resource.
13534//
13535// An instance is a virtual machine that is hosted on Google Cloud
13536// Platform. For more information, read Virtual Machine Instances. (==
13537// resource_for {$api_version}.instances ==)
13538type Instance struct {
13539	// CanIpForward: Allows this instance to send and receive packets with
13540	// non-matching destination or source IPs. This is required if you plan
13541	// to use this instance to forward routes. For more information, see
13542	// Enabling IP Forwarding.
13543	CanIpForward bool `json:"canIpForward,omitempty"`
13544
13545	// CpuPlatform: [Output Only] The CPU platform used by this instance.
13546	CpuPlatform string `json:"cpuPlatform,omitempty"`
13547
13548	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
13549	// format.
13550	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13551
13552	// DeletionProtection: Whether the resource should be protected against
13553	// deletion.
13554	DeletionProtection bool `json:"deletionProtection,omitempty"`
13555
13556	// Description: An optional description of this resource. Provide this
13557	// property when you create the resource.
13558	Description string `json:"description,omitempty"`
13559
13560	// Disks: Array of disks associated with this instance. Persistent disks
13561	// must be created before you can assign them.
13562	Disks []*AttachedDisk `json:"disks,omitempty"`
13563
13564	// DisplayDevice: Enables display device for the instance.
13565	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
13566
13567	// EraseWindowsVssSignature: Specifies whether the disks restored from
13568	// source snapshots or source machine image should erase Windows
13569	// specific VSS signature.
13570	EraseWindowsVssSignature bool `json:"eraseWindowsVssSignature,omitempty"`
13571
13572	// GuestAccelerators: A list of the type and count of accelerator cards
13573	// attached to the instance.
13574	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
13575
13576	// Hostname: Specifies the hostname of the instance. The specified
13577	// hostname must be RFC1035 compliant. If hostname is not specified, the
13578	// default hostname is [INSTANCE_NAME].c.[PROJECT_ID].internal when
13579	// using the global DNS, and
13580	// [INSTANCE_NAME].[ZONE].c.[PROJECT_ID].internal when using zonal DNS.
13581	Hostname string `json:"hostname,omitempty"`
13582
13583	// Id: [Output Only] The unique identifier for the resource. This
13584	// identifier is defined by the server.
13585	Id uint64 `json:"id,omitempty,string"`
13586
13587	// Kind: [Output Only] Type of the resource. Always compute#instance for
13588	// instances.
13589	Kind string `json:"kind,omitempty"`
13590
13591	// LabelFingerprint: A fingerprint for this request, which is
13592	// essentially a hash of the label's contents and used for optimistic
13593	// locking. The fingerprint is initially generated by Compute Engine and
13594	// changes after every request to modify or update labels. You must
13595	// always provide an up-to-date fingerprint hash in order to update or
13596	// change labels.
13597	//
13598	// To see the latest fingerprint, make get() request to the instance.
13599	LabelFingerprint string `json:"labelFingerprint,omitempty"`
13600
13601	// Labels: Labels to apply to this instance. These can be later modified
13602	// by the setLabels method.
13603	Labels map[string]string `json:"labels,omitempty"`
13604
13605	// MachineType: Full or partial URL of the machine type resource to use
13606	// for this instance, in the format:
13607	// zones/zone/machineTypes/machine-type. This is provided by the client
13608	// when the instance is created. For example, the following is a valid
13609	// partial url to a predefined machine
13610	// type:
13611	// zones/us-central1-f/machineTypes/n1-standard-1
13612	//
13613	//
13614	// To create a custom machine type, provide a URL to a machine type in
13615	// the following format, where CPUS is 1 or an even number up to 32 (2,
13616	// 4, 6, ... 24, etc), and MEMORY is the total memory for this instance.
13617	// Memory must be a multiple of 256 MB and must be supplied in MB (e.g.
13618	// 5 GB of memory is 5120
13619	// MB):
13620	// zones/zone/machineTypes/custom-CPUS-MEMORY
13621	//
13622	//
13623	// For example: zones/us-central1-f/machineTypes/custom-4-5120
13624	//
13625	// For a full list of restrictions, read the Specifications for custom
13626	// machine types.
13627	MachineType string `json:"machineType,omitempty"`
13628
13629	// Metadata: The metadata key/value pairs assigned to this instance.
13630	// This includes custom metadata and predefined keys.
13631	Metadata *Metadata `json:"metadata,omitempty"`
13632
13633	// MinCpuPlatform: Specifies a minimum CPU platform for the VM instance.
13634	// Applicable values are the friendly names of CPU platforms, such as
13635	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
13636	// Bridge".
13637	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
13638
13639	// Name: The name of the resource, provided by the client when initially
13640	// creating the resource. The resource name must be 1-63 characters
13641	// long, and comply with RFC1035. Specifically, the name must be 1-63
13642	// characters long and match the regular expression
13643	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
13644	// a lowercase letter, and all following characters must be a dash,
13645	// lowercase letter, or digit, except the last character, which cannot
13646	// be a dash.
13647	Name string `json:"name,omitempty"`
13648
13649	// NetworkInterfaces: An array of network configurations for this
13650	// instance. These specify how interfaces are configured to interact
13651	// with other network services, such as connecting to the internet.
13652	// Multiple interfaces are supported per instance.
13653	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
13654
13655	// ReservationAffinity: Specifies the reservations that this instance
13656	// can consume from.
13657	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
13658
13659	// ResourcePolicies: Resource policies applied to this instance.
13660	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
13661
13662	// Scheduling: Sets the scheduling options for this instance.
13663	Scheduling *Scheduling `json:"scheduling,omitempty"`
13664
13665	// SelfLink: [Output Only] Server-defined URL for this resource.
13666	SelfLink string `json:"selfLink,omitempty"`
13667
13668	// ServiceAccounts: A list of service accounts, with their specified
13669	// scopes, authorized for this instance. Only one service account per VM
13670	// instance is supported.
13671	//
13672	// Service accounts generate access tokens that can be accessed through
13673	// the metadata server and used to authenticate applications on the
13674	// instance. See Service Accounts for more information.
13675	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
13676
13677	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
13678
13679	ShieldedInstanceIntegrityPolicy *ShieldedInstanceIntegrityPolicy `json:"shieldedInstanceIntegrityPolicy,omitempty"`
13680
13681	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
13682
13683	ShieldedVmIntegrityPolicy *ShieldedVmIntegrityPolicy `json:"shieldedVmIntegrityPolicy,omitempty"`
13684
13685	// SourceMachineImage: Source machine image
13686	SourceMachineImage string `json:"sourceMachineImage,omitempty"`
13687
13688	// SourceMachineImageEncryptionKey: Source GMI encryption key when
13689	// creating an instance from GMI.
13690	SourceMachineImageEncryptionKey *CustomerEncryptionKey `json:"sourceMachineImageEncryptionKey,omitempty"`
13691
13692	// StartRestricted: [Output Only] Whether a VM has been restricted for
13693	// start because Compute Engine has detected suspicious activity.
13694	StartRestricted bool `json:"startRestricted,omitempty"`
13695
13696	// Status: [Output Only] The status of the instance. One of the
13697	// following values: PROVISIONING, STAGING, RUNNING, STOPPING, STOPPED,
13698	// SUSPENDING, SUSPENDED, and TERMINATED.
13699	//
13700	// Possible values:
13701	//   "PROVISIONING"
13702	//   "REPAIRING"
13703	//   "RUNNING"
13704	//   "STAGING"
13705	//   "STOPPED"
13706	//   "STOPPING"
13707	//   "SUSPENDED"
13708	//   "SUSPENDING"
13709	//   "TERMINATED"
13710	Status string `json:"status,omitempty"`
13711
13712	// StatusMessage: [Output Only] An optional, human-readable explanation
13713	// of the status.
13714	StatusMessage string `json:"statusMessage,omitempty"`
13715
13716	// Tags: Tags to apply to this instance. Tags are used to identify valid
13717	// sources or targets for network firewalls and are specified by the
13718	// client during instance creation. The tags can be later modified by
13719	// the setTags method. Each tag within the list must comply with
13720	// RFC1035. Multiple tags can be specified via the 'tags.items' field.
13721	Tags *Tags `json:"tags,omitempty"`
13722
13723	// Zone: [Output Only] URL of the zone where the instance resides. You
13724	// must specify this field as part of the HTTP request URL. It is not
13725	// settable as a field in the request body.
13726	Zone string `json:"zone,omitempty"`
13727
13728	// ServerResponse contains the HTTP response code and headers from the
13729	// server.
13730	googleapi.ServerResponse `json:"-"`
13731
13732	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
13733	// unconditionally include in API requests. By default, fields with
13734	// empty values are omitted from API requests. However, any non-pointer,
13735	// non-interface field appearing in ForceSendFields will be sent to the
13736	// server regardless of whether the field is empty or not. This may be
13737	// used to include empty fields in Patch requests.
13738	ForceSendFields []string `json:"-"`
13739
13740	// NullFields is a list of field names (e.g. "CanIpForward") to include
13741	// in API requests with the JSON null value. By default, fields with
13742	// empty values are omitted from API requests. However, any field with
13743	// an empty value appearing in NullFields will be sent to the server as
13744	// null. It is an error if a field in this list has a non-empty value.
13745	// This may be used to include null fields in Patch requests.
13746	NullFields []string `json:"-"`
13747}
13748
13749func (s *Instance) MarshalJSON() ([]byte, error) {
13750	type NoMethod Instance
13751	raw := NoMethod(*s)
13752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13753}
13754
13755type InstanceAggregatedList struct {
13756	// Id: [Output Only] Unique identifier for the resource; defined by the
13757	// server.
13758	Id string `json:"id,omitempty"`
13759
13760	// Items: An object that contains a list of instances scoped by zone.
13761	Items map[string]InstancesScopedList `json:"items,omitempty"`
13762
13763	// Kind: [Output Only] Type of resource. Always
13764	// compute#instanceAggregatedList for aggregated lists of Instance
13765	// resources.
13766	Kind string `json:"kind,omitempty"`
13767
13768	// NextPageToken: [Output Only] This token allows you to get the next
13769	// page of results for list requests. If the number of results is larger
13770	// than maxResults, use the nextPageToken as a value for the query
13771	// parameter pageToken in the next list request. Subsequent list
13772	// requests will have their own nextPageToken to continue paging through
13773	// the results.
13774	NextPageToken string `json:"nextPageToken,omitempty"`
13775
13776	// SelfLink: [Output Only] Server-defined URL for this resource.
13777	SelfLink string `json:"selfLink,omitempty"`
13778
13779	// Warning: [Output Only] Informational warning message.
13780	Warning *InstanceAggregatedListWarning `json:"warning,omitempty"`
13781
13782	// ServerResponse contains the HTTP response code and headers from the
13783	// server.
13784	googleapi.ServerResponse `json:"-"`
13785
13786	// ForceSendFields is a list of field names (e.g. "Id") to
13787	// unconditionally include in API requests. By default, fields with
13788	// empty values are omitted from API requests. However, any non-pointer,
13789	// non-interface field appearing in ForceSendFields will be sent to the
13790	// server regardless of whether the field is empty or not. This may be
13791	// used to include empty fields in Patch requests.
13792	ForceSendFields []string `json:"-"`
13793
13794	// NullFields is a list of field names (e.g. "Id") to include in API
13795	// requests with the JSON null value. By default, fields with empty
13796	// values are omitted from API requests. However, any field with an
13797	// empty value appearing in NullFields will be sent to the server as
13798	// null. It is an error if a field in this list has a non-empty value.
13799	// This may be used to include null fields in Patch requests.
13800	NullFields []string `json:"-"`
13801}
13802
13803func (s *InstanceAggregatedList) MarshalJSON() ([]byte, error) {
13804	type NoMethod InstanceAggregatedList
13805	raw := NoMethod(*s)
13806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13807}
13808
13809// InstanceAggregatedListWarning: [Output Only] Informational warning
13810// message.
13811type InstanceAggregatedListWarning struct {
13812	// Code: [Output Only] A warning code, if applicable. For example,
13813	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
13814	// the response.
13815	//
13816	// Possible values:
13817	//   "CLEANUP_FAILED"
13818	//   "DEPRECATED_RESOURCE_USED"
13819	//   "DEPRECATED_TYPE_USED"
13820	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
13821	//   "EXPERIMENTAL_TYPE_USED"
13822	//   "EXTERNAL_API_WARNING"
13823	//   "FIELD_VALUE_OVERRIDEN"
13824	//   "INJECTED_KERNELS_DEPRECATED"
13825	//   "MISSING_TYPE_DEPENDENCY"
13826	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
13827	//   "NEXT_HOP_CANNOT_IP_FORWARD"
13828	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
13829	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
13830	//   "NEXT_HOP_NOT_RUNNING"
13831	//   "NOT_CRITICAL_ERROR"
13832	//   "NO_RESULTS_ON_PAGE"
13833	//   "REQUIRED_TOS_AGREEMENT"
13834	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
13835	//   "RESOURCE_NOT_DELETED"
13836	//   "SCHEMA_VALIDATION_IGNORED"
13837	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
13838	//   "UNDECLARED_PROPERTIES"
13839	//   "UNREACHABLE"
13840	Code string `json:"code,omitempty"`
13841
13842	// Data: [Output Only] Metadata about this warning in key: value format.
13843	// For example:
13844	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
13845	Data []*InstanceAggregatedListWarningData `json:"data,omitempty"`
13846
13847	// Message: [Output Only] A human-readable description of the warning
13848	// code.
13849	Message string `json:"message,omitempty"`
13850
13851	// ForceSendFields is a list of field names (e.g. "Code") to
13852	// unconditionally include in API requests. By default, fields with
13853	// empty values are omitted from API requests. However, any non-pointer,
13854	// non-interface field appearing in ForceSendFields will be sent to the
13855	// server regardless of whether the field is empty or not. This may be
13856	// used to include empty fields in Patch requests.
13857	ForceSendFields []string `json:"-"`
13858
13859	// NullFields is a list of field names (e.g. "Code") to include in API
13860	// requests with the JSON null value. By default, fields with empty
13861	// values are omitted from API requests. However, any field with an
13862	// empty value appearing in NullFields will be sent to the server as
13863	// null. It is an error if a field in this list has a non-empty value.
13864	// This may be used to include null fields in Patch requests.
13865	NullFields []string `json:"-"`
13866}
13867
13868func (s *InstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
13869	type NoMethod InstanceAggregatedListWarning
13870	raw := NoMethod(*s)
13871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13872}
13873
13874type InstanceAggregatedListWarningData struct {
13875	// Key: [Output Only] A key that provides more detail on the warning
13876	// being returned. For example, for warnings where there are no results
13877	// in a list request for a particular zone, this key might be scope and
13878	// the key value might be the zone name. Other examples might be a key
13879	// indicating a deprecated resource and a suggested replacement, or a
13880	// warning about invalid network settings (for example, if an instance
13881	// attempts to perform IP forwarding but is not enabled for IP
13882	// forwarding).
13883	Key string `json:"key,omitempty"`
13884
13885	// Value: [Output Only] A warning data value corresponding to the key.
13886	Value string `json:"value,omitempty"`
13887
13888	// ForceSendFields is a list of field names (e.g. "Key") to
13889	// unconditionally include in API requests. By default, fields with
13890	// empty values are omitted from API requests. However, any non-pointer,
13891	// non-interface field appearing in ForceSendFields will be sent to the
13892	// server regardless of whether the field is empty or not. This may be
13893	// used to include empty fields in Patch requests.
13894	ForceSendFields []string `json:"-"`
13895
13896	// NullFields is a list of field names (e.g. "Key") to include in API
13897	// requests with the JSON null value. By default, fields with empty
13898	// values are omitted from API requests. However, any field with an
13899	// empty value appearing in NullFields will be sent to the server as
13900	// null. It is an error if a field in this list has a non-empty value.
13901	// This may be used to include null fields in Patch requests.
13902	NullFields []string `json:"-"`
13903}
13904
13905func (s *InstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
13906	type NoMethod InstanceAggregatedListWarningData
13907	raw := NoMethod(*s)
13908	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
13909}
13910
13911// InstanceGroup: Represents an Instance Group resource.
13912//
13913// Instance Groups can be used to configure a target for load
13914// balancing.
13915//
13916// Instance groups can either be managed or unmanaged.
13917//
13918// To create  managed instance groups, use the instanceGroupManager or
13919// regionInstanceGroupManager resource instead.
13920//
13921// Use zonal unmanaged instance groups if you need to apply load
13922// balancing to groups of heterogeneous instances or if you need to
13923// manage the instances yourself. You cannot create regional unmanaged
13924// instance groups.
13925//
13926// For more information, read Instance groups.
13927//
13928// (== resource_for {$api_version}.instanceGroups ==) (== resource_for
13929// {$api_version}.regionInstanceGroups ==)
13930type InstanceGroup struct {
13931	// CreationTimestamp: [Output Only] The creation timestamp for this
13932	// instance group in RFC3339 text format.
13933	CreationTimestamp string `json:"creationTimestamp,omitempty"`
13934
13935	// Description: An optional description of this resource. Provide this
13936	// property when you create the resource.
13937	Description string `json:"description,omitempty"`
13938
13939	// Fingerprint: [Output Only] The fingerprint of the named ports. The
13940	// system uses this fingerprint to detect conflicts when multiple users
13941	// change the named ports concurrently.
13942	Fingerprint string `json:"fingerprint,omitempty"`
13943
13944	// Id: [Output Only] A unique identifier for this instance group,
13945	// generated by the server.
13946	Id uint64 `json:"id,omitempty,string"`
13947
13948	// Kind: [Output Only] The resource type, which is always
13949	// compute#instanceGroup for instance groups.
13950	Kind string `json:"kind,omitempty"`
13951
13952	// Name: The name of the instance group. The name must be 1-63
13953	// characters long, and comply with RFC1035.
13954	Name string `json:"name,omitempty"`
13955
13956	// NamedPorts: Assigns a name to a port number. For example: {name:
13957	// "http", port: 80}
13958	//
13959	// This allows the system to reference ports by the assigned name
13960	// instead of a port number. Named ports can also contain multiple
13961	// ports. For example: [{name: "http", port: 80},{name: "http", port:
13962	// 8080}]
13963	//
13964	// Named ports apply to all instances in this instance group.
13965	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
13966
13967	// Network: The URL of the network to which all instances in the
13968	// instance group belong.
13969	Network string `json:"network,omitempty"`
13970
13971	// Region: [Output Only] The URL of the region where the instance group
13972	// is located (for regional resources).
13973	Region string `json:"region,omitempty"`
13974
13975	// SelfLink: [Output Only] The URL for this instance group. The server
13976	// generates this URL.
13977	SelfLink string `json:"selfLink,omitempty"`
13978
13979	// Size: [Output Only] The total number of instances in the instance
13980	// group.
13981	Size int64 `json:"size,omitempty"`
13982
13983	// Subnetwork: [Output Only] The URL of the subnetwork to which all
13984	// instances in the instance group belong.
13985	Subnetwork string `json:"subnetwork,omitempty"`
13986
13987	// Zone: [Output Only] The URL of the zone where the instance group is
13988	// located (for zonal resources).
13989	Zone string `json:"zone,omitempty"`
13990
13991	// ServerResponse contains the HTTP response code and headers from the
13992	// server.
13993	googleapi.ServerResponse `json:"-"`
13994
13995	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
13996	// to unconditionally include in API requests. By default, fields with
13997	// empty values are omitted from API requests. However, any non-pointer,
13998	// non-interface field appearing in ForceSendFields will be sent to the
13999	// server regardless of whether the field is empty or not. This may be
14000	// used to include empty fields in Patch requests.
14001	ForceSendFields []string `json:"-"`
14002
14003	// NullFields is a list of field names (e.g. "CreationTimestamp") to
14004	// include in API requests with the JSON null value. By default, fields
14005	// with empty values are omitted from API requests. However, any field
14006	// with an empty value appearing in NullFields will be sent to the
14007	// server as null. It is an error if a field in this list has a
14008	// non-empty value. This may be used to include null fields in Patch
14009	// requests.
14010	NullFields []string `json:"-"`
14011}
14012
14013func (s *InstanceGroup) MarshalJSON() ([]byte, error) {
14014	type NoMethod InstanceGroup
14015	raw := NoMethod(*s)
14016	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14017}
14018
14019type InstanceGroupAggregatedList struct {
14020	// Id: [Output Only] Unique identifier for the resource; defined by the
14021	// server.
14022	Id string `json:"id,omitempty"`
14023
14024	// Items: A list of InstanceGroupsScopedList resources.
14025	Items map[string]InstanceGroupsScopedList `json:"items,omitempty"`
14026
14027	// Kind: [Output Only] The resource type, which is always
14028	// compute#instanceGroupAggregatedList for aggregated lists of instance
14029	// groups.
14030	Kind string `json:"kind,omitempty"`
14031
14032	// NextPageToken: [Output Only] This token allows you to get the next
14033	// page of results for list requests. If the number of results is larger
14034	// than maxResults, use the nextPageToken as a value for the query
14035	// parameter pageToken in the next list request. Subsequent list
14036	// requests will have their own nextPageToken to continue paging through
14037	// the results.
14038	NextPageToken string `json:"nextPageToken,omitempty"`
14039
14040	// SelfLink: [Output Only] Server-defined URL for this resource.
14041	SelfLink string `json:"selfLink,omitempty"`
14042
14043	// Warning: [Output Only] Informational warning message.
14044	Warning *InstanceGroupAggregatedListWarning `json:"warning,omitempty"`
14045
14046	// ServerResponse contains the HTTP response code and headers from the
14047	// server.
14048	googleapi.ServerResponse `json:"-"`
14049
14050	// ForceSendFields is a list of field names (e.g. "Id") to
14051	// unconditionally include in API requests. By default, fields with
14052	// empty values are omitted from API requests. However, any non-pointer,
14053	// non-interface field appearing in ForceSendFields will be sent to the
14054	// server regardless of whether the field is empty or not. This may be
14055	// used to include empty fields in Patch requests.
14056	ForceSendFields []string `json:"-"`
14057
14058	// NullFields is a list of field names (e.g. "Id") to include in API
14059	// requests with the JSON null value. By default, fields with empty
14060	// values are omitted from API requests. However, any field with an
14061	// empty value appearing in NullFields will be sent to the server as
14062	// null. It is an error if a field in this list has a non-empty value.
14063	// This may be used to include null fields in Patch requests.
14064	NullFields []string `json:"-"`
14065}
14066
14067func (s *InstanceGroupAggregatedList) MarshalJSON() ([]byte, error) {
14068	type NoMethod InstanceGroupAggregatedList
14069	raw := NoMethod(*s)
14070	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14071}
14072
14073// InstanceGroupAggregatedListWarning: [Output Only] Informational
14074// warning message.
14075type InstanceGroupAggregatedListWarning struct {
14076	// Code: [Output Only] A warning code, if applicable. For example,
14077	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14078	// the response.
14079	//
14080	// Possible values:
14081	//   "CLEANUP_FAILED"
14082	//   "DEPRECATED_RESOURCE_USED"
14083	//   "DEPRECATED_TYPE_USED"
14084	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14085	//   "EXPERIMENTAL_TYPE_USED"
14086	//   "EXTERNAL_API_WARNING"
14087	//   "FIELD_VALUE_OVERRIDEN"
14088	//   "INJECTED_KERNELS_DEPRECATED"
14089	//   "MISSING_TYPE_DEPENDENCY"
14090	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14091	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14092	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14093	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14094	//   "NEXT_HOP_NOT_RUNNING"
14095	//   "NOT_CRITICAL_ERROR"
14096	//   "NO_RESULTS_ON_PAGE"
14097	//   "REQUIRED_TOS_AGREEMENT"
14098	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14099	//   "RESOURCE_NOT_DELETED"
14100	//   "SCHEMA_VALIDATION_IGNORED"
14101	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14102	//   "UNDECLARED_PROPERTIES"
14103	//   "UNREACHABLE"
14104	Code string `json:"code,omitempty"`
14105
14106	// Data: [Output Only] Metadata about this warning in key: value format.
14107	// For example:
14108	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14109	Data []*InstanceGroupAggregatedListWarningData `json:"data,omitempty"`
14110
14111	// Message: [Output Only] A human-readable description of the warning
14112	// code.
14113	Message string `json:"message,omitempty"`
14114
14115	// ForceSendFields is a list of field names (e.g. "Code") to
14116	// unconditionally include in API requests. By default, fields with
14117	// empty values are omitted from API requests. However, any non-pointer,
14118	// non-interface field appearing in ForceSendFields will be sent to the
14119	// server regardless of whether the field is empty or not. This may be
14120	// used to include empty fields in Patch requests.
14121	ForceSendFields []string `json:"-"`
14122
14123	// NullFields is a list of field names (e.g. "Code") to include in API
14124	// requests with the JSON null value. By default, fields with empty
14125	// values are omitted from API requests. However, any field with an
14126	// empty value appearing in NullFields will be sent to the server as
14127	// null. It is an error if a field in this list has a non-empty value.
14128	// This may be used to include null fields in Patch requests.
14129	NullFields []string `json:"-"`
14130}
14131
14132func (s *InstanceGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
14133	type NoMethod InstanceGroupAggregatedListWarning
14134	raw := NoMethod(*s)
14135	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14136}
14137
14138type InstanceGroupAggregatedListWarningData struct {
14139	// Key: [Output Only] A key that provides more detail on the warning
14140	// being returned. For example, for warnings where there are no results
14141	// in a list request for a particular zone, this key might be scope and
14142	// the key value might be the zone name. Other examples might be a key
14143	// indicating a deprecated resource and a suggested replacement, or a
14144	// warning about invalid network settings (for example, if an instance
14145	// attempts to perform IP forwarding but is not enabled for IP
14146	// forwarding).
14147	Key string `json:"key,omitempty"`
14148
14149	// Value: [Output Only] A warning data value corresponding to the key.
14150	Value string `json:"value,omitempty"`
14151
14152	// ForceSendFields is a list of field names (e.g. "Key") to
14153	// unconditionally include in API requests. By default, fields with
14154	// empty values are omitted from API requests. However, any non-pointer,
14155	// non-interface field appearing in ForceSendFields will be sent to the
14156	// server regardless of whether the field is empty or not. This may be
14157	// used to include empty fields in Patch requests.
14158	ForceSendFields []string `json:"-"`
14159
14160	// NullFields is a list of field names (e.g. "Key") to include in API
14161	// requests with the JSON null value. By default, fields with empty
14162	// values are omitted from API requests. However, any field with an
14163	// empty value appearing in NullFields will be sent to the server as
14164	// null. It is an error if a field in this list has a non-empty value.
14165	// This may be used to include null fields in Patch requests.
14166	NullFields []string `json:"-"`
14167}
14168
14169func (s *InstanceGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14170	type NoMethod InstanceGroupAggregatedListWarningData
14171	raw := NoMethod(*s)
14172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14173}
14174
14175// InstanceGroupList: A list of InstanceGroup resources.
14176type InstanceGroupList struct {
14177	// Id: [Output Only] Unique identifier for the resource; defined by the
14178	// server.
14179	Id string `json:"id,omitempty"`
14180
14181	// Items: A list of InstanceGroup resources.
14182	Items []*InstanceGroup `json:"items,omitempty"`
14183
14184	// Kind: [Output Only] The resource type, which is always
14185	// compute#instanceGroupList for instance group lists.
14186	Kind string `json:"kind,omitempty"`
14187
14188	// NextPageToken: [Output Only] This token allows you to get the next
14189	// page of results for list requests. If the number of results is larger
14190	// than maxResults, use the nextPageToken as a value for the query
14191	// parameter pageToken in the next list request. Subsequent list
14192	// requests will have their own nextPageToken to continue paging through
14193	// the results.
14194	NextPageToken string `json:"nextPageToken,omitempty"`
14195
14196	// SelfLink: [Output Only] Server-defined URL for this resource.
14197	SelfLink string `json:"selfLink,omitempty"`
14198
14199	// Warning: [Output Only] Informational warning message.
14200	Warning *InstanceGroupListWarning `json:"warning,omitempty"`
14201
14202	// ServerResponse contains the HTTP response code and headers from the
14203	// server.
14204	googleapi.ServerResponse `json:"-"`
14205
14206	// ForceSendFields is a list of field names (e.g. "Id") to
14207	// unconditionally include in API requests. By default, fields with
14208	// empty values are omitted from API requests. However, any non-pointer,
14209	// non-interface field appearing in ForceSendFields will be sent to the
14210	// server regardless of whether the field is empty or not. This may be
14211	// used to include empty fields in Patch requests.
14212	ForceSendFields []string `json:"-"`
14213
14214	// NullFields is a list of field names (e.g. "Id") to include in API
14215	// requests with the JSON null value. By default, fields with empty
14216	// values are omitted from API requests. However, any field with an
14217	// empty value appearing in NullFields will be sent to the server as
14218	// null. It is an error if a field in this list has a non-empty value.
14219	// This may be used to include null fields in Patch requests.
14220	NullFields []string `json:"-"`
14221}
14222
14223func (s *InstanceGroupList) MarshalJSON() ([]byte, error) {
14224	type NoMethod InstanceGroupList
14225	raw := NoMethod(*s)
14226	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14227}
14228
14229// InstanceGroupListWarning: [Output Only] Informational warning
14230// message.
14231type InstanceGroupListWarning struct {
14232	// Code: [Output Only] A warning code, if applicable. For example,
14233	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14234	// the response.
14235	//
14236	// Possible values:
14237	//   "CLEANUP_FAILED"
14238	//   "DEPRECATED_RESOURCE_USED"
14239	//   "DEPRECATED_TYPE_USED"
14240	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14241	//   "EXPERIMENTAL_TYPE_USED"
14242	//   "EXTERNAL_API_WARNING"
14243	//   "FIELD_VALUE_OVERRIDEN"
14244	//   "INJECTED_KERNELS_DEPRECATED"
14245	//   "MISSING_TYPE_DEPENDENCY"
14246	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14247	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14248	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14249	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14250	//   "NEXT_HOP_NOT_RUNNING"
14251	//   "NOT_CRITICAL_ERROR"
14252	//   "NO_RESULTS_ON_PAGE"
14253	//   "REQUIRED_TOS_AGREEMENT"
14254	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14255	//   "RESOURCE_NOT_DELETED"
14256	//   "SCHEMA_VALIDATION_IGNORED"
14257	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14258	//   "UNDECLARED_PROPERTIES"
14259	//   "UNREACHABLE"
14260	Code string `json:"code,omitempty"`
14261
14262	// Data: [Output Only] Metadata about this warning in key: value format.
14263	// For example:
14264	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14265	Data []*InstanceGroupListWarningData `json:"data,omitempty"`
14266
14267	// Message: [Output Only] A human-readable description of the warning
14268	// code.
14269	Message string `json:"message,omitempty"`
14270
14271	// ForceSendFields is a list of field names (e.g. "Code") to
14272	// unconditionally include in API requests. By default, fields with
14273	// empty values are omitted from API requests. However, any non-pointer,
14274	// non-interface field appearing in ForceSendFields will be sent to the
14275	// server regardless of whether the field is empty or not. This may be
14276	// used to include empty fields in Patch requests.
14277	ForceSendFields []string `json:"-"`
14278
14279	// NullFields is a list of field names (e.g. "Code") to include in API
14280	// requests with the JSON null value. By default, fields with empty
14281	// values are omitted from API requests. However, any field with an
14282	// empty value appearing in NullFields will be sent to the server as
14283	// null. It is an error if a field in this list has a non-empty value.
14284	// This may be used to include null fields in Patch requests.
14285	NullFields []string `json:"-"`
14286}
14287
14288func (s *InstanceGroupListWarning) MarshalJSON() ([]byte, error) {
14289	type NoMethod InstanceGroupListWarning
14290	raw := NoMethod(*s)
14291	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14292}
14293
14294type InstanceGroupListWarningData struct {
14295	// Key: [Output Only] A key that provides more detail on the warning
14296	// being returned. For example, for warnings where there are no results
14297	// in a list request for a particular zone, this key might be scope and
14298	// the key value might be the zone name. Other examples might be a key
14299	// indicating a deprecated resource and a suggested replacement, or a
14300	// warning about invalid network settings (for example, if an instance
14301	// attempts to perform IP forwarding but is not enabled for IP
14302	// forwarding).
14303	Key string `json:"key,omitempty"`
14304
14305	// Value: [Output Only] A warning data value corresponding to the key.
14306	Value string `json:"value,omitempty"`
14307
14308	// ForceSendFields is a list of field names (e.g. "Key") to
14309	// unconditionally include in API requests. By default, fields with
14310	// empty values are omitted from API requests. However, any non-pointer,
14311	// non-interface field appearing in ForceSendFields will be sent to the
14312	// server regardless of whether the field is empty or not. This may be
14313	// used to include empty fields in Patch requests.
14314	ForceSendFields []string `json:"-"`
14315
14316	// NullFields is a list of field names (e.g. "Key") to include in API
14317	// requests with the JSON null value. By default, fields with empty
14318	// values are omitted from API requests. However, any field with an
14319	// empty value appearing in NullFields will be sent to the server as
14320	// null. It is an error if a field in this list has a non-empty value.
14321	// This may be used to include null fields in Patch requests.
14322	NullFields []string `json:"-"`
14323}
14324
14325func (s *InstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
14326	type NoMethod InstanceGroupListWarningData
14327	raw := NoMethod(*s)
14328	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14329}
14330
14331// InstanceGroupManager: Represents a Managed Instance Group
14332// resource.
14333//
14334// An instance group is a collection of VM instances that you can manage
14335// as a single entity. For more information, read Instance groups.
14336//
14337// For zonal Managed Instance Group, use the instanceGroupManagers
14338// resource.
14339//
14340// For regional Managed Instance Group, use the
14341// regionInstanceGroupManagers resource. (== resource_for
14342// {$api_version}.instanceGroupManagers ==) (== resource_for
14343// {$api_version}.regionInstanceGroupManagers ==)
14344type InstanceGroupManager struct {
14345	// AutoHealingPolicies: The autohealing policy for this managed instance
14346	// group. You can specify only one value.
14347	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
14348
14349	// BaseInstanceName: The base instance name to use for instances in this
14350	// group. The value must be 1-58 characters long. Instances are named by
14351	// appending a hyphen and a random four-character string to the base
14352	// instance name. The base instance name must comply with RFC1035.
14353	BaseInstanceName string `json:"baseInstanceName,omitempty"`
14354
14355	// CreationTimestamp: [Output Only] The creation timestamp for this
14356	// managed instance group in RFC3339 text format.
14357	CreationTimestamp string `json:"creationTimestamp,omitempty"`
14358
14359	// CurrentActions: [Output Only] The list of instance actions and the
14360	// number of instances in this managed instance group that are scheduled
14361	// for each of those actions.
14362	CurrentActions *InstanceGroupManagerActionsSummary `json:"currentActions,omitempty"`
14363
14364	// Description: An optional description of this resource. Provide this
14365	// property when you create the resource.
14366	Description string `json:"description,omitempty"`
14367
14368	// DistributionPolicy: Policy specifying intended distribution of
14369	// instances in regional managed instance group.
14370	DistributionPolicy *DistributionPolicy `json:"distributionPolicy,omitempty"`
14371
14372	// FailoverAction: The action to perform in case of zone failure. Only
14373	// one value is supported, NO_FAILOVER. The default is NO_FAILOVER.
14374	//
14375	// Possible values:
14376	//   "NO_FAILOVER"
14377	//   "UNKNOWN"
14378	FailoverAction string `json:"failoverAction,omitempty"`
14379
14380	// Fingerprint: Fingerprint of this resource. This field may be used in
14381	// optimistic locking. It will be ignored when inserting an
14382	// InstanceGroupManager. An up-to-date fingerprint must be provided in
14383	// order to update the InstanceGroupManager, otherwise the request will
14384	// fail with error 412 conditionNotMet.
14385	//
14386	// To see the latest fingerprint, make a get() request to retrieve an
14387	// InstanceGroupManager.
14388	Fingerprint string `json:"fingerprint,omitempty"`
14389
14390	// Id: [Output Only] A unique identifier for this resource type. The
14391	// server generates this identifier.
14392	Id uint64 `json:"id,omitempty,string"`
14393
14394	// InstanceGroup: [Output Only] The URL of the Instance Group resource.
14395	InstanceGroup string `json:"instanceGroup,omitempty"`
14396
14397	// InstanceTemplate: The URL of the instance template that is specified
14398	// for this managed instance group. The group uses this template to
14399	// create all new instances in the managed instance group.
14400	InstanceTemplate string `json:"instanceTemplate,omitempty"`
14401
14402	// Kind: [Output Only] The resource type, which is always
14403	// compute#instanceGroupManager for managed instance groups.
14404	Kind string `json:"kind,omitempty"`
14405
14406	// Name: The name of the managed instance group. The name must be 1-63
14407	// characters long, and comply with RFC1035.
14408	Name string `json:"name,omitempty"`
14409
14410	// NamedPorts: Named ports configured for the Instance Groups
14411	// complementary to this Instance Group Manager.
14412	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
14413
14414	// PendingActions: [Deprecated] This field is deprecated and will be
14415	// removed. Prefer using the status field instead. Please contact
14416	// cloud-updater-feedback@google.com to leave feedback if your workload
14417	// relies on this field. [Output Only] The list of instance actions and
14418	// the number of instances in this managed instance group that are
14419	// pending for each of those actions.
14420	PendingActions *InstanceGroupManagerPendingActionsSummary `json:"pendingActions,omitempty"`
14421
14422	// Region: [Output Only] The URL of the region where the managed
14423	// instance group resides (for regional resources).
14424	Region string `json:"region,omitempty"`
14425
14426	// SelfLink: [Output Only] The URL for this managed instance group. The
14427	// server defines this URL.
14428	SelfLink string `json:"selfLink,omitempty"`
14429
14430	// ServiceAccount: The service account to be used as credentials for all
14431	// operations performed by the managed instance group on instances. The
14432	// service accounts needs all permissions required to create and delete
14433	// instances. By default, the service account
14434	// {projectNumber}@cloudservices.gserviceaccount.com is used.
14435	ServiceAccount string `json:"serviceAccount,omitempty"`
14436
14437	// StatefulPolicy: Stateful configuration for this Instanced Group
14438	// Manager
14439	StatefulPolicy *StatefulPolicy `json:"statefulPolicy,omitempty"`
14440
14441	// Status: [Output Only] The status of this managed instance group.
14442	Status *InstanceGroupManagerStatus `json:"status,omitempty"`
14443
14444	// TargetPools: The URLs for all TargetPool resources to which instances
14445	// in the instanceGroup field are added. The target pools automatically
14446	// apply to all of the instances in the managed instance group.
14447	TargetPools []string `json:"targetPools,omitempty"`
14448
14449	// TargetSize: The target number of running instances for this managed
14450	// instance group. You can reduce this number by using the
14451	// instanceGroupManager deleteInstances or abandonInstances methods.
14452	// Resizing the group also changes this number.
14453	TargetSize int64 `json:"targetSize,omitempty"`
14454
14455	// UpdatePolicy: The update policy for this managed instance group.
14456	UpdatePolicy *InstanceGroupManagerUpdatePolicy `json:"updatePolicy,omitempty"`
14457
14458	// Versions: Specifies the instance templates used by this managed
14459	// instance group to create instances.
14460	//
14461	// Each version is defined by an instanceTemplate and a name. Every
14462	// version can appear at most once per instance group. This field
14463	// overrides the top-level instanceTemplate field. Read more about the
14464	// relationships between these fields. Exactly one version must leave
14465	// the targetSize field unset. That version will be applied to all
14466	// remaining instances. For more information, read about canary updates.
14467	Versions []*InstanceGroupManagerVersion `json:"versions,omitempty"`
14468
14469	// Zone: [Output Only] The URL of the zone where the managed instance
14470	// group is located (for zonal resources).
14471	Zone string `json:"zone,omitempty"`
14472
14473	// ServerResponse contains the HTTP response code and headers from the
14474	// server.
14475	googleapi.ServerResponse `json:"-"`
14476
14477	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
14478	// to unconditionally include in API requests. By default, fields with
14479	// empty values are omitted from API requests. However, any non-pointer,
14480	// non-interface field appearing in ForceSendFields will be sent to the
14481	// server regardless of whether the field is empty or not. This may be
14482	// used to include empty fields in Patch requests.
14483	ForceSendFields []string `json:"-"`
14484
14485	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
14486	// include in API requests with the JSON null value. By default, fields
14487	// with empty values are omitted from API requests. However, any field
14488	// with an empty value appearing in NullFields will be sent to the
14489	// server as null. It is an error if a field in this list has a
14490	// non-empty value. This may be used to include null fields in Patch
14491	// requests.
14492	NullFields []string `json:"-"`
14493}
14494
14495func (s *InstanceGroupManager) MarshalJSON() ([]byte, error) {
14496	type NoMethod InstanceGroupManager
14497	raw := NoMethod(*s)
14498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14499}
14500
14501type InstanceGroupManagerActionsSummary struct {
14502	// Abandoning: [Output Only] The total number of instances in the
14503	// managed instance group that are scheduled to be abandoned. Abandoning
14504	// an instance removes it from the managed instance group without
14505	// deleting it.
14506	Abandoning int64 `json:"abandoning,omitempty"`
14507
14508	// Creating: [Output Only] The number of instances in the managed
14509	// instance group that are scheduled to be created or are currently
14510	// being created. If the group fails to create any of these instances,
14511	// it tries again until it creates the instance successfully.
14512	//
14513	// If you have disabled creation retries, this field will not be
14514	// populated; instead, the creatingWithoutRetries field will be
14515	// populated.
14516	Creating int64 `json:"creating,omitempty"`
14517
14518	// CreatingWithoutRetries: [Output Only] The number of instances that
14519	// the managed instance group will attempt to create. The group attempts
14520	// to create each instance only once. If the group fails to create any
14521	// of these instances, it decreases the group's targetSize value
14522	// accordingly.
14523	CreatingWithoutRetries int64 `json:"creatingWithoutRetries,omitempty"`
14524
14525	// Deleting: [Output Only] The number of instances in the managed
14526	// instance group that are scheduled to be deleted or are currently
14527	// being deleted.
14528	Deleting int64 `json:"deleting,omitempty"`
14529
14530	// None: [Output Only] The number of instances in the managed instance
14531	// group that are running and have no scheduled actions.
14532	None int64 `json:"none,omitempty"`
14533
14534	// Recreating: [Output Only] The number of instances in the managed
14535	// instance group that are scheduled to be recreated or are currently
14536	// being being recreated. Recreating an instance deletes the existing
14537	// root persistent disk and creates a new disk from the image that is
14538	// defined in the instance template.
14539	Recreating int64 `json:"recreating,omitempty"`
14540
14541	// Refreshing: [Output Only] The number of instances in the managed
14542	// instance group that are being reconfigured with properties that do
14543	// not require a restart or a recreate action. For example, setting or
14544	// removing target pools for the instance.
14545	Refreshing int64 `json:"refreshing,omitempty"`
14546
14547	// Restarting: [Output Only] The number of instances in the managed
14548	// instance group that are scheduled to be restarted or are currently
14549	// being restarted.
14550	Restarting int64 `json:"restarting,omitempty"`
14551
14552	// Verifying: [Output Only] The number of instances in the managed
14553	// instance group that are being verified. See the
14554	// managedInstances[].currentAction property in the listManagedInstances
14555	// method documentation.
14556	Verifying int64 `json:"verifying,omitempty"`
14557
14558	// ForceSendFields is a list of field names (e.g. "Abandoning") 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. "Abandoning") to include in
14567	// API 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 *InstanceGroupManagerActionsSummary) MarshalJSON() ([]byte, error) {
14576	type NoMethod InstanceGroupManagerActionsSummary
14577	raw := NoMethod(*s)
14578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14579}
14580
14581type InstanceGroupManagerAggregatedList struct {
14582	// Id: [Output Only] Unique identifier for the resource; defined by the
14583	// server.
14584	Id string `json:"id,omitempty"`
14585
14586	// Items: A list of InstanceGroupManagersScopedList resources.
14587	Items map[string]InstanceGroupManagersScopedList `json:"items,omitempty"`
14588
14589	// Kind: [Output Only] The resource type, which is always
14590	// compute#instanceGroupManagerAggregatedList for an aggregated list of
14591	// managed instance groups.
14592	Kind string `json:"kind,omitempty"`
14593
14594	// NextPageToken: [Output Only] This token allows you to get the next
14595	// page of results for list requests. If the number of results is larger
14596	// than maxResults, use the nextPageToken as a value for the query
14597	// parameter pageToken in the next list request. Subsequent list
14598	// requests will have their own nextPageToken to continue paging through
14599	// the results.
14600	NextPageToken string `json:"nextPageToken,omitempty"`
14601
14602	// SelfLink: [Output Only] Server-defined URL for this resource.
14603	SelfLink string `json:"selfLink,omitempty"`
14604
14605	// Warning: [Output Only] Informational warning message.
14606	Warning *InstanceGroupManagerAggregatedListWarning `json:"warning,omitempty"`
14607
14608	// ServerResponse contains the HTTP response code and headers from the
14609	// server.
14610	googleapi.ServerResponse `json:"-"`
14611
14612	// ForceSendFields is a list of field names (e.g. "Id") to
14613	// unconditionally include in API requests. By default, fields with
14614	// empty values are omitted from API requests. However, any non-pointer,
14615	// non-interface field appearing in ForceSendFields will be sent to the
14616	// server regardless of whether the field is empty or not. This may be
14617	// used to include empty fields in Patch requests.
14618	ForceSendFields []string `json:"-"`
14619
14620	// NullFields is a list of field names (e.g. "Id") to include in API
14621	// requests with the JSON null value. By default, fields with empty
14622	// values are omitted from API requests. However, any field with an
14623	// empty value appearing in NullFields will be sent to the server as
14624	// null. It is an error if a field in this list has a non-empty value.
14625	// This may be used to include null fields in Patch requests.
14626	NullFields []string `json:"-"`
14627}
14628
14629func (s *InstanceGroupManagerAggregatedList) MarshalJSON() ([]byte, error) {
14630	type NoMethod InstanceGroupManagerAggregatedList
14631	raw := NoMethod(*s)
14632	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14633}
14634
14635// InstanceGroupManagerAggregatedListWarning: [Output Only]
14636// Informational warning message.
14637type InstanceGroupManagerAggregatedListWarning struct {
14638	// Code: [Output Only] A warning code, if applicable. For example,
14639	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14640	// the response.
14641	//
14642	// Possible values:
14643	//   "CLEANUP_FAILED"
14644	//   "DEPRECATED_RESOURCE_USED"
14645	//   "DEPRECATED_TYPE_USED"
14646	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14647	//   "EXPERIMENTAL_TYPE_USED"
14648	//   "EXTERNAL_API_WARNING"
14649	//   "FIELD_VALUE_OVERRIDEN"
14650	//   "INJECTED_KERNELS_DEPRECATED"
14651	//   "MISSING_TYPE_DEPENDENCY"
14652	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14653	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14654	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14655	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14656	//   "NEXT_HOP_NOT_RUNNING"
14657	//   "NOT_CRITICAL_ERROR"
14658	//   "NO_RESULTS_ON_PAGE"
14659	//   "REQUIRED_TOS_AGREEMENT"
14660	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14661	//   "RESOURCE_NOT_DELETED"
14662	//   "SCHEMA_VALIDATION_IGNORED"
14663	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14664	//   "UNDECLARED_PROPERTIES"
14665	//   "UNREACHABLE"
14666	Code string `json:"code,omitempty"`
14667
14668	// Data: [Output Only] Metadata about this warning in key: value format.
14669	// For example:
14670	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14671	Data []*InstanceGroupManagerAggregatedListWarningData `json:"data,omitempty"`
14672
14673	// Message: [Output Only] A human-readable description of the warning
14674	// code.
14675	Message string `json:"message,omitempty"`
14676
14677	// ForceSendFields is a list of field names (e.g. "Code") to
14678	// unconditionally include in API requests. By default, fields with
14679	// empty values are omitted from API requests. However, any non-pointer,
14680	// non-interface field appearing in ForceSendFields will be sent to the
14681	// server regardless of whether the field is empty or not. This may be
14682	// used to include empty fields in Patch requests.
14683	ForceSendFields []string `json:"-"`
14684
14685	// NullFields is a list of field names (e.g. "Code") to include in API
14686	// requests with the JSON null value. By default, fields with empty
14687	// values are omitted from API requests. However, any field with an
14688	// empty value appearing in NullFields will be sent to the server as
14689	// null. It is an error if a field in this list has a non-empty value.
14690	// This may be used to include null fields in Patch requests.
14691	NullFields []string `json:"-"`
14692}
14693
14694func (s *InstanceGroupManagerAggregatedListWarning) MarshalJSON() ([]byte, error) {
14695	type NoMethod InstanceGroupManagerAggregatedListWarning
14696	raw := NoMethod(*s)
14697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14698}
14699
14700type InstanceGroupManagerAggregatedListWarningData struct {
14701	// Key: [Output Only] A key that provides more detail on the warning
14702	// being returned. For example, for warnings where there are no results
14703	// in a list request for a particular zone, this key might be scope and
14704	// the key value might be the zone name. Other examples might be a key
14705	// indicating a deprecated resource and a suggested replacement, or a
14706	// warning about invalid network settings (for example, if an instance
14707	// attempts to perform IP forwarding but is not enabled for IP
14708	// forwarding).
14709	Key string `json:"key,omitempty"`
14710
14711	// Value: [Output Only] A warning data value corresponding to the key.
14712	Value string `json:"value,omitempty"`
14713
14714	// ForceSendFields is a list of field names (e.g. "Key") to
14715	// unconditionally include in API requests. By default, fields with
14716	// empty values are omitted from API requests. However, any non-pointer,
14717	// non-interface field appearing in ForceSendFields will be sent to the
14718	// server regardless of whether the field is empty or not. This may be
14719	// used to include empty fields in Patch requests.
14720	ForceSendFields []string `json:"-"`
14721
14722	// NullFields is a list of field names (e.g. "Key") to include in API
14723	// requests with the JSON null value. By default, fields with empty
14724	// values are omitted from API requests. However, any field with an
14725	// empty value appearing in NullFields will be sent to the server as
14726	// null. It is an error if a field in this list has a non-empty value.
14727	// This may be used to include null fields in Patch requests.
14728	NullFields []string `json:"-"`
14729}
14730
14731func (s *InstanceGroupManagerAggregatedListWarningData) MarshalJSON() ([]byte, error) {
14732	type NoMethod InstanceGroupManagerAggregatedListWarningData
14733	raw := NoMethod(*s)
14734	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14735}
14736
14737type InstanceGroupManagerAutoHealingPolicy struct {
14738	// HealthCheck: The URL for the health check that signals autohealing.
14739	HealthCheck string `json:"healthCheck,omitempty"`
14740
14741	// InitialDelaySec: The number of seconds that the managed instance
14742	// group waits before it applies autohealing policies to new instances
14743	// or recently recreated instances. This initial delay allows instances
14744	// to initialize and run their startup scripts before the instance group
14745	// determines that they are UNHEALTHY. This prevents the managed
14746	// instance group from recreating its instances prematurely. This value
14747	// must be from range [0, 3600].
14748	InitialDelaySec int64 `json:"initialDelaySec,omitempty"`
14749
14750	// ForceSendFields is a list of field names (e.g. "HealthCheck") to
14751	// unconditionally include in API requests. By default, fields with
14752	// empty values are omitted from API requests. However, any non-pointer,
14753	// non-interface field appearing in ForceSendFields will be sent to the
14754	// server regardless of whether the field is empty or not. This may be
14755	// used to include empty fields in Patch requests.
14756	ForceSendFields []string `json:"-"`
14757
14758	// NullFields is a list of field names (e.g. "HealthCheck") to include
14759	// in API requests with the JSON null value. By default, fields with
14760	// empty values are omitted from API requests. However, any field with
14761	// an empty value appearing in NullFields will be sent to the server as
14762	// null. It is an error if a field in this list has a non-empty value.
14763	// This may be used to include null fields in Patch requests.
14764	NullFields []string `json:"-"`
14765}
14766
14767func (s *InstanceGroupManagerAutoHealingPolicy) MarshalJSON() ([]byte, error) {
14768	type NoMethod InstanceGroupManagerAutoHealingPolicy
14769	raw := NoMethod(*s)
14770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14771}
14772
14773// InstanceGroupManagerList: [Output Only] A list of managed instance
14774// groups.
14775type InstanceGroupManagerList struct {
14776	// Id: [Output Only] Unique identifier for the resource; defined by the
14777	// server.
14778	Id string `json:"id,omitempty"`
14779
14780	// Items: A list of InstanceGroupManager resources.
14781	Items []*InstanceGroupManager `json:"items,omitempty"`
14782
14783	// Kind: [Output Only] The resource type, which is always
14784	// compute#instanceGroupManagerList for a list of managed instance
14785	// groups.
14786	Kind string `json:"kind,omitempty"`
14787
14788	// NextPageToken: [Output Only] This token allows you to get the next
14789	// page of results for list requests. If the number of results is larger
14790	// than maxResults, use the nextPageToken as a value for the query
14791	// parameter pageToken in the next list request. Subsequent list
14792	// requests will have their own nextPageToken to continue paging through
14793	// the results.
14794	NextPageToken string `json:"nextPageToken,omitempty"`
14795
14796	// SelfLink: [Output Only] Server-defined URL for this resource.
14797	SelfLink string `json:"selfLink,omitempty"`
14798
14799	// Warning: [Output Only] Informational warning message.
14800	Warning *InstanceGroupManagerListWarning `json:"warning,omitempty"`
14801
14802	// ServerResponse contains the HTTP response code and headers from the
14803	// server.
14804	googleapi.ServerResponse `json:"-"`
14805
14806	// ForceSendFields is a list of field names (e.g. "Id") to
14807	// unconditionally include in API requests. By default, fields with
14808	// empty values are omitted from API requests. However, any non-pointer,
14809	// non-interface field appearing in ForceSendFields will be sent to the
14810	// server regardless of whether the field is empty or not. This may be
14811	// used to include empty fields in Patch requests.
14812	ForceSendFields []string `json:"-"`
14813
14814	// NullFields is a list of field names (e.g. "Id") to include in API
14815	// requests with the JSON null value. By default, fields with empty
14816	// values are omitted from API requests. However, any field with an
14817	// empty value appearing in NullFields will be sent to the server as
14818	// null. It is an error if a field in this list has a non-empty value.
14819	// This may be used to include null fields in Patch requests.
14820	NullFields []string `json:"-"`
14821}
14822
14823func (s *InstanceGroupManagerList) MarshalJSON() ([]byte, error) {
14824	type NoMethod InstanceGroupManagerList
14825	raw := NoMethod(*s)
14826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14827}
14828
14829// InstanceGroupManagerListWarning: [Output Only] Informational warning
14830// message.
14831type InstanceGroupManagerListWarning struct {
14832	// Code: [Output Only] A warning code, if applicable. For example,
14833	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
14834	// the response.
14835	//
14836	// Possible values:
14837	//   "CLEANUP_FAILED"
14838	//   "DEPRECATED_RESOURCE_USED"
14839	//   "DEPRECATED_TYPE_USED"
14840	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
14841	//   "EXPERIMENTAL_TYPE_USED"
14842	//   "EXTERNAL_API_WARNING"
14843	//   "FIELD_VALUE_OVERRIDEN"
14844	//   "INJECTED_KERNELS_DEPRECATED"
14845	//   "MISSING_TYPE_DEPENDENCY"
14846	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
14847	//   "NEXT_HOP_CANNOT_IP_FORWARD"
14848	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
14849	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
14850	//   "NEXT_HOP_NOT_RUNNING"
14851	//   "NOT_CRITICAL_ERROR"
14852	//   "NO_RESULTS_ON_PAGE"
14853	//   "REQUIRED_TOS_AGREEMENT"
14854	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
14855	//   "RESOURCE_NOT_DELETED"
14856	//   "SCHEMA_VALIDATION_IGNORED"
14857	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
14858	//   "UNDECLARED_PROPERTIES"
14859	//   "UNREACHABLE"
14860	Code string `json:"code,omitempty"`
14861
14862	// Data: [Output Only] Metadata about this warning in key: value format.
14863	// For example:
14864	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
14865	Data []*InstanceGroupManagerListWarningData `json:"data,omitempty"`
14866
14867	// Message: [Output Only] A human-readable description of the warning
14868	// code.
14869	Message string `json:"message,omitempty"`
14870
14871	// ForceSendFields is a list of field names (e.g. "Code") to
14872	// unconditionally include in API requests. By default, fields with
14873	// empty values are omitted from API requests. However, any non-pointer,
14874	// non-interface field appearing in ForceSendFields will be sent to the
14875	// server regardless of whether the field is empty or not. This may be
14876	// used to include empty fields in Patch requests.
14877	ForceSendFields []string `json:"-"`
14878
14879	// NullFields is a list of field names (e.g. "Code") to include in API
14880	// requests with the JSON null value. By default, fields with empty
14881	// values are omitted from API requests. However, any field with an
14882	// empty value appearing in NullFields will be sent to the server as
14883	// null. It is an error if a field in this list has a non-empty value.
14884	// This may be used to include null fields in Patch requests.
14885	NullFields []string `json:"-"`
14886}
14887
14888func (s *InstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
14889	type NoMethod InstanceGroupManagerListWarning
14890	raw := NoMethod(*s)
14891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14892}
14893
14894type InstanceGroupManagerListWarningData struct {
14895	// Key: [Output Only] A key that provides more detail on the warning
14896	// being returned. For example, for warnings where there are no results
14897	// in a list request for a particular zone, this key might be scope and
14898	// the key value might be the zone name. Other examples might be a key
14899	// indicating a deprecated resource and a suggested replacement, or a
14900	// warning about invalid network settings (for example, if an instance
14901	// attempts to perform IP forwarding but is not enabled for IP
14902	// forwarding).
14903	Key string `json:"key,omitempty"`
14904
14905	// Value: [Output Only] A warning data value corresponding to the key.
14906	Value string `json:"value,omitempty"`
14907
14908	// ForceSendFields is a list of field names (e.g. "Key") to
14909	// unconditionally include in API requests. By default, fields with
14910	// empty values are omitted from API requests. However, any non-pointer,
14911	// non-interface field appearing in ForceSendFields will be sent to the
14912	// server regardless of whether the field is empty or not. This may be
14913	// used to include empty fields in Patch requests.
14914	ForceSendFields []string `json:"-"`
14915
14916	// NullFields is a list of field names (e.g. "Key") to include in API
14917	// requests with the JSON null value. By default, fields with empty
14918	// values are omitted from API requests. However, any field with an
14919	// empty value appearing in NullFields will be sent to the server as
14920	// null. It is an error if a field in this list has a non-empty value.
14921	// This may be used to include null fields in Patch requests.
14922	NullFields []string `json:"-"`
14923}
14924
14925func (s *InstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
14926	type NoMethod InstanceGroupManagerListWarningData
14927	raw := NoMethod(*s)
14928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14929}
14930
14931type InstanceGroupManagerPendingActionsSummary struct {
14932	// Creating: [Deprecated] This field is deprecated and will be removed.
14933	// Prefer using the status field instead. Please contact
14934	// cloud-updater-feedback@google.com to leave feedback if your workload
14935	// relies on this field. [Output Only] The number of instances in the
14936	// managed instance group that are pending to be created.
14937	Creating int64 `json:"creating,omitempty"`
14938
14939	// Deleting: [Deprecated] This field is deprecated and will be removed.
14940	// Prefer using the status field instead. Please contact
14941	// cloud-updater-feedback@google.com to leave feedback if your workload
14942	// relies on this field. [Output Only] The number of instances in the
14943	// managed instance group that are pending to be deleted.
14944	Deleting int64 `json:"deleting,omitempty"`
14945
14946	// Recreating: [Deprecated] This field is deprecated and will be
14947	// removed. Prefer using the status field instead. Please contact
14948	// cloud-updater-feedback@google.com to leave feedback if your workload
14949	// relies on this field. [Output Only] The number of instances in the
14950	// managed instance group that are pending to be recreated.
14951	Recreating int64 `json:"recreating,omitempty"`
14952
14953	// Restarting: [Deprecated] This field is deprecated and will be
14954	// removed. Prefer using the status field instead. Please contact
14955	// cloud-updater-feedback@google.com to leave feedback if your workload
14956	// relies on this field. [Output Only] The number of instances in the
14957	// managed instance group that are pending to be restarted.
14958	Restarting int64 `json:"restarting,omitempty"`
14959
14960	// ForceSendFields is a list of field names (e.g. "Creating") to
14961	// unconditionally include in API requests. By default, fields with
14962	// empty values are omitted from API requests. However, any non-pointer,
14963	// non-interface field appearing in ForceSendFields will be sent to the
14964	// server regardless of whether the field is empty or not. This may be
14965	// used to include empty fields in Patch requests.
14966	ForceSendFields []string `json:"-"`
14967
14968	// NullFields is a list of field names (e.g. "Creating") to include in
14969	// API requests with the JSON null value. By default, fields with empty
14970	// values are omitted from API requests. However, any field with an
14971	// empty value appearing in NullFields will be sent to the server as
14972	// null. It is an error if a field in this list has a non-empty value.
14973	// This may be used to include null fields in Patch requests.
14974	NullFields []string `json:"-"`
14975}
14976
14977func (s *InstanceGroupManagerPendingActionsSummary) MarshalJSON() ([]byte, error) {
14978	type NoMethod InstanceGroupManagerPendingActionsSummary
14979	raw := NoMethod(*s)
14980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
14981}
14982
14983type InstanceGroupManagerStatus struct {
14984	// Autoscaler: [Output Only] The URL of the Autoscaler that targets this
14985	// instance group manager.
14986	Autoscaler string `json:"autoscaler,omitempty"`
14987
14988	// IsStable: [Output Only] A bit indicating whether the managed instance
14989	// group is in a stable state. A stable state means that: none of the
14990	// instances in the managed instance group is currently undergoing any
14991	// type of change (for example, creation, restart, or deletion); no
14992	// future changes are scheduled for instances in the managed instance
14993	// group; and the managed instance group itself is not being modified.
14994	IsStable bool `json:"isStable,omitempty"`
14995
14996	// Stateful: [Output Only] Stateful status of the given Instance Group
14997	// Manager.
14998	Stateful *InstanceGroupManagerStatusStateful `json:"stateful,omitempty"`
14999
15000	// VersionTarget: [Output Only] A status of consistency of Instances'
15001	// versions with their target version specified by version field on
15002	// Instance Group Manager.
15003	VersionTarget *InstanceGroupManagerStatusVersionTarget `json:"versionTarget,omitempty"`
15004
15005	// ForceSendFields is a list of field names (e.g. "Autoscaler") to
15006	// unconditionally include in API requests. By default, fields with
15007	// empty values are omitted from API requests. However, any non-pointer,
15008	// non-interface field appearing in ForceSendFields will be sent to the
15009	// server regardless of whether the field is empty or not. This may be
15010	// used to include empty fields in Patch requests.
15011	ForceSendFields []string `json:"-"`
15012
15013	// NullFields is a list of field names (e.g. "Autoscaler") to include in
15014	// API requests with the JSON null value. By default, fields with empty
15015	// values are omitted from API requests. However, any field with an
15016	// empty value appearing in NullFields will be sent to the server as
15017	// null. It is an error if a field in this list has a non-empty value.
15018	// This may be used to include null fields in Patch requests.
15019	NullFields []string `json:"-"`
15020}
15021
15022func (s *InstanceGroupManagerStatus) MarshalJSON() ([]byte, error) {
15023	type NoMethod InstanceGroupManagerStatus
15024	raw := NoMethod(*s)
15025	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15026}
15027
15028type InstanceGroupManagerStatusStateful struct {
15029	// IsStateful: [Output Only] A bit indicating whether the managed
15030	// instance group is stateful, i.e. has any disks in Stateful Policy or
15031	// at least one per-instance config. This is determined based on the
15032	// user intent, the group may be reported as not stateful even when
15033	// there is still some preserved state on managed instances.
15034	IsStateful bool `json:"isStateful,omitempty"`
15035
15036	// ForceSendFields is a list of field names (e.g. "IsStateful") to
15037	// unconditionally include in API requests. By default, fields with
15038	// empty values are omitted from API requests. However, any non-pointer,
15039	// non-interface field appearing in ForceSendFields will be sent to the
15040	// server regardless of whether the field is empty or not. This may be
15041	// used to include empty fields in Patch requests.
15042	ForceSendFields []string `json:"-"`
15043
15044	// NullFields is a list of field names (e.g. "IsStateful") to include in
15045	// API requests with the JSON null value. By default, fields with empty
15046	// values are omitted from API requests. However, any field with an
15047	// empty value appearing in NullFields will be sent to the server as
15048	// null. It is an error if a field in this list has a non-empty value.
15049	// This may be used to include null fields in Patch requests.
15050	NullFields []string `json:"-"`
15051}
15052
15053func (s *InstanceGroupManagerStatusStateful) MarshalJSON() ([]byte, error) {
15054	type NoMethod InstanceGroupManagerStatusStateful
15055	raw := NoMethod(*s)
15056	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15057}
15058
15059type InstanceGroupManagerStatusVersionTarget struct {
15060	// IsReached: [Output Only] A bit indicating whether version target has
15061	// been reached in this managed instance group, i.e. all instances are
15062	// in their target version. Instances' target version are specified by
15063	// version field on Instance Group Manager.
15064	IsReached bool `json:"isReached,omitempty"`
15065
15066	// ForceSendFields is a list of field names (e.g. "IsReached") to
15067	// unconditionally include in API requests. By default, fields with
15068	// empty values are omitted from API requests. However, any non-pointer,
15069	// non-interface field appearing in ForceSendFields will be sent to the
15070	// server regardless of whether the field is empty or not. This may be
15071	// used to include empty fields in Patch requests.
15072	ForceSendFields []string `json:"-"`
15073
15074	// NullFields is a list of field names (e.g. "IsReached") to include in
15075	// API requests with the JSON null value. By default, fields with empty
15076	// values are omitted from API requests. However, any field with an
15077	// empty value appearing in NullFields will be sent to the server as
15078	// null. It is an error if a field in this list has a non-empty value.
15079	// This may be used to include null fields in Patch requests.
15080	NullFields []string `json:"-"`
15081}
15082
15083func (s *InstanceGroupManagerStatusVersionTarget) MarshalJSON() ([]byte, error) {
15084	type NoMethod InstanceGroupManagerStatusVersionTarget
15085	raw := NoMethod(*s)
15086	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15087}
15088
15089type InstanceGroupManagerUpdatePolicy struct {
15090	// InstanceRedistributionType: The  instance redistribution policy for
15091	// regional managed instance groups. Valid values are:
15092	// - PROACTIVE (default): The group attempts to maintain an even
15093	// distribution of VM instances across zones in the region.
15094	// - NONE: For non-autoscaled groups, proactive redistribution is
15095	// disabled.
15096	//
15097	// Possible values:
15098	//   "NONE"
15099	//   "PROACTIVE"
15100	InstanceRedistributionType string `json:"instanceRedistributionType,omitempty"`
15101
15102	// MaxSurge: The maximum number of instances that can be created above
15103	// the specified targetSize during the update process. By default, a
15104	// fixed value of 1 is used. This value can be either a fixed number or
15105	// a percentage if the instance group has 10 or more instances. If you
15106	// set a percentage, the number of instances will be rounded up if
15107	// necessary.
15108	//
15109	// At least one of either maxSurge or maxUnavailable must be greater
15110	// than 0. Learn more about maxSurge.
15111	MaxSurge *FixedOrPercent `json:"maxSurge,omitempty"`
15112
15113	// MaxUnavailable: The maximum number of instances that can be
15114	// unavailable during the update process. An instance is considered
15115	// available if all of the following conditions are satisfied:
15116	//
15117	//
15118	// - The instance's status is RUNNING.
15119	// - If there is a health check on the instance group, the instance's
15120	// liveness health check result must be HEALTHY at least once. If there
15121	// is no health check on the group, then the instance only needs to have
15122	// a status of RUNNING to be considered available.  By default, a fixed
15123	// value of 1 is used. This value can be either a fixed number or a
15124	// percentage if the instance group has 10 or more instances. If you set
15125	// a percentage, the number of instances will be rounded up if
15126	// necessary.
15127	//
15128	// At least one of either maxSurge or maxUnavailable must be greater
15129	// than 0. Learn more about maxUnavailable.
15130	MaxUnavailable *FixedOrPercent `json:"maxUnavailable,omitempty"`
15131
15132	// MinReadySec: Minimum number of seconds to wait for after a newly
15133	// created instance becomes available. This value must be from range [0,
15134	// 3600].
15135	MinReadySec int64 `json:"minReadySec,omitempty"`
15136
15137	// MinimalAction: Minimal action to be taken on an instance. You can
15138	// specify either RESTART to restart existing instances or REPLACE to
15139	// delete and create new instances from the target template. If you
15140	// specify a RESTART, the Updater will attempt to perform that action
15141	// only. However, if the Updater determines that the minimal action you
15142	// specify is not enough to perform the update, it might perform a more
15143	// disruptive action.
15144	//
15145	// Possible values:
15146	//   "NONE"
15147	//   "REFRESH"
15148	//   "REPLACE"
15149	//   "RESTART"
15150	MinimalAction string `json:"minimalAction,omitempty"`
15151
15152	// ReplacementMethod: What action should be used to replace instances.
15153	// See minimal_action.REPLACE
15154	//
15155	// Possible values:
15156	//   "RECREATE"
15157	//   "SUBSTITUTE"
15158	ReplacementMethod string `json:"replacementMethod,omitempty"`
15159
15160	// Type: The type of update process. You can specify either PROACTIVE so
15161	// that the instance group manager proactively executes actions in order
15162	// to bring instances to their target versions or OPPORTUNISTIC so that
15163	// no action is proactively executed but the update will be performed as
15164	// part of other actions (for example, resizes or recreateInstances
15165	// calls).
15166	//
15167	// Possible values:
15168	//   "OPPORTUNISTIC"
15169	//   "PROACTIVE"
15170	Type string `json:"type,omitempty"`
15171
15172	// ForceSendFields is a list of field names (e.g.
15173	// "InstanceRedistributionType") to unconditionally include in API
15174	// requests. By default, fields with empty values are omitted from API
15175	// requests. However, any non-pointer, non-interface field appearing in
15176	// ForceSendFields will be sent to the server regardless of whether the
15177	// field is empty or not. This may be used to include empty fields in
15178	// Patch requests.
15179	ForceSendFields []string `json:"-"`
15180
15181	// NullFields is a list of field names (e.g.
15182	// "InstanceRedistributionType") to include in API requests with the
15183	// JSON null value. By default, fields with empty values are omitted
15184	// from API requests. However, any field with an empty value appearing
15185	// in NullFields will be sent to the server as null. It is an error if a
15186	// field in this list has a non-empty value. This may be used to include
15187	// null fields in Patch requests.
15188	NullFields []string `json:"-"`
15189}
15190
15191func (s *InstanceGroupManagerUpdatePolicy) MarshalJSON() ([]byte, error) {
15192	type NoMethod InstanceGroupManagerUpdatePolicy
15193	raw := NoMethod(*s)
15194	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15195}
15196
15197type InstanceGroupManagerVersion struct {
15198	// InstanceTemplate: The URL of the instance template that is specified
15199	// for this managed instance group. The group uses this template to
15200	// create new instances in the managed instance group until the
15201	// `targetSize` for this version is reached.
15202	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15203
15204	// Name: Name of the version. Unique among all versions in the scope of
15205	// this managed instance group.
15206	Name string `json:"name,omitempty"`
15207
15208	// TargetSize: Specifies the intended number of instances to be created
15209	// from the instanceTemplate. The final number of instances created from
15210	// the template will be equal to:
15211	// - If expressed as a fixed number, the minimum of either
15212	// targetSize.fixed or instanceGroupManager.targetSize is used.
15213	// - if expressed as a percent, the targetSize would be
15214	// (targetSize.percent/100 * InstanceGroupManager.targetSize) If there
15215	// is a remainder, the number is rounded up.  If unset, this version
15216	// will update any remaining instances not updated by another version.
15217	// Read Starting a canary update for more information.
15218	TargetSize *FixedOrPercent `json:"targetSize,omitempty"`
15219
15220	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
15221	// unconditionally include in API requests. By default, fields with
15222	// empty values are omitted from API requests. However, any non-pointer,
15223	// non-interface field appearing in ForceSendFields will be sent to the
15224	// server regardless of whether the field is empty or not. This may be
15225	// used to include empty fields in Patch requests.
15226	ForceSendFields []string `json:"-"`
15227
15228	// NullFields is a list of field names (e.g. "InstanceTemplate") to
15229	// include in API requests with the JSON null value. By default, fields
15230	// with empty values are omitted from API requests. However, any field
15231	// with an empty value appearing in NullFields will be sent to the
15232	// server as null. It is an error if a field in this list has a
15233	// non-empty value. This may be used to include null fields in Patch
15234	// requests.
15235	NullFields []string `json:"-"`
15236}
15237
15238func (s *InstanceGroupManagerVersion) MarshalJSON() ([]byte, error) {
15239	type NoMethod InstanceGroupManagerVersion
15240	raw := NoMethod(*s)
15241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15242}
15243
15244type InstanceGroupManagersAbandonInstancesRequest struct {
15245	// Instances: The URLs of one or more instances to abandon. This can be
15246	// a full URL or a partial URL, such as
15247	// zones/[ZONE]/instances/[INSTANCE_NAME].
15248	Instances []string `json:"instances,omitempty"`
15249
15250	// ForceSendFields is a list of field names (e.g. "Instances") to
15251	// unconditionally include in API requests. By default, fields with
15252	// empty values are omitted from API requests. However, any non-pointer,
15253	// non-interface field appearing in ForceSendFields will be sent to the
15254	// server regardless of whether the field is empty or not. This may be
15255	// used to include empty fields in Patch requests.
15256	ForceSendFields []string `json:"-"`
15257
15258	// NullFields is a list of field names (e.g. "Instances") to include in
15259	// API requests with the JSON null value. By default, fields with empty
15260	// values are omitted from API requests. However, any field with an
15261	// empty value appearing in NullFields will be sent to the server as
15262	// null. It is an error if a field in this list has a non-empty value.
15263	// This may be used to include null fields in Patch requests.
15264	NullFields []string `json:"-"`
15265}
15266
15267func (s *InstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
15268	type NoMethod InstanceGroupManagersAbandonInstancesRequest
15269	raw := NoMethod(*s)
15270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15271}
15272
15273// InstanceGroupManagersApplyUpdatesRequest:
15274// InstanceGroupManagers.applyUpdatesToInstances
15275type InstanceGroupManagersApplyUpdatesRequest struct {
15276	// Instances: The list of URLs of one or more instances for which you
15277	// want to apply updates. Each URL can be a full URL or a partial URL,
15278	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
15279	Instances []string `json:"instances,omitempty"`
15280
15281	// MinimalAction: The minimal action that you want to perform on each
15282	// instance during the update:
15283	// - REPLACE: At minimum, delete the instance and create it again.
15284	// - RESTART: Stop the instance and start it again.
15285	// - REFRESH: Do not stop the instance.
15286	// - NONE: Do not disrupt the instance at all.  By default, the minimum
15287	// action is NONE. If your update requires a more disruptive action than
15288	// you set with this flag, the necessary action is performed to execute
15289	// the update.
15290	//
15291	// Possible values:
15292	//   "NONE"
15293	//   "REFRESH"
15294	//   "REPLACE"
15295	//   "RESTART"
15296	MinimalAction string `json:"minimalAction,omitempty"`
15297
15298	// MostDisruptiveAllowedAction: The most disruptive action that you want
15299	// to perform on each instance during the update:
15300	// - REPLACE: Delete the instance and create it again.
15301	// - RESTART: Stop the instance and start it again.
15302	// - REFRESH: Do not stop the instance.
15303	// - NONE: Do not disrupt the instance at all.  By default, the most
15304	// disruptive allowed action is REPLACE. If your update requires a more
15305	// disruptive action than you set with this flag, the update request
15306	// will fail.
15307	//
15308	// Possible values:
15309	//   "NONE"
15310	//   "REFRESH"
15311	//   "REPLACE"
15312	//   "RESTART"
15313	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
15314
15315	// ForceSendFields is a list of field names (e.g. "Instances") to
15316	// unconditionally include in API requests. By default, fields with
15317	// empty values are omitted from API requests. However, any non-pointer,
15318	// non-interface field appearing in ForceSendFields will be sent to the
15319	// server regardless of whether the field is empty or not. This may be
15320	// used to include empty fields in Patch requests.
15321	ForceSendFields []string `json:"-"`
15322
15323	// NullFields is a list of field names (e.g. "Instances") to include in
15324	// API requests with the JSON null value. By default, fields with empty
15325	// values are omitted from API requests. However, any field with an
15326	// empty value appearing in NullFields will be sent to the server as
15327	// null. It is an error if a field in this list has a non-empty value.
15328	// This may be used to include null fields in Patch requests.
15329	NullFields []string `json:"-"`
15330}
15331
15332func (s *InstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
15333	type NoMethod InstanceGroupManagersApplyUpdatesRequest
15334	raw := NoMethod(*s)
15335	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15336}
15337
15338// InstanceGroupManagersCreateInstancesRequest:
15339// InstanceGroupManagers.createInstances
15340type InstanceGroupManagersCreateInstancesRequest struct {
15341	// Instances: [Required] List of specifications of per-instance configs.
15342	Instances []*PerInstanceConfig `json:"instances,omitempty"`
15343
15344	// ForceSendFields is a list of field names (e.g. "Instances") to
15345	// unconditionally include in API requests. By default, fields with
15346	// empty values are omitted from API requests. However, any non-pointer,
15347	// non-interface field appearing in ForceSendFields will be sent to the
15348	// server regardless of whether the field is empty or not. This may be
15349	// used to include empty fields in Patch requests.
15350	ForceSendFields []string `json:"-"`
15351
15352	// NullFields is a list of field names (e.g. "Instances") to include in
15353	// API requests with the JSON null value. By default, fields with empty
15354	// values are omitted from API requests. However, any field with an
15355	// empty value appearing in NullFields will be sent to the server as
15356	// null. It is an error if a field in this list has a non-empty value.
15357	// This may be used to include null fields in Patch requests.
15358	NullFields []string `json:"-"`
15359}
15360
15361func (s *InstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
15362	type NoMethod InstanceGroupManagersCreateInstancesRequest
15363	raw := NoMethod(*s)
15364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15365}
15366
15367type InstanceGroupManagersDeleteInstancesRequest struct {
15368	// Instances: The URLs of one or more instances to delete. This can be a
15369	// full URL or a partial URL, such as
15370	// zones/[ZONE]/instances/[INSTANCE_NAME].
15371	Instances []string `json:"instances,omitempty"`
15372
15373	// ForceSendFields is a list of field names (e.g. "Instances") to
15374	// unconditionally include in API requests. By default, fields with
15375	// empty values are omitted from API requests. However, any non-pointer,
15376	// non-interface field appearing in ForceSendFields will be sent to the
15377	// server regardless of whether the field is empty or not. This may be
15378	// used to include empty fields in Patch requests.
15379	ForceSendFields []string `json:"-"`
15380
15381	// NullFields is a list of field names (e.g. "Instances") to include in
15382	// API requests with the JSON null value. By default, fields with empty
15383	// values are omitted from API requests. However, any field with an
15384	// empty value appearing in NullFields will be sent to the server as
15385	// null. It is an error if a field in this list has a non-empty value.
15386	// This may be used to include null fields in Patch requests.
15387	NullFields []string `json:"-"`
15388}
15389
15390func (s *InstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
15391	type NoMethod InstanceGroupManagersDeleteInstancesRequest
15392	raw := NoMethod(*s)
15393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15394}
15395
15396// InstanceGroupManagersDeletePerInstanceConfigsReq:
15397// InstanceGroupManagers.deletePerInstanceConfigs
15398type InstanceGroupManagersDeletePerInstanceConfigsReq struct {
15399	// Names: The list of instance names for which we want to delete
15400	// per-instance configs on this managed instance group.
15401	Names []string `json:"names,omitempty"`
15402
15403	// ForceSendFields is a list of field names (e.g. "Names") to
15404	// unconditionally include in API requests. By default, fields with
15405	// empty values are omitted from API requests. However, any non-pointer,
15406	// non-interface field appearing in ForceSendFields will be sent to the
15407	// server regardless of whether the field is empty or not. This may be
15408	// used to include empty fields in Patch requests.
15409	ForceSendFields []string `json:"-"`
15410
15411	// NullFields is a list of field names (e.g. "Names") to include in API
15412	// requests with the JSON null value. By default, fields with empty
15413	// values are omitted from API requests. However, any field with an
15414	// empty value appearing in NullFields will be sent to the server as
15415	// null. It is an error if a field in this list has a non-empty value.
15416	// This may be used to include null fields in Patch requests.
15417	NullFields []string `json:"-"`
15418}
15419
15420func (s *InstanceGroupManagersDeletePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
15421	type NoMethod InstanceGroupManagersDeletePerInstanceConfigsReq
15422	raw := NoMethod(*s)
15423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15424}
15425
15426type InstanceGroupManagersListErrorsResponse struct {
15427	// Items: [Output Only] The list of errors of the managed instance
15428	// group.
15429	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
15430
15431	// NextPageToken: [Output Only] This token allows you to get the next
15432	// page of results for list requests. If the number of results is larger
15433	// than maxResults, use the nextPageToken as a value for the query
15434	// parameter pageToken in the next list request. Subsequent list
15435	// requests will have their own nextPageToken to continue paging through
15436	// the results.
15437	NextPageToken string `json:"nextPageToken,omitempty"`
15438
15439	// ServerResponse contains the HTTP response code and headers from the
15440	// server.
15441	googleapi.ServerResponse `json:"-"`
15442
15443	// ForceSendFields is a list of field names (e.g. "Items") to
15444	// unconditionally include in API requests. By default, fields with
15445	// empty values are omitted from API requests. However, any non-pointer,
15446	// non-interface field appearing in ForceSendFields will be sent to the
15447	// server regardless of whether the field is empty or not. This may be
15448	// used to include empty fields in Patch requests.
15449	ForceSendFields []string `json:"-"`
15450
15451	// NullFields is a list of field names (e.g. "Items") to include in API
15452	// requests with the JSON null value. By default, fields with empty
15453	// values are omitted from API requests. However, any field with an
15454	// empty value appearing in NullFields will be sent to the server as
15455	// null. It is an error if a field in this list has a non-empty value.
15456	// This may be used to include null fields in Patch requests.
15457	NullFields []string `json:"-"`
15458}
15459
15460func (s *InstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
15461	type NoMethod InstanceGroupManagersListErrorsResponse
15462	raw := NoMethod(*s)
15463	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15464}
15465
15466type InstanceGroupManagersListManagedInstancesResponse struct {
15467	// ManagedInstances: [Output Only] The list of instances in the managed
15468	// instance group.
15469	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
15470
15471	// NextPageToken: [Output Only] This token allows you to get the next
15472	// page of results for list requests. If the number of results is larger
15473	// than maxResults, use the nextPageToken as a value for the query
15474	// parameter pageToken in the next list request. Subsequent list
15475	// requests will have their own nextPageToken to continue paging through
15476	// the results.
15477	NextPageToken string `json:"nextPageToken,omitempty"`
15478
15479	// ServerResponse contains the HTTP response code and headers from the
15480	// server.
15481	googleapi.ServerResponse `json:"-"`
15482
15483	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
15484	// unconditionally include in API requests. By default, fields with
15485	// empty values are omitted from API requests. However, any non-pointer,
15486	// non-interface field appearing in ForceSendFields will be sent to the
15487	// server regardless of whether the field is empty or not. This may be
15488	// used to include empty fields in Patch requests.
15489	ForceSendFields []string `json:"-"`
15490
15491	// NullFields is a list of field names (e.g. "ManagedInstances") to
15492	// include in API requests with the JSON null value. By default, fields
15493	// with empty values are omitted from API requests. However, any field
15494	// with an empty value appearing in NullFields will be sent to the
15495	// server as null. It is an error if a field in this list has a
15496	// non-empty value. This may be used to include null fields in Patch
15497	// requests.
15498	NullFields []string `json:"-"`
15499}
15500
15501func (s *InstanceGroupManagersListManagedInstancesResponse) MarshalJSON() ([]byte, error) {
15502	type NoMethod InstanceGroupManagersListManagedInstancesResponse
15503	raw := NoMethod(*s)
15504	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15505}
15506
15507type InstanceGroupManagersListPerInstanceConfigsResp struct {
15508	// Items: [Output Only] The list of PerInstanceConfig.
15509	Items []*PerInstanceConfig `json:"items,omitempty"`
15510
15511	// NextPageToken: [Output Only] This token allows you to get the next
15512	// page of results for list requests. If the number of results is larger
15513	// than maxResults, use the nextPageToken as a value for the query
15514	// parameter pageToken in the next list request. Subsequent list
15515	// requests will have their own nextPageToken to continue paging through
15516	// the results.
15517	NextPageToken string `json:"nextPageToken,omitempty"`
15518
15519	// Warning: [Output Only] Informational warning message.
15520	Warning *InstanceGroupManagersListPerInstanceConfigsRespWarning `json:"warning,omitempty"`
15521
15522	// ServerResponse contains the HTTP response code and headers from the
15523	// server.
15524	googleapi.ServerResponse `json:"-"`
15525
15526	// ForceSendFields is a list of field names (e.g. "Items") to
15527	// unconditionally include in API requests. By default, fields with
15528	// empty values are omitted from API requests. However, any non-pointer,
15529	// non-interface field appearing in ForceSendFields will be sent to the
15530	// server regardless of whether the field is empty or not. This may be
15531	// used to include empty fields in Patch requests.
15532	ForceSendFields []string `json:"-"`
15533
15534	// NullFields is a list of field names (e.g. "Items") to include in API
15535	// requests with the JSON null value. By default, fields with empty
15536	// values are omitted from API requests. However, any field with an
15537	// empty value appearing in NullFields will be sent to the server as
15538	// null. It is an error if a field in this list has a non-empty value.
15539	// This may be used to include null fields in Patch requests.
15540	NullFields []string `json:"-"`
15541}
15542
15543func (s *InstanceGroupManagersListPerInstanceConfigsResp) MarshalJSON() ([]byte, error) {
15544	type NoMethod InstanceGroupManagersListPerInstanceConfigsResp
15545	raw := NoMethod(*s)
15546	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15547}
15548
15549// InstanceGroupManagersListPerInstanceConfigsRespWarning: [Output Only]
15550// Informational warning message.
15551type InstanceGroupManagersListPerInstanceConfigsRespWarning struct {
15552	// Code: [Output Only] A warning code, if applicable. For example,
15553	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15554	// the response.
15555	//
15556	// Possible values:
15557	//   "CLEANUP_FAILED"
15558	//   "DEPRECATED_RESOURCE_USED"
15559	//   "DEPRECATED_TYPE_USED"
15560	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15561	//   "EXPERIMENTAL_TYPE_USED"
15562	//   "EXTERNAL_API_WARNING"
15563	//   "FIELD_VALUE_OVERRIDEN"
15564	//   "INJECTED_KERNELS_DEPRECATED"
15565	//   "MISSING_TYPE_DEPENDENCY"
15566	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15567	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15568	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15569	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15570	//   "NEXT_HOP_NOT_RUNNING"
15571	//   "NOT_CRITICAL_ERROR"
15572	//   "NO_RESULTS_ON_PAGE"
15573	//   "REQUIRED_TOS_AGREEMENT"
15574	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15575	//   "RESOURCE_NOT_DELETED"
15576	//   "SCHEMA_VALIDATION_IGNORED"
15577	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15578	//   "UNDECLARED_PROPERTIES"
15579	//   "UNREACHABLE"
15580	Code string `json:"code,omitempty"`
15581
15582	// Data: [Output Only] Metadata about this warning in key: value format.
15583	// For example:
15584	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15585	Data []*InstanceGroupManagersListPerInstanceConfigsRespWarningData `json:"data,omitempty"`
15586
15587	// Message: [Output Only] A human-readable description of the warning
15588	// code.
15589	Message string `json:"message,omitempty"`
15590
15591	// ForceSendFields is a list of field names (e.g. "Code") to
15592	// unconditionally include in API requests. By default, fields with
15593	// empty values are omitted from API requests. However, any non-pointer,
15594	// non-interface field appearing in ForceSendFields will be sent to the
15595	// server regardless of whether the field is empty or not. This may be
15596	// used to include empty fields in Patch requests.
15597	ForceSendFields []string `json:"-"`
15598
15599	// NullFields is a list of field names (e.g. "Code") to include in API
15600	// requests with the JSON null value. By default, fields with empty
15601	// values are omitted from API requests. However, any field with an
15602	// empty value appearing in NullFields will be sent to the server as
15603	// null. It is an error if a field in this list has a non-empty value.
15604	// This may be used to include null fields in Patch requests.
15605	NullFields []string `json:"-"`
15606}
15607
15608func (s *InstanceGroupManagersListPerInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
15609	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarning
15610	raw := NoMethod(*s)
15611	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15612}
15613
15614type InstanceGroupManagersListPerInstanceConfigsRespWarningData struct {
15615	// Key: [Output Only] A key that provides more detail on the warning
15616	// being returned. For example, for warnings where there are no results
15617	// in a list request for a particular zone, this key might be scope and
15618	// the key value might be the zone name. Other examples might be a key
15619	// indicating a deprecated resource and a suggested replacement, or a
15620	// warning about invalid network settings (for example, if an instance
15621	// attempts to perform IP forwarding but is not enabled for IP
15622	// forwarding).
15623	Key string `json:"key,omitempty"`
15624
15625	// Value: [Output Only] A warning data value corresponding to the key.
15626	Value string `json:"value,omitempty"`
15627
15628	// ForceSendFields is a list of field names (e.g. "Key") to
15629	// unconditionally include in API requests. By default, fields with
15630	// empty values are omitted from API requests. However, any non-pointer,
15631	// non-interface field appearing in ForceSendFields will be sent to the
15632	// server regardless of whether the field is empty or not. This may be
15633	// used to include empty fields in Patch requests.
15634	ForceSendFields []string `json:"-"`
15635
15636	// NullFields is a list of field names (e.g. "Key") to include in API
15637	// requests with the JSON null value. By default, fields with empty
15638	// values are omitted from API requests. However, any field with an
15639	// empty value appearing in NullFields will be sent to the server as
15640	// null. It is an error if a field in this list has a non-empty value.
15641	// This may be used to include null fields in Patch requests.
15642	NullFields []string `json:"-"`
15643}
15644
15645func (s *InstanceGroupManagersListPerInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
15646	type NoMethod InstanceGroupManagersListPerInstanceConfigsRespWarningData
15647	raw := NoMethod(*s)
15648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15649}
15650
15651// InstanceGroupManagersPatchPerInstanceConfigsReq:
15652// InstanceGroupManagers.patchPerInstanceConfigs
15653type InstanceGroupManagersPatchPerInstanceConfigsReq struct {
15654	// PerInstanceConfigs: The list of per-instance configs to insert or
15655	// patch on this managed instance group.
15656	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
15657
15658	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
15659	// to unconditionally include in API requests. By default, fields with
15660	// empty values are omitted from API requests. However, any non-pointer,
15661	// non-interface field appearing in ForceSendFields will be sent to the
15662	// server regardless of whether the field is empty or not. This may be
15663	// used to include empty fields in Patch requests.
15664	ForceSendFields []string `json:"-"`
15665
15666	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
15667	// include in API requests with the JSON null value. By default, fields
15668	// with empty values are omitted from API requests. However, any field
15669	// with an empty value appearing in NullFields will be sent to the
15670	// server as null. It is an error if a field in this list has a
15671	// non-empty value. This may be used to include null fields in Patch
15672	// requests.
15673	NullFields []string `json:"-"`
15674}
15675
15676func (s *InstanceGroupManagersPatchPerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
15677	type NoMethod InstanceGroupManagersPatchPerInstanceConfigsReq
15678	raw := NoMethod(*s)
15679	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15680}
15681
15682type InstanceGroupManagersRecreateInstancesRequest struct {
15683	// Instances: The URLs of one or more instances to recreate. This can be
15684	// a full URL or a partial URL, such as
15685	// zones/[ZONE]/instances/[INSTANCE_NAME].
15686	Instances []string `json:"instances,omitempty"`
15687
15688	// ForceSendFields is a list of field names (e.g. "Instances") to
15689	// unconditionally include in API requests. By default, fields with
15690	// empty values are omitted from API requests. However, any non-pointer,
15691	// non-interface field appearing in ForceSendFields will be sent to the
15692	// server regardless of whether the field is empty or not. This may be
15693	// used to include empty fields in Patch requests.
15694	ForceSendFields []string `json:"-"`
15695
15696	// NullFields is a list of field names (e.g. "Instances") to include in
15697	// API requests with the JSON null value. By default, fields with empty
15698	// values are omitted from API requests. However, any field with an
15699	// empty value appearing in NullFields will be sent to the server as
15700	// null. It is an error if a field in this list has a non-empty value.
15701	// This may be used to include null fields in Patch requests.
15702	NullFields []string `json:"-"`
15703}
15704
15705func (s *InstanceGroupManagersRecreateInstancesRequest) MarshalJSON() ([]byte, error) {
15706	type NoMethod InstanceGroupManagersRecreateInstancesRequest
15707	raw := NoMethod(*s)
15708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15709}
15710
15711type InstanceGroupManagersResizeAdvancedRequest struct {
15712	// NoCreationRetries: If this flag is true, the managed instance group
15713	// attempts to create all instances initiated by this resize request
15714	// only once. If there is an error during creation, the managed instance
15715	// group does not retry create this instance, and we will decrease the
15716	// targetSize of the request instead. If the flag is false, the group
15717	// attempts to recreate each instance continuously until it
15718	// succeeds.
15719	//
15720	// This flag matters only in the first attempt of creation of an
15721	// instance. After an instance is successfully created while this flag
15722	// is enabled, the instance behaves the same way as all the other
15723	// instances created with a regular resize request. In particular, if a
15724	// running instance dies unexpectedly at a later time and needs to be
15725	// recreated, this mode does not affect the recreation behavior in that
15726	// scenario.
15727	//
15728	// This flag is applicable only to the current resize request. It does
15729	// not influence other resize requests in any way.
15730	//
15731	// You can see which instances is being creating in which mode by
15732	// calling the get or listManagedInstances API.
15733	NoCreationRetries bool `json:"noCreationRetries,omitempty"`
15734
15735	// TargetSize: The number of running instances that the managed instance
15736	// group should maintain at any given time. The group automatically adds
15737	// or removes instances to maintain the number of instances specified by
15738	// this parameter.
15739	TargetSize int64 `json:"targetSize,omitempty"`
15740
15741	// ForceSendFields is a list of field names (e.g. "NoCreationRetries")
15742	// to unconditionally include in API requests. By default, fields with
15743	// empty values are omitted from API requests. However, any non-pointer,
15744	// non-interface field appearing in ForceSendFields will be sent to the
15745	// server regardless of whether the field is empty or not. This may be
15746	// used to include empty fields in Patch requests.
15747	ForceSendFields []string `json:"-"`
15748
15749	// NullFields is a list of field names (e.g. "NoCreationRetries") to
15750	// include in API requests with the JSON null value. By default, fields
15751	// with empty values are omitted from API requests. However, any field
15752	// with an empty value appearing in NullFields will be sent to the
15753	// server as null. It is an error if a field in this list has a
15754	// non-empty value. This may be used to include null fields in Patch
15755	// requests.
15756	NullFields []string `json:"-"`
15757}
15758
15759func (s *InstanceGroupManagersResizeAdvancedRequest) MarshalJSON() ([]byte, error) {
15760	type NoMethod InstanceGroupManagersResizeAdvancedRequest
15761	raw := NoMethod(*s)
15762	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15763}
15764
15765type InstanceGroupManagersScopedList struct {
15766	// InstanceGroupManagers: [Output Only] The list of managed instance
15767	// groups that are contained in the specified project and zone.
15768	InstanceGroupManagers []*InstanceGroupManager `json:"instanceGroupManagers,omitempty"`
15769
15770	// Warning: [Output Only] The warning that replaces the list of managed
15771	// instance groups when the list is empty.
15772	Warning *InstanceGroupManagersScopedListWarning `json:"warning,omitempty"`
15773
15774	// ForceSendFields is a list of field names (e.g.
15775	// "InstanceGroupManagers") to unconditionally include in API requests.
15776	// By default, fields with empty values are omitted from API requests.
15777	// However, any non-pointer, non-interface field appearing in
15778	// ForceSendFields will be sent to the server regardless of whether the
15779	// field is empty or not. This may be used to include empty fields in
15780	// Patch requests.
15781	ForceSendFields []string `json:"-"`
15782
15783	// NullFields is a list of field names (e.g. "InstanceGroupManagers") to
15784	// include in API requests with the JSON null value. By default, fields
15785	// with empty values are omitted from API requests. However, any field
15786	// with an empty value appearing in NullFields will be sent to the
15787	// server as null. It is an error if a field in this list has a
15788	// non-empty value. This may be used to include null fields in Patch
15789	// requests.
15790	NullFields []string `json:"-"`
15791}
15792
15793func (s *InstanceGroupManagersScopedList) MarshalJSON() ([]byte, error) {
15794	type NoMethod InstanceGroupManagersScopedList
15795	raw := NoMethod(*s)
15796	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15797}
15798
15799// InstanceGroupManagersScopedListWarning: [Output Only] The warning
15800// that replaces the list of managed instance groups when the list is
15801// empty.
15802type InstanceGroupManagersScopedListWarning struct {
15803	// Code: [Output Only] A warning code, if applicable. For example,
15804	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
15805	// the response.
15806	//
15807	// Possible values:
15808	//   "CLEANUP_FAILED"
15809	//   "DEPRECATED_RESOURCE_USED"
15810	//   "DEPRECATED_TYPE_USED"
15811	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
15812	//   "EXPERIMENTAL_TYPE_USED"
15813	//   "EXTERNAL_API_WARNING"
15814	//   "FIELD_VALUE_OVERRIDEN"
15815	//   "INJECTED_KERNELS_DEPRECATED"
15816	//   "MISSING_TYPE_DEPENDENCY"
15817	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
15818	//   "NEXT_HOP_CANNOT_IP_FORWARD"
15819	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
15820	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
15821	//   "NEXT_HOP_NOT_RUNNING"
15822	//   "NOT_CRITICAL_ERROR"
15823	//   "NO_RESULTS_ON_PAGE"
15824	//   "REQUIRED_TOS_AGREEMENT"
15825	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
15826	//   "RESOURCE_NOT_DELETED"
15827	//   "SCHEMA_VALIDATION_IGNORED"
15828	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
15829	//   "UNDECLARED_PROPERTIES"
15830	//   "UNREACHABLE"
15831	Code string `json:"code,omitempty"`
15832
15833	// Data: [Output Only] Metadata about this warning in key: value format.
15834	// For example:
15835	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
15836	Data []*InstanceGroupManagersScopedListWarningData `json:"data,omitempty"`
15837
15838	// Message: [Output Only] A human-readable description of the warning
15839	// code.
15840	Message string `json:"message,omitempty"`
15841
15842	// ForceSendFields is a list of field names (e.g. "Code") to
15843	// unconditionally include in API requests. By default, fields with
15844	// empty values are omitted from API requests. However, any non-pointer,
15845	// non-interface field appearing in ForceSendFields will be sent to the
15846	// server regardless of whether the field is empty or not. This may be
15847	// used to include empty fields in Patch requests.
15848	ForceSendFields []string `json:"-"`
15849
15850	// NullFields is a list of field names (e.g. "Code") to include in API
15851	// requests with the JSON null value. By default, fields with empty
15852	// values are omitted from API requests. However, any field with an
15853	// empty value appearing in NullFields will be sent to the server as
15854	// null. It is an error if a field in this list has a non-empty value.
15855	// This may be used to include null fields in Patch requests.
15856	NullFields []string `json:"-"`
15857}
15858
15859func (s *InstanceGroupManagersScopedListWarning) MarshalJSON() ([]byte, error) {
15860	type NoMethod InstanceGroupManagersScopedListWarning
15861	raw := NoMethod(*s)
15862	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15863}
15864
15865type InstanceGroupManagersScopedListWarningData struct {
15866	// Key: [Output Only] A key that provides more detail on the warning
15867	// being returned. For example, for warnings where there are no results
15868	// in a list request for a particular zone, this key might be scope and
15869	// the key value might be the zone name. Other examples might be a key
15870	// indicating a deprecated resource and a suggested replacement, or a
15871	// warning about invalid network settings (for example, if an instance
15872	// attempts to perform IP forwarding but is not enabled for IP
15873	// forwarding).
15874	Key string `json:"key,omitempty"`
15875
15876	// Value: [Output Only] A warning data value corresponding to the key.
15877	Value string `json:"value,omitempty"`
15878
15879	// ForceSendFields is a list of field names (e.g. "Key") to
15880	// unconditionally include in API requests. By default, fields with
15881	// empty values are omitted from API requests. However, any non-pointer,
15882	// non-interface field appearing in ForceSendFields will be sent to the
15883	// server regardless of whether the field is empty or not. This may be
15884	// used to include empty fields in Patch requests.
15885	ForceSendFields []string `json:"-"`
15886
15887	// NullFields is a list of field names (e.g. "Key") to include in API
15888	// requests with the JSON null value. By default, fields with empty
15889	// values are omitted from API requests. However, any field with an
15890	// empty value appearing in NullFields will be sent to the server as
15891	// null. It is an error if a field in this list has a non-empty value.
15892	// This may be used to include null fields in Patch requests.
15893	NullFields []string `json:"-"`
15894}
15895
15896func (s *InstanceGroupManagersScopedListWarningData) MarshalJSON() ([]byte, error) {
15897	type NoMethod InstanceGroupManagersScopedListWarningData
15898	raw := NoMethod(*s)
15899	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15900}
15901
15902type InstanceGroupManagersSetAutoHealingRequest struct {
15903	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
15904
15905	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
15906	// to unconditionally include in API requests. By default, fields with
15907	// empty values are omitted from API requests. However, any non-pointer,
15908	// non-interface field appearing in ForceSendFields will be sent to the
15909	// server regardless of whether the field is empty or not. This may be
15910	// used to include empty fields in Patch requests.
15911	ForceSendFields []string `json:"-"`
15912
15913	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
15914	// include in API requests with the JSON null value. By default, fields
15915	// with empty values are omitted from API requests. However, any field
15916	// with an empty value appearing in NullFields will be sent to the
15917	// server as null. It is an error if a field in this list has a
15918	// non-empty value. This may be used to include null fields in Patch
15919	// requests.
15920	NullFields []string `json:"-"`
15921}
15922
15923func (s *InstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
15924	type NoMethod InstanceGroupManagersSetAutoHealingRequest
15925	raw := NoMethod(*s)
15926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15927}
15928
15929type InstanceGroupManagersSetInstanceTemplateRequest struct {
15930	// InstanceTemplate: The URL of the instance template that is specified
15931	// for this managed instance group. The group uses this template to
15932	// create all new instances in the managed instance group.
15933	InstanceTemplate string `json:"instanceTemplate,omitempty"`
15934
15935	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
15936	// unconditionally include in API requests. By default, fields with
15937	// empty values are omitted from API requests. However, any non-pointer,
15938	// non-interface field appearing in ForceSendFields will be sent to the
15939	// server regardless of whether the field is empty or not. This may be
15940	// used to include empty fields in Patch requests.
15941	ForceSendFields []string `json:"-"`
15942
15943	// NullFields is a list of field names (e.g. "InstanceTemplate") to
15944	// include in API requests with the JSON null value. By default, fields
15945	// with empty values are omitted from API requests. However, any field
15946	// with an empty value appearing in NullFields will be sent to the
15947	// server as null. It is an error if a field in this list has a
15948	// non-empty value. This may be used to include null fields in Patch
15949	// requests.
15950	NullFields []string `json:"-"`
15951}
15952
15953func (s *InstanceGroupManagersSetInstanceTemplateRequest) MarshalJSON() ([]byte, error) {
15954	type NoMethod InstanceGroupManagersSetInstanceTemplateRequest
15955	raw := NoMethod(*s)
15956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15957}
15958
15959type InstanceGroupManagersSetTargetPoolsRequest struct {
15960	// Fingerprint: The fingerprint of the target pools information. Use
15961	// this optional property to prevent conflicts when multiple users
15962	// change the target pools settings concurrently. Obtain the fingerprint
15963	// with the instanceGroupManagers.get method. Then, include the
15964	// fingerprint in your request to ensure that you do not overwrite
15965	// changes that were applied from another concurrent request.
15966	Fingerprint string `json:"fingerprint,omitempty"`
15967
15968	// TargetPools: The list of target pool URLs that instances in this
15969	// managed instance group belong to. The managed instance group applies
15970	// these target pools to all of the instances in the group. Existing
15971	// instances and new instances in the group all receive these target
15972	// pool settings.
15973	TargetPools []string `json:"targetPools,omitempty"`
15974
15975	// ForceSendFields is a list of field names (e.g. "Fingerprint") 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. "Fingerprint") to include
15984	// in API requests with the JSON null value. By default, fields with
15985	// empty values are omitted from API requests. However, any field with
15986	// an 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 *InstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
15993	type NoMethod InstanceGroupManagersSetTargetPoolsRequest
15994	raw := NoMethod(*s)
15995	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
15996}
15997
15998// InstanceGroupManagersUpdatePerInstanceConfigsReq:
15999// InstanceGroupManagers.updatePerInstanceConfigs
16000type InstanceGroupManagersUpdatePerInstanceConfigsReq struct {
16001	// PerInstanceConfigs: The list of per-instance configs to insert or
16002	// patch on this managed instance group.
16003	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
16004
16005	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
16006	// to unconditionally include in API requests. By default, fields with
16007	// empty values are omitted from API requests. However, any non-pointer,
16008	// non-interface field appearing in ForceSendFields will be sent to the
16009	// server regardless of whether the field is empty or not. This may be
16010	// used to include empty fields in Patch requests.
16011	ForceSendFields []string `json:"-"`
16012
16013	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
16014	// include in API requests with the JSON null value. By default, fields
16015	// with empty values are omitted from API requests. However, any field
16016	// with an empty value appearing in NullFields will be sent to the
16017	// server as null. It is an error if a field in this list has a
16018	// non-empty value. This may be used to include null fields in Patch
16019	// requests.
16020	NullFields []string `json:"-"`
16021}
16022
16023func (s *InstanceGroupManagersUpdatePerInstanceConfigsReq) MarshalJSON() ([]byte, error) {
16024	type NoMethod InstanceGroupManagersUpdatePerInstanceConfigsReq
16025	raw := NoMethod(*s)
16026	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16027}
16028
16029type InstanceGroupsAddInstancesRequest struct {
16030	// Instances: The list of instances to add to the instance group.
16031	Instances []*InstanceReference `json:"instances,omitempty"`
16032
16033	// ForceSendFields is a list of field names (e.g. "Instances") to
16034	// unconditionally include in API requests. By default, fields with
16035	// empty values are omitted from API requests. However, any non-pointer,
16036	// non-interface field appearing in ForceSendFields will be sent to the
16037	// server regardless of whether the field is empty or not. This may be
16038	// used to include empty fields in Patch requests.
16039	ForceSendFields []string `json:"-"`
16040
16041	// NullFields is a list of field names (e.g. "Instances") to include in
16042	// API requests with the JSON null value. By default, fields with empty
16043	// values are omitted from API requests. However, any field with an
16044	// empty value appearing in NullFields will be sent to the server as
16045	// null. It is an error if a field in this list has a non-empty value.
16046	// This may be used to include null fields in Patch requests.
16047	NullFields []string `json:"-"`
16048}
16049
16050func (s *InstanceGroupsAddInstancesRequest) MarshalJSON() ([]byte, error) {
16051	type NoMethod InstanceGroupsAddInstancesRequest
16052	raw := NoMethod(*s)
16053	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16054}
16055
16056type InstanceGroupsListInstances struct {
16057	// Id: [Output Only] Unique identifier for the resource; defined by the
16058	// server.
16059	Id string `json:"id,omitempty"`
16060
16061	// Items: A list of InstanceWithNamedPorts resources.
16062	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
16063
16064	// Kind: [Output Only] The resource type, which is always
16065	// compute#instanceGroupsListInstances for the list of instances in the
16066	// specified instance group.
16067	Kind string `json:"kind,omitempty"`
16068
16069	// NextPageToken: [Output Only] This token allows you to get the next
16070	// page of results for list requests. If the number of results is larger
16071	// than maxResults, use the nextPageToken as a value for the query
16072	// parameter pageToken in the next list request. Subsequent list
16073	// requests will have their own nextPageToken to continue paging through
16074	// the results.
16075	NextPageToken string `json:"nextPageToken,omitempty"`
16076
16077	// SelfLink: [Output Only] Server-defined URL for this resource.
16078	SelfLink string `json:"selfLink,omitempty"`
16079
16080	// Warning: [Output Only] Informational warning message.
16081	Warning *InstanceGroupsListInstancesWarning `json:"warning,omitempty"`
16082
16083	// ServerResponse contains the HTTP response code and headers from the
16084	// server.
16085	googleapi.ServerResponse `json:"-"`
16086
16087	// ForceSendFields is a list of field names (e.g. "Id") to
16088	// unconditionally include in API requests. By default, fields with
16089	// empty values are omitted from API requests. However, any non-pointer,
16090	// non-interface field appearing in ForceSendFields will be sent to the
16091	// server regardless of whether the field is empty or not. This may be
16092	// used to include empty fields in Patch requests.
16093	ForceSendFields []string `json:"-"`
16094
16095	// NullFields is a list of field names (e.g. "Id") to include in API
16096	// requests with the JSON null value. By default, fields with empty
16097	// values are omitted from API requests. However, any field with an
16098	// empty value appearing in NullFields will be sent to the server as
16099	// null. It is an error if a field in this list has a non-empty value.
16100	// This may be used to include null fields in Patch requests.
16101	NullFields []string `json:"-"`
16102}
16103
16104func (s *InstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
16105	type NoMethod InstanceGroupsListInstances
16106	raw := NoMethod(*s)
16107	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16108}
16109
16110// InstanceGroupsListInstancesWarning: [Output Only] Informational
16111// warning message.
16112type InstanceGroupsListInstancesWarning struct {
16113	// Code: [Output Only] A warning code, if applicable. For example,
16114	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16115	// the response.
16116	//
16117	// Possible values:
16118	//   "CLEANUP_FAILED"
16119	//   "DEPRECATED_RESOURCE_USED"
16120	//   "DEPRECATED_TYPE_USED"
16121	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16122	//   "EXPERIMENTAL_TYPE_USED"
16123	//   "EXTERNAL_API_WARNING"
16124	//   "FIELD_VALUE_OVERRIDEN"
16125	//   "INJECTED_KERNELS_DEPRECATED"
16126	//   "MISSING_TYPE_DEPENDENCY"
16127	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16128	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16129	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16130	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16131	//   "NEXT_HOP_NOT_RUNNING"
16132	//   "NOT_CRITICAL_ERROR"
16133	//   "NO_RESULTS_ON_PAGE"
16134	//   "REQUIRED_TOS_AGREEMENT"
16135	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16136	//   "RESOURCE_NOT_DELETED"
16137	//   "SCHEMA_VALIDATION_IGNORED"
16138	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16139	//   "UNDECLARED_PROPERTIES"
16140	//   "UNREACHABLE"
16141	Code string `json:"code,omitempty"`
16142
16143	// Data: [Output Only] Metadata about this warning in key: value format.
16144	// For example:
16145	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16146	Data []*InstanceGroupsListInstancesWarningData `json:"data,omitempty"`
16147
16148	// Message: [Output Only] A human-readable description of the warning
16149	// code.
16150	Message string `json:"message,omitempty"`
16151
16152	// ForceSendFields is a list of field names (e.g. "Code") to
16153	// unconditionally include in API requests. By default, fields with
16154	// empty values are omitted from API requests. However, any non-pointer,
16155	// non-interface field appearing in ForceSendFields will be sent to the
16156	// server regardless of whether the field is empty or not. This may be
16157	// used to include empty fields in Patch requests.
16158	ForceSendFields []string `json:"-"`
16159
16160	// NullFields is a list of field names (e.g. "Code") to include in API
16161	// requests with the JSON null value. By default, fields with empty
16162	// values are omitted from API requests. However, any field with an
16163	// empty value appearing in NullFields will be sent to the server as
16164	// null. It is an error if a field in this list has a non-empty value.
16165	// This may be used to include null fields in Patch requests.
16166	NullFields []string `json:"-"`
16167}
16168
16169func (s *InstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
16170	type NoMethod InstanceGroupsListInstancesWarning
16171	raw := NoMethod(*s)
16172	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16173}
16174
16175type InstanceGroupsListInstancesWarningData struct {
16176	// Key: [Output Only] A key that provides more detail on the warning
16177	// being returned. For example, for warnings where there are no results
16178	// in a list request for a particular zone, this key might be scope and
16179	// the key value might be the zone name. Other examples might be a key
16180	// indicating a deprecated resource and a suggested replacement, or a
16181	// warning about invalid network settings (for example, if an instance
16182	// attempts to perform IP forwarding but is not enabled for IP
16183	// forwarding).
16184	Key string `json:"key,omitempty"`
16185
16186	// Value: [Output Only] A warning data value corresponding to the key.
16187	Value string `json:"value,omitempty"`
16188
16189	// ForceSendFields is a list of field names (e.g. "Key") to
16190	// unconditionally include in API requests. By default, fields with
16191	// empty values are omitted from API requests. However, any non-pointer,
16192	// non-interface field appearing in ForceSendFields will be sent to the
16193	// server regardless of whether the field is empty or not. This may be
16194	// used to include empty fields in Patch requests.
16195	ForceSendFields []string `json:"-"`
16196
16197	// NullFields is a list of field names (e.g. "Key") to include in API
16198	// requests with the JSON null value. By default, fields with empty
16199	// values are omitted from API requests. However, any field with an
16200	// empty value appearing in NullFields will be sent to the server as
16201	// null. It is an error if a field in this list has a non-empty value.
16202	// This may be used to include null fields in Patch requests.
16203	NullFields []string `json:"-"`
16204}
16205
16206func (s *InstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
16207	type NoMethod InstanceGroupsListInstancesWarningData
16208	raw := NoMethod(*s)
16209	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16210}
16211
16212type InstanceGroupsListInstancesRequest struct {
16213	// InstanceState: A filter for the state of the instances in the
16214	// instance group. Valid options are ALL or RUNNING. If you do not
16215	// specify this parameter the list includes all instances regardless of
16216	// their state.
16217	//
16218	// Possible values:
16219	//   "ALL"
16220	//   "RUNNING"
16221	InstanceState string `json:"instanceState,omitempty"`
16222
16223	// ForceSendFields is a list of field names (e.g. "InstanceState") to
16224	// unconditionally include in API requests. By default, fields with
16225	// empty values are omitted from API requests. However, any non-pointer,
16226	// non-interface field appearing in ForceSendFields will be sent to the
16227	// server regardless of whether the field is empty or not. This may be
16228	// used to include empty fields in Patch requests.
16229	ForceSendFields []string `json:"-"`
16230
16231	// NullFields is a list of field names (e.g. "InstanceState") to include
16232	// in API requests with the JSON null value. By default, fields with
16233	// empty values are omitted from API requests. However, any field with
16234	// an empty value appearing in NullFields will be sent to the server as
16235	// null. It is an error if a field in this list has a non-empty value.
16236	// This may be used to include null fields in Patch requests.
16237	NullFields []string `json:"-"`
16238}
16239
16240func (s *InstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
16241	type NoMethod InstanceGroupsListInstancesRequest
16242	raw := NoMethod(*s)
16243	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16244}
16245
16246type InstanceGroupsRemoveInstancesRequest struct {
16247	// Instances: The list of instances to remove from the instance group.
16248	Instances []*InstanceReference `json:"instances,omitempty"`
16249
16250	// ForceSendFields is a list of field names (e.g. "Instances") to
16251	// unconditionally include in API requests. By default, fields with
16252	// empty values are omitted from API requests. However, any non-pointer,
16253	// non-interface field appearing in ForceSendFields will be sent to the
16254	// server regardless of whether the field is empty or not. This may be
16255	// used to include empty fields in Patch requests.
16256	ForceSendFields []string `json:"-"`
16257
16258	// NullFields is a list of field names (e.g. "Instances") to include in
16259	// API requests with the JSON null value. By default, fields with empty
16260	// values are omitted from API requests. However, any field with an
16261	// empty value appearing in NullFields will be sent to the server as
16262	// null. It is an error if a field in this list has a non-empty value.
16263	// This may be used to include null fields in Patch requests.
16264	NullFields []string `json:"-"`
16265}
16266
16267func (s *InstanceGroupsRemoveInstancesRequest) MarshalJSON() ([]byte, error) {
16268	type NoMethod InstanceGroupsRemoveInstancesRequest
16269	raw := NoMethod(*s)
16270	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16271}
16272
16273type InstanceGroupsScopedList struct {
16274	// InstanceGroups: [Output Only] The list of instance groups that are
16275	// contained in this scope.
16276	InstanceGroups []*InstanceGroup `json:"instanceGroups,omitempty"`
16277
16278	// Warning: [Output Only] An informational warning that replaces the
16279	// list of instance groups when the list is empty.
16280	Warning *InstanceGroupsScopedListWarning `json:"warning,omitempty"`
16281
16282	// ForceSendFields is a list of field names (e.g. "InstanceGroups") to
16283	// unconditionally include in API requests. By default, fields with
16284	// empty values are omitted from API requests. However, any non-pointer,
16285	// non-interface field appearing in ForceSendFields will be sent to the
16286	// server regardless of whether the field is empty or not. This may be
16287	// used to include empty fields in Patch requests.
16288	ForceSendFields []string `json:"-"`
16289
16290	// NullFields is a list of field names (e.g. "InstanceGroups") to
16291	// include in API requests with the JSON null value. By default, fields
16292	// with empty values are omitted from API requests. However, any field
16293	// with an empty value appearing in NullFields will be sent to the
16294	// server as null. It is an error if a field in this list has a
16295	// non-empty value. This may be used to include null fields in Patch
16296	// requests.
16297	NullFields []string `json:"-"`
16298}
16299
16300func (s *InstanceGroupsScopedList) MarshalJSON() ([]byte, error) {
16301	type NoMethod InstanceGroupsScopedList
16302	raw := NoMethod(*s)
16303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16304}
16305
16306// InstanceGroupsScopedListWarning: [Output Only] An informational
16307// warning that replaces the list of instance groups when the list is
16308// empty.
16309type InstanceGroupsScopedListWarning struct {
16310	// Code: [Output Only] A warning code, if applicable. For example,
16311	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16312	// the response.
16313	//
16314	// Possible values:
16315	//   "CLEANUP_FAILED"
16316	//   "DEPRECATED_RESOURCE_USED"
16317	//   "DEPRECATED_TYPE_USED"
16318	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16319	//   "EXPERIMENTAL_TYPE_USED"
16320	//   "EXTERNAL_API_WARNING"
16321	//   "FIELD_VALUE_OVERRIDEN"
16322	//   "INJECTED_KERNELS_DEPRECATED"
16323	//   "MISSING_TYPE_DEPENDENCY"
16324	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16325	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16326	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16327	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16328	//   "NEXT_HOP_NOT_RUNNING"
16329	//   "NOT_CRITICAL_ERROR"
16330	//   "NO_RESULTS_ON_PAGE"
16331	//   "REQUIRED_TOS_AGREEMENT"
16332	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16333	//   "RESOURCE_NOT_DELETED"
16334	//   "SCHEMA_VALIDATION_IGNORED"
16335	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16336	//   "UNDECLARED_PROPERTIES"
16337	//   "UNREACHABLE"
16338	Code string `json:"code,omitempty"`
16339
16340	// Data: [Output Only] Metadata about this warning in key: value format.
16341	// For example:
16342	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16343	Data []*InstanceGroupsScopedListWarningData `json:"data,omitempty"`
16344
16345	// Message: [Output Only] A human-readable description of the warning
16346	// code.
16347	Message string `json:"message,omitempty"`
16348
16349	// ForceSendFields is a list of field names (e.g. "Code") to
16350	// unconditionally include in API requests. By default, fields with
16351	// empty values are omitted from API requests. However, any non-pointer,
16352	// non-interface field appearing in ForceSendFields will be sent to the
16353	// server regardless of whether the field is empty or not. This may be
16354	// used to include empty fields in Patch requests.
16355	ForceSendFields []string `json:"-"`
16356
16357	// NullFields is a list of field names (e.g. "Code") to include in API
16358	// requests with the JSON null value. By default, fields with empty
16359	// values are omitted from API requests. However, any field with an
16360	// empty value appearing in NullFields will be sent to the server as
16361	// null. It is an error if a field in this list has a non-empty value.
16362	// This may be used to include null fields in Patch requests.
16363	NullFields []string `json:"-"`
16364}
16365
16366func (s *InstanceGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
16367	type NoMethod InstanceGroupsScopedListWarning
16368	raw := NoMethod(*s)
16369	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16370}
16371
16372type InstanceGroupsScopedListWarningData struct {
16373	// Key: [Output Only] A key that provides more detail on the warning
16374	// being returned. For example, for warnings where there are no results
16375	// in a list request for a particular zone, this key might be scope and
16376	// the key value might be the zone name. Other examples might be a key
16377	// indicating a deprecated resource and a suggested replacement, or a
16378	// warning about invalid network settings (for example, if an instance
16379	// attempts to perform IP forwarding but is not enabled for IP
16380	// forwarding).
16381	Key string `json:"key,omitempty"`
16382
16383	// Value: [Output Only] A warning data value corresponding to the key.
16384	Value string `json:"value,omitempty"`
16385
16386	// ForceSendFields is a list of field names (e.g. "Key") to
16387	// unconditionally include in API requests. By default, fields with
16388	// empty values are omitted from API requests. However, any non-pointer,
16389	// non-interface field appearing in ForceSendFields will be sent to the
16390	// server regardless of whether the field is empty or not. This may be
16391	// used to include empty fields in Patch requests.
16392	ForceSendFields []string `json:"-"`
16393
16394	// NullFields is a list of field names (e.g. "Key") to include in API
16395	// requests with the JSON null value. By default, fields with empty
16396	// values are omitted from API requests. However, any field with an
16397	// empty value appearing in NullFields will be sent to the server as
16398	// null. It is an error if a field in this list has a non-empty value.
16399	// This may be used to include null fields in Patch requests.
16400	NullFields []string `json:"-"`
16401}
16402
16403func (s *InstanceGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
16404	type NoMethod InstanceGroupsScopedListWarningData
16405	raw := NoMethod(*s)
16406	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16407}
16408
16409type InstanceGroupsSetNamedPortsRequest struct {
16410	// Fingerprint: The fingerprint of the named ports information for this
16411	// instance group. Use this optional property to prevent conflicts when
16412	// multiple users change the named ports settings concurrently. Obtain
16413	// the fingerprint with the instanceGroups.get method. Then, include the
16414	// fingerprint in your request to ensure that you do not overwrite
16415	// changes that were applied from another concurrent request. A request
16416	// with an incorrect fingerprint will fail with error 412
16417	// conditionNotMet.
16418	Fingerprint string `json:"fingerprint,omitempty"`
16419
16420	// NamedPorts: The list of named ports to set for this instance group.
16421	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
16422
16423	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
16424	// unconditionally include in API requests. By default, fields with
16425	// empty values are omitted from API requests. However, any non-pointer,
16426	// non-interface field appearing in ForceSendFields will be sent to the
16427	// server regardless of whether the field is empty or not. This may be
16428	// used to include empty fields in Patch requests.
16429	ForceSendFields []string `json:"-"`
16430
16431	// NullFields is a list of field names (e.g. "Fingerprint") to include
16432	// in API requests with the JSON null value. By default, fields with
16433	// empty values are omitted from API requests. However, any field with
16434	// an empty value appearing in NullFields will be sent to the server as
16435	// null. It is an error if a field in this list has a non-empty value.
16436	// This may be used to include null fields in Patch requests.
16437	NullFields []string `json:"-"`
16438}
16439
16440func (s *InstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
16441	type NoMethod InstanceGroupsSetNamedPortsRequest
16442	raw := NoMethod(*s)
16443	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16444}
16445
16446// InstanceList: Contains a list of instances.
16447type InstanceList struct {
16448	// Id: [Output Only] Unique identifier for the resource; defined by the
16449	// server.
16450	Id string `json:"id,omitempty"`
16451
16452	// Items: A list of Instance resources.
16453	Items []*Instance `json:"items,omitempty"`
16454
16455	// Kind: [Output Only] Type of resource. Always compute#instanceList for
16456	// lists of Instance resources.
16457	Kind string `json:"kind,omitempty"`
16458
16459	// NextPageToken: [Output Only] This token allows you to get the next
16460	// page of results for list requests. If the number of results is larger
16461	// than maxResults, use the nextPageToken as a value for the query
16462	// parameter pageToken in the next list request. Subsequent list
16463	// requests will have their own nextPageToken to continue paging through
16464	// the results.
16465	NextPageToken string `json:"nextPageToken,omitempty"`
16466
16467	// SelfLink: [Output Only] Server-defined URL for this resource.
16468	SelfLink string `json:"selfLink,omitempty"`
16469
16470	// Warning: [Output Only] Informational warning message.
16471	Warning *InstanceListWarning `json:"warning,omitempty"`
16472
16473	// ServerResponse contains the HTTP response code and headers from the
16474	// server.
16475	googleapi.ServerResponse `json:"-"`
16476
16477	// ForceSendFields is a list of field names (e.g. "Id") to
16478	// unconditionally include in API requests. By default, fields with
16479	// empty values are omitted from API requests. However, any non-pointer,
16480	// non-interface field appearing in ForceSendFields will be sent to the
16481	// server regardless of whether the field is empty or not. This may be
16482	// used to include empty fields in Patch requests.
16483	ForceSendFields []string `json:"-"`
16484
16485	// NullFields is a list of field names (e.g. "Id") to include in API
16486	// requests with the JSON null value. By default, fields with empty
16487	// values are omitted from API requests. However, any field with an
16488	// empty value appearing in NullFields will be sent to the server as
16489	// null. It is an error if a field in this list has a non-empty value.
16490	// This may be used to include null fields in Patch requests.
16491	NullFields []string `json:"-"`
16492}
16493
16494func (s *InstanceList) MarshalJSON() ([]byte, error) {
16495	type NoMethod InstanceList
16496	raw := NoMethod(*s)
16497	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16498}
16499
16500// InstanceListWarning: [Output Only] Informational warning message.
16501type InstanceListWarning struct {
16502	// Code: [Output Only] A warning code, if applicable. For example,
16503	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16504	// the response.
16505	//
16506	// Possible values:
16507	//   "CLEANUP_FAILED"
16508	//   "DEPRECATED_RESOURCE_USED"
16509	//   "DEPRECATED_TYPE_USED"
16510	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16511	//   "EXPERIMENTAL_TYPE_USED"
16512	//   "EXTERNAL_API_WARNING"
16513	//   "FIELD_VALUE_OVERRIDEN"
16514	//   "INJECTED_KERNELS_DEPRECATED"
16515	//   "MISSING_TYPE_DEPENDENCY"
16516	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16517	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16518	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16519	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16520	//   "NEXT_HOP_NOT_RUNNING"
16521	//   "NOT_CRITICAL_ERROR"
16522	//   "NO_RESULTS_ON_PAGE"
16523	//   "REQUIRED_TOS_AGREEMENT"
16524	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16525	//   "RESOURCE_NOT_DELETED"
16526	//   "SCHEMA_VALIDATION_IGNORED"
16527	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16528	//   "UNDECLARED_PROPERTIES"
16529	//   "UNREACHABLE"
16530	Code string `json:"code,omitempty"`
16531
16532	// Data: [Output Only] Metadata about this warning in key: value format.
16533	// For example:
16534	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16535	Data []*InstanceListWarningData `json:"data,omitempty"`
16536
16537	// Message: [Output Only] A human-readable description of the warning
16538	// code.
16539	Message string `json:"message,omitempty"`
16540
16541	// ForceSendFields is a list of field names (e.g. "Code") to
16542	// unconditionally include in API requests. By default, fields with
16543	// empty values are omitted from API requests. However, any non-pointer,
16544	// non-interface field appearing in ForceSendFields will be sent to the
16545	// server regardless of whether the field is empty or not. This may be
16546	// used to include empty fields in Patch requests.
16547	ForceSendFields []string `json:"-"`
16548
16549	// NullFields is a list of field names (e.g. "Code") to include in API
16550	// requests with the JSON null value. By default, fields with empty
16551	// values are omitted from API requests. However, any field with an
16552	// empty value appearing in NullFields will be sent to the server as
16553	// null. It is an error if a field in this list has a non-empty value.
16554	// This may be used to include null fields in Patch requests.
16555	NullFields []string `json:"-"`
16556}
16557
16558func (s *InstanceListWarning) MarshalJSON() ([]byte, error) {
16559	type NoMethod InstanceListWarning
16560	raw := NoMethod(*s)
16561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16562}
16563
16564type InstanceListWarningData struct {
16565	// Key: [Output Only] A key that provides more detail on the warning
16566	// being returned. For example, for warnings where there are no results
16567	// in a list request for a particular zone, this key might be scope and
16568	// the key value might be the zone name. Other examples might be a key
16569	// indicating a deprecated resource and a suggested replacement, or a
16570	// warning about invalid network settings (for example, if an instance
16571	// attempts to perform IP forwarding but is not enabled for IP
16572	// forwarding).
16573	Key string `json:"key,omitempty"`
16574
16575	// Value: [Output Only] A warning data value corresponding to the key.
16576	Value string `json:"value,omitempty"`
16577
16578	// ForceSendFields is a list of field names (e.g. "Key") to
16579	// unconditionally include in API requests. By default, fields with
16580	// empty values are omitted from API requests. However, any non-pointer,
16581	// non-interface field appearing in ForceSendFields will be sent to the
16582	// server regardless of whether the field is empty or not. This may be
16583	// used to include empty fields in Patch requests.
16584	ForceSendFields []string `json:"-"`
16585
16586	// NullFields is a list of field names (e.g. "Key") to include in API
16587	// requests with the JSON null value. By default, fields with empty
16588	// values are omitted from API requests. However, any field with an
16589	// empty value appearing in NullFields will be sent to the server as
16590	// null. It is an error if a field in this list has a non-empty value.
16591	// This may be used to include null fields in Patch requests.
16592	NullFields []string `json:"-"`
16593}
16594
16595func (s *InstanceListWarningData) MarshalJSON() ([]byte, error) {
16596	type NoMethod InstanceListWarningData
16597	raw := NoMethod(*s)
16598	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16599}
16600
16601// InstanceListReferrers: Contains a list of instance referrers.
16602type InstanceListReferrers struct {
16603	// Id: [Output Only] Unique identifier for the resource; defined by the
16604	// server.
16605	Id string `json:"id,omitempty"`
16606
16607	// Items: A list of Reference resources.
16608	Items []*Reference `json:"items,omitempty"`
16609
16610	// Kind: [Output Only] Type of resource. Always
16611	// compute#instanceListReferrers for lists of Instance referrers.
16612	Kind string `json:"kind,omitempty"`
16613
16614	// NextPageToken: [Output Only] This token allows you to get the next
16615	// page of results for list requests. If the number of results is larger
16616	// than maxResults, use the nextPageToken as a value for the query
16617	// parameter pageToken in the next list request. Subsequent list
16618	// requests will have their own nextPageToken to continue paging through
16619	// the results.
16620	NextPageToken string `json:"nextPageToken,omitempty"`
16621
16622	// SelfLink: [Output Only] Server-defined URL for this resource.
16623	SelfLink string `json:"selfLink,omitempty"`
16624
16625	// Warning: [Output Only] Informational warning message.
16626	Warning *InstanceListReferrersWarning `json:"warning,omitempty"`
16627
16628	// ServerResponse contains the HTTP response code and headers from the
16629	// server.
16630	googleapi.ServerResponse `json:"-"`
16631
16632	// ForceSendFields is a list of field names (e.g. "Id") to
16633	// unconditionally include in API requests. By default, fields with
16634	// empty values are omitted from API requests. However, any non-pointer,
16635	// non-interface field appearing in ForceSendFields will be sent to the
16636	// server regardless of whether the field is empty or not. This may be
16637	// used to include empty fields in Patch requests.
16638	ForceSendFields []string `json:"-"`
16639
16640	// NullFields is a list of field names (e.g. "Id") to include in API
16641	// requests with the JSON null value. By default, fields with empty
16642	// values are omitted from API requests. However, any field with an
16643	// empty value appearing in NullFields will be sent to the server as
16644	// null. It is an error if a field in this list has a non-empty value.
16645	// This may be used to include null fields in Patch requests.
16646	NullFields []string `json:"-"`
16647}
16648
16649func (s *InstanceListReferrers) MarshalJSON() ([]byte, error) {
16650	type NoMethod InstanceListReferrers
16651	raw := NoMethod(*s)
16652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16653}
16654
16655// InstanceListReferrersWarning: [Output Only] Informational warning
16656// message.
16657type InstanceListReferrersWarning struct {
16658	// Code: [Output Only] A warning code, if applicable. For example,
16659	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
16660	// the response.
16661	//
16662	// Possible values:
16663	//   "CLEANUP_FAILED"
16664	//   "DEPRECATED_RESOURCE_USED"
16665	//   "DEPRECATED_TYPE_USED"
16666	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
16667	//   "EXPERIMENTAL_TYPE_USED"
16668	//   "EXTERNAL_API_WARNING"
16669	//   "FIELD_VALUE_OVERRIDEN"
16670	//   "INJECTED_KERNELS_DEPRECATED"
16671	//   "MISSING_TYPE_DEPENDENCY"
16672	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
16673	//   "NEXT_HOP_CANNOT_IP_FORWARD"
16674	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
16675	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
16676	//   "NEXT_HOP_NOT_RUNNING"
16677	//   "NOT_CRITICAL_ERROR"
16678	//   "NO_RESULTS_ON_PAGE"
16679	//   "REQUIRED_TOS_AGREEMENT"
16680	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
16681	//   "RESOURCE_NOT_DELETED"
16682	//   "SCHEMA_VALIDATION_IGNORED"
16683	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
16684	//   "UNDECLARED_PROPERTIES"
16685	//   "UNREACHABLE"
16686	Code string `json:"code,omitempty"`
16687
16688	// Data: [Output Only] Metadata about this warning in key: value format.
16689	// For example:
16690	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
16691	Data []*InstanceListReferrersWarningData `json:"data,omitempty"`
16692
16693	// Message: [Output Only] A human-readable description of the warning
16694	// code.
16695	Message string `json:"message,omitempty"`
16696
16697	// ForceSendFields is a list of field names (e.g. "Code") to
16698	// unconditionally include in API requests. By default, fields with
16699	// empty values are omitted from API requests. However, any non-pointer,
16700	// non-interface field appearing in ForceSendFields will be sent to the
16701	// server regardless of whether the field is empty or not. This may be
16702	// used to include empty fields in Patch requests.
16703	ForceSendFields []string `json:"-"`
16704
16705	// NullFields is a list of field names (e.g. "Code") to include in API
16706	// requests with the JSON null value. By default, fields with empty
16707	// values are omitted from API requests. However, any field with an
16708	// empty value appearing in NullFields will be sent to the server as
16709	// null. It is an error if a field in this list has a non-empty value.
16710	// This may be used to include null fields in Patch requests.
16711	NullFields []string `json:"-"`
16712}
16713
16714func (s *InstanceListReferrersWarning) MarshalJSON() ([]byte, error) {
16715	type NoMethod InstanceListReferrersWarning
16716	raw := NoMethod(*s)
16717	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16718}
16719
16720type InstanceListReferrersWarningData struct {
16721	// Key: [Output Only] A key that provides more detail on the warning
16722	// being returned. For example, for warnings where there are no results
16723	// in a list request for a particular zone, this key might be scope and
16724	// the key value might be the zone name. Other examples might be a key
16725	// indicating a deprecated resource and a suggested replacement, or a
16726	// warning about invalid network settings (for example, if an instance
16727	// attempts to perform IP forwarding but is not enabled for IP
16728	// forwarding).
16729	Key string `json:"key,omitempty"`
16730
16731	// Value: [Output Only] A warning data value corresponding to the key.
16732	Value string `json:"value,omitempty"`
16733
16734	// ForceSendFields is a list of field names (e.g. "Key") to
16735	// unconditionally include in API requests. By default, fields with
16736	// empty values are omitted from API requests. However, any non-pointer,
16737	// non-interface field appearing in ForceSendFields will be sent to the
16738	// server regardless of whether the field is empty or not. This may be
16739	// used to include empty fields in Patch requests.
16740	ForceSendFields []string `json:"-"`
16741
16742	// NullFields is a list of field names (e.g. "Key") to include in API
16743	// requests with the JSON null value. By default, fields with empty
16744	// values are omitted from API requests. However, any field with an
16745	// empty value appearing in NullFields will be sent to the server as
16746	// null. It is an error if a field in this list has a non-empty value.
16747	// This may be used to include null fields in Patch requests.
16748	NullFields []string `json:"-"`
16749}
16750
16751func (s *InstanceListReferrersWarningData) MarshalJSON() ([]byte, error) {
16752	type NoMethod InstanceListReferrersWarningData
16753	raw := NoMethod(*s)
16754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16755}
16756
16757type InstanceManagedByIgmError struct {
16758	// Error: [Output Only] Contents of the error.
16759	Error *InstanceManagedByIgmErrorManagedInstanceError `json:"error,omitempty"`
16760
16761	// InstanceActionDetails: [Output Only] Details of the instance action
16762	// that triggered this error. May be null, if the error was not caused
16763	// by an action on an instance. This field is optional.
16764	InstanceActionDetails *InstanceManagedByIgmErrorInstanceActionDetails `json:"instanceActionDetails,omitempty"`
16765
16766	// Timestamp: [Output Only] The time that this error occurred. This
16767	// value is in RFC3339 text format.
16768	Timestamp string `json:"timestamp,omitempty"`
16769
16770	// ForceSendFields is a list of field names (e.g. "Error") to
16771	// unconditionally include in API requests. By default, fields with
16772	// empty values are omitted from API requests. However, any non-pointer,
16773	// non-interface field appearing in ForceSendFields will be sent to the
16774	// server regardless of whether the field is empty or not. This may be
16775	// used to include empty fields in Patch requests.
16776	ForceSendFields []string `json:"-"`
16777
16778	// NullFields is a list of field names (e.g. "Error") to include in API
16779	// requests with the JSON null value. By default, fields with empty
16780	// values are omitted from API requests. However, any field with an
16781	// empty value appearing in NullFields will be sent to the server as
16782	// null. It is an error if a field in this list has a non-empty value.
16783	// This may be used to include null fields in Patch requests.
16784	NullFields []string `json:"-"`
16785}
16786
16787func (s *InstanceManagedByIgmError) MarshalJSON() ([]byte, error) {
16788	type NoMethod InstanceManagedByIgmError
16789	raw := NoMethod(*s)
16790	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16791}
16792
16793type InstanceManagedByIgmErrorInstanceActionDetails struct {
16794	// Action: [Output Only] Action that managed instance group was
16795	// executing on the instance when the error occurred. Possible values:
16796	//
16797	// Possible values:
16798	//   "ABANDONING"
16799	//   "CREATING"
16800	//   "CREATING_WITHOUT_RETRIES"
16801	//   "DELETING"
16802	//   "NONE"
16803	//   "RECREATING"
16804	//   "REFRESHING"
16805	//   "RESTARTING"
16806	//   "VERIFYING"
16807	Action string `json:"action,omitempty"`
16808
16809	// Instance: [Output Only] The URL of the instance. The URL can be set
16810	// even if the instance has not yet been created.
16811	Instance string `json:"instance,omitempty"`
16812
16813	// Version: [Output Only] Version this instance was created from, or was
16814	// being created from, but the creation failed. Corresponds to one of
16815	// the versions that were set on the Instance Group Manager resource at
16816	// the time this instance was being created.
16817	Version *ManagedInstanceVersion `json:"version,omitempty"`
16818
16819	// ForceSendFields is a list of field names (e.g. "Action") to
16820	// unconditionally include in API requests. By default, fields with
16821	// empty values are omitted from API requests. However, any non-pointer,
16822	// non-interface field appearing in ForceSendFields will be sent to the
16823	// server regardless of whether the field is empty or not. This may be
16824	// used to include empty fields in Patch requests.
16825	ForceSendFields []string `json:"-"`
16826
16827	// NullFields is a list of field names (e.g. "Action") to include in API
16828	// requests with the JSON null value. By default, fields with empty
16829	// values are omitted from API requests. However, any field with an
16830	// empty value appearing in NullFields will be sent to the server as
16831	// null. It is an error if a field in this list has a non-empty value.
16832	// This may be used to include null fields in Patch requests.
16833	NullFields []string `json:"-"`
16834}
16835
16836func (s *InstanceManagedByIgmErrorInstanceActionDetails) MarshalJSON() ([]byte, error) {
16837	type NoMethod InstanceManagedByIgmErrorInstanceActionDetails
16838	raw := NoMethod(*s)
16839	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16840}
16841
16842type InstanceManagedByIgmErrorManagedInstanceError struct {
16843	// Code: [Output Only] Error code.
16844	Code string `json:"code,omitempty"`
16845
16846	// Message: [Output Only] Error message.
16847	Message string `json:"message,omitempty"`
16848
16849	// ForceSendFields is a list of field names (e.g. "Code") to
16850	// unconditionally include in API requests. By default, fields with
16851	// empty values are omitted from API requests. However, any non-pointer,
16852	// non-interface field appearing in ForceSendFields will be sent to the
16853	// server regardless of whether the field is empty or not. This may be
16854	// used to include empty fields in Patch requests.
16855	ForceSendFields []string `json:"-"`
16856
16857	// NullFields is a list of field names (e.g. "Code") to include in API
16858	// requests with the JSON null value. By default, fields with empty
16859	// values are omitted from API requests. However, any field with an
16860	// empty value appearing in NullFields will be sent to the server as
16861	// null. It is an error if a field in this list has a non-empty value.
16862	// This may be used to include null fields in Patch requests.
16863	NullFields []string `json:"-"`
16864}
16865
16866func (s *InstanceManagedByIgmErrorManagedInstanceError) MarshalJSON() ([]byte, error) {
16867	type NoMethod InstanceManagedByIgmErrorManagedInstanceError
16868	raw := NoMethod(*s)
16869	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16870}
16871
16872type InstanceMoveRequest struct {
16873	// DestinationZone: The URL of the destination zone to move the
16874	// instance. This can be a full or partial URL. For example, the
16875	// following are all valid URLs to a zone:
16876	// - https://www.googleapis.com/compute/v1/projects/project/zones/zone
16877	//
16878	// - projects/project/zones/zone
16879	// - zones/zone
16880	DestinationZone string `json:"destinationZone,omitempty"`
16881
16882	// TargetInstance: The URL of the target instance to move. This can be a
16883	// full or partial URL. For example, the following are all valid URLs to
16884	// an instance:
16885	// -
16886	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
16887	// - projects/project/zones/zone/instances/instance
16888	// - zones/zone/instances/instance
16889	TargetInstance string `json:"targetInstance,omitempty"`
16890
16891	// ForceSendFields is a list of field names (e.g. "DestinationZone") to
16892	// unconditionally include in API requests. By default, fields with
16893	// empty values are omitted from API requests. However, any non-pointer,
16894	// non-interface field appearing in ForceSendFields will be sent to the
16895	// server regardless of whether the field is empty or not. This may be
16896	// used to include empty fields in Patch requests.
16897	ForceSendFields []string `json:"-"`
16898
16899	// NullFields is a list of field names (e.g. "DestinationZone") to
16900	// include in API requests with the JSON null value. By default, fields
16901	// with empty values are omitted from API requests. However, any field
16902	// with an empty value appearing in NullFields will be sent to the
16903	// server as null. It is an error if a field in this list has a
16904	// non-empty value. This may be used to include null fields in Patch
16905	// requests.
16906	NullFields []string `json:"-"`
16907}
16908
16909func (s *InstanceMoveRequest) MarshalJSON() ([]byte, error) {
16910	type NoMethod InstanceMoveRequest
16911	raw := NoMethod(*s)
16912	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
16913}
16914
16915type InstanceProperties struct {
16916	// CanIpForward: Enables instances created based on this template to
16917	// send packets with source IP addresses other than their own and
16918	// receive packets with destination IP addresses other than their own.
16919	// If these instances will be used as an IP gateway or it will be set as
16920	// the next-hop in a Route resource, specify true. If unsure, leave this
16921	// set to false. See the Enable IP forwarding documentation for more
16922	// information.
16923	CanIpForward bool `json:"canIpForward,omitempty"`
16924
16925	// Description: An optional text description for the instances that are
16926	// created from this instance template.
16927	Description string `json:"description,omitempty"`
16928
16929	// Disks: An array of disks that are associated with the instances that
16930	// are created from this template.
16931	Disks []*AttachedDisk `json:"disks,omitempty"`
16932
16933	// DisplayDevice: Display Device properties to enable support for remote
16934	// display products like: Teradici, VNC and TeamViewer
16935	DisplayDevice *DisplayDevice `json:"displayDevice,omitempty"`
16936
16937	// GuestAccelerators: A list of guest accelerator cards' type and count
16938	// to use for instances created from the instance template.
16939	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
16940
16941	// Labels: Labels to apply to instances that are created from this
16942	// template.
16943	Labels map[string]string `json:"labels,omitempty"`
16944
16945	// MachineType: The machine type to use for instances that are created
16946	// from this template.
16947	MachineType string `json:"machineType,omitempty"`
16948
16949	// Metadata: The metadata key/value pairs to assign to instances that
16950	// are created from this template. These pairs can consist of custom
16951	// metadata or predefined keys. See Project and instance metadata for
16952	// more information.
16953	Metadata *Metadata `json:"metadata,omitempty"`
16954
16955	// MinCpuPlatform: Minimum cpu/platform to be used by this instance. The
16956	// instance may be scheduled on the specified or newer cpu/platform.
16957	// Applicable values are the friendly names of CPU platforms, such as
16958	// minCpuPlatform: "Intel Haswell" or minCpuPlatform: "Intel Sandy
16959	// Bridge". For more information, read Specifying a Minimum CPU
16960	// Platform.
16961	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
16962
16963	// NetworkInterfaces: An array of network access configurations for this
16964	// interface.
16965	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
16966
16967	// ReservationAffinity: Specifies the reservations that this instance
16968	// can consume from.
16969	ReservationAffinity *ReservationAffinity `json:"reservationAffinity,omitempty"`
16970
16971	// ResourcePolicies: Resource policies (names, not ULRs) applied to
16972	// instances created from this templae.
16973	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
16974
16975	// Scheduling: Specifies the scheduling options for the instances that
16976	// are created from this template.
16977	Scheduling *Scheduling `json:"scheduling,omitempty"`
16978
16979	// ServiceAccounts: A list of service accounts with specified scopes.
16980	// Access tokens for these service accounts are available to the
16981	// instances that are created from this template. Use metadata queries
16982	// to obtain the access tokens for these instances.
16983	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
16984
16985	ShieldedInstanceConfig *ShieldedInstanceConfig `json:"shieldedInstanceConfig,omitempty"`
16986
16987	// ShieldedVmConfig: Specifies the Shielded VM options for the instances
16988	// that are created from this template.
16989	ShieldedVmConfig *ShieldedVmConfig `json:"shieldedVmConfig,omitempty"`
16990
16991	// Tags: A list of tags to apply to the instances that are created from
16992	// this template. The tags identify valid sources or targets for network
16993	// firewalls. The setTags method can modify this list of tags. Each tag
16994	// within the list must comply with RFC1035.
16995	Tags *Tags `json:"tags,omitempty"`
16996
16997	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
16998	// unconditionally include in API requests. By default, fields with
16999	// empty values are omitted from API requests. However, any non-pointer,
17000	// non-interface field appearing in ForceSendFields will be sent to the
17001	// server regardless of whether the field is empty or not. This may be
17002	// used to include empty fields in Patch requests.
17003	ForceSendFields []string `json:"-"`
17004
17005	// NullFields is a list of field names (e.g. "CanIpForward") to include
17006	// in API requests with the JSON null value. By default, fields with
17007	// empty values are omitted from API requests. However, any field with
17008	// an empty value appearing in NullFields will be sent to the server as
17009	// null. It is an error if a field in this list has a non-empty value.
17010	// This may be used to include null fields in Patch requests.
17011	NullFields []string `json:"-"`
17012}
17013
17014func (s *InstanceProperties) MarshalJSON() ([]byte, error) {
17015	type NoMethod InstanceProperties
17016	raw := NoMethod(*s)
17017	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17018}
17019
17020type InstanceReference struct {
17021	// Instance: The URL for a specific instance.
17022	Instance string `json:"instance,omitempty"`
17023
17024	// ForceSendFields is a list of field names (e.g. "Instance") to
17025	// unconditionally include in API requests. By default, fields with
17026	// empty values are omitted from API requests. However, any non-pointer,
17027	// non-interface field appearing in ForceSendFields will be sent to the
17028	// server regardless of whether the field is empty or not. This may be
17029	// used to include empty fields in Patch requests.
17030	ForceSendFields []string `json:"-"`
17031
17032	// NullFields is a list of field names (e.g. "Instance") to include in
17033	// API requests with the JSON null value. By default, fields with empty
17034	// values are omitted from API requests. However, any field with an
17035	// empty value appearing in NullFields will be sent to the server as
17036	// null. It is an error if a field in this list has a non-empty value.
17037	// This may be used to include null fields in Patch requests.
17038	NullFields []string `json:"-"`
17039}
17040
17041func (s *InstanceReference) MarshalJSON() ([]byte, error) {
17042	type NoMethod InstanceReference
17043	raw := NoMethod(*s)
17044	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17045}
17046
17047// InstanceTemplate: Represents an Instance Template resource.
17048//
17049// You can use instance templates to create VM instances and managed
17050// instance groups. For more information, read Instance Templates. (==
17051// resource_for {$api_version}.instanceTemplates ==)
17052type InstanceTemplate struct {
17053	// CreationTimestamp: [Output Only] The creation timestamp for this
17054	// instance template in RFC3339 text format.
17055	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17056
17057	// Description: An optional description of this resource. Provide this
17058	// property when you create the resource.
17059	Description string `json:"description,omitempty"`
17060
17061	// Id: [Output Only] A unique identifier for this instance template. The
17062	// server defines this identifier.
17063	Id uint64 `json:"id,omitempty,string"`
17064
17065	// Kind: [Output Only] The resource type, which is always
17066	// compute#instanceTemplate for instance templates.
17067	Kind string `json:"kind,omitempty"`
17068
17069	// Name: Name of the resource; provided by the client when the resource
17070	// is created. The name must be 1-63 characters long, and comply with
17071	// RFC1035. Specifically, the name must be 1-63 characters long and
17072	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
17073	// the first character must be a lowercase letter, and all following
17074	// characters must be a dash, lowercase letter, or digit, except the
17075	// last character, which cannot be a dash.
17076	Name string `json:"name,omitempty"`
17077
17078	// Properties: The instance properties for this instance template.
17079	Properties *InstanceProperties `json:"properties,omitempty"`
17080
17081	// SelfLink: [Output Only] The URL for this instance template. The
17082	// server defines this URL.
17083	SelfLink string `json:"selfLink,omitempty"`
17084
17085	// SourceInstance: The source instance used to create the template. You
17086	// can provide this as a partial or full URL to the resource. For
17087	// example, the following are valid values:
17088	// -
17089	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
17090	// - projects/project/zones/zone/instances/instance
17091	SourceInstance string `json:"sourceInstance,omitempty"`
17092
17093	// SourceInstanceParams: The source instance params to use to create
17094	// this instance template.
17095	SourceInstanceParams *SourceInstanceParams `json:"sourceInstanceParams,omitempty"`
17096
17097	// ServerResponse contains the HTTP response code and headers from the
17098	// server.
17099	googleapi.ServerResponse `json:"-"`
17100
17101	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
17102	// to unconditionally include in API requests. By default, fields with
17103	// empty values are omitted from API requests. However, any non-pointer,
17104	// non-interface field appearing in ForceSendFields will be sent to the
17105	// server regardless of whether the field is empty or not. This may be
17106	// used to include empty fields in Patch requests.
17107	ForceSendFields []string `json:"-"`
17108
17109	// NullFields is a list of field names (e.g. "CreationTimestamp") to
17110	// include in API requests with the JSON null value. By default, fields
17111	// with empty values are omitted from API requests. However, any field
17112	// with an empty value appearing in NullFields will be sent to the
17113	// server as null. It is an error if a field in this list has a
17114	// non-empty value. This may be used to include null fields in Patch
17115	// requests.
17116	NullFields []string `json:"-"`
17117}
17118
17119func (s *InstanceTemplate) MarshalJSON() ([]byte, error) {
17120	type NoMethod InstanceTemplate
17121	raw := NoMethod(*s)
17122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17123}
17124
17125// InstanceTemplateList: A list of instance templates.
17126type InstanceTemplateList struct {
17127	// Id: [Output Only] Unique identifier for the resource; defined by the
17128	// server.
17129	Id string `json:"id,omitempty"`
17130
17131	// Items: A list of InstanceTemplate resources.
17132	Items []*InstanceTemplate `json:"items,omitempty"`
17133
17134	// Kind: [Output Only] The resource type, which is always
17135	// compute#instanceTemplatesListResponse for instance template lists.
17136	Kind string `json:"kind,omitempty"`
17137
17138	// NextPageToken: [Output Only] This token allows you to get the next
17139	// page of results for list requests. If the number of results is larger
17140	// than maxResults, use the nextPageToken as a value for the query
17141	// parameter pageToken in the next list request. Subsequent list
17142	// requests will have their own nextPageToken to continue paging through
17143	// the results.
17144	NextPageToken string `json:"nextPageToken,omitempty"`
17145
17146	// SelfLink: [Output Only] Server-defined URL for this resource.
17147	SelfLink string `json:"selfLink,omitempty"`
17148
17149	// Warning: [Output Only] Informational warning message.
17150	Warning *InstanceTemplateListWarning `json:"warning,omitempty"`
17151
17152	// ServerResponse contains the HTTP response code and headers from the
17153	// server.
17154	googleapi.ServerResponse `json:"-"`
17155
17156	// ForceSendFields is a list of field names (e.g. "Id") to
17157	// unconditionally include in API requests. By default, fields with
17158	// empty values are omitted from API requests. However, any non-pointer,
17159	// non-interface field appearing in ForceSendFields will be sent to the
17160	// server regardless of whether the field is empty or not. This may be
17161	// used to include empty fields in Patch requests.
17162	ForceSendFields []string `json:"-"`
17163
17164	// NullFields is a list of field names (e.g. "Id") to include in API
17165	// requests with the JSON null value. By default, fields with empty
17166	// values are omitted from API requests. However, any field with an
17167	// empty value appearing in NullFields will be sent to the server as
17168	// null. It is an error if a field in this list has a non-empty value.
17169	// This may be used to include null fields in Patch requests.
17170	NullFields []string `json:"-"`
17171}
17172
17173func (s *InstanceTemplateList) MarshalJSON() ([]byte, error) {
17174	type NoMethod InstanceTemplateList
17175	raw := NoMethod(*s)
17176	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17177}
17178
17179// InstanceTemplateListWarning: [Output Only] Informational warning
17180// message.
17181type InstanceTemplateListWarning struct {
17182	// Code: [Output Only] A warning code, if applicable. For example,
17183	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17184	// the response.
17185	//
17186	// Possible values:
17187	//   "CLEANUP_FAILED"
17188	//   "DEPRECATED_RESOURCE_USED"
17189	//   "DEPRECATED_TYPE_USED"
17190	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17191	//   "EXPERIMENTAL_TYPE_USED"
17192	//   "EXTERNAL_API_WARNING"
17193	//   "FIELD_VALUE_OVERRIDEN"
17194	//   "INJECTED_KERNELS_DEPRECATED"
17195	//   "MISSING_TYPE_DEPENDENCY"
17196	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17197	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17198	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17199	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17200	//   "NEXT_HOP_NOT_RUNNING"
17201	//   "NOT_CRITICAL_ERROR"
17202	//   "NO_RESULTS_ON_PAGE"
17203	//   "REQUIRED_TOS_AGREEMENT"
17204	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17205	//   "RESOURCE_NOT_DELETED"
17206	//   "SCHEMA_VALIDATION_IGNORED"
17207	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17208	//   "UNDECLARED_PROPERTIES"
17209	//   "UNREACHABLE"
17210	Code string `json:"code,omitempty"`
17211
17212	// Data: [Output Only] Metadata about this warning in key: value format.
17213	// For example:
17214	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17215	Data []*InstanceTemplateListWarningData `json:"data,omitempty"`
17216
17217	// Message: [Output Only] A human-readable description of the warning
17218	// code.
17219	Message string `json:"message,omitempty"`
17220
17221	// ForceSendFields is a list of field names (e.g. "Code") to
17222	// unconditionally include in API requests. By default, fields with
17223	// empty values are omitted from API requests. However, any non-pointer,
17224	// non-interface field appearing in ForceSendFields will be sent to the
17225	// server regardless of whether the field is empty or not. This may be
17226	// used to include empty fields in Patch requests.
17227	ForceSendFields []string `json:"-"`
17228
17229	// NullFields is a list of field names (e.g. "Code") to include in API
17230	// requests with the JSON null value. By default, fields with empty
17231	// values are omitted from API requests. However, any field with an
17232	// empty value appearing in NullFields will be sent to the server as
17233	// null. It is an error if a field in this list has a non-empty value.
17234	// This may be used to include null fields in Patch requests.
17235	NullFields []string `json:"-"`
17236}
17237
17238func (s *InstanceTemplateListWarning) MarshalJSON() ([]byte, error) {
17239	type NoMethod InstanceTemplateListWarning
17240	raw := NoMethod(*s)
17241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17242}
17243
17244type InstanceTemplateListWarningData struct {
17245	// Key: [Output Only] A key that provides more detail on the warning
17246	// being returned. For example, for warnings where there are no results
17247	// in a list request for a particular zone, this key might be scope and
17248	// the key value might be the zone name. Other examples might be a key
17249	// indicating a deprecated resource and a suggested replacement, or a
17250	// warning about invalid network settings (for example, if an instance
17251	// attempts to perform IP forwarding but is not enabled for IP
17252	// forwarding).
17253	Key string `json:"key,omitempty"`
17254
17255	// Value: [Output Only] A warning data value corresponding to the key.
17256	Value string `json:"value,omitempty"`
17257
17258	// ForceSendFields is a list of field names (e.g. "Key") to
17259	// unconditionally include in API requests. By default, fields with
17260	// empty values are omitted from API requests. However, any non-pointer,
17261	// non-interface field appearing in ForceSendFields will be sent to the
17262	// server regardless of whether the field is empty or not. This may be
17263	// used to include empty fields in Patch requests.
17264	ForceSendFields []string `json:"-"`
17265
17266	// NullFields is a list of field names (e.g. "Key") to include in API
17267	// requests with the JSON null value. By default, fields with empty
17268	// values are omitted from API requests. However, any field with an
17269	// empty value appearing in NullFields will be sent to the server as
17270	// null. It is an error if a field in this list has a non-empty value.
17271	// This may be used to include null fields in Patch requests.
17272	NullFields []string `json:"-"`
17273}
17274
17275func (s *InstanceTemplateListWarningData) MarshalJSON() ([]byte, error) {
17276	type NoMethod InstanceTemplateListWarningData
17277	raw := NoMethod(*s)
17278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17279}
17280
17281type InstanceWithNamedPorts struct {
17282	// Instance: [Output Only] The URL of the instance.
17283	Instance string `json:"instance,omitempty"`
17284
17285	// NamedPorts: [Output Only] The named ports that belong to this
17286	// instance group.
17287	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
17288
17289	// Status: [Output Only] The status of the instance.
17290	//
17291	// Possible values:
17292	//   "PROVISIONING"
17293	//   "REPAIRING"
17294	//   "RUNNING"
17295	//   "STAGING"
17296	//   "STOPPED"
17297	//   "STOPPING"
17298	//   "SUSPENDED"
17299	//   "SUSPENDING"
17300	//   "TERMINATED"
17301	Status string `json:"status,omitempty"`
17302
17303	// ForceSendFields is a list of field names (e.g. "Instance") to
17304	// unconditionally include in API requests. By default, fields with
17305	// empty values are omitted from API requests. However, any non-pointer,
17306	// non-interface field appearing in ForceSendFields will be sent to the
17307	// server regardless of whether the field is empty or not. This may be
17308	// used to include empty fields in Patch requests.
17309	ForceSendFields []string `json:"-"`
17310
17311	// NullFields is a list of field names (e.g. "Instance") to include in
17312	// API requests with the JSON null value. By default, fields with empty
17313	// values are omitted from API requests. However, any field with an
17314	// empty value appearing in NullFields will be sent to the server as
17315	// null. It is an error if a field in this list has a non-empty value.
17316	// This may be used to include null fields in Patch requests.
17317	NullFields []string `json:"-"`
17318}
17319
17320func (s *InstanceWithNamedPorts) MarshalJSON() ([]byte, error) {
17321	type NoMethod InstanceWithNamedPorts
17322	raw := NoMethod(*s)
17323	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17324}
17325
17326type InstancesResumeRequest struct {
17327	// Disks: Array of disks associated with this instance that are
17328	// protected with a customer-supplied encryption key.
17329	//
17330	// In order to resume the instance, the disk url and its corresponding
17331	// key must be provided.
17332	//
17333	// If the disk is not protected with a customer-supplied encryption key
17334	// it should not be specified.
17335	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
17336
17337	// InstanceEncryptionKey: Decrypts data associated with an instance that
17338	// is protected with a customer-supplied encryption key.
17339	//
17340	// If the instance you are starting is protected with a
17341	// customer-supplied encryption key, the correct key must be provided
17342	// otherwise the instance resume will not succeed.
17343	InstanceEncryptionKey *CustomerEncryptionKey `json:"instanceEncryptionKey,omitempty"`
17344
17345	// ForceSendFields is a list of field names (e.g. "Disks") to
17346	// unconditionally include in API requests. By default, fields with
17347	// empty values are omitted from API requests. However, any non-pointer,
17348	// non-interface field appearing in ForceSendFields will be sent to the
17349	// server regardless of whether the field is empty or not. This may be
17350	// used to include empty fields in Patch requests.
17351	ForceSendFields []string `json:"-"`
17352
17353	// NullFields is a list of field names (e.g. "Disks") to include in API
17354	// requests with the JSON null value. By default, fields with empty
17355	// values are omitted from API requests. However, any field with an
17356	// empty value appearing in NullFields will be sent to the server as
17357	// null. It is an error if a field in this list has a non-empty value.
17358	// This may be used to include null fields in Patch requests.
17359	NullFields []string `json:"-"`
17360}
17361
17362func (s *InstancesResumeRequest) MarshalJSON() ([]byte, error) {
17363	type NoMethod InstancesResumeRequest
17364	raw := NoMethod(*s)
17365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17366}
17367
17368type InstancesScopedList struct {
17369	// Instances: [Output Only] A list of instances contained in this scope.
17370	Instances []*Instance `json:"instances,omitempty"`
17371
17372	// Warning: [Output Only] Informational warning which replaces the list
17373	// of instances when the list is empty.
17374	Warning *InstancesScopedListWarning `json:"warning,omitempty"`
17375
17376	// ForceSendFields is a list of field names (e.g. "Instances") to
17377	// unconditionally include in API requests. By default, fields with
17378	// empty values are omitted from API requests. However, any non-pointer,
17379	// non-interface field appearing in ForceSendFields will be sent to the
17380	// server regardless of whether the field is empty or not. This may be
17381	// used to include empty fields in Patch requests.
17382	ForceSendFields []string `json:"-"`
17383
17384	// NullFields is a list of field names (e.g. "Instances") to include in
17385	// API requests with the JSON null value. By default, fields with empty
17386	// values are omitted from API requests. However, any field with an
17387	// empty value appearing in NullFields will be sent to the server as
17388	// null. It is an error if a field in this list has a non-empty value.
17389	// This may be used to include null fields in Patch requests.
17390	NullFields []string `json:"-"`
17391}
17392
17393func (s *InstancesScopedList) MarshalJSON() ([]byte, error) {
17394	type NoMethod InstancesScopedList
17395	raw := NoMethod(*s)
17396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17397}
17398
17399// InstancesScopedListWarning: [Output Only] Informational warning which
17400// replaces the list of instances when the list is empty.
17401type InstancesScopedListWarning struct {
17402	// Code: [Output Only] A warning code, if applicable. For example,
17403	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
17404	// the response.
17405	//
17406	// Possible values:
17407	//   "CLEANUP_FAILED"
17408	//   "DEPRECATED_RESOURCE_USED"
17409	//   "DEPRECATED_TYPE_USED"
17410	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
17411	//   "EXPERIMENTAL_TYPE_USED"
17412	//   "EXTERNAL_API_WARNING"
17413	//   "FIELD_VALUE_OVERRIDEN"
17414	//   "INJECTED_KERNELS_DEPRECATED"
17415	//   "MISSING_TYPE_DEPENDENCY"
17416	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
17417	//   "NEXT_HOP_CANNOT_IP_FORWARD"
17418	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
17419	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
17420	//   "NEXT_HOP_NOT_RUNNING"
17421	//   "NOT_CRITICAL_ERROR"
17422	//   "NO_RESULTS_ON_PAGE"
17423	//   "REQUIRED_TOS_AGREEMENT"
17424	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
17425	//   "RESOURCE_NOT_DELETED"
17426	//   "SCHEMA_VALIDATION_IGNORED"
17427	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
17428	//   "UNDECLARED_PROPERTIES"
17429	//   "UNREACHABLE"
17430	Code string `json:"code,omitempty"`
17431
17432	// Data: [Output Only] Metadata about this warning in key: value format.
17433	// For example:
17434	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
17435	Data []*InstancesScopedListWarningData `json:"data,omitempty"`
17436
17437	// Message: [Output Only] A human-readable description of the warning
17438	// code.
17439	Message string `json:"message,omitempty"`
17440
17441	// ForceSendFields is a list of field names (e.g. "Code") to
17442	// unconditionally include in API requests. By default, fields with
17443	// empty values are omitted from API requests. However, any non-pointer,
17444	// non-interface field appearing in ForceSendFields will be sent to the
17445	// server regardless of whether the field is empty or not. This may be
17446	// used to include empty fields in Patch requests.
17447	ForceSendFields []string `json:"-"`
17448
17449	// NullFields is a list of field names (e.g. "Code") to include in API
17450	// requests with the JSON null value. By default, fields with empty
17451	// values are omitted from API requests. However, any field with an
17452	// empty value appearing in NullFields will be sent to the server as
17453	// null. It is an error if a field in this list has a non-empty value.
17454	// This may be used to include null fields in Patch requests.
17455	NullFields []string `json:"-"`
17456}
17457
17458func (s *InstancesScopedListWarning) MarshalJSON() ([]byte, error) {
17459	type NoMethod InstancesScopedListWarning
17460	raw := NoMethod(*s)
17461	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17462}
17463
17464type InstancesScopedListWarningData struct {
17465	// Key: [Output Only] A key that provides more detail on the warning
17466	// being returned. For example, for warnings where there are no results
17467	// in a list request for a particular zone, this key might be scope and
17468	// the key value might be the zone name. Other examples might be a key
17469	// indicating a deprecated resource and a suggested replacement, or a
17470	// warning about invalid network settings (for example, if an instance
17471	// attempts to perform IP forwarding but is not enabled for IP
17472	// forwarding).
17473	Key string `json:"key,omitempty"`
17474
17475	// Value: [Output Only] A warning data value corresponding to the key.
17476	Value string `json:"value,omitempty"`
17477
17478	// ForceSendFields is a list of field names (e.g. "Key") to
17479	// unconditionally include in API requests. By default, fields with
17480	// empty values are omitted from API requests. However, any non-pointer,
17481	// non-interface field appearing in ForceSendFields will be sent to the
17482	// server regardless of whether the field is empty or not. This may be
17483	// used to include empty fields in Patch requests.
17484	ForceSendFields []string `json:"-"`
17485
17486	// NullFields is a list of field names (e.g. "Key") to include in API
17487	// requests with the JSON null value. By default, fields with empty
17488	// values are omitted from API requests. However, any field with an
17489	// empty value appearing in NullFields will be sent to the server as
17490	// null. It is an error if a field in this list has a non-empty value.
17491	// This may be used to include null fields in Patch requests.
17492	NullFields []string `json:"-"`
17493}
17494
17495func (s *InstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
17496	type NoMethod InstancesScopedListWarningData
17497	raw := NoMethod(*s)
17498	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17499}
17500
17501type InstancesSetLabelsRequest struct {
17502	// LabelFingerprint: Fingerprint of the previous set of labels for this
17503	// resource, used to prevent conflicts. Provide the latest fingerprint
17504	// value when making a request to add or change labels.
17505	LabelFingerprint string `json:"labelFingerprint,omitempty"`
17506
17507	Labels map[string]string `json:"labels,omitempty"`
17508
17509	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
17510	// unconditionally include in API requests. By default, fields with
17511	// empty values are omitted from API requests. However, any non-pointer,
17512	// non-interface field appearing in ForceSendFields will be sent to the
17513	// server regardless of whether the field is empty or not. This may be
17514	// used to include empty fields in Patch requests.
17515	ForceSendFields []string `json:"-"`
17516
17517	// NullFields is a list of field names (e.g. "LabelFingerprint") to
17518	// include in API requests with the JSON null value. By default, fields
17519	// with empty values are omitted from API requests. However, any field
17520	// with an empty value appearing in NullFields will be sent to the
17521	// server as null. It is an error if a field in this list has a
17522	// non-empty value. This may be used to include null fields in Patch
17523	// requests.
17524	NullFields []string `json:"-"`
17525}
17526
17527func (s *InstancesSetLabelsRequest) MarshalJSON() ([]byte, error) {
17528	type NoMethod InstancesSetLabelsRequest
17529	raw := NoMethod(*s)
17530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17531}
17532
17533type InstancesSetMachineResourcesRequest struct {
17534	// GuestAccelerators: A list of the type and count of accelerator cards
17535	// attached to the instance.
17536	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
17537
17538	// ForceSendFields is a list of field names (e.g. "GuestAccelerators")
17539	// to unconditionally include in API requests. By default, fields with
17540	// empty values are omitted from API requests. However, any non-pointer,
17541	// non-interface field appearing in ForceSendFields will be sent to the
17542	// server regardless of whether the field is empty or not. This may be
17543	// used to include empty fields in Patch requests.
17544	ForceSendFields []string `json:"-"`
17545
17546	// NullFields is a list of field names (e.g. "GuestAccelerators") to
17547	// include in API requests with the JSON null value. By default, fields
17548	// with empty values are omitted from API requests. However, any field
17549	// with an empty value appearing in NullFields will be sent to the
17550	// server as null. It is an error if a field in this list has a
17551	// non-empty value. This may be used to include null fields in Patch
17552	// requests.
17553	NullFields []string `json:"-"`
17554}
17555
17556func (s *InstancesSetMachineResourcesRequest) MarshalJSON() ([]byte, error) {
17557	type NoMethod InstancesSetMachineResourcesRequest
17558	raw := NoMethod(*s)
17559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17560}
17561
17562type InstancesSetMachineTypeRequest struct {
17563	// MachineType: Full or partial URL of the machine type resource. See
17564	// Machine Types for a full list of machine types. For example:
17565	// zones/us-central1-f/machineTypes/n1-standard-1
17566	MachineType string `json:"machineType,omitempty"`
17567
17568	// ForceSendFields is a list of field names (e.g. "MachineType") to
17569	// unconditionally include in API requests. By default, fields with
17570	// empty values are omitted from API requests. However, any non-pointer,
17571	// non-interface field appearing in ForceSendFields will be sent to the
17572	// server regardless of whether the field is empty or not. This may be
17573	// used to include empty fields in Patch requests.
17574	ForceSendFields []string `json:"-"`
17575
17576	// NullFields is a list of field names (e.g. "MachineType") to include
17577	// in API requests with the JSON null value. By default, fields with
17578	// empty values are omitted from API requests. However, any field with
17579	// an empty value appearing in NullFields will be sent to the server as
17580	// null. It is an error if a field in this list has a non-empty value.
17581	// This may be used to include null fields in Patch requests.
17582	NullFields []string `json:"-"`
17583}
17584
17585func (s *InstancesSetMachineTypeRequest) MarshalJSON() ([]byte, error) {
17586	type NoMethod InstancesSetMachineTypeRequest
17587	raw := NoMethod(*s)
17588	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17589}
17590
17591type InstancesSetMinCpuPlatformRequest struct {
17592	// MinCpuPlatform: Minimum cpu/platform this instance should be started
17593	// at.
17594	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
17595
17596	// ForceSendFields is a list of field names (e.g. "MinCpuPlatform") to
17597	// unconditionally include in API requests. By default, fields with
17598	// empty values are omitted from API requests. However, any non-pointer,
17599	// non-interface field appearing in ForceSendFields will be sent to the
17600	// server regardless of whether the field is empty or not. This may be
17601	// used to include empty fields in Patch requests.
17602	ForceSendFields []string `json:"-"`
17603
17604	// NullFields is a list of field names (e.g. "MinCpuPlatform") to
17605	// include in API requests with the JSON null value. By default, fields
17606	// with empty values are omitted from API requests. However, any field
17607	// with an empty value appearing in NullFields will be sent to the
17608	// server as null. It is an error if a field in this list has a
17609	// non-empty value. This may be used to include null fields in Patch
17610	// requests.
17611	NullFields []string `json:"-"`
17612}
17613
17614func (s *InstancesSetMinCpuPlatformRequest) MarshalJSON() ([]byte, error) {
17615	type NoMethod InstancesSetMinCpuPlatformRequest
17616	raw := NoMethod(*s)
17617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17618}
17619
17620type InstancesSetServiceAccountRequest struct {
17621	// Email: Email address of the service account.
17622	Email string `json:"email,omitempty"`
17623
17624	// Scopes: The list of scopes to be made available for this service
17625	// account.
17626	Scopes []string `json:"scopes,omitempty"`
17627
17628	// ForceSendFields is a list of field names (e.g. "Email") to
17629	// unconditionally include in API requests. By default, fields with
17630	// empty values are omitted from API requests. However, any non-pointer,
17631	// non-interface field appearing in ForceSendFields will be sent to the
17632	// server regardless of whether the field is empty or not. This may be
17633	// used to include empty fields in Patch requests.
17634	ForceSendFields []string `json:"-"`
17635
17636	// NullFields is a list of field names (e.g. "Email") to include in API
17637	// requests with the JSON null value. By default, fields with empty
17638	// values are omitted from API requests. However, any field with an
17639	// empty value appearing in NullFields will be sent to the server as
17640	// null. It is an error if a field in this list has a non-empty value.
17641	// This may be used to include null fields in Patch requests.
17642	NullFields []string `json:"-"`
17643}
17644
17645func (s *InstancesSetServiceAccountRequest) MarshalJSON() ([]byte, error) {
17646	type NoMethod InstancesSetServiceAccountRequest
17647	raw := NoMethod(*s)
17648	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17649}
17650
17651type InstancesStartWithEncryptionKeyRequest struct {
17652	// Disks: Array of disks associated with this instance that are
17653	// protected with a customer-supplied encryption key.
17654	//
17655	// In order to start the instance, the disk url and its corresponding
17656	// key must be provided.
17657	//
17658	// If the disk is not protected with a customer-supplied encryption key
17659	// it should not be specified.
17660	Disks []*CustomerEncryptionKeyProtectedDisk `json:"disks,omitempty"`
17661
17662	// ForceSendFields is a list of field names (e.g. "Disks") to
17663	// unconditionally include in API requests. By default, fields with
17664	// empty values are omitted from API requests. However, any non-pointer,
17665	// non-interface field appearing in ForceSendFields will be sent to the
17666	// server regardless of whether the field is empty or not. This may be
17667	// used to include empty fields in Patch requests.
17668	ForceSendFields []string `json:"-"`
17669
17670	// NullFields is a list of field names (e.g. "Disks") to include in API
17671	// requests with the JSON null value. By default, fields with empty
17672	// values are omitted from API requests. However, any field with an
17673	// empty value appearing in NullFields will be sent to the server as
17674	// null. It is an error if a field in this list has a non-empty value.
17675	// This may be used to include null fields in Patch requests.
17676	NullFields []string `json:"-"`
17677}
17678
17679func (s *InstancesStartWithEncryptionKeyRequest) MarshalJSON() ([]byte, error) {
17680	type NoMethod InstancesStartWithEncryptionKeyRequest
17681	raw := NoMethod(*s)
17682	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17683}
17684
17685// Int64RangeMatch: HttpRouteRuleMatch criteria for field values that
17686// must stay within the specified integer range.
17687type Int64RangeMatch struct {
17688	// RangeEnd: The end of the range (exclusive) in signed long integer
17689	// format.
17690	RangeEnd int64 `json:"rangeEnd,omitempty,string"`
17691
17692	// RangeStart: The start of the range (inclusive) in signed long integer
17693	// format.
17694	RangeStart int64 `json:"rangeStart,omitempty,string"`
17695
17696	// ForceSendFields is a list of field names (e.g. "RangeEnd") to
17697	// unconditionally include in API requests. By default, fields with
17698	// empty values are omitted from API requests. However, any non-pointer,
17699	// non-interface field appearing in ForceSendFields will be sent to the
17700	// server regardless of whether the field is empty or not. This may be
17701	// used to include empty fields in Patch requests.
17702	ForceSendFields []string `json:"-"`
17703
17704	// NullFields is a list of field names (e.g. "RangeEnd") to include in
17705	// API requests with the JSON null value. By default, fields with empty
17706	// values are omitted from API requests. However, any field with an
17707	// empty value appearing in NullFields will be sent to the server as
17708	// null. It is an error if a field in this list has a non-empty value.
17709	// This may be used to include null fields in Patch requests.
17710	NullFields []string `json:"-"`
17711}
17712
17713func (s *Int64RangeMatch) MarshalJSON() ([]byte, error) {
17714	type NoMethod Int64RangeMatch
17715	raw := NoMethod(*s)
17716	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17717}
17718
17719// Interconnect: Represents an Interconnect resource.
17720//
17721// An Interconnect resource is a dedicated connection between the GCP
17722// network and your on-premises network. For more information, read the
17723// Dedicated Interconnect Overview. (== resource_for
17724// {$api_version}.interconnects ==)
17725type Interconnect struct {
17726	// AdminEnabled: Administrative status of the interconnect. When this is
17727	// set to true, the Interconnect is functional and can carry traffic.
17728	// When set to false, no packets can be carried over the interconnect
17729	// and no BGP routes are exchanged over it. By default, the status is
17730	// set to true.
17731	AdminEnabled bool `json:"adminEnabled,omitempty"`
17732
17733	// CircuitInfos: [Output Only] A list of CircuitInfo objects, that
17734	// describe the individual circuits in this LAG.
17735	CircuitInfos []*InterconnectCircuitInfo `json:"circuitInfos,omitempty"`
17736
17737	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
17738	// format.
17739	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17740
17741	// CustomerName: Customer name, to put in the Letter of Authorization as
17742	// the party authorized to request a crossconnect.
17743	CustomerName string `json:"customerName,omitempty"`
17744
17745	// Description: An optional description of this resource. Provide this
17746	// property when you create the resource.
17747	Description string `json:"description,omitempty"`
17748
17749	// ExpectedOutages: [Output Only] A list of outages expected for this
17750	// Interconnect.
17751	ExpectedOutages []*InterconnectOutageNotification `json:"expectedOutages,omitempty"`
17752
17753	// GoogleIpAddress: [Output Only] IP address configured on the Google
17754	// side of the Interconnect link. This can be used only for ping tests.
17755	GoogleIpAddress string `json:"googleIpAddress,omitempty"`
17756
17757	// GoogleReferenceId: [Output Only] Google reference ID to be used when
17758	// raising support tickets with Google or otherwise to debug backend
17759	// connectivity issues.
17760	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
17761
17762	// Id: [Output Only] The unique identifier for the resource. This
17763	// identifier is defined by the server.
17764	Id uint64 `json:"id,omitempty,string"`
17765
17766	// InterconnectAttachments: [Output Only] A list of the URLs of all
17767	// InterconnectAttachments configured to use this Interconnect.
17768	InterconnectAttachments []string `json:"interconnectAttachments,omitempty"`
17769
17770	// InterconnectType: Type of interconnect, which can take one of the
17771	// following values:
17772	// - PARTNER: A partner-managed interconnection shared between customers
17773	// though a partner.
17774	// - DEDICATED: A dedicated physical interconnection with the customer.
17775	// Note that a value IT_PRIVATE has been deprecated in favor of
17776	// DEDICATED.
17777	//
17778	// Possible values:
17779	//   "DEDICATED"
17780	//   "IT_PRIVATE"
17781	//   "PARTNER"
17782	InterconnectType string `json:"interconnectType,omitempty"`
17783
17784	// Kind: [Output Only] Type of the resource. Always compute#interconnect
17785	// for interconnects.
17786	Kind string `json:"kind,omitempty"`
17787
17788	// LabelFingerprint: A fingerprint for the labels being applied to this
17789	// Interconnect, which is essentially a hash of the labels set used for
17790	// optimistic locking. The fingerprint is initially generated by Compute
17791	// Engine and changes after every request to modify or update labels.
17792	// You must always provide an up-to-date fingerprint hash in order to
17793	// update or change labels, otherwise the request will fail with error
17794	// 412 conditionNotMet.
17795	//
17796	// To see the latest fingerprint, make a get() request to retrieve an
17797	// Interconnect.
17798	LabelFingerprint string `json:"labelFingerprint,omitempty"`
17799
17800	// Labels: Labels to apply to this Interconnect resource. These can be
17801	// later modified by the setLabels method. Each label key/value must
17802	// comply with RFC1035. Label values may be empty.
17803	Labels map[string]string `json:"labels,omitempty"`
17804
17805	// LinkType: Type of link requested, which can take one of the following
17806	// values:
17807	// - LINK_TYPE_ETHERNET_10G_LR: A 10G Ethernet with LR optics
17808	// - LINK_TYPE_ETHERNET_100G_LR: A 100G Ethernet with LR optics. Note
17809	// that this field indicates the speed of each of the links in the
17810	// bundle, not the speed of the entire bundle.
17811	//
17812	// Possible values:
17813	//   "LINK_TYPE_ETHERNET_100G_LR"
17814	//   "LINK_TYPE_ETHERNET_10G_LR"
17815	LinkType string `json:"linkType,omitempty"`
17816
17817	// Location: URL of the InterconnectLocation object that represents
17818	// where this connection is to be provisioned.
17819	Location string `json:"location,omitempty"`
17820
17821	// Name: Name of the resource. Provided by the client when the resource
17822	// is created. The name must be 1-63 characters long, and comply with
17823	// RFC1035. Specifically, the name must be 1-63 characters long and
17824	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
17825	// the first character must be a lowercase letter, and all following
17826	// characters must be a dash, lowercase letter, or digit, except the
17827	// last character, which cannot be a dash.
17828	Name string `json:"name,omitempty"`
17829
17830	// NocContactEmail: Email address to contact the customer NOC for
17831	// operations and maintenance notifications regarding this Interconnect.
17832	// If specified, this will be used for notifications in addition to all
17833	// other forms described, such as Stackdriver logs alerting and Cloud
17834	// Notifications.
17835	NocContactEmail string `json:"nocContactEmail,omitempty"`
17836
17837	// OperationalStatus: [Output Only] The current status of this
17838	// Interconnect's functionality, which can take one of the following
17839	// values:
17840	// - OS_ACTIVE: A valid Interconnect, which is turned up and is ready to
17841	// use. Attachments may be provisioned on this Interconnect.
17842	// - OS_UNPROVISIONED: An Interconnect that has not completed turnup. No
17843	// attachments may be provisioned on this Interconnect.
17844	// - OS_UNDER_MAINTENANCE: An Interconnect that is undergoing internal
17845	// maintenance. No attachments may be provisioned or updated on this
17846	// Interconnect.
17847	//
17848	// Possible values:
17849	//   "OS_ACTIVE"
17850	//   "OS_UNPROVISIONED"
17851	OperationalStatus string `json:"operationalStatus,omitempty"`
17852
17853	// PeerIpAddress: [Output Only] IP address configured on the customer
17854	// side of the Interconnect link. The customer should configure this IP
17855	// address during turnup when prompted by Google NOC. This can be used
17856	// only for ping tests.
17857	PeerIpAddress string `json:"peerIpAddress,omitempty"`
17858
17859	// ProvisionedLinkCount: [Output Only] Number of links actually
17860	// provisioned in this interconnect.
17861	ProvisionedLinkCount int64 `json:"provisionedLinkCount,omitempty"`
17862
17863	// RequestedLinkCount: Target number of physical links in the link
17864	// bundle, as requested by the customer.
17865	RequestedLinkCount int64 `json:"requestedLinkCount,omitempty"`
17866
17867	// SelfLink: [Output Only] Server-defined URL for the resource.
17868	SelfLink string `json:"selfLink,omitempty"`
17869
17870	// State: [Output Only] The current state of Interconnect functionality,
17871	// which can take one of the following values:
17872	// - ACTIVE: The Interconnect is valid, turned up and ready to use.
17873	// Attachments may be provisioned on this Interconnect.
17874	// - UNPROVISIONED: The Interconnect has not completed turnup. No
17875	// attachments may be provisioned on this Interconnect.
17876	// - UNDER_MAINTENANCE: The Interconnect is undergoing internal
17877	// maintenance. No attachments may be provisioned or updated on this
17878	// Interconnect.
17879	//
17880	// Possible values:
17881	//   "ACTIVE"
17882	//   "UNPROVISIONED"
17883	State string `json:"state,omitempty"`
17884
17885	// ServerResponse contains the HTTP response code and headers from the
17886	// server.
17887	googleapi.ServerResponse `json:"-"`
17888
17889	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
17890	// unconditionally include in API requests. By default, fields with
17891	// empty values are omitted from API requests. However, any non-pointer,
17892	// non-interface field appearing in ForceSendFields will be sent to the
17893	// server regardless of whether the field is empty or not. This may be
17894	// used to include empty fields in Patch requests.
17895	ForceSendFields []string `json:"-"`
17896
17897	// NullFields is a list of field names (e.g. "AdminEnabled") to include
17898	// in API requests with the JSON null value. By default, fields with
17899	// empty values are omitted from API requests. However, any field with
17900	// an empty value appearing in NullFields will be sent to the server as
17901	// null. It is an error if a field in this list has a non-empty value.
17902	// This may be used to include null fields in Patch requests.
17903	NullFields []string `json:"-"`
17904}
17905
17906func (s *Interconnect) MarshalJSON() ([]byte, error) {
17907	type NoMethod Interconnect
17908	raw := NoMethod(*s)
17909	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
17910}
17911
17912// InterconnectAttachment: Represents an Interconnect Attachment (VLAN)
17913// resource.
17914//
17915// You can use Interconnect attachments (VLANS) to connect your Virtual
17916// Private Cloud networks to your on-premises networks through an
17917// Interconnect. For more information, read  Creating VLAN Attachments.
17918// (== resource_for {$api_version}.interconnectAttachments ==)
17919type InterconnectAttachment struct {
17920	// AdminEnabled: Determines whether this Attachment will carry packets.
17921	// Not present for PARTNER_PROVIDER.
17922	AdminEnabled bool `json:"adminEnabled,omitempty"`
17923
17924	// Bandwidth: Provisioned bandwidth capacity for the interconnect
17925	// attachment. For attachments of type DEDICATED, the user can set the
17926	// bandwidth. For attachments of type PARTNER, the Google Partner that
17927	// is operating the interconnect must set the bandwidth. Output only for
17928	// PARTNER type, mutable for PARTNER_PROVIDER and DEDICATED, and can
17929	// take one of the following values:
17930	// - BPS_50M: 50 Mbit/s
17931	// - BPS_100M: 100 Mbit/s
17932	// - BPS_200M: 200 Mbit/s
17933	// - BPS_300M: 300 Mbit/s
17934	// - BPS_400M: 400 Mbit/s
17935	// - BPS_500M: 500 Mbit/s
17936	// - BPS_1G: 1 Gbit/s
17937	// - BPS_2G: 2 Gbit/s
17938	// - BPS_5G: 5 Gbit/s
17939	// - BPS_10G: 10 Gbit/s
17940	// - BPS_20G: 20 Gbit/s
17941	// - BPS_50G: 50 Gbit/s
17942	//
17943	// Possible values:
17944	//   "BPS_100M"
17945	//   "BPS_10G"
17946	//   "BPS_1G"
17947	//   "BPS_200M"
17948	//   "BPS_20G"
17949	//   "BPS_2G"
17950	//   "BPS_300M"
17951	//   "BPS_400M"
17952	//   "BPS_500M"
17953	//   "BPS_50G"
17954	//   "BPS_50M"
17955	//   "BPS_5G"
17956	Bandwidth string `json:"bandwidth,omitempty"`
17957
17958	// CandidateSubnets: Up to 16 candidate prefixes that can be used to
17959	// restrict the allocation of cloudRouterIpAddress and
17960	// customerRouterIpAddress for this attachment. All prefixes must be
17961	// within link-local address space (169.254.0.0/16) and must be /29 or
17962	// shorter (/28, /27, etc). Google will attempt to select an unused /29
17963	// from the supplied candidate prefix(es). The request will fail if all
17964	// possible /29s are in use on Google's edge. If not supplied, Google
17965	// will randomly select an unused /29 from all of link-local space.
17966	CandidateSubnets []string `json:"candidateSubnets,omitempty"`
17967
17968	// CloudRouterIpAddress: [Output Only] IPv4 address + prefix length to
17969	// be configured on Cloud Router Interface for this interconnect
17970	// attachment.
17971	CloudRouterIpAddress string `json:"cloudRouterIpAddress,omitempty"`
17972
17973	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
17974	// format.
17975	CreationTimestamp string `json:"creationTimestamp,omitempty"`
17976
17977	// CustomerRouterIpAddress: [Output Only] IPv4 address + prefix length
17978	// to be configured on the customer router subinterface for this
17979	// interconnect attachment.
17980	CustomerRouterIpAddress string `json:"customerRouterIpAddress,omitempty"`
17981
17982	// Description: An optional description of this resource.
17983	Description string `json:"description,omitempty"`
17984
17985	// EdgeAvailabilityDomain: Desired availability domain for the
17986	// attachment. Only available for type PARTNER, at creation time, and
17987	// can take one of the following values:
17988	// - AVAILABILITY_DOMAIN_ANY
17989	// - AVAILABILITY_DOMAIN_1
17990	// - AVAILABILITY_DOMAIN_2 For improved reliability, customers should
17991	// configure a pair of attachments, one per availability domain. The
17992	// selected availability domain will be provided to the Partner via the
17993	// pairing key, so that the provisioned circuit will lie in the
17994	// specified domain. If not specified, the value will default to
17995	// AVAILABILITY_DOMAIN_ANY.
17996	//
17997	// Possible values:
17998	//   "AVAILABILITY_DOMAIN_1"
17999	//   "AVAILABILITY_DOMAIN_2"
18000	//   "AVAILABILITY_DOMAIN_ANY"
18001	EdgeAvailabilityDomain string `json:"edgeAvailabilityDomain,omitempty"`
18002
18003	// GoogleReferenceId: [Output Only] Google reference ID, to be used when
18004	// raising support tickets with Google or otherwise to debug backend
18005	// connectivity issues. [Deprecated] This field is not used.
18006	GoogleReferenceId string `json:"googleReferenceId,omitempty"`
18007
18008	// Id: [Output Only] The unique identifier for the resource. This
18009	// identifier is defined by the server.
18010	Id uint64 `json:"id,omitempty,string"`
18011
18012	// Interconnect: URL of the underlying Interconnect object that this
18013	// attachment's traffic will traverse through.
18014	Interconnect string `json:"interconnect,omitempty"`
18015
18016	// Kind: [Output Only] Type of the resource. Always
18017	// compute#interconnectAttachment for interconnect attachments.
18018	Kind string `json:"kind,omitempty"`
18019
18020	// LabelFingerprint: A fingerprint for the labels being applied to this
18021	// InterconnectAttachment, which is essentially a hash of the labels set
18022	// used for optimistic locking. The fingerprint is initially generated
18023	// by Compute Engine and changes after every request to modify or update
18024	// labels. You must always provide an up-to-date fingerprint hash in
18025	// order to update or change labels, otherwise the request will fail
18026	// with error 412 conditionNotMet.
18027	//
18028	// To see the latest fingerprint, make a get() request to retrieve an
18029	// InterconnectAttachment.
18030	LabelFingerprint string `json:"labelFingerprint,omitempty"`
18031
18032	// Labels: Labels to apply to this InterconnectAttachment resource.
18033	// These can be later modified by the setLabels method. Each label
18034	// key/value must comply with RFC1035. Label values may be empty.
18035	Labels map[string]string `json:"labels,omitempty"`
18036
18037	// Name: Name of the resource. Provided by the client when the resource
18038	// is created. The name must be 1-63 characters long, and comply with
18039	// RFC1035. Specifically, the name must be 1-63 characters long and
18040	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
18041	// the first character must be a lowercase letter, and all following
18042	// characters must be a dash, lowercase letter, or digit, except the
18043	// last character, which cannot be a dash.
18044	Name string `json:"name,omitempty"`
18045
18046	// OperationalStatus: [Output Only] The current status of whether or not
18047	// this interconnect attachment is functional, which can take one of the
18048	// following values:
18049	// - OS_ACTIVE: The attachment has been turned up and is ready to use.
18050	//
18051	// - OS_UNPROVISIONED: The attachment is not ready to use yet, because
18052	// turnup is not complete.
18053	//
18054	// Possible values:
18055	//   "OS_ACTIVE"
18056	//   "OS_UNPROVISIONED"
18057	OperationalStatus string `json:"operationalStatus,omitempty"`
18058
18059	// PairingKey: [Output only for type PARTNER. Input only for
18060	// PARTNER_PROVIDER. Not present for DEDICATED]. The opaque identifier
18061	// of an PARTNER attachment used to initiate provisioning with a
18062	// selected partner. Of the form "XXXXX/region/domain"
18063	PairingKey string `json:"pairingKey,omitempty"`
18064
18065	// PartnerAsn: Optional BGP ASN for the router supplied by a Layer 3
18066	// Partner if they configured BGP on behalf of the customer. Output only
18067	// for PARTNER type, input only for PARTNER_PROVIDER, not available for
18068	// DEDICATED.
18069	PartnerAsn int64 `json:"partnerAsn,omitempty,string"`
18070
18071	// PartnerMetadata: Informational metadata about Partner attachments
18072	// from Partners to display to customers. Output only for for PARTNER
18073	// type, mutable for PARTNER_PROVIDER, not available for DEDICATED.
18074	PartnerMetadata *InterconnectAttachmentPartnerMetadata `json:"partnerMetadata,omitempty"`
18075
18076	// PrivateInterconnectInfo: [Output Only] Information specific to an
18077	// InterconnectAttachment. This property is populated if the
18078	// interconnect that this is attached to is of type DEDICATED.
18079	PrivateInterconnectInfo *InterconnectAttachmentPrivateInfo `json:"privateInterconnectInfo,omitempty"`
18080
18081	// Region: [Output Only] URL of the region where the regional
18082	// interconnect attachment resides. You must specify this field as part
18083	// of the HTTP request URL. It is not settable as a field in the request
18084	// body.
18085	Region string `json:"region,omitempty"`
18086
18087	// Router: URL of the Cloud Router to be used for dynamic routing. This
18088	// router must be in the same region as this InterconnectAttachment. The
18089	// InterconnectAttachment will automatically connect the Interconnect to
18090	// the network & region within which the Cloud Router is configured.
18091	Router string `json:"router,omitempty"`
18092
18093	// SelfLink: [Output Only] Server-defined URL for the resource.
18094	SelfLink string `json:"selfLink,omitempty"`
18095
18096	// State: [Output Only] The current state of this attachment's
18097	// functionality. Enum values ACTIVE and UNPROVISIONED are shared by
18098	// DEDICATED/PRIVATE, PARTNER, and PARTNER_PROVIDER interconnect
18099	// attachments, while enum values PENDING_PARTNER,
18100	// PARTNER_REQUEST_RECEIVED, and PENDING_CUSTOMER are used for only
18101	// PARTNER and PARTNER_PROVIDER interconnect attachments. This state can
18102	// take one of the following values:
18103	// - ACTIVE: The attachment has been turned up and is ready to use.
18104	// - UNPROVISIONED: The attachment is not ready to use yet, because
18105	// turnup is not complete.
18106	// - PENDING_PARTNER: A newly-created PARTNER attachment that has not
18107	// yet been configured on the Partner side.
18108	// - PARTNER_REQUEST_RECEIVED: A PARTNER attachment is in the process of
18109	// provisioning after a PARTNER_PROVIDER attachment was created that
18110	// references it.
18111	// - PENDING_CUSTOMER: A PARTNER or PARTNER_PROVIDER attachment that is
18112	// waiting for a customer to activate it.
18113	// - DEFUNCT: The attachment was deleted externally and is no longer
18114	// functional. This could be because the associated Interconnect was
18115	// removed, or because the other side of a Partner attachment was
18116	// deleted.
18117	//
18118	// Possible values:
18119	//   "ACTIVE"
18120	//   "DEFUNCT"
18121	//   "PARTNER_REQUEST_RECEIVED"
18122	//   "PENDING_CUSTOMER"
18123	//   "PENDING_PARTNER"
18124	//   "STATE_UNSPECIFIED"
18125	//   "UNPROVISIONED"
18126	State string `json:"state,omitempty"`
18127
18128	// Type: The type of interconnect attachment this is, which can take one
18129	// of the following values:
18130	// - DEDICATED: an attachment to a Dedicated Interconnect.
18131	// - PARTNER: an attachment to a Partner Interconnect, created by the
18132	// customer.
18133	// - PARTNER_PROVIDER: an attachment to a Partner Interconnect, created
18134	// by the partner.
18135	//
18136	// Possible values:
18137	//   "DEDICATED"
18138	//   "PARTNER"
18139	//   "PARTNER_PROVIDER"
18140	Type string `json:"type,omitempty"`
18141
18142	// VlanTag8021q: The IEEE 802.1Q VLAN tag for this attachment, in the
18143	// range 2-4094. Only specified at creation time.
18144	VlanTag8021q int64 `json:"vlanTag8021q,omitempty"`
18145
18146	// ServerResponse contains the HTTP response code and headers from the
18147	// server.
18148	googleapi.ServerResponse `json:"-"`
18149
18150	// ForceSendFields is a list of field names (e.g. "AdminEnabled") to
18151	// unconditionally include in API requests. By default, fields with
18152	// empty values are omitted from API requests. However, any non-pointer,
18153	// non-interface field appearing in ForceSendFields will be sent to the
18154	// server regardless of whether the field is empty or not. This may be
18155	// used to include empty fields in Patch requests.
18156	ForceSendFields []string `json:"-"`
18157
18158	// NullFields is a list of field names (e.g. "AdminEnabled") to include
18159	// in API requests with the JSON null value. By default, fields with
18160	// empty values are omitted from API requests. However, any field with
18161	// an empty value appearing in NullFields will be sent to the server as
18162	// null. It is an error if a field in this list has a non-empty value.
18163	// This may be used to include null fields in Patch requests.
18164	NullFields []string `json:"-"`
18165}
18166
18167func (s *InterconnectAttachment) MarshalJSON() ([]byte, error) {
18168	type NoMethod InterconnectAttachment
18169	raw := NoMethod(*s)
18170	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18171}
18172
18173type InterconnectAttachmentAggregatedList struct {
18174	// Id: [Output Only] Unique identifier for the resource; defined by the
18175	// server.
18176	Id string `json:"id,omitempty"`
18177
18178	// Items: A list of InterconnectAttachmentsScopedList resources.
18179	Items map[string]InterconnectAttachmentsScopedList `json:"items,omitempty"`
18180
18181	// Kind: [Output Only] Type of resource. Always
18182	// compute#interconnectAttachmentAggregatedList for aggregated lists of
18183	// interconnect attachments.
18184	Kind string `json:"kind,omitempty"`
18185
18186	// NextPageToken: [Output Only] This token allows you to get the next
18187	// page of results for list requests. If the number of results is larger
18188	// than maxResults, use the nextPageToken as a value for the query
18189	// parameter pageToken in the next list request. Subsequent list
18190	// requests will have their own nextPageToken to continue paging through
18191	// the results.
18192	NextPageToken string `json:"nextPageToken,omitempty"`
18193
18194	// SelfLink: [Output Only] Server-defined URL for this resource.
18195	SelfLink string `json:"selfLink,omitempty"`
18196
18197	// Warning: [Output Only] Informational warning message.
18198	Warning *InterconnectAttachmentAggregatedListWarning `json:"warning,omitempty"`
18199
18200	// ServerResponse contains the HTTP response code and headers from the
18201	// server.
18202	googleapi.ServerResponse `json:"-"`
18203
18204	// ForceSendFields is a list of field names (e.g. "Id") to
18205	// unconditionally include in API requests. By default, fields with
18206	// empty values are omitted from API requests. However, any non-pointer,
18207	// non-interface field appearing in ForceSendFields will be sent to the
18208	// server regardless of whether the field is empty or not. This may be
18209	// used to include empty fields in Patch requests.
18210	ForceSendFields []string `json:"-"`
18211
18212	// NullFields is a list of field names (e.g. "Id") to include in API
18213	// requests with the JSON null value. By default, fields with empty
18214	// values are omitted from API requests. However, any field with an
18215	// empty value appearing in NullFields will be sent to the server as
18216	// null. It is an error if a field in this list has a non-empty value.
18217	// This may be used to include null fields in Patch requests.
18218	NullFields []string `json:"-"`
18219}
18220
18221func (s *InterconnectAttachmentAggregatedList) MarshalJSON() ([]byte, error) {
18222	type NoMethod InterconnectAttachmentAggregatedList
18223	raw := NoMethod(*s)
18224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18225}
18226
18227// InterconnectAttachmentAggregatedListWarning: [Output Only]
18228// Informational warning message.
18229type InterconnectAttachmentAggregatedListWarning struct {
18230	// Code: [Output Only] A warning code, if applicable. For example,
18231	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18232	// the response.
18233	//
18234	// Possible values:
18235	//   "CLEANUP_FAILED"
18236	//   "DEPRECATED_RESOURCE_USED"
18237	//   "DEPRECATED_TYPE_USED"
18238	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18239	//   "EXPERIMENTAL_TYPE_USED"
18240	//   "EXTERNAL_API_WARNING"
18241	//   "FIELD_VALUE_OVERRIDEN"
18242	//   "INJECTED_KERNELS_DEPRECATED"
18243	//   "MISSING_TYPE_DEPENDENCY"
18244	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18245	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18246	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18247	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18248	//   "NEXT_HOP_NOT_RUNNING"
18249	//   "NOT_CRITICAL_ERROR"
18250	//   "NO_RESULTS_ON_PAGE"
18251	//   "REQUIRED_TOS_AGREEMENT"
18252	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18253	//   "RESOURCE_NOT_DELETED"
18254	//   "SCHEMA_VALIDATION_IGNORED"
18255	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18256	//   "UNDECLARED_PROPERTIES"
18257	//   "UNREACHABLE"
18258	Code string `json:"code,omitempty"`
18259
18260	// Data: [Output Only] Metadata about this warning in key: value format.
18261	// For example:
18262	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18263	Data []*InterconnectAttachmentAggregatedListWarningData `json:"data,omitempty"`
18264
18265	// Message: [Output Only] A human-readable description of the warning
18266	// code.
18267	Message string `json:"message,omitempty"`
18268
18269	// ForceSendFields is a list of field names (e.g. "Code") to
18270	// unconditionally include in API requests. By default, fields with
18271	// empty values are omitted from API requests. However, any non-pointer,
18272	// non-interface field appearing in ForceSendFields will be sent to the
18273	// server regardless of whether the field is empty or not. This may be
18274	// used to include empty fields in Patch requests.
18275	ForceSendFields []string `json:"-"`
18276
18277	// NullFields is a list of field names (e.g. "Code") to include in API
18278	// requests with the JSON null value. By default, fields with empty
18279	// values are omitted from API requests. However, any field with an
18280	// empty value appearing in NullFields will be sent to the server as
18281	// null. It is an error if a field in this list has a non-empty value.
18282	// This may be used to include null fields in Patch requests.
18283	NullFields []string `json:"-"`
18284}
18285
18286func (s *InterconnectAttachmentAggregatedListWarning) MarshalJSON() ([]byte, error) {
18287	type NoMethod InterconnectAttachmentAggregatedListWarning
18288	raw := NoMethod(*s)
18289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18290}
18291
18292type InterconnectAttachmentAggregatedListWarningData struct {
18293	// Key: [Output Only] A key that provides more detail on the warning
18294	// being returned. For example, for warnings where there are no results
18295	// in a list request for a particular zone, this key might be scope and
18296	// the key value might be the zone name. Other examples might be a key
18297	// indicating a deprecated resource and a suggested replacement, or a
18298	// warning about invalid network settings (for example, if an instance
18299	// attempts to perform IP forwarding but is not enabled for IP
18300	// forwarding).
18301	Key string `json:"key,omitempty"`
18302
18303	// Value: [Output Only] A warning data value corresponding to the key.
18304	Value string `json:"value,omitempty"`
18305
18306	// ForceSendFields is a list of field names (e.g. "Key") to
18307	// unconditionally include in API requests. By default, fields with
18308	// empty values are omitted from API requests. However, any non-pointer,
18309	// non-interface field appearing in ForceSendFields will be sent to the
18310	// server regardless of whether the field is empty or not. This may be
18311	// used to include empty fields in Patch requests.
18312	ForceSendFields []string `json:"-"`
18313
18314	// NullFields is a list of field names (e.g. "Key") to include in API
18315	// requests with the JSON null value. By default, fields with empty
18316	// values are omitted from API requests. However, any field with an
18317	// empty value appearing in NullFields will be sent to the server as
18318	// null. It is an error if a field in this list has a non-empty value.
18319	// This may be used to include null fields in Patch requests.
18320	NullFields []string `json:"-"`
18321}
18322
18323func (s *InterconnectAttachmentAggregatedListWarningData) MarshalJSON() ([]byte, error) {
18324	type NoMethod InterconnectAttachmentAggregatedListWarningData
18325	raw := NoMethod(*s)
18326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18327}
18328
18329// InterconnectAttachmentList: Response to the list request, and
18330// contains a list of interconnect attachments.
18331type InterconnectAttachmentList struct {
18332	// Id: [Output Only] Unique identifier for the resource; defined by the
18333	// server.
18334	Id string `json:"id,omitempty"`
18335
18336	// Items: A list of InterconnectAttachment resources.
18337	Items []*InterconnectAttachment `json:"items,omitempty"`
18338
18339	// Kind: [Output Only] Type of resource. Always
18340	// compute#interconnectAttachmentList for lists of interconnect
18341	// attachments.
18342	Kind string `json:"kind,omitempty"`
18343
18344	// NextPageToken: [Output Only] This token allows you to get the next
18345	// page of results for list requests. If the number of results is larger
18346	// than maxResults, use the nextPageToken as a value for the query
18347	// parameter pageToken in the next list request. Subsequent list
18348	// requests will have their own nextPageToken to continue paging through
18349	// the results.
18350	NextPageToken string `json:"nextPageToken,omitempty"`
18351
18352	// SelfLink: [Output Only] Server-defined URL for this resource.
18353	SelfLink string `json:"selfLink,omitempty"`
18354
18355	// Warning: [Output Only] Informational warning message.
18356	Warning *InterconnectAttachmentListWarning `json:"warning,omitempty"`
18357
18358	// ServerResponse contains the HTTP response code and headers from the
18359	// server.
18360	googleapi.ServerResponse `json:"-"`
18361
18362	// ForceSendFields is a list of field names (e.g. "Id") to
18363	// unconditionally include in API requests. By default, fields with
18364	// empty values are omitted from API requests. However, any non-pointer,
18365	// non-interface field appearing in ForceSendFields will be sent to the
18366	// server regardless of whether the field is empty or not. This may be
18367	// used to include empty fields in Patch requests.
18368	ForceSendFields []string `json:"-"`
18369
18370	// NullFields is a list of field names (e.g. "Id") to include in API
18371	// requests with the JSON null value. By default, fields with empty
18372	// values are omitted from API requests. However, any field with an
18373	// empty value appearing in NullFields will be sent to the server as
18374	// null. It is an error if a field in this list has a non-empty value.
18375	// This may be used to include null fields in Patch requests.
18376	NullFields []string `json:"-"`
18377}
18378
18379func (s *InterconnectAttachmentList) MarshalJSON() ([]byte, error) {
18380	type NoMethod InterconnectAttachmentList
18381	raw := NoMethod(*s)
18382	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18383}
18384
18385// InterconnectAttachmentListWarning: [Output Only] Informational
18386// warning message.
18387type InterconnectAttachmentListWarning struct {
18388	// Code: [Output Only] A warning code, if applicable. For example,
18389	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18390	// the response.
18391	//
18392	// Possible values:
18393	//   "CLEANUP_FAILED"
18394	//   "DEPRECATED_RESOURCE_USED"
18395	//   "DEPRECATED_TYPE_USED"
18396	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18397	//   "EXPERIMENTAL_TYPE_USED"
18398	//   "EXTERNAL_API_WARNING"
18399	//   "FIELD_VALUE_OVERRIDEN"
18400	//   "INJECTED_KERNELS_DEPRECATED"
18401	//   "MISSING_TYPE_DEPENDENCY"
18402	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18403	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18404	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18405	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18406	//   "NEXT_HOP_NOT_RUNNING"
18407	//   "NOT_CRITICAL_ERROR"
18408	//   "NO_RESULTS_ON_PAGE"
18409	//   "REQUIRED_TOS_AGREEMENT"
18410	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18411	//   "RESOURCE_NOT_DELETED"
18412	//   "SCHEMA_VALIDATION_IGNORED"
18413	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18414	//   "UNDECLARED_PROPERTIES"
18415	//   "UNREACHABLE"
18416	Code string `json:"code,omitempty"`
18417
18418	// Data: [Output Only] Metadata about this warning in key: value format.
18419	// For example:
18420	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18421	Data []*InterconnectAttachmentListWarningData `json:"data,omitempty"`
18422
18423	// Message: [Output Only] A human-readable description of the warning
18424	// code.
18425	Message string `json:"message,omitempty"`
18426
18427	// ForceSendFields is a list of field names (e.g. "Code") to
18428	// unconditionally include in API requests. By default, fields with
18429	// empty values are omitted from API requests. However, any non-pointer,
18430	// non-interface field appearing in ForceSendFields will be sent to the
18431	// server regardless of whether the field is empty or not. This may be
18432	// used to include empty fields in Patch requests.
18433	ForceSendFields []string `json:"-"`
18434
18435	// NullFields is a list of field names (e.g. "Code") to include in API
18436	// requests with the JSON null value. By default, fields with empty
18437	// values are omitted from API requests. However, any field with an
18438	// empty value appearing in NullFields will be sent to the server as
18439	// null. It is an error if a field in this list has a non-empty value.
18440	// This may be used to include null fields in Patch requests.
18441	NullFields []string `json:"-"`
18442}
18443
18444func (s *InterconnectAttachmentListWarning) MarshalJSON() ([]byte, error) {
18445	type NoMethod InterconnectAttachmentListWarning
18446	raw := NoMethod(*s)
18447	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18448}
18449
18450type InterconnectAttachmentListWarningData struct {
18451	// Key: [Output Only] A key that provides more detail on the warning
18452	// being returned. For example, for warnings where there are no results
18453	// in a list request for a particular zone, this key might be scope and
18454	// the key value might be the zone name. Other examples might be a key
18455	// indicating a deprecated resource and a suggested replacement, or a
18456	// warning about invalid network settings (for example, if an instance
18457	// attempts to perform IP forwarding but is not enabled for IP
18458	// forwarding).
18459	Key string `json:"key,omitempty"`
18460
18461	// Value: [Output Only] A warning data value corresponding to the key.
18462	Value string `json:"value,omitempty"`
18463
18464	// ForceSendFields is a list of field names (e.g. "Key") to
18465	// unconditionally include in API requests. By default, fields with
18466	// empty values are omitted from API requests. However, any non-pointer,
18467	// non-interface field appearing in ForceSendFields will be sent to the
18468	// server regardless of whether the field is empty or not. This may be
18469	// used to include empty fields in Patch requests.
18470	ForceSendFields []string `json:"-"`
18471
18472	// NullFields is a list of field names (e.g. "Key") to include in API
18473	// requests with the JSON null value. By default, fields with empty
18474	// values are omitted from API requests. However, any field with an
18475	// empty value appearing in NullFields will be sent to the server as
18476	// null. It is an error if a field in this list has a non-empty value.
18477	// This may be used to include null fields in Patch requests.
18478	NullFields []string `json:"-"`
18479}
18480
18481func (s *InterconnectAttachmentListWarningData) MarshalJSON() ([]byte, error) {
18482	type NoMethod InterconnectAttachmentListWarningData
18483	raw := NoMethod(*s)
18484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18485}
18486
18487// InterconnectAttachmentPartnerMetadata: Informational metadata about
18488// Partner attachments from Partners to display to customers. These
18489// fields are propagated from PARTNER_PROVIDER attachments to their
18490// corresponding PARTNER attachments.
18491type InterconnectAttachmentPartnerMetadata struct {
18492	// InterconnectName: Plain text name of the Interconnect this attachment
18493	// is connected to, as displayed in the Partner's portal. For instance
18494	// "Chicago 1". This value may be validated to match approved Partner
18495	// values.
18496	InterconnectName string `json:"interconnectName,omitempty"`
18497
18498	// PartnerName: Plain text name of the Partner providing this
18499	// attachment. This value may be validated to match approved Partner
18500	// values.
18501	PartnerName string `json:"partnerName,omitempty"`
18502
18503	// PortalUrl: URL of the Partner's portal for this Attachment. Partners
18504	// may customise this to be a deep link to the specific resource on the
18505	// Partner portal. This value may be validated to match approved Partner
18506	// values.
18507	PortalUrl string `json:"portalUrl,omitempty"`
18508
18509	// ForceSendFields is a list of field names (e.g. "InterconnectName") to
18510	// unconditionally include in API requests. By default, fields with
18511	// empty values are omitted from API requests. However, any non-pointer,
18512	// non-interface field appearing in ForceSendFields will be sent to the
18513	// server regardless of whether the field is empty or not. This may be
18514	// used to include empty fields in Patch requests.
18515	ForceSendFields []string `json:"-"`
18516
18517	// NullFields is a list of field names (e.g. "InterconnectName") to
18518	// include in API requests with the JSON null value. By default, fields
18519	// with empty values are omitted from API requests. However, any field
18520	// with an empty value appearing in NullFields will be sent to the
18521	// server as null. It is an error if a field in this list has a
18522	// non-empty value. This may be used to include null fields in Patch
18523	// requests.
18524	NullFields []string `json:"-"`
18525}
18526
18527func (s *InterconnectAttachmentPartnerMetadata) MarshalJSON() ([]byte, error) {
18528	type NoMethod InterconnectAttachmentPartnerMetadata
18529	raw := NoMethod(*s)
18530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18531}
18532
18533// InterconnectAttachmentPrivateInfo: Information for an interconnect
18534// attachment when this belongs to an interconnect of type DEDICATED.
18535type InterconnectAttachmentPrivateInfo struct {
18536	// Tag8021q: [Output Only] 802.1q encapsulation tag to be used for
18537	// traffic between Google and the customer, going to and from this
18538	// network and region.
18539	Tag8021q int64 `json:"tag8021q,omitempty"`
18540
18541	// ForceSendFields is a list of field names (e.g. "Tag8021q") to
18542	// unconditionally include in API requests. By default, fields with
18543	// empty values are omitted from API requests. However, any non-pointer,
18544	// non-interface field appearing in ForceSendFields will be sent to the
18545	// server regardless of whether the field is empty or not. This may be
18546	// used to include empty fields in Patch requests.
18547	ForceSendFields []string `json:"-"`
18548
18549	// NullFields is a list of field names (e.g. "Tag8021q") to include in
18550	// API requests with the JSON null value. By default, fields with empty
18551	// values are omitted from API requests. However, any field with an
18552	// empty value appearing in NullFields will be sent to the server as
18553	// null. It is an error if a field in this list has a non-empty value.
18554	// This may be used to include null fields in Patch requests.
18555	NullFields []string `json:"-"`
18556}
18557
18558func (s *InterconnectAttachmentPrivateInfo) MarshalJSON() ([]byte, error) {
18559	type NoMethod InterconnectAttachmentPrivateInfo
18560	raw := NoMethod(*s)
18561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18562}
18563
18564type InterconnectAttachmentsScopedList struct {
18565	// InterconnectAttachments: A list of interconnect attachments contained
18566	// in this scope.
18567	InterconnectAttachments []*InterconnectAttachment `json:"interconnectAttachments,omitempty"`
18568
18569	// Warning: Informational warning which replaces the list of addresses
18570	// when the list is empty.
18571	Warning *InterconnectAttachmentsScopedListWarning `json:"warning,omitempty"`
18572
18573	// ForceSendFields is a list of field names (e.g.
18574	// "InterconnectAttachments") to unconditionally include in API
18575	// requests. By default, fields with empty values are omitted from API
18576	// requests. However, any non-pointer, non-interface field appearing in
18577	// ForceSendFields will be sent to the server regardless of whether the
18578	// field is empty or not. This may be used to include empty fields in
18579	// Patch requests.
18580	ForceSendFields []string `json:"-"`
18581
18582	// NullFields is a list of field names (e.g. "InterconnectAttachments")
18583	// to include in API requests with the JSON null value. By default,
18584	// fields with empty values are omitted from API requests. However, any
18585	// field with an empty value appearing in NullFields will be sent to the
18586	// server as null. It is an error if a field in this list has a
18587	// non-empty value. This may be used to include null fields in Patch
18588	// requests.
18589	NullFields []string `json:"-"`
18590}
18591
18592func (s *InterconnectAttachmentsScopedList) MarshalJSON() ([]byte, error) {
18593	type NoMethod InterconnectAttachmentsScopedList
18594	raw := NoMethod(*s)
18595	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18596}
18597
18598// InterconnectAttachmentsScopedListWarning: Informational warning which
18599// replaces the list of addresses when the list is empty.
18600type InterconnectAttachmentsScopedListWarning struct {
18601	// Code: [Output Only] A warning code, if applicable. For example,
18602	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
18603	// the response.
18604	//
18605	// Possible values:
18606	//   "CLEANUP_FAILED"
18607	//   "DEPRECATED_RESOURCE_USED"
18608	//   "DEPRECATED_TYPE_USED"
18609	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
18610	//   "EXPERIMENTAL_TYPE_USED"
18611	//   "EXTERNAL_API_WARNING"
18612	//   "FIELD_VALUE_OVERRIDEN"
18613	//   "INJECTED_KERNELS_DEPRECATED"
18614	//   "MISSING_TYPE_DEPENDENCY"
18615	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
18616	//   "NEXT_HOP_CANNOT_IP_FORWARD"
18617	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
18618	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
18619	//   "NEXT_HOP_NOT_RUNNING"
18620	//   "NOT_CRITICAL_ERROR"
18621	//   "NO_RESULTS_ON_PAGE"
18622	//   "REQUIRED_TOS_AGREEMENT"
18623	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
18624	//   "RESOURCE_NOT_DELETED"
18625	//   "SCHEMA_VALIDATION_IGNORED"
18626	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
18627	//   "UNDECLARED_PROPERTIES"
18628	//   "UNREACHABLE"
18629	Code string `json:"code,omitempty"`
18630
18631	// Data: [Output Only] Metadata about this warning in key: value format.
18632	// For example:
18633	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
18634	Data []*InterconnectAttachmentsScopedListWarningData `json:"data,omitempty"`
18635
18636	// Message: [Output Only] A human-readable description of the warning
18637	// code.
18638	Message string `json:"message,omitempty"`
18639
18640	// ForceSendFields is a list of field names (e.g. "Code") to
18641	// unconditionally include in API requests. By default, fields with
18642	// empty values are omitted from API requests. However, any non-pointer,
18643	// non-interface field appearing in ForceSendFields will be sent to the
18644	// server regardless of whether the field is empty or not. This may be
18645	// used to include empty fields in Patch requests.
18646	ForceSendFields []string `json:"-"`
18647
18648	// NullFields is a list of field names (e.g. "Code") to include in API
18649	// requests with the JSON null value. By default, fields with empty
18650	// values are omitted from API requests. However, any field with an
18651	// empty value appearing in NullFields will be sent to the server as
18652	// null. It is an error if a field in this list has a non-empty value.
18653	// This may be used to include null fields in Patch requests.
18654	NullFields []string `json:"-"`
18655}
18656
18657func (s *InterconnectAttachmentsScopedListWarning) MarshalJSON() ([]byte, error) {
18658	type NoMethod InterconnectAttachmentsScopedListWarning
18659	raw := NoMethod(*s)
18660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18661}
18662
18663type InterconnectAttachmentsScopedListWarningData struct {
18664	// Key: [Output Only] A key that provides more detail on the warning
18665	// being returned. For example, for warnings where there are no results
18666	// in a list request for a particular zone, this key might be scope and
18667	// the key value might be the zone name. Other examples might be a key
18668	// indicating a deprecated resource and a suggested replacement, or a
18669	// warning about invalid network settings (for example, if an instance
18670	// attempts to perform IP forwarding but is not enabled for IP
18671	// forwarding).
18672	Key string `json:"key,omitempty"`
18673
18674	// Value: [Output Only] A warning data value corresponding to the key.
18675	Value string `json:"value,omitempty"`
18676
18677	// ForceSendFields is a list of field names (e.g. "Key") to
18678	// unconditionally include in API requests. By default, fields with
18679	// empty values are omitted from API requests. However, any non-pointer,
18680	// non-interface field appearing in ForceSendFields will be sent to the
18681	// server regardless of whether the field is empty or not. This may be
18682	// used to include empty fields in Patch requests.
18683	ForceSendFields []string `json:"-"`
18684
18685	// NullFields is a list of field names (e.g. "Key") to include in API
18686	// requests with the JSON null value. By default, fields with empty
18687	// values are omitted from API requests. However, any field with an
18688	// empty value appearing in NullFields will be sent to the server as
18689	// null. It is an error if a field in this list has a non-empty value.
18690	// This may be used to include null fields in Patch requests.
18691	NullFields []string `json:"-"`
18692}
18693
18694func (s *InterconnectAttachmentsScopedListWarningData) MarshalJSON() ([]byte, error) {
18695	type NoMethod InterconnectAttachmentsScopedListWarningData
18696	raw := NoMethod(*s)
18697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18698}
18699
18700// InterconnectCircuitInfo: Describes a single physical circuit between
18701// the Customer and Google. CircuitInfo objects are created by Google,
18702// so all fields are output only. Next id: 4
18703type InterconnectCircuitInfo struct {
18704	// CustomerDemarcId: Customer-side demarc ID for this circuit.
18705	CustomerDemarcId string `json:"customerDemarcId,omitempty"`
18706
18707	// GoogleCircuitId: Google-assigned unique ID for this circuit. Assigned
18708	// at circuit turn-up.
18709	GoogleCircuitId string `json:"googleCircuitId,omitempty"`
18710
18711	// GoogleDemarcId: Google-side demarc ID for this circuit. Assigned at
18712	// circuit turn-up and provided by Google to the customer in the LOA.
18713	GoogleDemarcId string `json:"googleDemarcId,omitempty"`
18714
18715	// ForceSendFields is a list of field names (e.g. "CustomerDemarcId") to
18716	// unconditionally include in API requests. By default, fields with
18717	// empty values are omitted from API requests. However, any non-pointer,
18718	// non-interface field appearing in ForceSendFields will be sent to the
18719	// server regardless of whether the field is empty or not. This may be
18720	// used to include empty fields in Patch requests.
18721	ForceSendFields []string `json:"-"`
18722
18723	// NullFields is a list of field names (e.g. "CustomerDemarcId") to
18724	// include in API requests with the JSON null value. By default, fields
18725	// with empty values are omitted from API requests. However, any field
18726	// with an empty value appearing in NullFields will be sent to the
18727	// server as null. It is an error if a field in this list has a
18728	// non-empty value. This may be used to include null fields in Patch
18729	// requests.
18730	NullFields []string `json:"-"`
18731}
18732
18733func (s *InterconnectCircuitInfo) MarshalJSON() ([]byte, error) {
18734	type NoMethod InterconnectCircuitInfo
18735	raw := NoMethod(*s)
18736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18737}
18738
18739// InterconnectDiagnostics: Diagnostics information about interconnect,
18740// contains detailed and current technical information about Google's
18741// side of the connection.
18742type InterconnectDiagnostics struct {
18743	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
18744	// describing individual neighbors currently seen by the Google router
18745	// in the ARP cache for the Interconnect. This will be empty when the
18746	// Interconnect is not bundled.
18747	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
18748
18749	// Links: A list of InterconnectDiagnostics.LinkStatus objects,
18750	// describing the status for each link on the Interconnect.
18751	Links []*InterconnectDiagnosticsLinkStatus `json:"links,omitempty"`
18752
18753	// MacAddress: The MAC address of the Interconnect's bundle interface.
18754	MacAddress string `json:"macAddress,omitempty"`
18755
18756	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
18757	// unconditionally include in API requests. By default, fields with
18758	// empty values are omitted from API requests. However, any non-pointer,
18759	// non-interface field appearing in ForceSendFields will be sent to the
18760	// server regardless of whether the field is empty or not. This may be
18761	// used to include empty fields in Patch requests.
18762	ForceSendFields []string `json:"-"`
18763
18764	// NullFields is a list of field names (e.g. "ArpCaches") to include in
18765	// API requests with the JSON null value. By default, fields with empty
18766	// values are omitted from API requests. However, any field with an
18767	// empty value appearing in NullFields will be sent to the server as
18768	// null. It is an error if a field in this list has a non-empty value.
18769	// This may be used to include null fields in Patch requests.
18770	NullFields []string `json:"-"`
18771}
18772
18773func (s *InterconnectDiagnostics) MarshalJSON() ([]byte, error) {
18774	type NoMethod InterconnectDiagnostics
18775	raw := NoMethod(*s)
18776	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18777}
18778
18779// InterconnectDiagnosticsARPEntry: Describing the ARP neighbor entries
18780// seen on this link
18781type InterconnectDiagnosticsARPEntry struct {
18782	// IpAddress: The IP address of this ARP neighbor.
18783	IpAddress string `json:"ipAddress,omitempty"`
18784
18785	// MacAddress: The MAC address of this ARP neighbor.
18786	MacAddress string `json:"macAddress,omitempty"`
18787
18788	// ForceSendFields is a list of field names (e.g. "IpAddress") to
18789	// unconditionally include in API requests. By default, fields with
18790	// empty values are omitted from API requests. However, any non-pointer,
18791	// non-interface field appearing in ForceSendFields will be sent to the
18792	// server regardless of whether the field is empty or not. This may be
18793	// used to include empty fields in Patch requests.
18794	ForceSendFields []string `json:"-"`
18795
18796	// NullFields is a list of field names (e.g. "IpAddress") to include in
18797	// API requests with the JSON null value. By default, fields with empty
18798	// values are omitted from API requests. However, any field with an
18799	// empty value appearing in NullFields will be sent to the server as
18800	// null. It is an error if a field in this list has a non-empty value.
18801	// This may be used to include null fields in Patch requests.
18802	NullFields []string `json:"-"`
18803}
18804
18805func (s *InterconnectDiagnosticsARPEntry) MarshalJSON() ([]byte, error) {
18806	type NoMethod InterconnectDiagnosticsARPEntry
18807	raw := NoMethod(*s)
18808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18809}
18810
18811type InterconnectDiagnosticsLinkLACPStatus struct {
18812	// GoogleSystemId: System ID of the port on Google's side of the LACP
18813	// exchange.
18814	GoogleSystemId string `json:"googleSystemId,omitempty"`
18815
18816	// NeighborSystemId: System ID of the port on the neighbor's side of the
18817	// LACP exchange.
18818	NeighborSystemId string `json:"neighborSystemId,omitempty"`
18819
18820	// State: The state of a LACP link, which can take one of the following
18821	// values:
18822	// - ACTIVE: The link is configured and active within the bundle.
18823	// - DETACHED: The link is not configured within the bundle. This means
18824	// that the rest of the object should be empty.
18825	//
18826	// Possible values:
18827	//   "ACTIVE"
18828	//   "DETACHED"
18829	State string `json:"state,omitempty"`
18830
18831	// ForceSendFields is a list of field names (e.g. "GoogleSystemId") to
18832	// unconditionally include in API requests. By default, fields with
18833	// empty values are omitted from API requests. However, any non-pointer,
18834	// non-interface field appearing in ForceSendFields will be sent to the
18835	// server regardless of whether the field is empty or not. This may be
18836	// used to include empty fields in Patch requests.
18837	ForceSendFields []string `json:"-"`
18838
18839	// NullFields is a list of field names (e.g. "GoogleSystemId") to
18840	// include in API requests with the JSON null value. By default, fields
18841	// with empty values are omitted from API requests. However, any field
18842	// with an empty value appearing in NullFields will be sent to the
18843	// server as null. It is an error if a field in this list has a
18844	// non-empty value. This may be used to include null fields in Patch
18845	// requests.
18846	NullFields []string `json:"-"`
18847}
18848
18849func (s *InterconnectDiagnosticsLinkLACPStatus) MarshalJSON() ([]byte, error) {
18850	type NoMethod InterconnectDiagnosticsLinkLACPStatus
18851	raw := NoMethod(*s)
18852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18853}
18854
18855type InterconnectDiagnosticsLinkOpticalPower struct {
18856	// State: The status of the current value when compared to the warning
18857	// and alarm levels for the receiving or transmitting transceiver.
18858	// Possible states include:
18859	// - OK: The value has not crossed a warning threshold.
18860	// - LOW_WARNING: The value has crossed below the low warning threshold.
18861	//
18862	// - HIGH_WARNING: The value has crossed above the high warning
18863	// threshold.
18864	// - LOW_ALARM: The value has crossed below the low alarm threshold.
18865	// - HIGH_ALARM: The value has crossed above the high alarm threshold.
18866	//
18867	// Possible values:
18868	//   "HIGH_ALARM"
18869	//   "HIGH_WARNING"
18870	//   "LOW_ALARM"
18871	//   "LOW_WARNING"
18872	//   "OK"
18873	State string `json:"state,omitempty"`
18874
18875	// Value: Value of the current receiving or transmitting optical power,
18876	// read in dBm. Take a known good optical value, give it a 10% margin
18877	// and trigger warnings relative to that value. In general, a -7dBm
18878	// warning and a -11dBm alarm are good optical value estimates for most
18879	// links.
18880	Value float64 `json:"value,omitempty"`
18881
18882	// ForceSendFields is a list of field names (e.g. "State") to
18883	// unconditionally include in API requests. By default, fields with
18884	// empty values are omitted from API requests. However, any non-pointer,
18885	// non-interface field appearing in ForceSendFields will be sent to the
18886	// server regardless of whether the field is empty or not. This may be
18887	// used to include empty fields in Patch requests.
18888	ForceSendFields []string `json:"-"`
18889
18890	// NullFields is a list of field names (e.g. "State") to include in API
18891	// requests with the JSON null value. By default, fields with empty
18892	// values are omitted from API requests. However, any field with an
18893	// empty value appearing in NullFields will be sent to the server as
18894	// null. It is an error if a field in this list has a non-empty value.
18895	// This may be used to include null fields in Patch requests.
18896	NullFields []string `json:"-"`
18897}
18898
18899func (s *InterconnectDiagnosticsLinkOpticalPower) MarshalJSON() ([]byte, error) {
18900	type NoMethod InterconnectDiagnosticsLinkOpticalPower
18901	raw := NoMethod(*s)
18902	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18903}
18904
18905func (s *InterconnectDiagnosticsLinkOpticalPower) UnmarshalJSON(data []byte) error {
18906	type NoMethod InterconnectDiagnosticsLinkOpticalPower
18907	var s1 struct {
18908		Value gensupport.JSONFloat64 `json:"value"`
18909		*NoMethod
18910	}
18911	s1.NoMethod = (*NoMethod)(s)
18912	if err := json.Unmarshal(data, &s1); err != nil {
18913		return err
18914	}
18915	s.Value = float64(s1.Value)
18916	return nil
18917}
18918
18919type InterconnectDiagnosticsLinkStatus struct {
18920	// ArpCaches: A list of InterconnectDiagnostics.ARPEntry objects,
18921	// describing the ARP neighbor entries seen on this link. This will be
18922	// empty if the link is bundled
18923	ArpCaches []*InterconnectDiagnosticsARPEntry `json:"arpCaches,omitempty"`
18924
18925	// CircuitId: The unique ID for this link assigned during turn up by
18926	// Google.
18927	CircuitId string `json:"circuitId,omitempty"`
18928
18929	// GoogleDemarc: The Demarc address assigned by Google and provided in
18930	// the LoA.
18931	GoogleDemarc string `json:"googleDemarc,omitempty"`
18932
18933	LacpStatus *InterconnectDiagnosticsLinkLACPStatus `json:"lacpStatus,omitempty"`
18934
18935	// ReceivingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
18936	// object, describing the current value and status of the received light
18937	// level.
18938	ReceivingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"receivingOpticalPower,omitempty"`
18939
18940	// TransmittingOpticalPower: An InterconnectDiagnostics.LinkOpticalPower
18941	// object, describing the current value and status of the transmitted
18942	// light level.
18943	TransmittingOpticalPower *InterconnectDiagnosticsLinkOpticalPower `json:"transmittingOpticalPower,omitempty"`
18944
18945	// ForceSendFields is a list of field names (e.g. "ArpCaches") to
18946	// unconditionally include in API requests. By default, fields with
18947	// empty values are omitted from API requests. However, any non-pointer,
18948	// non-interface field appearing in ForceSendFields will be sent to the
18949	// server regardless of whether the field is empty or not. This may be
18950	// used to include empty fields in Patch requests.
18951	ForceSendFields []string `json:"-"`
18952
18953	// NullFields is a list of field names (e.g. "ArpCaches") to include in
18954	// API requests with the JSON null value. By default, fields with empty
18955	// values are omitted from API requests. However, any field with an
18956	// empty value appearing in NullFields will be sent to the server as
18957	// null. It is an error if a field in this list has a non-empty value.
18958	// This may be used to include null fields in Patch requests.
18959	NullFields []string `json:"-"`
18960}
18961
18962func (s *InterconnectDiagnosticsLinkStatus) MarshalJSON() ([]byte, error) {
18963	type NoMethod InterconnectDiagnosticsLinkStatus
18964	raw := NoMethod(*s)
18965	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
18966}
18967
18968// InterconnectList: Response to the list request, and contains a list
18969// of interconnects.
18970type InterconnectList struct {
18971	// Id: [Output Only] Unique identifier for the resource; defined by the
18972	// server.
18973	Id string `json:"id,omitempty"`
18974
18975	// Items: A list of Interconnect resources.
18976	Items []*Interconnect `json:"items,omitempty"`
18977
18978	// Kind: [Output Only] Type of resource. Always compute#interconnectList
18979	// for lists of interconnects.
18980	Kind string `json:"kind,omitempty"`
18981
18982	// NextPageToken: [Output Only] This token allows you to get the next
18983	// page of results for list requests. If the number of results is larger
18984	// than maxResults, use the nextPageToken as a value for the query
18985	// parameter pageToken in the next list request. Subsequent list
18986	// requests will have their own nextPageToken to continue paging through
18987	// the results.
18988	NextPageToken string `json:"nextPageToken,omitempty"`
18989
18990	// SelfLink: [Output Only] Server-defined URL for this resource.
18991	SelfLink string `json:"selfLink,omitempty"`
18992
18993	// Warning: [Output Only] Informational warning message.
18994	Warning *InterconnectListWarning `json:"warning,omitempty"`
18995
18996	// ServerResponse contains the HTTP response code and headers from the
18997	// server.
18998	googleapi.ServerResponse `json:"-"`
18999
19000	// ForceSendFields is a list of field names (e.g. "Id") to
19001	// unconditionally include in API requests. By default, fields with
19002	// empty values are omitted from API requests. However, any non-pointer,
19003	// non-interface field appearing in ForceSendFields will be sent to the
19004	// server regardless of whether the field is empty or not. This may be
19005	// used to include empty fields in Patch requests.
19006	ForceSendFields []string `json:"-"`
19007
19008	// NullFields is a list of field names (e.g. "Id") to include in API
19009	// requests with the JSON null value. By default, fields with empty
19010	// values are omitted from API requests. However, any field with an
19011	// empty value appearing in NullFields will be sent to the server as
19012	// null. It is an error if a field in this list has a non-empty value.
19013	// This may be used to include null fields in Patch requests.
19014	NullFields []string `json:"-"`
19015}
19016
19017func (s *InterconnectList) MarshalJSON() ([]byte, error) {
19018	type NoMethod InterconnectList
19019	raw := NoMethod(*s)
19020	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19021}
19022
19023// InterconnectListWarning: [Output Only] Informational warning message.
19024type InterconnectListWarning struct {
19025	// Code: [Output Only] A warning code, if applicable. For example,
19026	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19027	// the response.
19028	//
19029	// Possible values:
19030	//   "CLEANUP_FAILED"
19031	//   "DEPRECATED_RESOURCE_USED"
19032	//   "DEPRECATED_TYPE_USED"
19033	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19034	//   "EXPERIMENTAL_TYPE_USED"
19035	//   "EXTERNAL_API_WARNING"
19036	//   "FIELD_VALUE_OVERRIDEN"
19037	//   "INJECTED_KERNELS_DEPRECATED"
19038	//   "MISSING_TYPE_DEPENDENCY"
19039	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19040	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19041	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19042	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19043	//   "NEXT_HOP_NOT_RUNNING"
19044	//   "NOT_CRITICAL_ERROR"
19045	//   "NO_RESULTS_ON_PAGE"
19046	//   "REQUIRED_TOS_AGREEMENT"
19047	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19048	//   "RESOURCE_NOT_DELETED"
19049	//   "SCHEMA_VALIDATION_IGNORED"
19050	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19051	//   "UNDECLARED_PROPERTIES"
19052	//   "UNREACHABLE"
19053	Code string `json:"code,omitempty"`
19054
19055	// Data: [Output Only] Metadata about this warning in key: value format.
19056	// For example:
19057	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19058	Data []*InterconnectListWarningData `json:"data,omitempty"`
19059
19060	// Message: [Output Only] A human-readable description of the warning
19061	// code.
19062	Message string `json:"message,omitempty"`
19063
19064	// ForceSendFields is a list of field names (e.g. "Code") to
19065	// unconditionally include in API requests. By default, fields with
19066	// empty values are omitted from API requests. However, any non-pointer,
19067	// non-interface field appearing in ForceSendFields will be sent to the
19068	// server regardless of whether the field is empty or not. This may be
19069	// used to include empty fields in Patch requests.
19070	ForceSendFields []string `json:"-"`
19071
19072	// NullFields is a list of field names (e.g. "Code") to include in API
19073	// requests with the JSON null value. By default, fields with empty
19074	// values are omitted from API requests. However, any field with an
19075	// empty value appearing in NullFields will be sent to the server as
19076	// null. It is an error if a field in this list has a non-empty value.
19077	// This may be used to include null fields in Patch requests.
19078	NullFields []string `json:"-"`
19079}
19080
19081func (s *InterconnectListWarning) MarshalJSON() ([]byte, error) {
19082	type NoMethod InterconnectListWarning
19083	raw := NoMethod(*s)
19084	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19085}
19086
19087type InterconnectListWarningData struct {
19088	// Key: [Output Only] A key that provides more detail on the warning
19089	// being returned. For example, for warnings where there are no results
19090	// in a list request for a particular zone, this key might be scope and
19091	// the key value might be the zone name. Other examples might be a key
19092	// indicating a deprecated resource and a suggested replacement, or a
19093	// warning about invalid network settings (for example, if an instance
19094	// attempts to perform IP forwarding but is not enabled for IP
19095	// forwarding).
19096	Key string `json:"key,omitempty"`
19097
19098	// Value: [Output Only] A warning data value corresponding to the key.
19099	Value string `json:"value,omitempty"`
19100
19101	// ForceSendFields is a list of field names (e.g. "Key") to
19102	// unconditionally include in API requests. By default, fields with
19103	// empty values are omitted from API requests. However, any non-pointer,
19104	// non-interface field appearing in ForceSendFields will be sent to the
19105	// server regardless of whether the field is empty or not. This may be
19106	// used to include empty fields in Patch requests.
19107	ForceSendFields []string `json:"-"`
19108
19109	// NullFields is a list of field names (e.g. "Key") to include in API
19110	// requests with the JSON null value. By default, fields with empty
19111	// values are omitted from API requests. However, any field with an
19112	// empty value appearing in NullFields will be sent to the server as
19113	// null. It is an error if a field in this list has a non-empty value.
19114	// This may be used to include null fields in Patch requests.
19115	NullFields []string `json:"-"`
19116}
19117
19118func (s *InterconnectListWarningData) MarshalJSON() ([]byte, error) {
19119	type NoMethod InterconnectListWarningData
19120	raw := NoMethod(*s)
19121	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19122}
19123
19124// InterconnectLocation: Represents an Interconnect Attachment (VLAN)
19125// Location resource.
19126//
19127// You can use this resource to find location details about an
19128// Interconnect attachment (VLAN). For more information about
19129// interconnect attachments, read  Creating VLAN Attachments.
19130type InterconnectLocation struct {
19131	// Address: [Output Only] The postal address of the Point of Presence,
19132	// each line in the address is separated by a newline character.
19133	Address string `json:"address,omitempty"`
19134
19135	// AvailabilityZone: [Output Only] Availability zone for this
19136	// InterconnectLocation. Within a metropolitan area (metro), maintenance
19137	// will not be simultaneously scheduled in more than one availability
19138	// zone. Example: "zone1" or "zone2".
19139	AvailabilityZone string `json:"availabilityZone,omitempty"`
19140
19141	// City: [Output Only] Metropolitan area designator that indicates which
19142	// city an interconnect is located. For example: "Chicago, IL",
19143	// "Amsterdam, Netherlands".
19144	City string `json:"city,omitempty"`
19145
19146	// Continent: [Output Only] Continent for this location, which can take
19147	// one of the following values:
19148	// - AFRICA
19149	// - ASIA_PAC
19150	// - EUROPE
19151	// - NORTH_AMERICA
19152	// - SOUTH_AMERICA
19153	//
19154	// Possible values:
19155	//   "AFRICA"
19156	//   "ASIA_PAC"
19157	//   "C_AFRICA"
19158	//   "C_ASIA_PAC"
19159	//   "C_EUROPE"
19160	//   "C_NORTH_AMERICA"
19161	//   "C_SOUTH_AMERICA"
19162	//   "EUROPE"
19163	//   "NORTH_AMERICA"
19164	//   "SOUTH_AMERICA"
19165	Continent string `json:"continent,omitempty"`
19166
19167	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19168	// format.
19169	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19170
19171	// Description: [Output Only] An optional description of the resource.
19172	Description string `json:"description,omitempty"`
19173
19174	// FacilityProvider: [Output Only] The name of the provider for this
19175	// facility (e.g., EQUINIX).
19176	FacilityProvider string `json:"facilityProvider,omitempty"`
19177
19178	// FacilityProviderFacilityId: [Output Only] A provider-assigned
19179	// Identifier for this facility (e.g., Ashburn-DC1).
19180	FacilityProviderFacilityId string `json:"facilityProviderFacilityId,omitempty"`
19181
19182	// Id: [Output Only] The unique identifier for the resource. This
19183	// identifier is defined by the server.
19184	Id uint64 `json:"id,omitempty,string"`
19185
19186	// Kind: [Output Only] Type of the resource. Always
19187	// compute#interconnectLocation for interconnect locations.
19188	Kind string `json:"kind,omitempty"`
19189
19190	// Name: [Output Only] Name of the resource.
19191	Name string `json:"name,omitempty"`
19192
19193	// PeeringdbFacilityId: [Output Only] The peeringdb identifier for this
19194	// facility (corresponding with a netfac type in peeringdb).
19195	PeeringdbFacilityId string `json:"peeringdbFacilityId,omitempty"`
19196
19197	// RegionInfos: [Output Only] A list of InterconnectLocation.RegionInfo
19198	// objects, that describe parameters pertaining to the relation between
19199	// this InterconnectLocation and various Google Cloud regions.
19200	RegionInfos []*InterconnectLocationRegionInfo `json:"regionInfos,omitempty"`
19201
19202	// SelfLink: [Output Only] Server-defined URL for the resource.
19203	SelfLink string `json:"selfLink,omitempty"`
19204
19205	// Status: [Output Only] The status of this InterconnectLocation, which
19206	// can take one of the following values:
19207	// - CLOSED: The InterconnectLocation is closed and is unavailable for
19208	// provisioning new Interconnects.
19209	// - AVAILABLE: The InterconnectLocation is available for provisioning
19210	// new Interconnects.
19211	//
19212	// Possible values:
19213	//   "AVAILABLE"
19214	//   "CLOSED"
19215	Status string `json:"status,omitempty"`
19216
19217	// ServerResponse contains the HTTP response code and headers from the
19218	// server.
19219	googleapi.ServerResponse `json:"-"`
19220
19221	// ForceSendFields is a list of field names (e.g. "Address") to
19222	// unconditionally include in API requests. By default, fields with
19223	// empty values are omitted from API requests. However, any non-pointer,
19224	// non-interface field appearing in ForceSendFields will be sent to the
19225	// server regardless of whether the field is empty or not. This may be
19226	// used to include empty fields in Patch requests.
19227	ForceSendFields []string `json:"-"`
19228
19229	// NullFields is a list of field names (e.g. "Address") to include in
19230	// API requests with the JSON null value. By default, fields with empty
19231	// values are omitted from API requests. However, any field with an
19232	// empty value appearing in NullFields will be sent to the server as
19233	// null. It is an error if a field in this list has a non-empty value.
19234	// This may be used to include null fields in Patch requests.
19235	NullFields []string `json:"-"`
19236}
19237
19238func (s *InterconnectLocation) MarshalJSON() ([]byte, error) {
19239	type NoMethod InterconnectLocation
19240	raw := NoMethod(*s)
19241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19242}
19243
19244// InterconnectLocationList: Response to the list request, and contains
19245// a list of interconnect locations.
19246type InterconnectLocationList struct {
19247	// Id: [Output Only] Unique identifier for the resource; defined by the
19248	// server.
19249	Id string `json:"id,omitempty"`
19250
19251	// Items: A list of InterconnectLocation resources.
19252	Items []*InterconnectLocation `json:"items,omitempty"`
19253
19254	// Kind: [Output Only] Type of resource. Always
19255	// compute#interconnectLocationList for lists of interconnect locations.
19256	Kind string `json:"kind,omitempty"`
19257
19258	// NextPageToken: [Output Only] This token allows you to get the next
19259	// page of results for list requests. If the number of results is larger
19260	// than maxResults, use the nextPageToken as a value for the query
19261	// parameter pageToken in the next list request. Subsequent list
19262	// requests will have their own nextPageToken to continue paging through
19263	// the results.
19264	NextPageToken string `json:"nextPageToken,omitempty"`
19265
19266	// SelfLink: [Output Only] Server-defined URL for this resource.
19267	SelfLink string `json:"selfLink,omitempty"`
19268
19269	// Warning: [Output Only] Informational warning message.
19270	Warning *InterconnectLocationListWarning `json:"warning,omitempty"`
19271
19272	// ServerResponse contains the HTTP response code and headers from the
19273	// server.
19274	googleapi.ServerResponse `json:"-"`
19275
19276	// ForceSendFields is a list of field names (e.g. "Id") to
19277	// unconditionally include in API requests. By default, fields with
19278	// empty values are omitted from API requests. However, any non-pointer,
19279	// non-interface field appearing in ForceSendFields will be sent to the
19280	// server regardless of whether the field is empty or not. This may be
19281	// used to include empty fields in Patch requests.
19282	ForceSendFields []string `json:"-"`
19283
19284	// NullFields is a list of field names (e.g. "Id") to include in API
19285	// requests with the JSON null value. By default, fields with empty
19286	// values are omitted from API requests. However, any field with an
19287	// empty value appearing in NullFields will be sent to the server as
19288	// null. It is an error if a field in this list has a non-empty value.
19289	// This may be used to include null fields in Patch requests.
19290	NullFields []string `json:"-"`
19291}
19292
19293func (s *InterconnectLocationList) MarshalJSON() ([]byte, error) {
19294	type NoMethod InterconnectLocationList
19295	raw := NoMethod(*s)
19296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19297}
19298
19299// InterconnectLocationListWarning: [Output Only] Informational warning
19300// message.
19301type InterconnectLocationListWarning struct {
19302	// Code: [Output Only] A warning code, if applicable. For example,
19303	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19304	// the response.
19305	//
19306	// Possible values:
19307	//   "CLEANUP_FAILED"
19308	//   "DEPRECATED_RESOURCE_USED"
19309	//   "DEPRECATED_TYPE_USED"
19310	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19311	//   "EXPERIMENTAL_TYPE_USED"
19312	//   "EXTERNAL_API_WARNING"
19313	//   "FIELD_VALUE_OVERRIDEN"
19314	//   "INJECTED_KERNELS_DEPRECATED"
19315	//   "MISSING_TYPE_DEPENDENCY"
19316	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19317	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19318	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19319	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19320	//   "NEXT_HOP_NOT_RUNNING"
19321	//   "NOT_CRITICAL_ERROR"
19322	//   "NO_RESULTS_ON_PAGE"
19323	//   "REQUIRED_TOS_AGREEMENT"
19324	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19325	//   "RESOURCE_NOT_DELETED"
19326	//   "SCHEMA_VALIDATION_IGNORED"
19327	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19328	//   "UNDECLARED_PROPERTIES"
19329	//   "UNREACHABLE"
19330	Code string `json:"code,omitempty"`
19331
19332	// Data: [Output Only] Metadata about this warning in key: value format.
19333	// For example:
19334	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19335	Data []*InterconnectLocationListWarningData `json:"data,omitempty"`
19336
19337	// Message: [Output Only] A human-readable description of the warning
19338	// code.
19339	Message string `json:"message,omitempty"`
19340
19341	// ForceSendFields is a list of field names (e.g. "Code") to
19342	// unconditionally include in API requests. By default, fields with
19343	// empty values are omitted from API requests. However, any non-pointer,
19344	// non-interface field appearing in ForceSendFields will be sent to the
19345	// server regardless of whether the field is empty or not. This may be
19346	// used to include empty fields in Patch requests.
19347	ForceSendFields []string `json:"-"`
19348
19349	// NullFields is a list of field names (e.g. "Code") to include in API
19350	// requests with the JSON null value. By default, fields with empty
19351	// values are omitted from API requests. However, any field with an
19352	// empty value appearing in NullFields will be sent to the server as
19353	// null. It is an error if a field in this list has a non-empty value.
19354	// This may be used to include null fields in Patch requests.
19355	NullFields []string `json:"-"`
19356}
19357
19358func (s *InterconnectLocationListWarning) MarshalJSON() ([]byte, error) {
19359	type NoMethod InterconnectLocationListWarning
19360	raw := NoMethod(*s)
19361	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19362}
19363
19364type InterconnectLocationListWarningData struct {
19365	// Key: [Output Only] A key that provides more detail on the warning
19366	// being returned. For example, for warnings where there are no results
19367	// in a list request for a particular zone, this key might be scope and
19368	// the key value might be the zone name. Other examples might be a key
19369	// indicating a deprecated resource and a suggested replacement, or a
19370	// warning about invalid network settings (for example, if an instance
19371	// attempts to perform IP forwarding but is not enabled for IP
19372	// forwarding).
19373	Key string `json:"key,omitempty"`
19374
19375	// Value: [Output Only] A warning data value corresponding to the key.
19376	Value string `json:"value,omitempty"`
19377
19378	// ForceSendFields is a list of field names (e.g. "Key") to
19379	// unconditionally include in API requests. By default, fields with
19380	// empty values are omitted from API requests. However, any non-pointer,
19381	// non-interface field appearing in ForceSendFields will be sent to the
19382	// server regardless of whether the field is empty or not. This may be
19383	// used to include empty fields in Patch requests.
19384	ForceSendFields []string `json:"-"`
19385
19386	// NullFields is a list of field names (e.g. "Key") to include in API
19387	// requests with the JSON null value. By default, fields with empty
19388	// values are omitted from API requests. However, any field with an
19389	// empty value appearing in NullFields will be sent to the server as
19390	// null. It is an error if a field in this list has a non-empty value.
19391	// This may be used to include null fields in Patch requests.
19392	NullFields []string `json:"-"`
19393}
19394
19395func (s *InterconnectLocationListWarningData) MarshalJSON() ([]byte, error) {
19396	type NoMethod InterconnectLocationListWarningData
19397	raw := NoMethod(*s)
19398	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19399}
19400
19401// InterconnectLocationRegionInfo: Information about any potential
19402// InterconnectAttachments between an Interconnect at a specific
19403// InterconnectLocation, and a specific Cloud Region.
19404type InterconnectLocationRegionInfo struct {
19405	// ExpectedRttMs: Expected round-trip time in milliseconds, from this
19406	// InterconnectLocation to a VM in this region.
19407	ExpectedRttMs int64 `json:"expectedRttMs,omitempty,string"`
19408
19409	// LocationPresence: Identifies the network presence of this location.
19410	//
19411	// Possible values:
19412	//   "GLOBAL"
19413	//   "LOCAL_REGION"
19414	//   "LP_GLOBAL"
19415	//   "LP_LOCAL_REGION"
19416	LocationPresence string `json:"locationPresence,omitempty"`
19417
19418	// Region: URL for the region of this location.
19419	Region string `json:"region,omitempty"`
19420
19421	// ForceSendFields is a list of field names (e.g. "ExpectedRttMs") to
19422	// unconditionally include in API requests. By default, fields with
19423	// empty values are omitted from API requests. However, any non-pointer,
19424	// non-interface field appearing in ForceSendFields will be sent to the
19425	// server regardless of whether the field is empty or not. This may be
19426	// used to include empty fields in Patch requests.
19427	ForceSendFields []string `json:"-"`
19428
19429	// NullFields is a list of field names (e.g. "ExpectedRttMs") to include
19430	// in API requests with the JSON null value. By default, fields with
19431	// empty values are omitted from API requests. However, any field with
19432	// an empty value appearing in NullFields will be sent to the server as
19433	// null. It is an error if a field in this list has a non-empty value.
19434	// This may be used to include null fields in Patch requests.
19435	NullFields []string `json:"-"`
19436}
19437
19438func (s *InterconnectLocationRegionInfo) MarshalJSON() ([]byte, error) {
19439	type NoMethod InterconnectLocationRegionInfo
19440	raw := NoMethod(*s)
19441	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19442}
19443
19444// InterconnectOutageNotification: Description of a planned outage on
19445// this Interconnect. Next id: 9
19446type InterconnectOutageNotification struct {
19447	// AffectedCircuits: If issue_type is IT_PARTIAL_OUTAGE, a list of the
19448	// Google-side circuit IDs that will be affected.
19449	AffectedCircuits []string `json:"affectedCircuits,omitempty"`
19450
19451	// Description: A description about the purpose of the outage.
19452	Description string `json:"description,omitempty"`
19453
19454	// EndTime: Scheduled end time for the outage (milliseconds since Unix
19455	// epoch).
19456	EndTime int64 `json:"endTime,omitempty,string"`
19457
19458	// IssueType: Form this outage is expected to take, which can take one
19459	// of the following values:
19460	// - OUTAGE: The Interconnect may be completely out of service for some
19461	// or all of the specified window.
19462	// - PARTIAL_OUTAGE: Some circuits comprising the Interconnect as a
19463	// whole should remain up, but with reduced bandwidth. Note that the
19464	// versions of this enum prefixed with "IT_" have been deprecated in
19465	// favor of the unprefixed values.
19466	//
19467	// Possible values:
19468	//   "IT_OUTAGE"
19469	//   "IT_PARTIAL_OUTAGE"
19470	//   "OUTAGE"
19471	//   "PARTIAL_OUTAGE"
19472	IssueType string `json:"issueType,omitempty"`
19473
19474	// Name: Unique identifier for this outage notification.
19475	Name string `json:"name,omitempty"`
19476
19477	// Source: The party that generated this notification, which can take
19478	// the following value:
19479	// - GOOGLE: this notification as generated by Google. Note that the
19480	// value of NSRC_GOOGLE has been deprecated in favor of GOOGLE.
19481	//
19482	// Possible values:
19483	//   "GOOGLE"
19484	//   "NSRC_GOOGLE"
19485	Source string `json:"source,omitempty"`
19486
19487	// StartTime: Scheduled start time for the outage (milliseconds since
19488	// Unix epoch).
19489	StartTime int64 `json:"startTime,omitempty,string"`
19490
19491	// State: State of this notification, which can take one of the
19492	// following values:
19493	// - ACTIVE: This outage notification is active. The event could be in
19494	// the past, present, or future. See start_time and end_time for
19495	// scheduling.
19496	// - CANCELLED: The outage associated with this notification was
19497	// cancelled before the outage was due to start. Note that the versions
19498	// of this enum prefixed with "NS_" have been deprecated in favor of the
19499	// unprefixed values.
19500	//
19501	// Possible values:
19502	//   "ACTIVE"
19503	//   "CANCELLED"
19504	//   "COMPLETED"
19505	//   "NS_ACTIVE"
19506	//   "NS_CANCELED"
19507	State string `json:"state,omitempty"`
19508
19509	// ForceSendFields is a list of field names (e.g. "AffectedCircuits") to
19510	// unconditionally include in API requests. By default, fields with
19511	// empty values are omitted from API requests. However, any non-pointer,
19512	// non-interface field appearing in ForceSendFields will be sent to the
19513	// server regardless of whether the field is empty or not. This may be
19514	// used to include empty fields in Patch requests.
19515	ForceSendFields []string `json:"-"`
19516
19517	// NullFields is a list of field names (e.g. "AffectedCircuits") to
19518	// include in API requests with the JSON null value. By default, fields
19519	// with empty values are omitted from API requests. However, any field
19520	// with an empty value appearing in NullFields will be sent to the
19521	// server as null. It is an error if a field in this list has a
19522	// non-empty value. This may be used to include null fields in Patch
19523	// requests.
19524	NullFields []string `json:"-"`
19525}
19526
19527func (s *InterconnectOutageNotification) MarshalJSON() ([]byte, error) {
19528	type NoMethod InterconnectOutageNotification
19529	raw := NoMethod(*s)
19530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19531}
19532
19533// InterconnectsGetDiagnosticsResponse: Response for the
19534// InterconnectsGetDiagnosticsRequest.
19535type InterconnectsGetDiagnosticsResponse struct {
19536	Result *InterconnectDiagnostics `json:"result,omitempty"`
19537
19538	// ServerResponse contains the HTTP response code and headers from the
19539	// server.
19540	googleapi.ServerResponse `json:"-"`
19541
19542	// ForceSendFields is a list of field names (e.g. "Result") to
19543	// unconditionally include in API requests. By default, fields with
19544	// empty values are omitted from API requests. However, any non-pointer,
19545	// non-interface field appearing in ForceSendFields will be sent to the
19546	// server regardless of whether the field is empty or not. This may be
19547	// used to include empty fields in Patch requests.
19548	ForceSendFields []string `json:"-"`
19549
19550	// NullFields is a list of field names (e.g. "Result") to include in API
19551	// requests with the JSON null value. By default, fields with empty
19552	// values are omitted from API requests. However, any field with an
19553	// empty value appearing in NullFields will be sent to the server as
19554	// null. It is an error if a field in this list has a non-empty value.
19555	// This may be used to include null fields in Patch requests.
19556	NullFields []string `json:"-"`
19557}
19558
19559func (s *InterconnectsGetDiagnosticsResponse) MarshalJSON() ([]byte, error) {
19560	type NoMethod InterconnectsGetDiagnosticsResponse
19561	raw := NoMethod(*s)
19562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19563}
19564
19565// License: A license resource.
19566type License struct {
19567	// ChargesUseFee: [Output Only] Deprecated. This field no longer
19568	// reflects whether a license charges a usage fee.
19569	ChargesUseFee bool `json:"chargesUseFee,omitempty"`
19570
19571	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19572	// format.
19573	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19574
19575	// Description: An optional textual description of the resource;
19576	// provided by the client when the resource is created.
19577	Description string `json:"description,omitempty"`
19578
19579	// Id: [Output Only] The unique identifier for the resource. This
19580	// identifier is defined by the server.
19581	Id uint64 `json:"id,omitempty,string"`
19582
19583	// Kind: [Output Only] Type of resource. Always compute#license for
19584	// licenses.
19585	Kind string `json:"kind,omitempty"`
19586
19587	// LicenseCode: [Output Only] The unique code used to attach this
19588	// license to images, snapshots, and disks.
19589	LicenseCode uint64 `json:"licenseCode,omitempty,string"`
19590
19591	// Name: Name of the resource. The name must be 1-63 characters long and
19592	// comply with RFC1035.
19593	Name string `json:"name,omitempty"`
19594
19595	ResourceRequirements *LicenseResourceRequirements `json:"resourceRequirements,omitempty"`
19596
19597	// SelfLink: [Output Only] Server-defined URL for the resource.
19598	SelfLink string `json:"selfLink,omitempty"`
19599
19600	// Transferable: If false, licenses will not be copied from the source
19601	// resource when creating an image from a disk, disk from snapshot, or
19602	// snapshot from disk.
19603	Transferable bool `json:"transferable,omitempty"`
19604
19605	// ServerResponse contains the HTTP response code and headers from the
19606	// server.
19607	googleapi.ServerResponse `json:"-"`
19608
19609	// ForceSendFields is a list of field names (e.g. "ChargesUseFee") to
19610	// unconditionally include in API requests. By default, fields with
19611	// empty values are omitted from API requests. However, any non-pointer,
19612	// non-interface field appearing in ForceSendFields will be sent to the
19613	// server regardless of whether the field is empty or not. This may be
19614	// used to include empty fields in Patch requests.
19615	ForceSendFields []string `json:"-"`
19616
19617	// NullFields is a list of field names (e.g. "ChargesUseFee") to include
19618	// in API requests with the JSON null value. By default, fields with
19619	// empty values are omitted from API requests. However, any field with
19620	// an empty value appearing in NullFields will be sent to the server as
19621	// null. It is an error if a field in this list has a non-empty value.
19622	// This may be used to include null fields in Patch requests.
19623	NullFields []string `json:"-"`
19624}
19625
19626func (s *License) MarshalJSON() ([]byte, error) {
19627	type NoMethod License
19628	raw := NoMethod(*s)
19629	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19630}
19631
19632type LicenseCode struct {
19633	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
19634	// format.
19635	CreationTimestamp string `json:"creationTimestamp,omitempty"`
19636
19637	// Description: [Output Only] Description of this License Code.
19638	Description string `json:"description,omitempty"`
19639
19640	// Id: [Output Only] The unique identifier for the resource. This
19641	// identifier is defined by the server.
19642	Id uint64 `json:"id,omitempty,string"`
19643
19644	// Kind: [Output Only] Type of resource. Always compute#licenseCode for
19645	// licenses.
19646	Kind string `json:"kind,omitempty"`
19647
19648	// LicenseAlias: [Output Only] URL and description aliases of Licenses
19649	// with the same License Code.
19650	LicenseAlias []*LicenseCodeLicenseAlias `json:"licenseAlias,omitempty"`
19651
19652	// Name: [Output Only] Name of the resource. The name is 1-20 characters
19653	// long and must be a valid 64 bit integer.
19654	Name string `json:"name,omitempty"`
19655
19656	// SelfLink: [Output Only] Server-defined URL for the resource.
19657	SelfLink string `json:"selfLink,omitempty"`
19658
19659	// State: [Output Only] Current state of this License Code.
19660	//
19661	// Possible values:
19662	//   "DISABLED"
19663	//   "ENABLED"
19664	//   "RESTRICTED"
19665	//   "STATE_UNSPECIFIED"
19666	//   "TERMINATED"
19667	State string `json:"state,omitempty"`
19668
19669	// Transferable: [Output Only] If true, the license will remain attached
19670	// when creating images or snapshots from disks. Otherwise, the license
19671	// is not transferred.
19672	Transferable bool `json:"transferable,omitempty"`
19673
19674	// ServerResponse contains the HTTP response code and headers from the
19675	// server.
19676	googleapi.ServerResponse `json:"-"`
19677
19678	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
19679	// to unconditionally include in API requests. By default, fields with
19680	// empty values are omitted from API requests. However, any non-pointer,
19681	// non-interface field appearing in ForceSendFields will be sent to the
19682	// server regardless of whether the field is empty or not. This may be
19683	// used to include empty fields in Patch requests.
19684	ForceSendFields []string `json:"-"`
19685
19686	// NullFields is a list of field names (e.g. "CreationTimestamp") to
19687	// include in API requests with the JSON null value. By default, fields
19688	// with empty values are omitted from API requests. However, any field
19689	// with an empty value appearing in NullFields will be sent to the
19690	// server as null. It is an error if a field in this list has a
19691	// non-empty value. This may be used to include null fields in Patch
19692	// requests.
19693	NullFields []string `json:"-"`
19694}
19695
19696func (s *LicenseCode) MarshalJSON() ([]byte, error) {
19697	type NoMethod LicenseCode
19698	raw := NoMethod(*s)
19699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19700}
19701
19702type LicenseCodeLicenseAlias struct {
19703	// Description: [Output Only] Description of this License Code.
19704	Description string `json:"description,omitempty"`
19705
19706	// SelfLink: [Output Only] URL of license corresponding to this License
19707	// Code.
19708	SelfLink string `json:"selfLink,omitempty"`
19709
19710	// ForceSendFields is a list of field names (e.g. "Description") to
19711	// unconditionally include in API requests. By default, fields with
19712	// empty values are omitted from API requests. However, any non-pointer,
19713	// non-interface field appearing in ForceSendFields will be sent to the
19714	// server regardless of whether the field is empty or not. This may be
19715	// used to include empty fields in Patch requests.
19716	ForceSendFields []string `json:"-"`
19717
19718	// NullFields is a list of field names (e.g. "Description") to include
19719	// in API requests with the JSON null value. By default, fields with
19720	// empty values are omitted from API requests. However, any field with
19721	// an empty value appearing in NullFields will be sent to the server as
19722	// null. It is an error if a field in this list has a non-empty value.
19723	// This may be used to include null fields in Patch requests.
19724	NullFields []string `json:"-"`
19725}
19726
19727func (s *LicenseCodeLicenseAlias) MarshalJSON() ([]byte, error) {
19728	type NoMethod LicenseCodeLicenseAlias
19729	raw := NoMethod(*s)
19730	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19731}
19732
19733type LicenseResourceRequirements struct {
19734	// MinGuestCpuCount: Minimum number of guest cpus required to use the
19735	// Instance. Enforced at Instance creation and Instance start.
19736	MinGuestCpuCount int64 `json:"minGuestCpuCount,omitempty"`
19737
19738	// MinMemoryMb: Minimum memory required to use the Instance. Enforced at
19739	// Instance creation and Instance start.
19740	MinMemoryMb int64 `json:"minMemoryMb,omitempty"`
19741
19742	// ForceSendFields is a list of field names (e.g. "MinGuestCpuCount") to
19743	// unconditionally include in API requests. By default, fields with
19744	// empty values are omitted from API requests. However, any non-pointer,
19745	// non-interface field appearing in ForceSendFields will be sent to the
19746	// server regardless of whether the field is empty or not. This may be
19747	// used to include empty fields in Patch requests.
19748	ForceSendFields []string `json:"-"`
19749
19750	// NullFields is a list of field names (e.g. "MinGuestCpuCount") to
19751	// include in API requests with the JSON null value. By default, fields
19752	// with empty values are omitted from API requests. However, any field
19753	// with an empty value appearing in NullFields will be sent to the
19754	// server as null. It is an error if a field in this list has a
19755	// non-empty value. This may be used to include null fields in Patch
19756	// requests.
19757	NullFields []string `json:"-"`
19758}
19759
19760func (s *LicenseResourceRequirements) MarshalJSON() ([]byte, error) {
19761	type NoMethod LicenseResourceRequirements
19762	raw := NoMethod(*s)
19763	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19764}
19765
19766type LicensesListResponse struct {
19767	// Id: [Output Only] Unique identifier for the resource; defined by the
19768	// server.
19769	Id string `json:"id,omitempty"`
19770
19771	// Items: A list of License resources.
19772	Items []*License `json:"items,omitempty"`
19773
19774	// NextPageToken: [Output Only] This token allows you to get the next
19775	// page of results for list requests. If the number of results is larger
19776	// than maxResults, use the nextPageToken as a value for the query
19777	// parameter pageToken in the next list request. Subsequent list
19778	// requests will have their own nextPageToken to continue paging through
19779	// the results.
19780	NextPageToken string `json:"nextPageToken,omitempty"`
19781
19782	// SelfLink: [Output Only] Server-defined URL for this resource.
19783	SelfLink string `json:"selfLink,omitempty"`
19784
19785	// Warning: [Output Only] Informational warning message.
19786	Warning *LicensesListResponseWarning `json:"warning,omitempty"`
19787
19788	// ServerResponse contains the HTTP response code and headers from the
19789	// server.
19790	googleapi.ServerResponse `json:"-"`
19791
19792	// ForceSendFields is a list of field names (e.g. "Id") to
19793	// unconditionally include in API requests. By default, fields with
19794	// empty values are omitted from API requests. However, any non-pointer,
19795	// non-interface field appearing in ForceSendFields will be sent to the
19796	// server regardless of whether the field is empty or not. This may be
19797	// used to include empty fields in Patch requests.
19798	ForceSendFields []string `json:"-"`
19799
19800	// NullFields is a list of field names (e.g. "Id") to include in API
19801	// requests with the JSON null value. By default, fields with empty
19802	// values are omitted from API requests. However, any field with an
19803	// empty value appearing in NullFields will be sent to the server as
19804	// null. It is an error if a field in this list has a non-empty value.
19805	// This may be used to include null fields in Patch requests.
19806	NullFields []string `json:"-"`
19807}
19808
19809func (s *LicensesListResponse) MarshalJSON() ([]byte, error) {
19810	type NoMethod LicensesListResponse
19811	raw := NoMethod(*s)
19812	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19813}
19814
19815// LicensesListResponseWarning: [Output Only] Informational warning
19816// message.
19817type LicensesListResponseWarning struct {
19818	// Code: [Output Only] A warning code, if applicable. For example,
19819	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
19820	// the response.
19821	//
19822	// Possible values:
19823	//   "CLEANUP_FAILED"
19824	//   "DEPRECATED_RESOURCE_USED"
19825	//   "DEPRECATED_TYPE_USED"
19826	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
19827	//   "EXPERIMENTAL_TYPE_USED"
19828	//   "EXTERNAL_API_WARNING"
19829	//   "FIELD_VALUE_OVERRIDEN"
19830	//   "INJECTED_KERNELS_DEPRECATED"
19831	//   "MISSING_TYPE_DEPENDENCY"
19832	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
19833	//   "NEXT_HOP_CANNOT_IP_FORWARD"
19834	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
19835	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
19836	//   "NEXT_HOP_NOT_RUNNING"
19837	//   "NOT_CRITICAL_ERROR"
19838	//   "NO_RESULTS_ON_PAGE"
19839	//   "REQUIRED_TOS_AGREEMENT"
19840	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
19841	//   "RESOURCE_NOT_DELETED"
19842	//   "SCHEMA_VALIDATION_IGNORED"
19843	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
19844	//   "UNDECLARED_PROPERTIES"
19845	//   "UNREACHABLE"
19846	Code string `json:"code,omitempty"`
19847
19848	// Data: [Output Only] Metadata about this warning in key: value format.
19849	// For example:
19850	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
19851	Data []*LicensesListResponseWarningData `json:"data,omitempty"`
19852
19853	// Message: [Output Only] A human-readable description of the warning
19854	// code.
19855	Message string `json:"message,omitempty"`
19856
19857	// ForceSendFields is a list of field names (e.g. "Code") to
19858	// unconditionally include in API requests. By default, fields with
19859	// empty values are omitted from API requests. However, any non-pointer,
19860	// non-interface field appearing in ForceSendFields will be sent to the
19861	// server regardless of whether the field is empty or not. This may be
19862	// used to include empty fields in Patch requests.
19863	ForceSendFields []string `json:"-"`
19864
19865	// NullFields is a list of field names (e.g. "Code") to include in API
19866	// requests with the JSON null value. By default, fields with empty
19867	// values are omitted from API requests. However, any field with an
19868	// empty value appearing in NullFields will be sent to the server as
19869	// null. It is an error if a field in this list has a non-empty value.
19870	// This may be used to include null fields in Patch requests.
19871	NullFields []string `json:"-"`
19872}
19873
19874func (s *LicensesListResponseWarning) MarshalJSON() ([]byte, error) {
19875	type NoMethod LicensesListResponseWarning
19876	raw := NoMethod(*s)
19877	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19878}
19879
19880type LicensesListResponseWarningData struct {
19881	// Key: [Output Only] A key that provides more detail on the warning
19882	// being returned. For example, for warnings where there are no results
19883	// in a list request for a particular zone, this key might be scope and
19884	// the key value might be the zone name. Other examples might be a key
19885	// indicating a deprecated resource and a suggested replacement, or a
19886	// warning about invalid network settings (for example, if an instance
19887	// attempts to perform IP forwarding but is not enabled for IP
19888	// forwarding).
19889	Key string `json:"key,omitempty"`
19890
19891	// Value: [Output Only] A warning data value corresponding to the key.
19892	Value string `json:"value,omitempty"`
19893
19894	// ForceSendFields is a list of field names (e.g. "Key") to
19895	// unconditionally include in API requests. By default, fields with
19896	// empty values are omitted from API requests. However, any non-pointer,
19897	// non-interface field appearing in ForceSendFields will be sent to the
19898	// server regardless of whether the field is empty or not. This may be
19899	// used to include empty fields in Patch requests.
19900	ForceSendFields []string `json:"-"`
19901
19902	// NullFields is a list of field names (e.g. "Key") to include in API
19903	// requests with the JSON null value. By default, fields with empty
19904	// values are omitted from API requests. However, any field with an
19905	// empty value appearing in NullFields will be sent to the server as
19906	// null. It is an error if a field in this list has a non-empty value.
19907	// This may be used to include null fields in Patch requests.
19908	NullFields []string `json:"-"`
19909}
19910
19911func (s *LicensesListResponseWarningData) MarshalJSON() ([]byte, error) {
19912	type NoMethod LicensesListResponseWarningData
19913	raw := NoMethod(*s)
19914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19915}
19916
19917// LogConfig: Specifies what kind of log the caller must write
19918type LogConfig struct {
19919	// CloudAudit: Cloud audit options.
19920	CloudAudit *LogConfigCloudAuditOptions `json:"cloudAudit,omitempty"`
19921
19922	// Counter: Counter options.
19923	Counter *LogConfigCounterOptions `json:"counter,omitempty"`
19924
19925	// DataAccess: Data access options.
19926	DataAccess *LogConfigDataAccessOptions `json:"dataAccess,omitempty"`
19927
19928	// ForceSendFields is a list of field names (e.g. "CloudAudit") to
19929	// unconditionally include in API requests. By default, fields with
19930	// empty values are omitted from API requests. However, any non-pointer,
19931	// non-interface field appearing in ForceSendFields will be sent to the
19932	// server regardless of whether the field is empty or not. This may be
19933	// used to include empty fields in Patch requests.
19934	ForceSendFields []string `json:"-"`
19935
19936	// NullFields is a list of field names (e.g. "CloudAudit") to include in
19937	// API requests with the JSON null value. By default, fields with empty
19938	// values are omitted from API requests. However, any field with an
19939	// empty value appearing in NullFields will be sent to the server as
19940	// null. It is an error if a field in this list has a non-empty value.
19941	// This may be used to include null fields in Patch requests.
19942	NullFields []string `json:"-"`
19943}
19944
19945func (s *LogConfig) MarshalJSON() ([]byte, error) {
19946	type NoMethod LogConfig
19947	raw := NoMethod(*s)
19948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19949}
19950
19951// LogConfigCloudAuditOptions: Write a Cloud Audit log
19952type LogConfigCloudAuditOptions struct {
19953	// AuthorizationLoggingOptions: Information used by the Cloud Audit
19954	// Logging pipeline.
19955	AuthorizationLoggingOptions *AuthorizationLoggingOptions `json:"authorizationLoggingOptions,omitempty"`
19956
19957	// LogName: The log_name to populate in the Cloud Audit Record.
19958	//
19959	// Possible values:
19960	//   "ADMIN_ACTIVITY"
19961	//   "DATA_ACCESS"
19962	//   "UNSPECIFIED_LOG_NAME"
19963	LogName string `json:"logName,omitempty"`
19964
19965	// ForceSendFields is a list of field names (e.g.
19966	// "AuthorizationLoggingOptions") to unconditionally include in API
19967	// requests. By default, fields with empty values are omitted from API
19968	// requests. However, any non-pointer, non-interface field appearing in
19969	// ForceSendFields will be sent to the server regardless of whether the
19970	// field is empty or not. This may be used to include empty fields in
19971	// Patch requests.
19972	ForceSendFields []string `json:"-"`
19973
19974	// NullFields is a list of field names (e.g.
19975	// "AuthorizationLoggingOptions") to include in API requests with the
19976	// JSON null value. By default, fields with empty values are omitted
19977	// from API requests. However, any field with an empty value appearing
19978	// in NullFields will be sent to the server as null. It is an error if a
19979	// field in this list has a non-empty value. This may be used to include
19980	// null fields in Patch requests.
19981	NullFields []string `json:"-"`
19982}
19983
19984func (s *LogConfigCloudAuditOptions) MarshalJSON() ([]byte, error) {
19985	type NoMethod LogConfigCloudAuditOptions
19986	raw := NoMethod(*s)
19987	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
19988}
19989
19990// LogConfigCounterOptions: Increment a streamz counter with the
19991// specified metric and field names.
19992//
19993// Metric names should start with a '/', generally be lowercase-only,
19994// and end in "_count". Field names should not contain an initial slash.
19995// The actual exported metric names will have "/iam/policy"
19996// prepended.
19997//
19998// Field names correspond to IAM request parameters and field values are
19999// their respective values.
20000//
20001// Supported field names: - "authority", which is "[token]" if
20002// IAMContext.token is present, otherwise the value of
20003// IAMContext.authority_selector if present, and otherwise a
20004// representation of IAMContext.principal; or - "iam_principal", a
20005// representation of IAMContext.principal even if a token or authority
20006// selector is present; or - "" (empty string), resulting in a counter
20007// with no fields.
20008//
20009// Examples: counter { metric: "/debug_access_count" field:
20010// "iam_principal" } ==> increment counter
20011// /iam/policy/debug_access_count {iam_principal=[value of
20012// IAMContext.principal]}
20013//
20014// TODO(b/141846426): Consider supporting "authority" and
20015// "iam_principal" fields in the same counter.
20016type LogConfigCounterOptions struct {
20017	// CustomFields: Custom fields.
20018	CustomFields []*LogConfigCounterOptionsCustomField `json:"customFields,omitempty"`
20019
20020	// Field: The field value to attribute.
20021	Field string `json:"field,omitempty"`
20022
20023	// Metric: The metric to update.
20024	Metric string `json:"metric,omitempty"`
20025
20026	// ForceSendFields is a list of field names (e.g. "CustomFields") to
20027	// unconditionally include in API requests. By default, fields with
20028	// empty values are omitted from API requests. However, any non-pointer,
20029	// non-interface field appearing in ForceSendFields will be sent to the
20030	// server regardless of whether the field is empty or not. This may be
20031	// used to include empty fields in Patch requests.
20032	ForceSendFields []string `json:"-"`
20033
20034	// NullFields is a list of field names (e.g. "CustomFields") to include
20035	// in API requests with the JSON null value. By default, fields with
20036	// empty values are omitted from API requests. However, any field with
20037	// an empty value appearing in NullFields will be sent to the server as
20038	// null. It is an error if a field in this list has a non-empty value.
20039	// This may be used to include null fields in Patch requests.
20040	NullFields []string `json:"-"`
20041}
20042
20043func (s *LogConfigCounterOptions) MarshalJSON() ([]byte, error) {
20044	type NoMethod LogConfigCounterOptions
20045	raw := NoMethod(*s)
20046	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20047}
20048
20049// LogConfigCounterOptionsCustomField: Custom fields. These can be used
20050// to create a counter with arbitrary field/value pairs. See:
20051// go/rpcsp-custom-fields.
20052type LogConfigCounterOptionsCustomField struct {
20053	// Name: Name is the field name.
20054	Name string `json:"name,omitempty"`
20055
20056	// Value: Value is the field value. It is important that in contrast to
20057	// the CounterOptions.field, the value here is a constant that is not
20058	// derived from the IAMContext.
20059	Value string `json:"value,omitempty"`
20060
20061	// ForceSendFields is a list of field names (e.g. "Name") to
20062	// 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. "Name") to include in API
20070	// requests with the JSON null value. By default, fields with empty
20071	// values are omitted from API requests. However, any field with an
20072	// empty value appearing in NullFields will be sent to the server as
20073	// null. It is an error if a field in this list has a non-empty value.
20074	// This may be used to include null fields in Patch requests.
20075	NullFields []string `json:"-"`
20076}
20077
20078func (s *LogConfigCounterOptionsCustomField) MarshalJSON() ([]byte, error) {
20079	type NoMethod LogConfigCounterOptionsCustomField
20080	raw := NoMethod(*s)
20081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20082}
20083
20084// LogConfigDataAccessOptions: Write a Data Access (Gin) log
20085type LogConfigDataAccessOptions struct {
20086	// LogMode: Whether Gin logging should happen in a fail-closed manner at
20087	// the caller. This is relevant only in the LocalIAM implementation, for
20088	// now.
20089	//
20090	// Possible values:
20091	//   "LOG_FAIL_CLOSED"
20092	//   "LOG_MODE_UNSPECIFIED"
20093	LogMode string `json:"logMode,omitempty"`
20094
20095	// ForceSendFields is a list of field names (e.g. "LogMode") to
20096	// unconditionally include in API requests. By default, fields with
20097	// empty values are omitted from API requests. However, any non-pointer,
20098	// non-interface field appearing in ForceSendFields will be sent to the
20099	// server regardless of whether the field is empty or not. This may be
20100	// used to include empty fields in Patch requests.
20101	ForceSendFields []string `json:"-"`
20102
20103	// NullFields is a list of field names (e.g. "LogMode") to include in
20104	// API requests with the JSON null value. By default, fields with empty
20105	// values are omitted from API requests. However, any field with an
20106	// empty value appearing in NullFields will be sent to the server as
20107	// null. It is an error if a field in this list has a non-empty value.
20108	// This may be used to include null fields in Patch requests.
20109	NullFields []string `json:"-"`
20110}
20111
20112func (s *LogConfigDataAccessOptions) MarshalJSON() ([]byte, error) {
20113	type NoMethod LogConfigDataAccessOptions
20114	raw := NoMethod(*s)
20115	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20116}
20117
20118// MachineImage: Represents a machine image resource.
20119//
20120// A machine image is a Compute Engine resource that stores all the
20121// configuration, metadata, permissions, and data from one or more disks
20122// required to create a Virtual machine (VM) instance. For more
20123// information, see Machine images. (== resource_for
20124// {$api_version}.machineImages ==)
20125type MachineImage struct {
20126	// CreationTimestamp: [Output Only] The creation timestamp for this
20127	// machine image in RFC3339 text format.
20128	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20129
20130	// Description: An optional description of this resource. Provide this
20131	// property when you create the resource.
20132	Description string `json:"description,omitempty"`
20133
20134	// GuestFlush: [Input Only] Specifies to create an application
20135	// consistent machine image by informing the OS to prepare for the
20136	// snapshot process. Currently only supported on Windows instances using
20137	// the Volume Shadow Copy Service (VSS).
20138	GuestFlush bool `json:"guestFlush,omitempty"`
20139
20140	// Id: [Output Only] A unique identifier for this machine image. The
20141	// server defines this identifier.
20142	Id uint64 `json:"id,omitempty,string"`
20143
20144	// Kind: [Output Only] The resource type, which is always
20145	// compute#machineImage for machine image.
20146	Kind string `json:"kind,omitempty"`
20147
20148	// MachineImageEncryptionKey: Encrypts the machine image using a
20149	// customer-supplied encryption key.
20150	//
20151	// After you encrypt a machine image using a customer-supplied key, you
20152	// must provide the same key if you use the machine image later. For
20153	// example, you must provide the encryption key when you create an
20154	// instance from the encrypted machine image in a future
20155	// request.
20156	//
20157	// Customer-supplied encryption keys do not protect access to metadata
20158	// of the machine image.
20159	//
20160	// If you do not provide an encryption key when creating the machine
20161	// image, then the machine image will be encrypted using an
20162	// automatically generated key and you do not need to provide a key to
20163	// use the machine image later.
20164	MachineImageEncryptionKey *CustomerEncryptionKey `json:"machineImageEncryptionKey,omitempty"`
20165
20166	// Name: Name of the resource; provided by the client when the resource
20167	// is created. The name must be 1-63 characters long, and comply with
20168	// RFC1035. Specifically, the name must be 1-63 characters long and
20169	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
20170	// the first character must be a lowercase letter, and all following
20171	// characters must be a dash, lowercase letter, or digit, except the
20172	// last character, which cannot be a dash.
20173	Name string `json:"name,omitempty"`
20174
20175	// SelfLink: [Output Only] The URL for this machine image. The server
20176	// defines this URL.
20177	SelfLink string `json:"selfLink,omitempty"`
20178
20179	// SourceDiskEncryptionKeys: [Input Only] The customer-supplied
20180	// encryption key of the disks attached to the source instance. Required
20181	// if the source disk is protected by a customer-supplied encryption
20182	// key.
20183	SourceDiskEncryptionKeys []*SourceDiskEncryptionKey `json:"sourceDiskEncryptionKeys,omitempty"`
20184
20185	// SourceInstance: The source instance used to create the machine image.
20186	// You can provide this as a partial or full URL to the resource. For
20187	// example, the following are valid values:
20188	// -
20189	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
20190	// - projects/project/zones/zone/instances/instance
20191	SourceInstance string `json:"sourceInstance,omitempty"`
20192
20193	// SourceInstanceProperties: [Output Only] Properties of source
20194	// instance.
20195	SourceInstanceProperties *SourceInstanceProperties `json:"sourceInstanceProperties,omitempty"`
20196
20197	// Status: [Output Only] The status of the machine image. One of the
20198	// following values: INVALID, CREATING, READY, DELETING, and UPLOADING.
20199	//
20200	// Possible values:
20201	//   "CREATING"
20202	//   "DELETING"
20203	//   "INVALID"
20204	//   "READY"
20205	//   "UPLOADING"
20206	Status string `json:"status,omitempty"`
20207
20208	// StorageLocations: GCS bucket storage location of the machine image
20209	// (regional or multi-regional).
20210	StorageLocations []string `json:"storageLocations,omitempty"`
20211
20212	// TotalStorageBytes: [Output Only] Total size of the storage used by
20213	// the machine image.
20214	TotalStorageBytes int64 `json:"totalStorageBytes,omitempty,string"`
20215
20216	// ServerResponse contains the HTTP response code and headers from the
20217	// server.
20218	googleapi.ServerResponse `json:"-"`
20219
20220	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
20221	// to unconditionally include in API requests. By default, fields with
20222	// empty values are omitted from API requests. However, any non-pointer,
20223	// non-interface field appearing in ForceSendFields will be sent to the
20224	// server regardless of whether the field is empty or not. This may be
20225	// used to include empty fields in Patch requests.
20226	ForceSendFields []string `json:"-"`
20227
20228	// NullFields is a list of field names (e.g. "CreationTimestamp") to
20229	// include in API requests with the JSON null value. By default, fields
20230	// with empty values are omitted from API requests. However, any field
20231	// with an empty value appearing in NullFields will be sent to the
20232	// server as null. It is an error if a field in this list has a
20233	// non-empty value. This may be used to include null fields in Patch
20234	// requests.
20235	NullFields []string `json:"-"`
20236}
20237
20238func (s *MachineImage) MarshalJSON() ([]byte, error) {
20239	type NoMethod MachineImage
20240	raw := NoMethod(*s)
20241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20242}
20243
20244// MachineImageList: A list of machine images.
20245type MachineImageList struct {
20246	// Id: [Output Only] Unique identifier for the resource; defined by the
20247	// server.
20248	Id string `json:"id,omitempty"`
20249
20250	// Items: A list of MachineImage resources.
20251	Items []*MachineImage `json:"items,omitempty"`
20252
20253	// Kind: [Output Only] The resource type, which is always
20254	// compute#machineImagesListResponse for machine image lists.
20255	Kind string `json:"kind,omitempty"`
20256
20257	// NextPageToken: [Output Only] This token allows you to get the next
20258	// page of results for list requests. If the number of results is larger
20259	// than maxResults, use the nextPageToken as a value for the query
20260	// parameter pageToken in the next list request. Subsequent list
20261	// requests will have their own nextPageToken to continue paging through
20262	// the results.
20263	NextPageToken string `json:"nextPageToken,omitempty"`
20264
20265	// SelfLink: [Output Only] Server-defined URL for this resource.
20266	SelfLink string `json:"selfLink,omitempty"`
20267
20268	// Warning: [Output Only] Informational warning message.
20269	Warning *MachineImageListWarning `json:"warning,omitempty"`
20270
20271	// ServerResponse contains the HTTP response code and headers from the
20272	// server.
20273	googleapi.ServerResponse `json:"-"`
20274
20275	// ForceSendFields is a list of field names (e.g. "Id") to
20276	// unconditionally include in API requests. By default, fields with
20277	// empty values are omitted from API requests. However, any non-pointer,
20278	// non-interface field appearing in ForceSendFields will be sent to the
20279	// server regardless of whether the field is empty or not. This may be
20280	// used to include empty fields in Patch requests.
20281	ForceSendFields []string `json:"-"`
20282
20283	// NullFields is a list of field names (e.g. "Id") to include in API
20284	// requests with the JSON null value. By default, fields with empty
20285	// values are omitted from API requests. However, any field with an
20286	// empty value appearing in NullFields will be sent to the server as
20287	// null. It is an error if a field in this list has a non-empty value.
20288	// This may be used to include null fields in Patch requests.
20289	NullFields []string `json:"-"`
20290}
20291
20292func (s *MachineImageList) MarshalJSON() ([]byte, error) {
20293	type NoMethod MachineImageList
20294	raw := NoMethod(*s)
20295	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20296}
20297
20298// MachineImageListWarning: [Output Only] Informational warning message.
20299type MachineImageListWarning struct {
20300	// Code: [Output Only] A warning code, if applicable. For example,
20301	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20302	// the response.
20303	//
20304	// Possible values:
20305	//   "CLEANUP_FAILED"
20306	//   "DEPRECATED_RESOURCE_USED"
20307	//   "DEPRECATED_TYPE_USED"
20308	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20309	//   "EXPERIMENTAL_TYPE_USED"
20310	//   "EXTERNAL_API_WARNING"
20311	//   "FIELD_VALUE_OVERRIDEN"
20312	//   "INJECTED_KERNELS_DEPRECATED"
20313	//   "MISSING_TYPE_DEPENDENCY"
20314	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20315	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20316	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20317	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20318	//   "NEXT_HOP_NOT_RUNNING"
20319	//   "NOT_CRITICAL_ERROR"
20320	//   "NO_RESULTS_ON_PAGE"
20321	//   "REQUIRED_TOS_AGREEMENT"
20322	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20323	//   "RESOURCE_NOT_DELETED"
20324	//   "SCHEMA_VALIDATION_IGNORED"
20325	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20326	//   "UNDECLARED_PROPERTIES"
20327	//   "UNREACHABLE"
20328	Code string `json:"code,omitempty"`
20329
20330	// Data: [Output Only] Metadata about this warning in key: value format.
20331	// For example:
20332	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20333	Data []*MachineImageListWarningData `json:"data,omitempty"`
20334
20335	// Message: [Output Only] A human-readable description of the warning
20336	// code.
20337	Message string `json:"message,omitempty"`
20338
20339	// ForceSendFields is a list of field names (e.g. "Code") to
20340	// unconditionally include in API requests. By default, fields with
20341	// empty values are omitted from API requests. However, any non-pointer,
20342	// non-interface field appearing in ForceSendFields will be sent to the
20343	// server regardless of whether the field is empty or not. This may be
20344	// used to include empty fields in Patch requests.
20345	ForceSendFields []string `json:"-"`
20346
20347	// NullFields is a list of field names (e.g. "Code") to include in API
20348	// requests with the JSON null value. By default, fields with empty
20349	// values are omitted from API requests. However, any field with an
20350	// empty value appearing in NullFields will be sent to the server as
20351	// null. It is an error if a field in this list has a non-empty value.
20352	// This may be used to include null fields in Patch requests.
20353	NullFields []string `json:"-"`
20354}
20355
20356func (s *MachineImageListWarning) MarshalJSON() ([]byte, error) {
20357	type NoMethod MachineImageListWarning
20358	raw := NoMethod(*s)
20359	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20360}
20361
20362type MachineImageListWarningData struct {
20363	// Key: [Output Only] A key that provides more detail on the warning
20364	// being returned. For example, for warnings where there are no results
20365	// in a list request for a particular zone, this key might be scope and
20366	// the key value might be the zone name. Other examples might be a key
20367	// indicating a deprecated resource and a suggested replacement, or a
20368	// warning about invalid network settings (for example, if an instance
20369	// attempts to perform IP forwarding but is not enabled for IP
20370	// forwarding).
20371	Key string `json:"key,omitempty"`
20372
20373	// Value: [Output Only] A warning data value corresponding to the key.
20374	Value string `json:"value,omitempty"`
20375
20376	// ForceSendFields is a list of field names (e.g. "Key") to
20377	// unconditionally include in API requests. By default, fields with
20378	// empty values are omitted from API requests. However, any non-pointer,
20379	// non-interface field appearing in ForceSendFields will be sent to the
20380	// server regardless of whether the field is empty or not. This may be
20381	// used to include empty fields in Patch requests.
20382	ForceSendFields []string `json:"-"`
20383
20384	// NullFields is a list of field names (e.g. "Key") to include in API
20385	// requests with the JSON null value. By default, fields with empty
20386	// values are omitted from API requests. However, any field with an
20387	// empty value appearing in NullFields will be sent to the server as
20388	// null. It is an error if a field in this list has a non-empty value.
20389	// This may be used to include null fields in Patch requests.
20390	NullFields []string `json:"-"`
20391}
20392
20393func (s *MachineImageListWarningData) MarshalJSON() ([]byte, error) {
20394	type NoMethod MachineImageListWarningData
20395	raw := NoMethod(*s)
20396	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20397}
20398
20399// MachineType: Represents a Machine Type resource.
20400//
20401// You can use specific machine types for your VM instances based on
20402// performance and pricing requirements. For more information, read
20403// Machine Types. (== resource_for {$api_version}.machineTypes ==)
20404type MachineType struct {
20405	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
20406	// format.
20407	CreationTimestamp string `json:"creationTimestamp,omitempty"`
20408
20409	// Deprecated: [Output Only] The deprecation status associated with this
20410	// machine type.
20411	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
20412
20413	// Description: [Output Only] An optional textual description of the
20414	// resource.
20415	Description string `json:"description,omitempty"`
20416
20417	// GuestCpus: [Output Only] The number of virtual CPUs that are
20418	// available to the instance.
20419	GuestCpus int64 `json:"guestCpus,omitempty"`
20420
20421	// Id: [Output Only] The unique identifier for the resource. This
20422	// identifier is defined by the server.
20423	Id uint64 `json:"id,omitempty,string"`
20424
20425	// IsSharedCpu: [Output Only] Whether this machine type has a shared
20426	// CPU. See Shared-core machine types for more information.
20427	IsSharedCpu bool `json:"isSharedCpu,omitempty"`
20428
20429	// Kind: [Output Only] The type of the resource. Always
20430	// compute#machineType for machine types.
20431	Kind string `json:"kind,omitempty"`
20432
20433	// MaximumPersistentDisks: [Output Only] Maximum persistent disks
20434	// allowed.
20435	MaximumPersistentDisks int64 `json:"maximumPersistentDisks,omitempty"`
20436
20437	// MaximumPersistentDisksSizeGb: [Output Only] Maximum total persistent
20438	// disks size (GB) allowed.
20439	MaximumPersistentDisksSizeGb int64 `json:"maximumPersistentDisksSizeGb,omitempty,string"`
20440
20441	// MemoryMb: [Output Only] The amount of physical memory available to
20442	// the instance, defined in MB.
20443	MemoryMb int64 `json:"memoryMb,omitempty"`
20444
20445	// Name: [Output Only] Name of the resource.
20446	Name string `json:"name,omitempty"`
20447
20448	// SelfLink: [Output Only] Server-defined URL for the resource.
20449	SelfLink string `json:"selfLink,omitempty"`
20450
20451	// Zone: [Output Only] The name of the zone where the machine type
20452	// resides, such as us-central1-a.
20453	Zone string `json:"zone,omitempty"`
20454
20455	// ServerResponse contains the HTTP response code and headers from the
20456	// server.
20457	googleapi.ServerResponse `json:"-"`
20458
20459	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
20460	// to unconditionally include in API requests. By default, fields with
20461	// empty values are omitted from API requests. However, any non-pointer,
20462	// non-interface field appearing in ForceSendFields will be sent to the
20463	// server regardless of whether the field is empty or not. This may be
20464	// used to include empty fields in Patch requests.
20465	ForceSendFields []string `json:"-"`
20466
20467	// NullFields is a list of field names (e.g. "CreationTimestamp") to
20468	// include in API requests with the JSON null value. By default, fields
20469	// with empty values are omitted from API requests. However, any field
20470	// with an empty value appearing in NullFields will be sent to the
20471	// server as null. It is an error if a field in this list has a
20472	// non-empty value. This may be used to include null fields in Patch
20473	// requests.
20474	NullFields []string `json:"-"`
20475}
20476
20477func (s *MachineType) MarshalJSON() ([]byte, error) {
20478	type NoMethod MachineType
20479	raw := NoMethod(*s)
20480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20481}
20482
20483type MachineTypeAggregatedList struct {
20484	// Id: [Output Only] Unique identifier for the resource; defined by the
20485	// server.
20486	Id string `json:"id,omitempty"`
20487
20488	// Items: A list of MachineTypesScopedList resources.
20489	Items map[string]MachineTypesScopedList `json:"items,omitempty"`
20490
20491	// Kind: [Output Only] Type of resource. Always
20492	// compute#machineTypeAggregatedList for aggregated lists of machine
20493	// types.
20494	Kind string `json:"kind,omitempty"`
20495
20496	// NextPageToken: [Output Only] This token allows you to get the next
20497	// page of results for list requests. If the number of results is larger
20498	// than maxResults, use the nextPageToken as a value for the query
20499	// parameter pageToken in the next list request. Subsequent list
20500	// requests will have their own nextPageToken to continue paging through
20501	// the results.
20502	NextPageToken string `json:"nextPageToken,omitempty"`
20503
20504	// SelfLink: [Output Only] Server-defined URL for this resource.
20505	SelfLink string `json:"selfLink,omitempty"`
20506
20507	// Warning: [Output Only] Informational warning message.
20508	Warning *MachineTypeAggregatedListWarning `json:"warning,omitempty"`
20509
20510	// ServerResponse contains the HTTP response code and headers from the
20511	// server.
20512	googleapi.ServerResponse `json:"-"`
20513
20514	// ForceSendFields is a list of field names (e.g. "Id") to
20515	// unconditionally include in API requests. By default, fields with
20516	// empty values are omitted from API requests. However, any non-pointer,
20517	// non-interface field appearing in ForceSendFields will be sent to the
20518	// server regardless of whether the field is empty or not. This may be
20519	// used to include empty fields in Patch requests.
20520	ForceSendFields []string `json:"-"`
20521
20522	// NullFields is a list of field names (e.g. "Id") to include in API
20523	// requests with the JSON null value. By default, fields with empty
20524	// values are omitted from API requests. However, any field with an
20525	// empty value appearing in NullFields will be sent to the server as
20526	// null. It is an error if a field in this list has a non-empty value.
20527	// This may be used to include null fields in Patch requests.
20528	NullFields []string `json:"-"`
20529}
20530
20531func (s *MachineTypeAggregatedList) MarshalJSON() ([]byte, error) {
20532	type NoMethod MachineTypeAggregatedList
20533	raw := NoMethod(*s)
20534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20535}
20536
20537// MachineTypeAggregatedListWarning: [Output Only] Informational warning
20538// message.
20539type MachineTypeAggregatedListWarning struct {
20540	// Code: [Output Only] A warning code, if applicable. For example,
20541	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20542	// the response.
20543	//
20544	// Possible values:
20545	//   "CLEANUP_FAILED"
20546	//   "DEPRECATED_RESOURCE_USED"
20547	//   "DEPRECATED_TYPE_USED"
20548	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20549	//   "EXPERIMENTAL_TYPE_USED"
20550	//   "EXTERNAL_API_WARNING"
20551	//   "FIELD_VALUE_OVERRIDEN"
20552	//   "INJECTED_KERNELS_DEPRECATED"
20553	//   "MISSING_TYPE_DEPENDENCY"
20554	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20555	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20556	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20557	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20558	//   "NEXT_HOP_NOT_RUNNING"
20559	//   "NOT_CRITICAL_ERROR"
20560	//   "NO_RESULTS_ON_PAGE"
20561	//   "REQUIRED_TOS_AGREEMENT"
20562	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20563	//   "RESOURCE_NOT_DELETED"
20564	//   "SCHEMA_VALIDATION_IGNORED"
20565	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20566	//   "UNDECLARED_PROPERTIES"
20567	//   "UNREACHABLE"
20568	Code string `json:"code,omitempty"`
20569
20570	// Data: [Output Only] Metadata about this warning in key: value format.
20571	// For example:
20572	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20573	Data []*MachineTypeAggregatedListWarningData `json:"data,omitempty"`
20574
20575	// Message: [Output Only] A human-readable description of the warning
20576	// code.
20577	Message string `json:"message,omitempty"`
20578
20579	// ForceSendFields is a list of field names (e.g. "Code") to
20580	// unconditionally include in API requests. By default, fields with
20581	// empty values are omitted from API requests. However, any non-pointer,
20582	// non-interface field appearing in ForceSendFields will be sent to the
20583	// server regardless of whether the field is empty or not. This may be
20584	// used to include empty fields in Patch requests.
20585	ForceSendFields []string `json:"-"`
20586
20587	// NullFields is a list of field names (e.g. "Code") to include in API
20588	// requests with the JSON null value. By default, fields with empty
20589	// values are omitted from API requests. However, any field with an
20590	// empty value appearing in NullFields will be sent to the server as
20591	// null. It is an error if a field in this list has a non-empty value.
20592	// This may be used to include null fields in Patch requests.
20593	NullFields []string `json:"-"`
20594}
20595
20596func (s *MachineTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
20597	type NoMethod MachineTypeAggregatedListWarning
20598	raw := NoMethod(*s)
20599	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20600}
20601
20602type MachineTypeAggregatedListWarningData struct {
20603	// Key: [Output Only] A key that provides more detail on the warning
20604	// being returned. For example, for warnings where there are no results
20605	// in a list request for a particular zone, this key might be scope and
20606	// the key value might be the zone name. Other examples might be a key
20607	// indicating a deprecated resource and a suggested replacement, or a
20608	// warning about invalid network settings (for example, if an instance
20609	// attempts to perform IP forwarding but is not enabled for IP
20610	// forwarding).
20611	Key string `json:"key,omitempty"`
20612
20613	// Value: [Output Only] A warning data value corresponding to the key.
20614	Value string `json:"value,omitempty"`
20615
20616	// ForceSendFields is a list of field names (e.g. "Key") to
20617	// unconditionally include in API requests. By default, fields with
20618	// empty values are omitted from API requests. However, any non-pointer,
20619	// non-interface field appearing in ForceSendFields will be sent to the
20620	// server regardless of whether the field is empty or not. This may be
20621	// used to include empty fields in Patch requests.
20622	ForceSendFields []string `json:"-"`
20623
20624	// NullFields is a list of field names (e.g. "Key") to include in API
20625	// requests with the JSON null value. By default, fields with empty
20626	// values are omitted from API requests. However, any field with an
20627	// empty value appearing in NullFields will be sent to the server as
20628	// null. It is an error if a field in this list has a non-empty value.
20629	// This may be used to include null fields in Patch requests.
20630	NullFields []string `json:"-"`
20631}
20632
20633func (s *MachineTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
20634	type NoMethod MachineTypeAggregatedListWarningData
20635	raw := NoMethod(*s)
20636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20637}
20638
20639// MachineTypeList: Contains a list of machine types.
20640type MachineTypeList struct {
20641	// Id: [Output Only] Unique identifier for the resource; defined by the
20642	// server.
20643	Id string `json:"id,omitempty"`
20644
20645	// Items: A list of MachineType resources.
20646	Items []*MachineType `json:"items,omitempty"`
20647
20648	// Kind: [Output Only] Type of resource. Always compute#machineTypeList
20649	// for lists of machine types.
20650	Kind string `json:"kind,omitempty"`
20651
20652	// NextPageToken: [Output Only] This token allows you to get the next
20653	// page of results for list requests. If the number of results is larger
20654	// than maxResults, use the nextPageToken as a value for the query
20655	// parameter pageToken in the next list request. Subsequent list
20656	// requests will have their own nextPageToken to continue paging through
20657	// the results.
20658	NextPageToken string `json:"nextPageToken,omitempty"`
20659
20660	// SelfLink: [Output Only] Server-defined URL for this resource.
20661	SelfLink string `json:"selfLink,omitempty"`
20662
20663	// Warning: [Output Only] Informational warning message.
20664	Warning *MachineTypeListWarning `json:"warning,omitempty"`
20665
20666	// ServerResponse contains the HTTP response code and headers from the
20667	// server.
20668	googleapi.ServerResponse `json:"-"`
20669
20670	// ForceSendFields is a list of field names (e.g. "Id") to
20671	// unconditionally include in API requests. By default, fields with
20672	// empty values are omitted from API requests. However, any non-pointer,
20673	// non-interface field appearing in ForceSendFields will be sent to the
20674	// server regardless of whether the field is empty or not. This may be
20675	// used to include empty fields in Patch requests.
20676	ForceSendFields []string `json:"-"`
20677
20678	// NullFields is a list of field names (e.g. "Id") to include in API
20679	// requests with the JSON null value. By default, fields with empty
20680	// values are omitted from API requests. However, any field with an
20681	// empty value appearing in NullFields will be sent to the server as
20682	// null. It is an error if a field in this list has a non-empty value.
20683	// This may be used to include null fields in Patch requests.
20684	NullFields []string `json:"-"`
20685}
20686
20687func (s *MachineTypeList) MarshalJSON() ([]byte, error) {
20688	type NoMethod MachineTypeList
20689	raw := NoMethod(*s)
20690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20691}
20692
20693// MachineTypeListWarning: [Output Only] Informational warning message.
20694type MachineTypeListWarning struct {
20695	// Code: [Output Only] A warning code, if applicable. For example,
20696	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20697	// the response.
20698	//
20699	// Possible values:
20700	//   "CLEANUP_FAILED"
20701	//   "DEPRECATED_RESOURCE_USED"
20702	//   "DEPRECATED_TYPE_USED"
20703	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20704	//   "EXPERIMENTAL_TYPE_USED"
20705	//   "EXTERNAL_API_WARNING"
20706	//   "FIELD_VALUE_OVERRIDEN"
20707	//   "INJECTED_KERNELS_DEPRECATED"
20708	//   "MISSING_TYPE_DEPENDENCY"
20709	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20710	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20711	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20712	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20713	//   "NEXT_HOP_NOT_RUNNING"
20714	//   "NOT_CRITICAL_ERROR"
20715	//   "NO_RESULTS_ON_PAGE"
20716	//   "REQUIRED_TOS_AGREEMENT"
20717	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20718	//   "RESOURCE_NOT_DELETED"
20719	//   "SCHEMA_VALIDATION_IGNORED"
20720	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20721	//   "UNDECLARED_PROPERTIES"
20722	//   "UNREACHABLE"
20723	Code string `json:"code,omitempty"`
20724
20725	// Data: [Output Only] Metadata about this warning in key: value format.
20726	// For example:
20727	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20728	Data []*MachineTypeListWarningData `json:"data,omitempty"`
20729
20730	// Message: [Output Only] A human-readable description of the warning
20731	// code.
20732	Message string `json:"message,omitempty"`
20733
20734	// ForceSendFields is a list of field names (e.g. "Code") to
20735	// unconditionally include in API requests. By default, fields with
20736	// empty values are omitted from API requests. However, any non-pointer,
20737	// non-interface field appearing in ForceSendFields will be sent to the
20738	// server regardless of whether the field is empty or not. This may be
20739	// used to include empty fields in Patch requests.
20740	ForceSendFields []string `json:"-"`
20741
20742	// NullFields is a list of field names (e.g. "Code") to include in API
20743	// requests with the JSON null value. By default, fields with empty
20744	// values are omitted from API requests. However, any field with an
20745	// empty value appearing in NullFields will be sent to the server as
20746	// null. It is an error if a field in this list has a non-empty value.
20747	// This may be used to include null fields in Patch requests.
20748	NullFields []string `json:"-"`
20749}
20750
20751func (s *MachineTypeListWarning) MarshalJSON() ([]byte, error) {
20752	type NoMethod MachineTypeListWarning
20753	raw := NoMethod(*s)
20754	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20755}
20756
20757type MachineTypeListWarningData struct {
20758	// Key: [Output Only] A key that provides more detail on the warning
20759	// being returned. For example, for warnings where there are no results
20760	// in a list request for a particular zone, this key might be scope and
20761	// the key value might be the zone name. Other examples might be a key
20762	// indicating a deprecated resource and a suggested replacement, or a
20763	// warning about invalid network settings (for example, if an instance
20764	// attempts to perform IP forwarding but is not enabled for IP
20765	// forwarding).
20766	Key string `json:"key,omitempty"`
20767
20768	// Value: [Output Only] A warning data value corresponding to the key.
20769	Value string `json:"value,omitempty"`
20770
20771	// ForceSendFields is a list of field names (e.g. "Key") to
20772	// unconditionally include in API requests. By default, fields with
20773	// empty values are omitted from API requests. However, any non-pointer,
20774	// non-interface field appearing in ForceSendFields will be sent to the
20775	// server regardless of whether the field is empty or not. This may be
20776	// used to include empty fields in Patch requests.
20777	ForceSendFields []string `json:"-"`
20778
20779	// NullFields is a list of field names (e.g. "Key") to include in API
20780	// requests with the JSON null value. By default, fields with empty
20781	// values are omitted from API requests. However, any field with an
20782	// empty value appearing in NullFields will be sent to the server as
20783	// null. It is an error if a field in this list has a non-empty value.
20784	// This may be used to include null fields in Patch requests.
20785	NullFields []string `json:"-"`
20786}
20787
20788func (s *MachineTypeListWarningData) MarshalJSON() ([]byte, error) {
20789	type NoMethod MachineTypeListWarningData
20790	raw := NoMethod(*s)
20791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20792}
20793
20794type MachineTypesScopedList struct {
20795	// MachineTypes: [Output Only] A list of machine types contained in this
20796	// scope.
20797	MachineTypes []*MachineType `json:"machineTypes,omitempty"`
20798
20799	// Warning: [Output Only] An informational warning that appears when the
20800	// machine types list is empty.
20801	Warning *MachineTypesScopedListWarning `json:"warning,omitempty"`
20802
20803	// ForceSendFields is a list of field names (e.g. "MachineTypes") to
20804	// unconditionally include in API requests. By default, fields with
20805	// empty values are omitted from API requests. However, any non-pointer,
20806	// non-interface field appearing in ForceSendFields will be sent to the
20807	// server regardless of whether the field is empty or not. This may be
20808	// used to include empty fields in Patch requests.
20809	ForceSendFields []string `json:"-"`
20810
20811	// NullFields is a list of field names (e.g. "MachineTypes") to include
20812	// in API requests with the JSON null value. By default, fields with
20813	// empty values are omitted from API requests. However, any field with
20814	// an empty value appearing in NullFields will be sent to the server as
20815	// null. It is an error if a field in this list has a non-empty value.
20816	// This may be used to include null fields in Patch requests.
20817	NullFields []string `json:"-"`
20818}
20819
20820func (s *MachineTypesScopedList) MarshalJSON() ([]byte, error) {
20821	type NoMethod MachineTypesScopedList
20822	raw := NoMethod(*s)
20823	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20824}
20825
20826// MachineTypesScopedListWarning: [Output Only] An informational warning
20827// that appears when the machine types list is empty.
20828type MachineTypesScopedListWarning struct {
20829	// Code: [Output Only] A warning code, if applicable. For example,
20830	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
20831	// the response.
20832	//
20833	// Possible values:
20834	//   "CLEANUP_FAILED"
20835	//   "DEPRECATED_RESOURCE_USED"
20836	//   "DEPRECATED_TYPE_USED"
20837	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
20838	//   "EXPERIMENTAL_TYPE_USED"
20839	//   "EXTERNAL_API_WARNING"
20840	//   "FIELD_VALUE_OVERRIDEN"
20841	//   "INJECTED_KERNELS_DEPRECATED"
20842	//   "MISSING_TYPE_DEPENDENCY"
20843	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
20844	//   "NEXT_HOP_CANNOT_IP_FORWARD"
20845	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
20846	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
20847	//   "NEXT_HOP_NOT_RUNNING"
20848	//   "NOT_CRITICAL_ERROR"
20849	//   "NO_RESULTS_ON_PAGE"
20850	//   "REQUIRED_TOS_AGREEMENT"
20851	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
20852	//   "RESOURCE_NOT_DELETED"
20853	//   "SCHEMA_VALIDATION_IGNORED"
20854	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
20855	//   "UNDECLARED_PROPERTIES"
20856	//   "UNREACHABLE"
20857	Code string `json:"code,omitempty"`
20858
20859	// Data: [Output Only] Metadata about this warning in key: value format.
20860	// For example:
20861	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
20862	Data []*MachineTypesScopedListWarningData `json:"data,omitempty"`
20863
20864	// Message: [Output Only] A human-readable description of the warning
20865	// code.
20866	Message string `json:"message,omitempty"`
20867
20868	// ForceSendFields is a list of field names (e.g. "Code") to
20869	// unconditionally include in API requests. By default, fields with
20870	// empty values are omitted from API requests. However, any non-pointer,
20871	// non-interface field appearing in ForceSendFields will be sent to the
20872	// server regardless of whether the field is empty or not. This may be
20873	// used to include empty fields in Patch requests.
20874	ForceSendFields []string `json:"-"`
20875
20876	// NullFields is a list of field names (e.g. "Code") to include in API
20877	// requests with the JSON null value. By default, fields with empty
20878	// values are omitted from API requests. However, any field with an
20879	// empty value appearing in NullFields will be sent to the server as
20880	// null. It is an error if a field in this list has a non-empty value.
20881	// This may be used to include null fields in Patch requests.
20882	NullFields []string `json:"-"`
20883}
20884
20885func (s *MachineTypesScopedListWarning) MarshalJSON() ([]byte, error) {
20886	type NoMethod MachineTypesScopedListWarning
20887	raw := NoMethod(*s)
20888	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20889}
20890
20891type MachineTypesScopedListWarningData struct {
20892	// Key: [Output Only] A key that provides more detail on the warning
20893	// being returned. For example, for warnings where there are no results
20894	// in a list request for a particular zone, this key might be scope and
20895	// the key value might be the zone name. Other examples might be a key
20896	// indicating a deprecated resource and a suggested replacement, or a
20897	// warning about invalid network settings (for example, if an instance
20898	// attempts to perform IP forwarding but is not enabled for IP
20899	// forwarding).
20900	Key string `json:"key,omitempty"`
20901
20902	// Value: [Output Only] A warning data value corresponding to the key.
20903	Value string `json:"value,omitempty"`
20904
20905	// ForceSendFields is a list of field names (e.g. "Key") to
20906	// unconditionally include in API requests. By default, fields with
20907	// empty values are omitted from API requests. However, any non-pointer,
20908	// non-interface field appearing in ForceSendFields will be sent to the
20909	// server regardless of whether the field is empty or not. This may be
20910	// used to include empty fields in Patch requests.
20911	ForceSendFields []string `json:"-"`
20912
20913	// NullFields is a list of field names (e.g. "Key") to include in API
20914	// requests with the JSON null value. By default, fields with empty
20915	// values are omitted from API requests. However, any field with an
20916	// empty value appearing in NullFields will be sent to the server as
20917	// null. It is an error if a field in this list has a non-empty value.
20918	// This may be used to include null fields in Patch requests.
20919	NullFields []string `json:"-"`
20920}
20921
20922func (s *MachineTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
20923	type NoMethod MachineTypesScopedListWarningData
20924	raw := NoMethod(*s)
20925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
20926}
20927
20928// ManagedInstance: A Managed Instance resource.
20929type ManagedInstance struct {
20930	// CurrentAction: [Output Only] The current action that the managed
20931	// instance group has scheduled for the instance. Possible values:
20932	// - NONE The instance is running, and the managed instance group does
20933	// not have any scheduled actions for this instance.
20934	// - CREATING The managed instance group is creating this instance. If
20935	// the group fails to create this instance, it will try again until it
20936	// is successful.
20937	// - CREATING_WITHOUT_RETRIES The managed instance group is attempting
20938	// to create this instance only once. If the group fails to create this
20939	// instance, it does not try again and the group's targetSize value is
20940	// decreased instead.
20941	// - RECREATING The managed instance group is recreating this instance.
20942	//
20943	// - DELETING The managed instance group is permanently deleting this
20944	// instance.
20945	// - ABANDONING The managed instance group is abandoning this instance.
20946	// The instance will be removed from the instance group and from any
20947	// target pools that are associated with this group.
20948	// - RESTARTING The managed instance group is restarting the instance.
20949	//
20950	// - REFRESHING The managed instance group is applying configuration
20951	// changes to the instance without stopping it. For example, the group
20952	// can update the target pool list for an instance without stopping that
20953	// instance.
20954	// - VERIFYING The managed instance group has created the instance and
20955	// it is in the process of being verified.
20956	//
20957	// Possible values:
20958	//   "ABANDONING"
20959	//   "CREATING"
20960	//   "CREATING_WITHOUT_RETRIES"
20961	//   "DELETING"
20962	//   "NONE"
20963	//   "RECREATING"
20964	//   "REFRESHING"
20965	//   "RESTARTING"
20966	//   "VERIFYING"
20967	CurrentAction string `json:"currentAction,omitempty"`
20968
20969	// Id: [Output only] The unique identifier for this resource. This field
20970	// is empty when instance does not exist.
20971	Id uint64 `json:"id,omitempty,string"`
20972
20973	// Instance: [Output Only] The URL of the instance. The URL can exist
20974	// even if the instance has not yet been created.
20975	Instance string `json:"instance,omitempty"`
20976
20977	// InstanceHealth: [Output Only] Health state of the instance per
20978	// health-check.
20979	InstanceHealth []*ManagedInstanceInstanceHealth `json:"instanceHealth,omitempty"`
20980
20981	// InstanceStatus: [Output Only] The status of the instance. This field
20982	// is empty when the instance does not exist.
20983	//
20984	// Possible values:
20985	//   "PROVISIONING"
20986	//   "REPAIRING"
20987	//   "RUNNING"
20988	//   "STAGING"
20989	//   "STOPPED"
20990	//   "STOPPING"
20991	//   "SUSPENDED"
20992	//   "SUSPENDING"
20993	//   "TERMINATED"
20994	InstanceStatus string `json:"instanceStatus,omitempty"`
20995
20996	// LastAttempt: [Output Only] Information about the last attempt to
20997	// create or delete the instance.
20998	LastAttempt *ManagedInstanceLastAttempt `json:"lastAttempt,omitempty"`
20999
21000	// PreservedStateFromConfig: [Output Only] Preserved state applied from
21001	// per-instance config for this instance.
21002	PreservedStateFromConfig *PreservedState `json:"preservedStateFromConfig,omitempty"`
21003
21004	// PreservedStateFromPolicy: [Output Only] Preserved state generated
21005	// based on stateful policy for this instance.
21006	PreservedStateFromPolicy *PreservedState `json:"preservedStateFromPolicy,omitempty"`
21007
21008	// Version: [Output Only] Intended version of this instance.
21009	Version *ManagedInstanceVersion `json:"version,omitempty"`
21010
21011	// ForceSendFields is a list of field names (e.g. "CurrentAction") to
21012	// unconditionally include in API requests. By default, fields with
21013	// empty values are omitted from API requests. However, any non-pointer,
21014	// non-interface field appearing in ForceSendFields will be sent to the
21015	// server regardless of whether the field is empty or not. This may be
21016	// used to include empty fields in Patch requests.
21017	ForceSendFields []string `json:"-"`
21018
21019	// NullFields is a list of field names (e.g. "CurrentAction") to include
21020	// in API requests with the JSON null value. By default, fields with
21021	// empty values are omitted from API requests. However, any field with
21022	// an empty value appearing in NullFields will be sent to the server as
21023	// null. It is an error if a field in this list has a non-empty value.
21024	// This may be used to include null fields in Patch requests.
21025	NullFields []string `json:"-"`
21026}
21027
21028func (s *ManagedInstance) MarshalJSON() ([]byte, error) {
21029	type NoMethod ManagedInstance
21030	raw := NoMethod(*s)
21031	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21032}
21033
21034type ManagedInstanceInstanceHealth struct {
21035	// DetailedHealthState: [Output Only] The current detailed instance
21036	// health state.
21037	//
21038	// Possible values:
21039	//   "DRAINING"
21040	//   "HEALTHY"
21041	//   "TIMEOUT"
21042	//   "UNHEALTHY"
21043	//   "UNKNOWN"
21044	DetailedHealthState string `json:"detailedHealthState,omitempty"`
21045
21046	// HealthCheck: [Output Only] The URL for the health check that verifies
21047	// whether the instance is healthy.
21048	HealthCheck string `json:"healthCheck,omitempty"`
21049
21050	// ForceSendFields is a list of field names (e.g. "DetailedHealthState")
21051	// to unconditionally include in API requests. By default, fields with
21052	// empty values are omitted from API requests. However, any non-pointer,
21053	// non-interface field appearing in ForceSendFields will be sent to the
21054	// server regardless of whether the field is empty or not. This may be
21055	// used to include empty fields in Patch requests.
21056	ForceSendFields []string `json:"-"`
21057
21058	// NullFields is a list of field names (e.g. "DetailedHealthState") to
21059	// include in API requests with the JSON null value. By default, fields
21060	// with empty values are omitted from API requests. However, any field
21061	// with an empty value appearing in NullFields will be sent to the
21062	// server as null. It is an error if a field in this list has a
21063	// non-empty value. This may be used to include null fields in Patch
21064	// requests.
21065	NullFields []string `json:"-"`
21066}
21067
21068func (s *ManagedInstanceInstanceHealth) MarshalJSON() ([]byte, error) {
21069	type NoMethod ManagedInstanceInstanceHealth
21070	raw := NoMethod(*s)
21071	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21072}
21073
21074type ManagedInstanceLastAttempt struct {
21075	// Errors: [Output Only] Encountered errors during the last attempt to
21076	// create or delete the instance.
21077	Errors *ManagedInstanceLastAttemptErrors `json:"errors,omitempty"`
21078
21079	// ForceSendFields is a list of field names (e.g. "Errors") to
21080	// unconditionally include in API requests. By default, fields with
21081	// empty values are omitted from API requests. However, any non-pointer,
21082	// non-interface field appearing in ForceSendFields will be sent to the
21083	// server regardless of whether the field is empty or not. This may be
21084	// used to include empty fields in Patch requests.
21085	ForceSendFields []string `json:"-"`
21086
21087	// NullFields is a list of field names (e.g. "Errors") to include in API
21088	// requests with the JSON null value. By default, fields with empty
21089	// values are omitted from API requests. However, any field with an
21090	// empty value appearing in NullFields will be sent to the server as
21091	// null. It is an error if a field in this list has a non-empty value.
21092	// This may be used to include null fields in Patch requests.
21093	NullFields []string `json:"-"`
21094}
21095
21096func (s *ManagedInstanceLastAttempt) MarshalJSON() ([]byte, error) {
21097	type NoMethod ManagedInstanceLastAttempt
21098	raw := NoMethod(*s)
21099	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21100}
21101
21102// ManagedInstanceLastAttemptErrors: [Output Only] Encountered errors
21103// during the last attempt to create or delete the instance.
21104type ManagedInstanceLastAttemptErrors struct {
21105	// Errors: [Output Only] The array of errors encountered while
21106	// processing this operation.
21107	Errors []*ManagedInstanceLastAttemptErrorsErrors `json:"errors,omitempty"`
21108
21109	// ForceSendFields is a list of field names (e.g. "Errors") to
21110	// unconditionally include in API requests. By default, fields with
21111	// empty values are omitted from API requests. However, any non-pointer,
21112	// non-interface field appearing in ForceSendFields will be sent to the
21113	// server regardless of whether the field is empty or not. This may be
21114	// used to include empty fields in Patch requests.
21115	ForceSendFields []string `json:"-"`
21116
21117	// NullFields is a list of field names (e.g. "Errors") to include in API
21118	// requests with the JSON null value. By default, fields with empty
21119	// values are omitted from API requests. However, any field with an
21120	// empty value appearing in NullFields will be sent to the server as
21121	// null. It is an error if a field in this list has a non-empty value.
21122	// This may be used to include null fields in Patch requests.
21123	NullFields []string `json:"-"`
21124}
21125
21126func (s *ManagedInstanceLastAttemptErrors) MarshalJSON() ([]byte, error) {
21127	type NoMethod ManagedInstanceLastAttemptErrors
21128	raw := NoMethod(*s)
21129	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21130}
21131
21132type ManagedInstanceLastAttemptErrorsErrors struct {
21133	// Code: [Output Only] The error type identifier for this error.
21134	Code string `json:"code,omitempty"`
21135
21136	// Location: [Output Only] Indicates the field in the request that
21137	// caused the error. This property is optional.
21138	Location string `json:"location,omitempty"`
21139
21140	// Message: [Output Only] An optional, human-readable error message.
21141	Message string `json:"message,omitempty"`
21142
21143	// ForceSendFields is a list of field names (e.g. "Code") to
21144	// unconditionally include in API requests. By default, fields with
21145	// empty values are omitted from API requests. However, any non-pointer,
21146	// non-interface field appearing in ForceSendFields will be sent to the
21147	// server regardless of whether the field is empty or not. This may be
21148	// used to include empty fields in Patch requests.
21149	ForceSendFields []string `json:"-"`
21150
21151	// NullFields is a list of field names (e.g. "Code") to include in API
21152	// requests with the JSON null value. By default, fields with empty
21153	// values are omitted from API requests. However, any field with an
21154	// empty value appearing in NullFields will be sent to the server as
21155	// null. It is an error if a field in this list has a non-empty value.
21156	// This may be used to include null fields in Patch requests.
21157	NullFields []string `json:"-"`
21158}
21159
21160func (s *ManagedInstanceLastAttemptErrorsErrors) MarshalJSON() ([]byte, error) {
21161	type NoMethod ManagedInstanceLastAttemptErrorsErrors
21162	raw := NoMethod(*s)
21163	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21164}
21165
21166type ManagedInstanceVersion struct {
21167	// InstanceTemplate: [Output Only] The intended template of the
21168	// instance. This field is empty when current_action is one of {
21169	// DELETING, ABANDONING }.
21170	InstanceTemplate string `json:"instanceTemplate,omitempty"`
21171
21172	// Name: [Output Only] Name of the version.
21173	Name string `json:"name,omitempty"`
21174
21175	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
21176	// unconditionally include in API requests. By default, fields with
21177	// empty values are omitted from API requests. However, any non-pointer,
21178	// non-interface field appearing in ForceSendFields will be sent to the
21179	// server regardless of whether the field is empty or not. This may be
21180	// used to include empty fields in Patch requests.
21181	ForceSendFields []string `json:"-"`
21182
21183	// NullFields is a list of field names (e.g. "InstanceTemplate") to
21184	// include in API requests with the JSON null value. By default, fields
21185	// with empty values are omitted from API requests. However, any field
21186	// with an empty value appearing in NullFields will be sent to the
21187	// server as null. It is an error if a field in this list has a
21188	// non-empty value. This may be used to include null fields in Patch
21189	// requests.
21190	NullFields []string `json:"-"`
21191}
21192
21193func (s *ManagedInstanceVersion) MarshalJSON() ([]byte, error) {
21194	type NoMethod ManagedInstanceVersion
21195	raw := NoMethod(*s)
21196	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21197}
21198
21199// Metadata: A metadata key/value entry.
21200type Metadata struct {
21201	// Fingerprint: Specifies a fingerprint for this request, which is
21202	// essentially a hash of the metadata's contents and used for optimistic
21203	// locking. The fingerprint is initially generated by Compute Engine and
21204	// changes after every request to modify or update metadata. You must
21205	// always provide an up-to-date fingerprint hash in order to update or
21206	// change metadata, otherwise the request will fail with error 412
21207	// conditionNotMet.
21208	//
21209	// To see the latest fingerprint, make a get() request to retrieve the
21210	// resource.
21211	Fingerprint string `json:"fingerprint,omitempty"`
21212
21213	// Items: Array of key/value pairs. The total size of all keys and
21214	// values must be less than 512 KB.
21215	Items []*MetadataItems `json:"items,omitempty"`
21216
21217	// Kind: [Output Only] Type of the resource. Always compute#metadata for
21218	// metadata.
21219	Kind string `json:"kind,omitempty"`
21220
21221	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
21222	// unconditionally include in API requests. By default, fields with
21223	// empty values are omitted from API requests. However, any non-pointer,
21224	// non-interface field appearing in ForceSendFields will be sent to the
21225	// server regardless of whether the field is empty or not. This may be
21226	// used to include empty fields in Patch requests.
21227	ForceSendFields []string `json:"-"`
21228
21229	// NullFields is a list of field names (e.g. "Fingerprint") to include
21230	// in API requests with the JSON null value. By default, fields with
21231	// empty values are omitted from API requests. However, any field with
21232	// an empty value appearing in NullFields will be sent to the server as
21233	// null. It is an error if a field in this list has a non-empty value.
21234	// This may be used to include null fields in Patch requests.
21235	NullFields []string `json:"-"`
21236}
21237
21238func (s *Metadata) MarshalJSON() ([]byte, error) {
21239	type NoMethod Metadata
21240	raw := NoMethod(*s)
21241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21242}
21243
21244type MetadataItems struct {
21245	// Key: Key for the metadata entry. Keys must conform to the following
21246	// regexp: [a-zA-Z0-9-_]+, and be less than 128 bytes in length. This is
21247	// reflected as part of a URL in the metadata server. Additionally, to
21248	// avoid ambiguity, keys must not conflict with any other metadata keys
21249	// for the project.
21250	Key string `json:"key,omitempty"`
21251
21252	// Value: Value for the metadata entry. These are free-form strings, and
21253	// only have meaning as interpreted by the image running in the
21254	// instance. The only restriction placed on values is that their size
21255	// must be less than or equal to 262144 bytes (256 KiB).
21256	Value *string `json:"value,omitempty"`
21257
21258	// ForceSendFields is a list of field names (e.g. "Key") to
21259	// unconditionally include in API requests. By default, fields with
21260	// empty values are omitted from API requests. However, any non-pointer,
21261	// non-interface field appearing in ForceSendFields will be sent to the
21262	// server regardless of whether the field is empty or not. This may be
21263	// used to include empty fields in Patch requests.
21264	ForceSendFields []string `json:"-"`
21265
21266	// NullFields is a list of field names (e.g. "Key") to include in API
21267	// requests with the JSON null value. By default, fields with empty
21268	// values are omitted from API requests. However, any field with an
21269	// empty value appearing in NullFields will be sent to the server as
21270	// null. It is an error if a field in this list has a non-empty value.
21271	// This may be used to include null fields in Patch requests.
21272	NullFields []string `json:"-"`
21273}
21274
21275func (s *MetadataItems) MarshalJSON() ([]byte, error) {
21276	type NoMethod MetadataItems
21277	raw := NoMethod(*s)
21278	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21279}
21280
21281// MetadataFilter: Opaque filter criteria used by loadbalancers to
21282// restrict routing configuration to a limited set of loadbalancing
21283// proxies. Proxies and sidecars involved in loadbalancing would
21284// typically present metadata to the loadbalancers which need to match
21285// criteria specified here. If a match takes place, the relevant
21286// configuration is made available to those proxies.
21287// For each metadataFilter in this list, if its filterMatchCriteria is
21288// set to MATCH_ANY, at least one of the filterLabels must match the
21289// corresponding label provided in the metadata. If its
21290// filterMatchCriteria is set to MATCH_ALL, then all of its filterLabels
21291// must match with corresponding labels provided in the metadata.
21292// An example for using metadataFilters would be: if loadbalancing
21293// involves  Envoys, they will only receive routing configuration when
21294// values in metadataFilters match values supplied in <a
21295// href="https://www.envoyproxy.io/docs/envoy/latest/api-v2/api/v2/core/b
21296// ase.proto#envoy-api-msg-core-node" Node metadata of their XDS
21297// requests to loadbalancers.
21298type MetadataFilter struct {
21299	// FilterLabels: The list of label value pairs that must match labels in
21300	// the provided metadata based on filterMatchCriteria
21301	// This list must not be empty and can have at the most 64 entries.
21302	FilterLabels []*MetadataFilterLabelMatch `json:"filterLabels,omitempty"`
21303
21304	// FilterMatchCriteria: Specifies how individual filterLabel matches
21305	// within the list of filterLabels contribute towards the overall
21306	// metadataFilter match.
21307	// Supported values are:
21308	// - MATCH_ANY: At least one of the filterLabels must have a matching
21309	// label in the provided metadata.
21310	// - MATCH_ALL: All filterLabels must have matching labels in the
21311	// provided metadata.
21312	//
21313	// Possible values:
21314	//   "MATCH_ALL"
21315	//   "MATCH_ANY"
21316	//   "NOT_SET"
21317	FilterMatchCriteria string `json:"filterMatchCriteria,omitempty"`
21318
21319	// ForceSendFields is a list of field names (e.g. "FilterLabels") to
21320	// unconditionally include in API requests. By default, fields with
21321	// empty values are omitted from API requests. However, any non-pointer,
21322	// non-interface field appearing in ForceSendFields will be sent to the
21323	// server regardless of whether the field is empty or not. This may be
21324	// used to include empty fields in Patch requests.
21325	ForceSendFields []string `json:"-"`
21326
21327	// NullFields is a list of field names (e.g. "FilterLabels") to include
21328	// in API requests with the JSON null value. By default, fields with
21329	// empty values are omitted from API requests. However, any field with
21330	// an empty value appearing in NullFields will be sent to the server as
21331	// null. It is an error if a field in this list has a non-empty value.
21332	// This may be used to include null fields in Patch requests.
21333	NullFields []string `json:"-"`
21334}
21335
21336func (s *MetadataFilter) MarshalJSON() ([]byte, error) {
21337	type NoMethod MetadataFilter
21338	raw := NoMethod(*s)
21339	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21340}
21341
21342// MetadataFilterLabelMatch: MetadataFilter label name value pairs that
21343// are expected to match corresponding labels presented as metadata to
21344// the loadbalancer.
21345type MetadataFilterLabelMatch struct {
21346	// Name: Name of metadata label.
21347	// The name can have a maximum length of 1024 characters and must be at
21348	// least 1 character long.
21349	Name string `json:"name,omitempty"`
21350
21351	// Value: The value of the label must match the specified value.
21352	// value can have a maximum length of 1024 characters.
21353	Value string `json:"value,omitempty"`
21354
21355	// ForceSendFields is a list of field names (e.g. "Name") to
21356	// unconditionally include in API requests. By default, fields with
21357	// empty values are omitted from API requests. However, any non-pointer,
21358	// non-interface field appearing in ForceSendFields will be sent to the
21359	// server regardless of whether the field is empty or not. This may be
21360	// used to include empty fields in Patch requests.
21361	ForceSendFields []string `json:"-"`
21362
21363	// NullFields is a list of field names (e.g. "Name") to include in API
21364	// requests with the JSON null value. By default, fields with empty
21365	// values are omitted from API requests. However, any field with an
21366	// empty value appearing in NullFields will be sent to the server as
21367	// null. It is an error if a field in this list has a non-empty value.
21368	// This may be used to include null fields in Patch requests.
21369	NullFields []string `json:"-"`
21370}
21371
21372func (s *MetadataFilterLabelMatch) MarshalJSON() ([]byte, error) {
21373	type NoMethod MetadataFilterLabelMatch
21374	raw := NoMethod(*s)
21375	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21376}
21377
21378// NamedPort: The named port. For example: .
21379type NamedPort struct {
21380	// Name: The name for this named port. The name must be 1-63 characters
21381	// long, and comply with RFC1035.
21382	Name string `json:"name,omitempty"`
21383
21384	// Port: The port number, which can be a value between 1 and 65535.
21385	Port int64 `json:"port,omitempty"`
21386
21387	// ForceSendFields is a list of field names (e.g. "Name") to
21388	// unconditionally include in API requests. By default, fields with
21389	// empty values are omitted from API requests. However, any non-pointer,
21390	// non-interface field appearing in ForceSendFields will be sent to the
21391	// server regardless of whether the field is empty or not. This may be
21392	// used to include empty fields in Patch requests.
21393	ForceSendFields []string `json:"-"`
21394
21395	// NullFields is a list of field names (e.g. "Name") to include in API
21396	// requests with the JSON null value. By default, fields with empty
21397	// values are omitted from API requests. However, any field with an
21398	// empty value appearing in NullFields will be sent to the server as
21399	// null. It is an error if a field in this list has a non-empty value.
21400	// This may be used to include null fields in Patch requests.
21401	NullFields []string `json:"-"`
21402}
21403
21404func (s *NamedPort) MarshalJSON() ([]byte, error) {
21405	type NoMethod NamedPort
21406	raw := NoMethod(*s)
21407	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21408}
21409
21410// Network: Represents a VPC Network resource.
21411//
21412// Networks connect resources to each other and to the internet. For
21413// more information, read Virtual Private Cloud (VPC) Network. (==
21414// resource_for {$api_version}.networks ==)
21415type Network struct {
21416	// IPv4Range: Deprecated in favor of subnet mode networks. The range of
21417	// internal addresses that are legal on this network. This range is a
21418	// CIDR specification, for example: 192.168.0.0/16. Provided by the
21419	// client when the network is created.
21420	IPv4Range string `json:"IPv4Range,omitempty"`
21421
21422	// AutoCreateSubnetworks: When set to true, the VPC network is created
21423	// in "auto" mode. When set to false, the VPC network is created in
21424	// "custom" mode.
21425	//
21426	// An auto mode VPC network starts with one subnet per region. Each
21427	// subnet has a predetermined range as described in Auto mode VPC
21428	// network IP ranges.
21429	AutoCreateSubnetworks bool `json:"autoCreateSubnetworks,omitempty"`
21430
21431	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21432	// format.
21433	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21434
21435	// Description: An optional description of this resource. Provide this
21436	// field when you create the resource.
21437	Description string `json:"description,omitempty"`
21438
21439	// GatewayIPv4: [Output Only] The gateway address for default routing
21440	// out of the network, selected by GCP.
21441	GatewayIPv4 string `json:"gatewayIPv4,omitempty"`
21442
21443	// Id: [Output Only] The unique identifier for the resource. This
21444	// identifier is defined by the server.
21445	Id uint64 `json:"id,omitempty,string"`
21446
21447	// Kind: [Output Only] Type of the resource. Always compute#network for
21448	// networks.
21449	Kind string `json:"kind,omitempty"`
21450
21451	// Name: Name of the resource. Provided by the client when the resource
21452	// is created. The name must be 1-63 characters long, and comply with
21453	// RFC1035. Specifically, the name must be 1-63 characters long and
21454	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
21455	// character must be a lowercase letter, and all following characters
21456	// (except for the last character) must be a dash, lowercase letter, or
21457	// digit. The last character must be a lowercase letter or digit.
21458	Name string `json:"name,omitempty"`
21459
21460	// Peerings: [Output Only] A list of network peerings for the resource.
21461	Peerings []*NetworkPeering `json:"peerings,omitempty"`
21462
21463	// RoutingConfig: The network-level routing configuration for this
21464	// network. Used by Cloud Router to determine what type of network-wide
21465	// routing behavior to enforce.
21466	RoutingConfig *NetworkRoutingConfig `json:"routingConfig,omitempty"`
21467
21468	// SelfLink: [Output Only] Server-defined URL for the resource.
21469	SelfLink string `json:"selfLink,omitempty"`
21470
21471	// Subnetworks: [Output Only] Server-defined fully-qualified URLs for
21472	// all subnetworks in this VPC network.
21473	Subnetworks []string `json:"subnetworks,omitempty"`
21474
21475	// ServerResponse contains the HTTP response code and headers from the
21476	// server.
21477	googleapi.ServerResponse `json:"-"`
21478
21479	// ForceSendFields is a list of field names (e.g. "IPv4Range") to
21480	// unconditionally include in API requests. By default, fields with
21481	// empty values are omitted from API requests. However, any non-pointer,
21482	// non-interface field appearing in ForceSendFields will be sent to the
21483	// server regardless of whether the field is empty or not. This may be
21484	// used to include empty fields in Patch requests.
21485	ForceSendFields []string `json:"-"`
21486
21487	// NullFields is a list of field names (e.g. "IPv4Range") to include in
21488	// API requests with the JSON null value. By default, fields with empty
21489	// values are omitted from API requests. However, any field with an
21490	// empty value appearing in NullFields will be sent to the server as
21491	// null. It is an error if a field in this list has a non-empty value.
21492	// This may be used to include null fields in Patch requests.
21493	NullFields []string `json:"-"`
21494}
21495
21496func (s *Network) MarshalJSON() ([]byte, error) {
21497	type NoMethod Network
21498	raw := NoMethod(*s)
21499	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21500}
21501
21502// NetworkEndpoint: The network endpoint. Next ID: 7
21503type NetworkEndpoint struct {
21504	// Annotations: Metadata defined as annotations on the network endpoint.
21505	Annotations map[string]string `json:"annotations,omitempty"`
21506
21507	// Fqdn: Optional fully qualified domain name of network endpoint. This
21508	// can only be specified when NetworkEndpointGroup.network_endpoint_type
21509	// is NON_GCP_FQDN_PORT.
21510	Fqdn string `json:"fqdn,omitempty"`
21511
21512	// Instance: The name for a specific VM instance that the IP address
21513	// belongs to. This is required for network endpoints of type
21514	// GCE_VM_IP_PORT. The instance must be in the same zone of network
21515	// endpoint group.
21516	//
21517	// The name must be 1-63 characters long, and comply with RFC1035.
21518	Instance string `json:"instance,omitempty"`
21519
21520	// IpAddress: Optional IPv4 address of network endpoint. The IP address
21521	// must belong to a VM in Compute Engine (either the primary IP or as
21522	// part of an aliased IP range). If the IP address is not specified,
21523	// then the primary IP address for the VM instance in the network that
21524	// the network endpoint group belongs to will be used.
21525	IpAddress string `json:"ipAddress,omitempty"`
21526
21527	// Port: Optional port number of network endpoint. If not specified and
21528	// the NetworkEndpointGroup.network_endpoint_type is GCE_IP_PORT, the
21529	// defaultPort for the network endpoint group will be used.
21530	Port int64 `json:"port,omitempty"`
21531
21532	// ForceSendFields is a list of field names (e.g. "Annotations") to
21533	// unconditionally include in API requests. By default, fields with
21534	// empty values are omitted from API requests. However, any non-pointer,
21535	// non-interface field appearing in ForceSendFields will be sent to the
21536	// server regardless of whether the field is empty or not. This may be
21537	// used to include empty fields in Patch requests.
21538	ForceSendFields []string `json:"-"`
21539
21540	// NullFields is a list of field names (e.g. "Annotations") to include
21541	// in API requests with the JSON null value. By default, fields with
21542	// empty values are omitted from API requests. However, any field with
21543	// an empty value appearing in NullFields will be sent to the server as
21544	// null. It is an error if a field in this list has a non-empty value.
21545	// This may be used to include null fields in Patch requests.
21546	NullFields []string `json:"-"`
21547}
21548
21549func (s *NetworkEndpoint) MarshalJSON() ([]byte, error) {
21550	type NoMethod NetworkEndpoint
21551	raw := NoMethod(*s)
21552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21553}
21554
21555// NetworkEndpointGroup: Represents a collection of network
21556// endpoints.
21557//
21558// For more information read Setting up network endpoint groups in load
21559// balancing. (== resource_for {$api_version}.networkEndpointGroups ==)
21560// Next ID: 21
21561type NetworkEndpointGroup struct {
21562	// Annotations: Metadata defined as annotations on the network endpoint
21563	// group.
21564	Annotations map[string]string `json:"annotations,omitempty"`
21565
21566	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
21567	// format.
21568	CreationTimestamp string `json:"creationTimestamp,omitempty"`
21569
21570	// DefaultPort: The default port used if the port number is not
21571	// specified in the network endpoint.
21572	DefaultPort int64 `json:"defaultPort,omitempty"`
21573
21574	// Description: An optional description of this resource. Provide this
21575	// property when you create the resource.
21576	Description string `json:"description,omitempty"`
21577
21578	// Id: [Output Only] The unique identifier for the resource. This
21579	// identifier is defined by the server.
21580	Id uint64 `json:"id,omitempty,string"`
21581
21582	// Kind: [Output Only] Type of the resource. Always
21583	// compute#networkEndpointGroup for network endpoint group.
21584	Kind string `json:"kind,omitempty"`
21585
21586	// LoadBalancer: This field is only valid when the network endpoint
21587	// group is used for load balancing. [Deprecated] This field is
21588	// deprecated.
21589	LoadBalancer *NetworkEndpointGroupLbNetworkEndpointGroup `json:"loadBalancer,omitempty"`
21590
21591	// Name: Name of the resource; provided by the client when the resource
21592	// is created. The name must be 1-63 characters long, and comply with
21593	// RFC1035. Specifically, the name must be 1-63 characters long and
21594	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
21595	// the first character must be a lowercase letter, and all following
21596	// characters must be a dash, lowercase letter, or digit, except the
21597	// last character, which cannot be a dash.
21598	Name string `json:"name,omitempty"`
21599
21600	// Network: The URL of the network to which all network endpoints in the
21601	// NEG belong. Uses "default" project network if unspecified.
21602	Network string `json:"network,omitempty"`
21603
21604	// NetworkEndpointType: Type of network endpoints in this network
21605	// endpoint group. Currently the only supported value is GCE_VM_IP_PORT.
21606	//
21607	// Possible values:
21608	//   "GCE_VM_IP_PORT"
21609	//   "INTERNET_FQDN_PORT"
21610	//   "INTERNET_IP_PORT"
21611	NetworkEndpointType string `json:"networkEndpointType,omitempty"`
21612
21613	// SelfLink: [Output Only] Server-defined URL for the resource.
21614	SelfLink string `json:"selfLink,omitempty"`
21615
21616	// Size: [Output only] Number of network endpoints in the network
21617	// endpoint group.
21618	Size int64 `json:"size,omitempty"`
21619
21620	// Subnetwork: Optional URL of the subnetwork to which all network
21621	// endpoints in the NEG belong.
21622	Subnetwork string `json:"subnetwork,omitempty"`
21623
21624	// Zone: [Output Only] The URL of the zone where the network endpoint
21625	// group is located.
21626	Zone string `json:"zone,omitempty"`
21627
21628	// ServerResponse contains the HTTP response code and headers from the
21629	// server.
21630	googleapi.ServerResponse `json:"-"`
21631
21632	// ForceSendFields is a list of field names (e.g. "Annotations") to
21633	// unconditionally include in API requests. By default, fields with
21634	// empty values are omitted from API requests. However, any non-pointer,
21635	// non-interface field appearing in ForceSendFields will be sent to the
21636	// server regardless of whether the field is empty or not. This may be
21637	// used to include empty fields in Patch requests.
21638	ForceSendFields []string `json:"-"`
21639
21640	// NullFields is a list of field names (e.g. "Annotations") to include
21641	// in API requests with the JSON null value. By default, fields with
21642	// empty values are omitted from API requests. However, any field with
21643	// an empty value appearing in NullFields will be sent to the server as
21644	// null. It is an error if a field in this list has a non-empty value.
21645	// This may be used to include null fields in Patch requests.
21646	NullFields []string `json:"-"`
21647}
21648
21649func (s *NetworkEndpointGroup) MarshalJSON() ([]byte, error) {
21650	type NoMethod NetworkEndpointGroup
21651	raw := NoMethod(*s)
21652	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21653}
21654
21655type NetworkEndpointGroupAggregatedList struct {
21656	// Id: [Output Only] Unique identifier for the resource; defined by the
21657	// server.
21658	Id string `json:"id,omitempty"`
21659
21660	// Items: A list of NetworkEndpointGroupsScopedList resources.
21661	Items map[string]NetworkEndpointGroupsScopedList `json:"items,omitempty"`
21662
21663	// Kind: [Output Only] The resource type, which is always
21664	// compute#networkEndpointGroupAggregatedList for aggregated lists of
21665	// network endpoint groups.
21666	Kind string `json:"kind,omitempty"`
21667
21668	// NextPageToken: [Output Only] This token allows you to get the next
21669	// page of results for list requests. If the number of results is larger
21670	// than maxResults, use the nextPageToken as a value for the query
21671	// parameter pageToken in the next list request. Subsequent list
21672	// requests will have their own nextPageToken to continue paging through
21673	// the results.
21674	NextPageToken string `json:"nextPageToken,omitempty"`
21675
21676	// SelfLink: [Output Only] Server-defined URL for this resource.
21677	SelfLink string `json:"selfLink,omitempty"`
21678
21679	// Warning: [Output Only] Informational warning message.
21680	Warning *NetworkEndpointGroupAggregatedListWarning `json:"warning,omitempty"`
21681
21682	// ServerResponse contains the HTTP response code and headers from the
21683	// server.
21684	googleapi.ServerResponse `json:"-"`
21685
21686	// ForceSendFields is a list of field names (e.g. "Id") to
21687	// unconditionally include in API requests. By default, fields with
21688	// empty values are omitted from API requests. However, any non-pointer,
21689	// non-interface field appearing in ForceSendFields will be sent to the
21690	// server regardless of whether the field is empty or not. This may be
21691	// used to include empty fields in Patch requests.
21692	ForceSendFields []string `json:"-"`
21693
21694	// NullFields is a list of field names (e.g. "Id") to include in API
21695	// requests with the JSON null value. By default, fields with empty
21696	// values are omitted from API requests. However, any field with an
21697	// empty value appearing in NullFields will be sent to the server as
21698	// null. It is an error if a field in this list has a non-empty value.
21699	// This may be used to include null fields in Patch requests.
21700	NullFields []string `json:"-"`
21701}
21702
21703func (s *NetworkEndpointGroupAggregatedList) MarshalJSON() ([]byte, error) {
21704	type NoMethod NetworkEndpointGroupAggregatedList
21705	raw := NoMethod(*s)
21706	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21707}
21708
21709// NetworkEndpointGroupAggregatedListWarning: [Output Only]
21710// Informational warning message.
21711type NetworkEndpointGroupAggregatedListWarning struct {
21712	// Code: [Output Only] A warning code, if applicable. For example,
21713	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21714	// the response.
21715	//
21716	// Possible values:
21717	//   "CLEANUP_FAILED"
21718	//   "DEPRECATED_RESOURCE_USED"
21719	//   "DEPRECATED_TYPE_USED"
21720	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21721	//   "EXPERIMENTAL_TYPE_USED"
21722	//   "EXTERNAL_API_WARNING"
21723	//   "FIELD_VALUE_OVERRIDEN"
21724	//   "INJECTED_KERNELS_DEPRECATED"
21725	//   "MISSING_TYPE_DEPENDENCY"
21726	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21727	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21728	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21729	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21730	//   "NEXT_HOP_NOT_RUNNING"
21731	//   "NOT_CRITICAL_ERROR"
21732	//   "NO_RESULTS_ON_PAGE"
21733	//   "REQUIRED_TOS_AGREEMENT"
21734	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21735	//   "RESOURCE_NOT_DELETED"
21736	//   "SCHEMA_VALIDATION_IGNORED"
21737	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21738	//   "UNDECLARED_PROPERTIES"
21739	//   "UNREACHABLE"
21740	Code string `json:"code,omitempty"`
21741
21742	// Data: [Output Only] Metadata about this warning in key: value format.
21743	// For example:
21744	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21745	Data []*NetworkEndpointGroupAggregatedListWarningData `json:"data,omitempty"`
21746
21747	// Message: [Output Only] A human-readable description of the warning
21748	// code.
21749	Message string `json:"message,omitempty"`
21750
21751	// ForceSendFields is a list of field names (e.g. "Code") to
21752	// unconditionally include in API requests. By default, fields with
21753	// empty values are omitted from API requests. However, any non-pointer,
21754	// non-interface field appearing in ForceSendFields will be sent to the
21755	// server regardless of whether the field is empty or not. This may be
21756	// used to include empty fields in Patch requests.
21757	ForceSendFields []string `json:"-"`
21758
21759	// NullFields is a list of field names (e.g. "Code") to include in API
21760	// requests with the JSON null value. By default, fields with empty
21761	// values are omitted from API requests. However, any field with an
21762	// empty value appearing in NullFields will be sent to the server as
21763	// null. It is an error if a field in this list has a non-empty value.
21764	// This may be used to include null fields in Patch requests.
21765	NullFields []string `json:"-"`
21766}
21767
21768func (s *NetworkEndpointGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
21769	type NoMethod NetworkEndpointGroupAggregatedListWarning
21770	raw := NoMethod(*s)
21771	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21772}
21773
21774type NetworkEndpointGroupAggregatedListWarningData struct {
21775	// Key: [Output Only] A key that provides more detail on the warning
21776	// being returned. For example, for warnings where there are no results
21777	// in a list request for a particular zone, this key might be scope and
21778	// the key value might be the zone name. Other examples might be a key
21779	// indicating a deprecated resource and a suggested replacement, or a
21780	// warning about invalid network settings (for example, if an instance
21781	// attempts to perform IP forwarding but is not enabled for IP
21782	// forwarding).
21783	Key string `json:"key,omitempty"`
21784
21785	// Value: [Output Only] A warning data value corresponding to the key.
21786	Value string `json:"value,omitempty"`
21787
21788	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") to include in API
21797	// requests with the JSON null value. By default, fields with empty
21798	// values are omitted from API requests. However, any field with an
21799	// empty value appearing in NullFields will be sent to the server as
21800	// null. It is an error if a field in this list has a non-empty value.
21801	// This may be used to include null fields in Patch requests.
21802	NullFields []string `json:"-"`
21803}
21804
21805func (s *NetworkEndpointGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
21806	type NoMethod NetworkEndpointGroupAggregatedListWarningData
21807	raw := NoMethod(*s)
21808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21809}
21810
21811// NetworkEndpointGroupLbNetworkEndpointGroup: Load balancing specific
21812// fields for network endpoint group.
21813type NetworkEndpointGroupLbNetworkEndpointGroup struct {
21814	// DefaultPort: The default port used if the port number is not
21815	// specified in the network endpoint. [Deprecated] This field is
21816	// deprecated.
21817	DefaultPort int64 `json:"defaultPort,omitempty"`
21818
21819	// Network: The URL of the network to which all network endpoints in the
21820	// NEG belong. Uses "default" project network if unspecified.
21821	// [Deprecated] This field is deprecated.
21822	Network string `json:"network,omitempty"`
21823
21824	// Subnetwork: Optional URL of the subnetwork to which all network
21825	// endpoints in the NEG belong. [Deprecated] This field is deprecated.
21826	Subnetwork string `json:"subnetwork,omitempty"`
21827
21828	// Zone: [Output Only] The URL of the zone where the network endpoint
21829	// group is located. [Deprecated] This field is deprecated.
21830	Zone string `json:"zone,omitempty"`
21831
21832	// ForceSendFields is a list of field names (e.g. "DefaultPort") to
21833	// unconditionally include in API requests. By default, fields with
21834	// empty values are omitted from API requests. However, any non-pointer,
21835	// non-interface field appearing in ForceSendFields will be sent to the
21836	// server regardless of whether the field is empty or not. This may be
21837	// used to include empty fields in Patch requests.
21838	ForceSendFields []string `json:"-"`
21839
21840	// NullFields is a list of field names (e.g. "DefaultPort") to include
21841	// in API requests with the JSON null value. By default, fields with
21842	// empty values are omitted from API requests. However, any field with
21843	// an empty value appearing in NullFields will be sent to the server as
21844	// null. It is an error if a field in this list has a non-empty value.
21845	// This may be used to include null fields in Patch requests.
21846	NullFields []string `json:"-"`
21847}
21848
21849func (s *NetworkEndpointGroupLbNetworkEndpointGroup) MarshalJSON() ([]byte, error) {
21850	type NoMethod NetworkEndpointGroupLbNetworkEndpointGroup
21851	raw := NoMethod(*s)
21852	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21853}
21854
21855type NetworkEndpointGroupList struct {
21856	// Id: [Output Only] Unique identifier for the resource; defined by the
21857	// server.
21858	Id string `json:"id,omitempty"`
21859
21860	// Items: A list of NetworkEndpointGroup resources.
21861	Items []*NetworkEndpointGroup `json:"items,omitempty"`
21862
21863	// Kind: [Output Only] The resource type, which is always
21864	// compute#networkEndpointGroupList for network endpoint group lists.
21865	Kind string `json:"kind,omitempty"`
21866
21867	// NextPageToken: [Output Only] This token allows you to get the next
21868	// page of results for list requests. If the number of results is larger
21869	// than maxResults, use the nextPageToken as a value for the query
21870	// parameter pageToken in the next list request. Subsequent list
21871	// requests will have their own nextPageToken to continue paging through
21872	// the results.
21873	NextPageToken string `json:"nextPageToken,omitempty"`
21874
21875	// SelfLink: [Output Only] Server-defined URL for this resource.
21876	SelfLink string `json:"selfLink,omitempty"`
21877
21878	// Warning: [Output Only] Informational warning message.
21879	Warning *NetworkEndpointGroupListWarning `json:"warning,omitempty"`
21880
21881	// ServerResponse contains the HTTP response code and headers from the
21882	// server.
21883	googleapi.ServerResponse `json:"-"`
21884
21885	// ForceSendFields is a list of field names (e.g. "Id") to
21886	// unconditionally include in API requests. By default, fields with
21887	// empty values are omitted from API requests. However, any non-pointer,
21888	// non-interface field appearing in ForceSendFields will be sent to the
21889	// server regardless of whether the field is empty or not. This may be
21890	// used to include empty fields in Patch requests.
21891	ForceSendFields []string `json:"-"`
21892
21893	// NullFields is a list of field names (e.g. "Id") to include in API
21894	// requests with the JSON null value. By default, fields with empty
21895	// values are omitted from API requests. However, any field with an
21896	// empty value appearing in NullFields will be sent to the server as
21897	// null. It is an error if a field in this list has a non-empty value.
21898	// This may be used to include null fields in Patch requests.
21899	NullFields []string `json:"-"`
21900}
21901
21902func (s *NetworkEndpointGroupList) MarshalJSON() ([]byte, error) {
21903	type NoMethod NetworkEndpointGroupList
21904	raw := NoMethod(*s)
21905	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21906}
21907
21908// NetworkEndpointGroupListWarning: [Output Only] Informational warning
21909// message.
21910type NetworkEndpointGroupListWarning struct {
21911	// Code: [Output Only] A warning code, if applicable. For example,
21912	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
21913	// the response.
21914	//
21915	// Possible values:
21916	//   "CLEANUP_FAILED"
21917	//   "DEPRECATED_RESOURCE_USED"
21918	//   "DEPRECATED_TYPE_USED"
21919	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
21920	//   "EXPERIMENTAL_TYPE_USED"
21921	//   "EXTERNAL_API_WARNING"
21922	//   "FIELD_VALUE_OVERRIDEN"
21923	//   "INJECTED_KERNELS_DEPRECATED"
21924	//   "MISSING_TYPE_DEPENDENCY"
21925	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
21926	//   "NEXT_HOP_CANNOT_IP_FORWARD"
21927	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
21928	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
21929	//   "NEXT_HOP_NOT_RUNNING"
21930	//   "NOT_CRITICAL_ERROR"
21931	//   "NO_RESULTS_ON_PAGE"
21932	//   "REQUIRED_TOS_AGREEMENT"
21933	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
21934	//   "RESOURCE_NOT_DELETED"
21935	//   "SCHEMA_VALIDATION_IGNORED"
21936	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
21937	//   "UNDECLARED_PROPERTIES"
21938	//   "UNREACHABLE"
21939	Code string `json:"code,omitempty"`
21940
21941	// Data: [Output Only] Metadata about this warning in key: value format.
21942	// For example:
21943	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
21944	Data []*NetworkEndpointGroupListWarningData `json:"data,omitempty"`
21945
21946	// Message: [Output Only] A human-readable description of the warning
21947	// code.
21948	Message string `json:"message,omitempty"`
21949
21950	// ForceSendFields is a list of field names (e.g. "Code") to
21951	// unconditionally include in API requests. By default, fields with
21952	// empty values are omitted from API requests. However, any non-pointer,
21953	// non-interface field appearing in ForceSendFields will be sent to the
21954	// server regardless of whether the field is empty or not. This may be
21955	// used to include empty fields in Patch requests.
21956	ForceSendFields []string `json:"-"`
21957
21958	// NullFields is a list of field names (e.g. "Code") to include in API
21959	// requests with the JSON null value. By default, fields with empty
21960	// values are omitted from API requests. However, any field with an
21961	// empty value appearing in NullFields will be sent to the server as
21962	// null. It is an error if a field in this list has a non-empty value.
21963	// This may be used to include null fields in Patch requests.
21964	NullFields []string `json:"-"`
21965}
21966
21967func (s *NetworkEndpointGroupListWarning) MarshalJSON() ([]byte, error) {
21968	type NoMethod NetworkEndpointGroupListWarning
21969	raw := NoMethod(*s)
21970	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
21971}
21972
21973type NetworkEndpointGroupListWarningData struct {
21974	// Key: [Output Only] A key that provides more detail on the warning
21975	// being returned. For example, for warnings where there are no results
21976	// in a list request for a particular zone, this key might be scope and
21977	// the key value might be the zone name. Other examples might be a key
21978	// indicating a deprecated resource and a suggested replacement, or a
21979	// warning about invalid network settings (for example, if an instance
21980	// attempts to perform IP forwarding but is not enabled for IP
21981	// forwarding).
21982	Key string `json:"key,omitempty"`
21983
21984	// Value: [Output Only] A warning data value corresponding to the key.
21985	Value string `json:"value,omitempty"`
21986
21987	// ForceSendFields is a list of field names (e.g. "Key") to
21988	// unconditionally include in API requests. By default, fields with
21989	// empty values are omitted from API requests. However, any non-pointer,
21990	// non-interface field appearing in ForceSendFields will be sent to the
21991	// server regardless of whether the field is empty or not. This may be
21992	// used to include empty fields in Patch requests.
21993	ForceSendFields []string `json:"-"`
21994
21995	// NullFields is a list of field names (e.g. "Key") to include in API
21996	// requests with the JSON null value. By default, fields with empty
21997	// values are omitted from API requests. However, any field with an
21998	// empty value appearing in NullFields will be sent to the server as
21999	// null. It is an error if a field in this list has a non-empty value.
22000	// This may be used to include null fields in Patch requests.
22001	NullFields []string `json:"-"`
22002}
22003
22004func (s *NetworkEndpointGroupListWarningData) MarshalJSON() ([]byte, error) {
22005	type NoMethod NetworkEndpointGroupListWarningData
22006	raw := NoMethod(*s)
22007	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22008}
22009
22010type NetworkEndpointGroupsAttachEndpointsRequest struct {
22011	// NetworkEndpoints: The list of network endpoints to be attached.
22012	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
22013
22014	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
22015	// unconditionally include in API requests. By default, fields with
22016	// empty values are omitted from API requests. However, any non-pointer,
22017	// non-interface field appearing in ForceSendFields will be sent to the
22018	// server regardless of whether the field is empty or not. This may be
22019	// used to include empty fields in Patch requests.
22020	ForceSendFields []string `json:"-"`
22021
22022	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
22023	// include in API requests with the JSON null value. By default, fields
22024	// with empty values are omitted from API requests. However, any field
22025	// with an empty value appearing in NullFields will be sent to the
22026	// server as null. It is an error if a field in this list has a
22027	// non-empty value. This may be used to include null fields in Patch
22028	// requests.
22029	NullFields []string `json:"-"`
22030}
22031
22032func (s *NetworkEndpointGroupsAttachEndpointsRequest) MarshalJSON() ([]byte, error) {
22033	type NoMethod NetworkEndpointGroupsAttachEndpointsRequest
22034	raw := NoMethod(*s)
22035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22036}
22037
22038type NetworkEndpointGroupsDetachEndpointsRequest struct {
22039	// NetworkEndpoints: The list of network endpoints to be detached.
22040	NetworkEndpoints []*NetworkEndpoint `json:"networkEndpoints,omitempty"`
22041
22042	// ForceSendFields is a list of field names (e.g. "NetworkEndpoints") to
22043	// unconditionally include in API requests. By default, fields with
22044	// empty values are omitted from API requests. However, any non-pointer,
22045	// non-interface field appearing in ForceSendFields will be sent to the
22046	// server regardless of whether the field is empty or not. This may be
22047	// used to include empty fields in Patch requests.
22048	ForceSendFields []string `json:"-"`
22049
22050	// NullFields is a list of field names (e.g. "NetworkEndpoints") to
22051	// include in API requests with the JSON null value. By default, fields
22052	// with empty values are omitted from API requests. However, any field
22053	// with an empty value appearing in NullFields will be sent to the
22054	// server as null. It is an error if a field in this list has a
22055	// non-empty value. This may be used to include null fields in Patch
22056	// requests.
22057	NullFields []string `json:"-"`
22058}
22059
22060func (s *NetworkEndpointGroupsDetachEndpointsRequest) MarshalJSON() ([]byte, error) {
22061	type NoMethod NetworkEndpointGroupsDetachEndpointsRequest
22062	raw := NoMethod(*s)
22063	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22064}
22065
22066type NetworkEndpointGroupsListEndpointsRequest struct {
22067	// HealthStatus: Optional query parameter for showing the health status
22068	// of each network endpoint. Valid options are SKIP or SHOW. If you
22069	// don't specifiy this parameter, the health status of network endpoints
22070	// will not be provided.
22071	//
22072	// Possible values:
22073	//   "SHOW"
22074	//   "SKIP"
22075	HealthStatus string `json:"healthStatus,omitempty"`
22076
22077	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
22078	// unconditionally include in API requests. By default, fields with
22079	// empty values are omitted from API requests. However, any non-pointer,
22080	// non-interface field appearing in ForceSendFields will be sent to the
22081	// server regardless of whether the field is empty or not. This may be
22082	// used to include empty fields in Patch requests.
22083	ForceSendFields []string `json:"-"`
22084
22085	// NullFields is a list of field names (e.g. "HealthStatus") to include
22086	// in API requests with the JSON null value. By default, fields with
22087	// empty values are omitted from API requests. However, any field with
22088	// an empty value appearing in NullFields will be sent to the server as
22089	// null. It is an error if a field in this list has a non-empty value.
22090	// This may be used to include null fields in Patch requests.
22091	NullFields []string `json:"-"`
22092}
22093
22094func (s *NetworkEndpointGroupsListEndpointsRequest) MarshalJSON() ([]byte, error) {
22095	type NoMethod NetworkEndpointGroupsListEndpointsRequest
22096	raw := NoMethod(*s)
22097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22098}
22099
22100type NetworkEndpointGroupsListNetworkEndpoints struct {
22101	// Id: [Output Only] Unique identifier for the resource; defined by the
22102	// server.
22103	Id string `json:"id,omitempty"`
22104
22105	// Items: A list of NetworkEndpointWithHealthStatus resources.
22106	Items []*NetworkEndpointWithHealthStatus `json:"items,omitempty"`
22107
22108	// Kind: [Output Only] The resource type, which is always
22109	// compute#networkEndpointGroupsListNetworkEndpoints for the list of
22110	// network endpoints in the specified network endpoint group.
22111	Kind string `json:"kind,omitempty"`
22112
22113	// NextPageToken: [Output Only] This token allows you to get the next
22114	// page of results for list requests. If the number of results is larger
22115	// than maxResults, use the nextPageToken as a value for the query
22116	// parameter pageToken in the next list request. Subsequent list
22117	// requests will have their own nextPageToken to continue paging through
22118	// the results.
22119	NextPageToken string `json:"nextPageToken,omitempty"`
22120
22121	// Warning: [Output Only] Informational warning message.
22122	Warning *NetworkEndpointGroupsListNetworkEndpointsWarning `json:"warning,omitempty"`
22123
22124	// ServerResponse contains the HTTP response code and headers from the
22125	// server.
22126	googleapi.ServerResponse `json:"-"`
22127
22128	// ForceSendFields is a list of field names (e.g. "Id") to
22129	// unconditionally include in API requests. By default, fields with
22130	// empty values are omitted from API requests. However, any non-pointer,
22131	// non-interface field appearing in ForceSendFields will be sent to the
22132	// server regardless of whether the field is empty or not. This may be
22133	// used to include empty fields in Patch requests.
22134	ForceSendFields []string `json:"-"`
22135
22136	// NullFields is a list of field names (e.g. "Id") to include in API
22137	// requests with the JSON null value. By default, fields with empty
22138	// values are omitted from API requests. However, any field with an
22139	// empty value appearing in NullFields will be sent to the server as
22140	// null. It is an error if a field in this list has a non-empty value.
22141	// This may be used to include null fields in Patch requests.
22142	NullFields []string `json:"-"`
22143}
22144
22145func (s *NetworkEndpointGroupsListNetworkEndpoints) MarshalJSON() ([]byte, error) {
22146	type NoMethod NetworkEndpointGroupsListNetworkEndpoints
22147	raw := NoMethod(*s)
22148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22149}
22150
22151// NetworkEndpointGroupsListNetworkEndpointsWarning: [Output Only]
22152// Informational warning message.
22153type NetworkEndpointGroupsListNetworkEndpointsWarning struct {
22154	// Code: [Output Only] A warning code, if applicable. For example,
22155	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22156	// the response.
22157	//
22158	// Possible values:
22159	//   "CLEANUP_FAILED"
22160	//   "DEPRECATED_RESOURCE_USED"
22161	//   "DEPRECATED_TYPE_USED"
22162	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22163	//   "EXPERIMENTAL_TYPE_USED"
22164	//   "EXTERNAL_API_WARNING"
22165	//   "FIELD_VALUE_OVERRIDEN"
22166	//   "INJECTED_KERNELS_DEPRECATED"
22167	//   "MISSING_TYPE_DEPENDENCY"
22168	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22169	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22170	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22171	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22172	//   "NEXT_HOP_NOT_RUNNING"
22173	//   "NOT_CRITICAL_ERROR"
22174	//   "NO_RESULTS_ON_PAGE"
22175	//   "REQUIRED_TOS_AGREEMENT"
22176	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22177	//   "RESOURCE_NOT_DELETED"
22178	//   "SCHEMA_VALIDATION_IGNORED"
22179	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22180	//   "UNDECLARED_PROPERTIES"
22181	//   "UNREACHABLE"
22182	Code string `json:"code,omitempty"`
22183
22184	// Data: [Output Only] Metadata about this warning in key: value format.
22185	// For example:
22186	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22187	Data []*NetworkEndpointGroupsListNetworkEndpointsWarningData `json:"data,omitempty"`
22188
22189	// Message: [Output Only] A human-readable description of the warning
22190	// code.
22191	Message string `json:"message,omitempty"`
22192
22193	// ForceSendFields is a list of field names (e.g. "Code") to
22194	// unconditionally include in API requests. By default, fields with
22195	// empty values are omitted from API requests. However, any non-pointer,
22196	// non-interface field appearing in ForceSendFields will be sent to the
22197	// server regardless of whether the field is empty or not. This may be
22198	// used to include empty fields in Patch requests.
22199	ForceSendFields []string `json:"-"`
22200
22201	// NullFields is a list of field names (e.g. "Code") to include in API
22202	// requests with the JSON null value. By default, fields with empty
22203	// values are omitted from API requests. However, any field with an
22204	// empty value appearing in NullFields will be sent to the server as
22205	// null. It is an error if a field in this list has a non-empty value.
22206	// This may be used to include null fields in Patch requests.
22207	NullFields []string `json:"-"`
22208}
22209
22210func (s *NetworkEndpointGroupsListNetworkEndpointsWarning) MarshalJSON() ([]byte, error) {
22211	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarning
22212	raw := NoMethod(*s)
22213	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22214}
22215
22216type NetworkEndpointGroupsListNetworkEndpointsWarningData struct {
22217	// Key: [Output Only] A key that provides more detail on the warning
22218	// being returned. For example, for warnings where there are no results
22219	// in a list request for a particular zone, this key might be scope and
22220	// the key value might be the zone name. Other examples might be a key
22221	// indicating a deprecated resource and a suggested replacement, or a
22222	// warning about invalid network settings (for example, if an instance
22223	// attempts to perform IP forwarding but is not enabled for IP
22224	// forwarding).
22225	Key string `json:"key,omitempty"`
22226
22227	// Value: [Output Only] A warning data value corresponding to the key.
22228	Value string `json:"value,omitempty"`
22229
22230	// ForceSendFields is a list of field names (e.g. "Key") to
22231	// unconditionally include in API requests. By default, fields with
22232	// empty values are omitted from API requests. However, any non-pointer,
22233	// non-interface field appearing in ForceSendFields will be sent to the
22234	// server regardless of whether the field is empty or not. This may be
22235	// used to include empty fields in Patch requests.
22236	ForceSendFields []string `json:"-"`
22237
22238	// NullFields is a list of field names (e.g. "Key") to include in API
22239	// requests with the JSON null value. By default, fields with empty
22240	// values are omitted from API requests. However, any field with an
22241	// empty value appearing in NullFields will be sent to the server as
22242	// null. It is an error if a field in this list has a non-empty value.
22243	// This may be used to include null fields in Patch requests.
22244	NullFields []string `json:"-"`
22245}
22246
22247func (s *NetworkEndpointGroupsListNetworkEndpointsWarningData) MarshalJSON() ([]byte, error) {
22248	type NoMethod NetworkEndpointGroupsListNetworkEndpointsWarningData
22249	raw := NoMethod(*s)
22250	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22251}
22252
22253type NetworkEndpointGroupsScopedList struct {
22254	// NetworkEndpointGroups: [Output Only] The list of network endpoint
22255	// groups that are contained in this scope.
22256	NetworkEndpointGroups []*NetworkEndpointGroup `json:"networkEndpointGroups,omitempty"`
22257
22258	// Warning: [Output Only] An informational warning that replaces the
22259	// list of network endpoint groups when the list is empty.
22260	Warning *NetworkEndpointGroupsScopedListWarning `json:"warning,omitempty"`
22261
22262	// ForceSendFields is a list of field names (e.g.
22263	// "NetworkEndpointGroups") to unconditionally include in API requests.
22264	// By default, fields with empty values are omitted from API requests.
22265	// However, any non-pointer, non-interface field appearing in
22266	// ForceSendFields will be sent to the server regardless of whether the
22267	// field is empty or not. This may be used to include empty fields in
22268	// Patch requests.
22269	ForceSendFields []string `json:"-"`
22270
22271	// NullFields is a list of field names (e.g. "NetworkEndpointGroups") to
22272	// include in API requests with the JSON null value. By default, fields
22273	// with empty values are omitted from API requests. However, any field
22274	// with an empty value appearing in NullFields will be sent to the
22275	// server as null. It is an error if a field in this list has a
22276	// non-empty value. This may be used to include null fields in Patch
22277	// requests.
22278	NullFields []string `json:"-"`
22279}
22280
22281func (s *NetworkEndpointGroupsScopedList) MarshalJSON() ([]byte, error) {
22282	type NoMethod NetworkEndpointGroupsScopedList
22283	raw := NoMethod(*s)
22284	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22285}
22286
22287// NetworkEndpointGroupsScopedListWarning: [Output Only] An
22288// informational warning that replaces the list of network endpoint
22289// groups when the list is empty.
22290type NetworkEndpointGroupsScopedListWarning struct {
22291	// Code: [Output Only] A warning code, if applicable. For example,
22292	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22293	// the response.
22294	//
22295	// Possible values:
22296	//   "CLEANUP_FAILED"
22297	//   "DEPRECATED_RESOURCE_USED"
22298	//   "DEPRECATED_TYPE_USED"
22299	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22300	//   "EXPERIMENTAL_TYPE_USED"
22301	//   "EXTERNAL_API_WARNING"
22302	//   "FIELD_VALUE_OVERRIDEN"
22303	//   "INJECTED_KERNELS_DEPRECATED"
22304	//   "MISSING_TYPE_DEPENDENCY"
22305	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22306	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22307	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22308	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22309	//   "NEXT_HOP_NOT_RUNNING"
22310	//   "NOT_CRITICAL_ERROR"
22311	//   "NO_RESULTS_ON_PAGE"
22312	//   "REQUIRED_TOS_AGREEMENT"
22313	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22314	//   "RESOURCE_NOT_DELETED"
22315	//   "SCHEMA_VALIDATION_IGNORED"
22316	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22317	//   "UNDECLARED_PROPERTIES"
22318	//   "UNREACHABLE"
22319	Code string `json:"code,omitempty"`
22320
22321	// Data: [Output Only] Metadata about this warning in key: value format.
22322	// For example:
22323	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22324	Data []*NetworkEndpointGroupsScopedListWarningData `json:"data,omitempty"`
22325
22326	// Message: [Output Only] A human-readable description of the warning
22327	// code.
22328	Message string `json:"message,omitempty"`
22329
22330	// ForceSendFields is a list of field names (e.g. "Code") to
22331	// unconditionally include in API requests. By default, fields with
22332	// empty values are omitted from API requests. However, any non-pointer,
22333	// non-interface field appearing in ForceSendFields will be sent to the
22334	// server regardless of whether the field is empty or not. This may be
22335	// used to include empty fields in Patch requests.
22336	ForceSendFields []string `json:"-"`
22337
22338	// NullFields is a list of field names (e.g. "Code") to include in API
22339	// requests with the JSON null value. By default, fields with empty
22340	// values are omitted from API requests. However, any field with an
22341	// empty value appearing in NullFields will be sent to the server as
22342	// null. It is an error if a field in this list has a non-empty value.
22343	// This may be used to include null fields in Patch requests.
22344	NullFields []string `json:"-"`
22345}
22346
22347func (s *NetworkEndpointGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
22348	type NoMethod NetworkEndpointGroupsScopedListWarning
22349	raw := NoMethod(*s)
22350	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22351}
22352
22353type NetworkEndpointGroupsScopedListWarningData struct {
22354	// Key: [Output Only] A key that provides more detail on the warning
22355	// being returned. For example, for warnings where there are no results
22356	// in a list request for a particular zone, this key might be scope and
22357	// the key value might be the zone name. Other examples might be a key
22358	// indicating a deprecated resource and a suggested replacement, or a
22359	// warning about invalid network settings (for example, if an instance
22360	// attempts to perform IP forwarding but is not enabled for IP
22361	// forwarding).
22362	Key string `json:"key,omitempty"`
22363
22364	// Value: [Output Only] A warning data value corresponding to the key.
22365	Value string `json:"value,omitempty"`
22366
22367	// ForceSendFields is a list of field names (e.g. "Key") to
22368	// unconditionally include in API requests. By default, fields with
22369	// empty values are omitted from API requests. However, any non-pointer,
22370	// non-interface field appearing in ForceSendFields will be sent to the
22371	// server regardless of whether the field is empty or not. This may be
22372	// used to include empty fields in Patch requests.
22373	ForceSendFields []string `json:"-"`
22374
22375	// NullFields is a list of field names (e.g. "Key") to include in API
22376	// requests with the JSON null value. By default, fields with empty
22377	// values are omitted from API requests. However, any field with an
22378	// empty value appearing in NullFields will be sent to the server as
22379	// null. It is an error if a field in this list has a non-empty value.
22380	// This may be used to include null fields in Patch requests.
22381	NullFields []string `json:"-"`
22382}
22383
22384func (s *NetworkEndpointGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
22385	type NoMethod NetworkEndpointGroupsScopedListWarningData
22386	raw := NoMethod(*s)
22387	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22388}
22389
22390type NetworkEndpointWithHealthStatus struct {
22391	// Healths: [Output only] The health status of network endpoint;
22392	Healths []*HealthStatusForNetworkEndpoint `json:"healths,omitempty"`
22393
22394	// NetworkEndpoint: [Output only] The network endpoint;
22395	NetworkEndpoint *NetworkEndpoint `json:"networkEndpoint,omitempty"`
22396
22397	// ForceSendFields is a list of field names (e.g. "Healths") to
22398	// unconditionally include in API requests. By default, fields with
22399	// empty values are omitted from API requests. However, any non-pointer,
22400	// non-interface field appearing in ForceSendFields will be sent to the
22401	// server regardless of whether the field is empty or not. This may be
22402	// used to include empty fields in Patch requests.
22403	ForceSendFields []string `json:"-"`
22404
22405	// NullFields is a list of field names (e.g. "Healths") to include in
22406	// API requests with the JSON null value. By default, fields with empty
22407	// values are omitted from API requests. However, any field with an
22408	// empty value appearing in NullFields will be sent to the server as
22409	// null. It is an error if a field in this list has a non-empty value.
22410	// This may be used to include null fields in Patch requests.
22411	NullFields []string `json:"-"`
22412}
22413
22414func (s *NetworkEndpointWithHealthStatus) MarshalJSON() ([]byte, error) {
22415	type NoMethod NetworkEndpointWithHealthStatus
22416	raw := NoMethod(*s)
22417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22418}
22419
22420// NetworkInterface: A network interface resource attached to an
22421// instance.
22422type NetworkInterface struct {
22423	// AccessConfigs: An array of configurations for this interface.
22424	// Currently, only one access config, ONE_TO_ONE_NAT, is supported. If
22425	// there are no accessConfigs specified, then this instance will have no
22426	// external internet access.
22427	AccessConfigs []*AccessConfig `json:"accessConfigs,omitempty"`
22428
22429	// AliasIpRanges: An array of alias IP ranges for this network
22430	// interface. You can only specify this field for network interfaces in
22431	// VPC networks.
22432	AliasIpRanges []*AliasIpRange `json:"aliasIpRanges,omitempty"`
22433
22434	// Fingerprint: Fingerprint hash of contents stored in this network
22435	// interface. This field will be ignored when inserting an Instance or
22436	// adding a NetworkInterface. An up-to-date fingerprint must be provided
22437	// in order to update the NetworkInterface, otherwise the request will
22438	// fail with error 412 conditionNotMet.
22439	Fingerprint string `json:"fingerprint,omitempty"`
22440
22441	// Ipv6Address: [Output Only] An IPv6 internal network address for this
22442	// network interface.
22443	Ipv6Address string `json:"ipv6Address,omitempty"`
22444
22445	// Kind: [Output Only] Type of the resource. Always
22446	// compute#networkInterface for network interfaces.
22447	Kind string `json:"kind,omitempty"`
22448
22449	// Name: [Output Only] The name of the network interface, which is
22450	// generated by the server. For network devices, these are eth0, eth1,
22451	// etc.
22452	Name string `json:"name,omitempty"`
22453
22454	// Network: URL of the network resource for this instance. When creating
22455	// an instance, if neither the network nor the subnetwork is specified,
22456	// the default network global/networks/default is used; if the network
22457	// is not specified but the subnetwork is specified, the network is
22458	// inferred.
22459	//
22460	// If you specify this property, you can specify the network as a full
22461	// or partial URL. For example, the following are all valid URLs:
22462	// -
22463	// https://www.googleapis.com/compute/v1/projects/project/global/networks/network
22464	// - projects/project/global/networks/network
22465	// - global/networks/default
22466	Network string `json:"network,omitempty"`
22467
22468	// NetworkIP: An IPv4 internal IP address to assign to the instance for
22469	// this network interface. If not specified by the user, an unused
22470	// internal IP is assigned by the system.
22471	NetworkIP string `json:"networkIP,omitempty"`
22472
22473	// Subnetwork: The URL of the Subnetwork resource for this instance. If
22474	// the network resource is in legacy mode, do not specify this field. If
22475	// the network is in auto subnet mode, specifying the subnetwork is
22476	// optional. If the network is in custom subnet mode, specifying the
22477	// subnetwork is required. If you specify this field, you can specify
22478	// the subnetwork as a full or partial URL. For example, the following
22479	// are all valid URLs:
22480	// -
22481	// https://www.googleapis.com/compute/v1/projects/project/regions/region/subnetworks/subnetwork
22482	// - regions/region/subnetworks/subnetwork
22483	Subnetwork string `json:"subnetwork,omitempty"`
22484
22485	// ForceSendFields is a list of field names (e.g. "AccessConfigs") to
22486	// unconditionally include in API requests. By default, fields with
22487	// empty values are omitted from API requests. However, any non-pointer,
22488	// non-interface field appearing in ForceSendFields will be sent to the
22489	// server regardless of whether the field is empty or not. This may be
22490	// used to include empty fields in Patch requests.
22491	ForceSendFields []string `json:"-"`
22492
22493	// NullFields is a list of field names (e.g. "AccessConfigs") to include
22494	// in API requests with the JSON null value. By default, fields with
22495	// empty values are omitted from API requests. However, any field with
22496	// an empty value appearing in NullFields will be sent to the server as
22497	// null. It is an error if a field in this list has a non-empty value.
22498	// This may be used to include null fields in Patch requests.
22499	NullFields []string `json:"-"`
22500}
22501
22502func (s *NetworkInterface) MarshalJSON() ([]byte, error) {
22503	type NoMethod NetworkInterface
22504	raw := NoMethod(*s)
22505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22506}
22507
22508// NetworkList: Contains a list of networks.
22509type NetworkList struct {
22510	// Id: [Output Only] Unique identifier for the resource; defined by the
22511	// server.
22512	Id string `json:"id,omitempty"`
22513
22514	// Items: A list of Network resources.
22515	Items []*Network `json:"items,omitempty"`
22516
22517	// Kind: [Output Only] Type of resource. Always compute#networkList for
22518	// lists of networks.
22519	Kind string `json:"kind,omitempty"`
22520
22521	// NextPageToken: [Output Only] This token allows you to get the next
22522	// page of results for list requests. If the number of results is larger
22523	// than maxResults, use the nextPageToken as a value for the query
22524	// parameter pageToken in the next list request. Subsequent list
22525	// requests will have their own nextPageToken to continue paging through
22526	// the results.
22527	NextPageToken string `json:"nextPageToken,omitempty"`
22528
22529	// SelfLink: [Output Only] Server-defined URL for this resource.
22530	SelfLink string `json:"selfLink,omitempty"`
22531
22532	// Warning: [Output Only] Informational warning message.
22533	Warning *NetworkListWarning `json:"warning,omitempty"`
22534
22535	// ServerResponse contains the HTTP response code and headers from the
22536	// server.
22537	googleapi.ServerResponse `json:"-"`
22538
22539	// ForceSendFields is a list of field names (e.g. "Id") to
22540	// unconditionally include in API requests. By default, fields with
22541	// empty values are omitted from API requests. However, any non-pointer,
22542	// non-interface field appearing in ForceSendFields will be sent to the
22543	// server regardless of whether the field is empty or not. This may be
22544	// used to include empty fields in Patch requests.
22545	ForceSendFields []string `json:"-"`
22546
22547	// NullFields is a list of field names (e.g. "Id") to include in API
22548	// requests with the JSON null value. By default, fields with empty
22549	// values are omitted from API requests. However, any field with an
22550	// empty value appearing in NullFields will be sent to the server as
22551	// null. It is an error if a field in this list has a non-empty value.
22552	// This may be used to include null fields in Patch requests.
22553	NullFields []string `json:"-"`
22554}
22555
22556func (s *NetworkList) MarshalJSON() ([]byte, error) {
22557	type NoMethod NetworkList
22558	raw := NoMethod(*s)
22559	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22560}
22561
22562// NetworkListWarning: [Output Only] Informational warning message.
22563type NetworkListWarning struct {
22564	// Code: [Output Only] A warning code, if applicable. For example,
22565	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
22566	// the response.
22567	//
22568	// Possible values:
22569	//   "CLEANUP_FAILED"
22570	//   "DEPRECATED_RESOURCE_USED"
22571	//   "DEPRECATED_TYPE_USED"
22572	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
22573	//   "EXPERIMENTAL_TYPE_USED"
22574	//   "EXTERNAL_API_WARNING"
22575	//   "FIELD_VALUE_OVERRIDEN"
22576	//   "INJECTED_KERNELS_DEPRECATED"
22577	//   "MISSING_TYPE_DEPENDENCY"
22578	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
22579	//   "NEXT_HOP_CANNOT_IP_FORWARD"
22580	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
22581	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
22582	//   "NEXT_HOP_NOT_RUNNING"
22583	//   "NOT_CRITICAL_ERROR"
22584	//   "NO_RESULTS_ON_PAGE"
22585	//   "REQUIRED_TOS_AGREEMENT"
22586	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
22587	//   "RESOURCE_NOT_DELETED"
22588	//   "SCHEMA_VALIDATION_IGNORED"
22589	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
22590	//   "UNDECLARED_PROPERTIES"
22591	//   "UNREACHABLE"
22592	Code string `json:"code,omitempty"`
22593
22594	// Data: [Output Only] Metadata about this warning in key: value format.
22595	// For example:
22596	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
22597	Data []*NetworkListWarningData `json:"data,omitempty"`
22598
22599	// Message: [Output Only] A human-readable description of the warning
22600	// code.
22601	Message string `json:"message,omitempty"`
22602
22603	// ForceSendFields is a list of field names (e.g. "Code") to
22604	// unconditionally include in API requests. By default, fields with
22605	// empty values are omitted from API requests. However, any non-pointer,
22606	// non-interface field appearing in ForceSendFields will be sent to the
22607	// server regardless of whether the field is empty or not. This may be
22608	// used to include empty fields in Patch requests.
22609	ForceSendFields []string `json:"-"`
22610
22611	// NullFields is a list of field names (e.g. "Code") to include in API
22612	// requests with the JSON null value. By default, fields with empty
22613	// values are omitted from API requests. However, any field with an
22614	// empty value appearing in NullFields will be sent to the server as
22615	// null. It is an error if a field in this list has a non-empty value.
22616	// This may be used to include null fields in Patch requests.
22617	NullFields []string `json:"-"`
22618}
22619
22620func (s *NetworkListWarning) MarshalJSON() ([]byte, error) {
22621	type NoMethod NetworkListWarning
22622	raw := NoMethod(*s)
22623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22624}
22625
22626type NetworkListWarningData struct {
22627	// Key: [Output Only] A key that provides more detail on the warning
22628	// being returned. For example, for warnings where there are no results
22629	// in a list request for a particular zone, this key might be scope and
22630	// the key value might be the zone name. Other examples might be a key
22631	// indicating a deprecated resource and a suggested replacement, or a
22632	// warning about invalid network settings (for example, if an instance
22633	// attempts to perform IP forwarding but is not enabled for IP
22634	// forwarding).
22635	Key string `json:"key,omitempty"`
22636
22637	// Value: [Output Only] A warning data value corresponding to the key.
22638	Value string `json:"value,omitempty"`
22639
22640	// ForceSendFields is a list of field names (e.g. "Key") to
22641	// unconditionally include in API requests. By default, fields with
22642	// empty values are omitted from API requests. However, any non-pointer,
22643	// non-interface field appearing in ForceSendFields will be sent to the
22644	// server regardless of whether the field is empty or not. This may be
22645	// used to include empty fields in Patch requests.
22646	ForceSendFields []string `json:"-"`
22647
22648	// NullFields is a list of field names (e.g. "Key") to include in API
22649	// requests with the JSON null value. By default, fields with empty
22650	// values are omitted from API requests. However, any field with an
22651	// empty value appearing in NullFields will be sent to the server as
22652	// null. It is an error if a field in this list has a non-empty value.
22653	// This may be used to include null fields in Patch requests.
22654	NullFields []string `json:"-"`
22655}
22656
22657func (s *NetworkListWarningData) MarshalJSON() ([]byte, error) {
22658	type NoMethod NetworkListWarningData
22659	raw := NoMethod(*s)
22660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22661}
22662
22663// NetworkPeering: A network peering attached to a network resource. The
22664// message includes the peering name, peer network, peering state, and a
22665// flag indicating whether Google Compute Engine should automatically
22666// create routes for the peering.
22667type NetworkPeering struct {
22668	// AutoCreateRoutes: This field will be deprecated soon. Use the
22669	// exchange_subnet_routes field instead. Indicates whether full mesh
22670	// connectivity is created and managed automatically between peered
22671	// networks. Currently this field should always be true since Google
22672	// Compute Engine will automatically create and manage subnetwork routes
22673	// between two networks when peering state is ACTIVE.
22674	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
22675
22676	// ExchangeSubnetRoutes: Indicates whether full mesh connectivity is
22677	// created and managed automatically between peered networks. Currently
22678	// this field should always be true since Google Compute Engine will
22679	// automatically create and manage subnetwork routes between two
22680	// networks when peering state is ACTIVE.
22681	ExchangeSubnetRoutes bool `json:"exchangeSubnetRoutes,omitempty"`
22682
22683	// ExportCustomRoutes: Whether to export the custom routes to peer
22684	// network.
22685	ExportCustomRoutes bool `json:"exportCustomRoutes,omitempty"`
22686
22687	// ExportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
22688	// range are exported. The default value is true, all subnet routes are
22689	// exported. The IPv4 special-use ranges
22690	// (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are always
22691	// exported to peers and are not controlled by this field.
22692	ExportSubnetRoutesWithPublicIp bool `json:"exportSubnetRoutesWithPublicIp,omitempty"`
22693
22694	// ImportCustomRoutes: Whether to import the custom routes from peer
22695	// network.
22696	ImportCustomRoutes bool `json:"importCustomRoutes,omitempty"`
22697
22698	// ImportSubnetRoutesWithPublicIp: Whether subnet routes with public IP
22699	// range are imported. The default value is false. The IPv4 special-use
22700	// ranges (https://en.wikipedia.org/wiki/IPv4#Special_addresses) are
22701	// always imported from peers and are not controlled by this field.
22702	ImportSubnetRoutesWithPublicIp bool `json:"importSubnetRoutesWithPublicIp,omitempty"`
22703
22704	// Name: Name of this peering. Provided by the client when the peering
22705	// is created. The name must comply with RFC1035. Specifically, the name
22706	// must be 1-63 characters long and match regular expression
22707	// `[a-z]([-a-z0-9]*[a-z0-9])?`. The first character must be a lowercase
22708	// letter, and all the following characters must be a dash, lowercase
22709	// letter, or digit, except the last character, which cannot be a dash.
22710	Name string `json:"name,omitempty"`
22711
22712	// Network: The URL of the peer network. It can be either full URL or
22713	// partial URL. The peer network may belong to a different project. If
22714	// the partial URL does not contain project, it is assumed that the peer
22715	// network is in the same project as the current network.
22716	Network string `json:"network,omitempty"`
22717
22718	// State: [Output Only] State for the peering, either `ACTIVE` or
22719	// `INACTIVE`. The peering is `ACTIVE` when there's a matching
22720	// configuration in the peer network.
22721	//
22722	// Possible values:
22723	//   "ACTIVE"
22724	//   "INACTIVE"
22725	State string `json:"state,omitempty"`
22726
22727	// StateDetails: [Output Only] Details about the current state of the
22728	// peering.
22729	StateDetails string `json:"stateDetails,omitempty"`
22730
22731	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
22732	// unconditionally include in API requests. By default, fields with
22733	// empty values are omitted from API requests. However, any non-pointer,
22734	// non-interface field appearing in ForceSendFields will be sent to the
22735	// server regardless of whether the field is empty or not. This may be
22736	// used to include empty fields in Patch requests.
22737	ForceSendFields []string `json:"-"`
22738
22739	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
22740	// include in API requests with the JSON null value. By default, fields
22741	// with empty values are omitted from API requests. However, any field
22742	// with an empty value appearing in NullFields will be sent to the
22743	// server as null. It is an error if a field in this list has a
22744	// non-empty value. This may be used to include null fields in Patch
22745	// requests.
22746	NullFields []string `json:"-"`
22747}
22748
22749func (s *NetworkPeering) MarshalJSON() ([]byte, error) {
22750	type NoMethod NetworkPeering
22751	raw := NoMethod(*s)
22752	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22753}
22754
22755// NetworkRoutingConfig: A routing configuration attached to a network
22756// resource. The message includes the list of routers associated with
22757// the network, and a flag indicating the type of routing behavior to
22758// enforce network-wide.
22759type NetworkRoutingConfig struct {
22760	// RoutingMode: The network-wide routing mode to use. If set to
22761	// REGIONAL, this network's Cloud Routers will only advertise routes
22762	// with subnets of this network in the same region as the router. If set
22763	// to GLOBAL, this network's Cloud Routers will advertise routes with
22764	// all subnets of this network, across regions.
22765	//
22766	// Possible values:
22767	//   "GLOBAL"
22768	//   "REGIONAL"
22769	RoutingMode string `json:"routingMode,omitempty"`
22770
22771	// ForceSendFields is a list of field names (e.g. "RoutingMode") to
22772	// unconditionally include in API requests. By default, fields with
22773	// empty values are omitted from API requests. However, any non-pointer,
22774	// non-interface field appearing in ForceSendFields will be sent to the
22775	// server regardless of whether the field is empty or not. This may be
22776	// used to include empty fields in Patch requests.
22777	ForceSendFields []string `json:"-"`
22778
22779	// NullFields is a list of field names (e.g. "RoutingMode") to include
22780	// in API requests with the JSON null value. By default, fields with
22781	// empty values are omitted from API requests. However, any field with
22782	// an empty value appearing in NullFields will be sent to the server as
22783	// null. It is an error if a field in this list has a non-empty value.
22784	// This may be used to include null fields in Patch requests.
22785	NullFields []string `json:"-"`
22786}
22787
22788func (s *NetworkRoutingConfig) MarshalJSON() ([]byte, error) {
22789	type NoMethod NetworkRoutingConfig
22790	raw := NoMethod(*s)
22791	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22792}
22793
22794type NetworksAddPeeringRequest struct {
22795	// AutoCreateRoutes: This field will be deprecated soon. Use
22796	// exchange_subnet_routes in network_peering instead. Indicates whether
22797	// full mesh connectivity is created and managed automatically between
22798	// peered networks. Currently this field should always be true since
22799	// Google Compute Engine will automatically create and manage subnetwork
22800	// routes between two networks when peering state is ACTIVE.
22801	AutoCreateRoutes bool `json:"autoCreateRoutes,omitempty"`
22802
22803	// Name: Name of the peering, which should conform to RFC1035.
22804	Name string `json:"name,omitempty"`
22805
22806	// NetworkPeering: Network peering parameters. In order to specify route
22807	// policies for peering using import and export custom routes, you must
22808	// specify all peering related parameters (name, peer network,
22809	// exchange_subnet_routes) in the network_peering field. The
22810	// corresponding fields in NetworksAddPeeringRequest will be deprecated
22811	// soon.
22812	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
22813
22814	// PeerNetwork: URL of the peer network. It can be either full URL or
22815	// partial URL. The peer network may belong to a different project. If
22816	// the partial URL does not contain project, it is assumed that the peer
22817	// network is in the same project as the current network.
22818	PeerNetwork string `json:"peerNetwork,omitempty"`
22819
22820	// ForceSendFields is a list of field names (e.g. "AutoCreateRoutes") to
22821	// unconditionally include in API requests. By default, fields with
22822	// empty values are omitted from API requests. However, any non-pointer,
22823	// non-interface field appearing in ForceSendFields will be sent to the
22824	// server regardless of whether the field is empty or not. This may be
22825	// used to include empty fields in Patch requests.
22826	ForceSendFields []string `json:"-"`
22827
22828	// NullFields is a list of field names (e.g. "AutoCreateRoutes") to
22829	// include in API requests with the JSON null value. By default, fields
22830	// with empty values are omitted from API requests. However, any field
22831	// with an empty value appearing in NullFields will be sent to the
22832	// server as null. It is an error if a field in this list has a
22833	// non-empty value. This may be used to include null fields in Patch
22834	// requests.
22835	NullFields []string `json:"-"`
22836}
22837
22838func (s *NetworksAddPeeringRequest) MarshalJSON() ([]byte, error) {
22839	type NoMethod NetworksAddPeeringRequest
22840	raw := NoMethod(*s)
22841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22842}
22843
22844type NetworksRemovePeeringRequest struct {
22845	// Name: Name of the peering, which should conform to RFC1035.
22846	Name string `json:"name,omitempty"`
22847
22848	// ForceSendFields is a list of field names (e.g. "Name") to
22849	// unconditionally include in API requests. By default, fields with
22850	// empty values are omitted from API requests. However, any non-pointer,
22851	// non-interface field appearing in ForceSendFields will be sent to the
22852	// server regardless of whether the field is empty or not. This may be
22853	// used to include empty fields in Patch requests.
22854	ForceSendFields []string `json:"-"`
22855
22856	// NullFields is a list of field names (e.g. "Name") to include in API
22857	// requests with the JSON null value. By default, fields with empty
22858	// values are omitted from API requests. However, any field with an
22859	// empty value appearing in NullFields will be sent to the server as
22860	// null. It is an error if a field in this list has a non-empty value.
22861	// This may be used to include null fields in Patch requests.
22862	NullFields []string `json:"-"`
22863}
22864
22865func (s *NetworksRemovePeeringRequest) MarshalJSON() ([]byte, error) {
22866	type NoMethod NetworksRemovePeeringRequest
22867	raw := NoMethod(*s)
22868	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22869}
22870
22871type NetworksUpdatePeeringRequest struct {
22872	NetworkPeering *NetworkPeering `json:"networkPeering,omitempty"`
22873
22874	// ForceSendFields is a list of field names (e.g. "NetworkPeering") to
22875	// unconditionally include in API requests. By default, fields with
22876	// empty values are omitted from API requests. However, any non-pointer,
22877	// non-interface field appearing in ForceSendFields will be sent to the
22878	// server regardless of whether the field is empty or not. This may be
22879	// used to include empty fields in Patch requests.
22880	ForceSendFields []string `json:"-"`
22881
22882	// NullFields is a list of field names (e.g. "NetworkPeering") to
22883	// include in API requests with the JSON null value. By default, fields
22884	// with empty values are omitted from API requests. However, any field
22885	// with an empty value appearing in NullFields will be sent to the
22886	// server as null. It is an error if a field in this list has a
22887	// non-empty value. This may be used to include null fields in Patch
22888	// requests.
22889	NullFields []string `json:"-"`
22890}
22891
22892func (s *NetworksUpdatePeeringRequest) MarshalJSON() ([]byte, error) {
22893	type NoMethod NetworksUpdatePeeringRequest
22894	raw := NoMethod(*s)
22895	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22896}
22897
22898// NodeGroup: Represent a sole-tenant Node Group resource.
22899//
22900// A sole-tenant node is a physical server that is dedicated to hosting
22901// VM instances only for your specific project. Use sole-tenant nodes to
22902// keep your instances physically separated from instances in other
22903// projects, or to group your instances together on the same host
22904// hardware. For more information, read Sole-tenant nodes. (==
22905// resource_for {$api_version}.nodeGroups ==)
22906type NodeGroup struct {
22907	// AutoscalingPolicy: Specifies how autoscaling should behave.
22908	AutoscalingPolicy *NodeGroupAutoscalingPolicy `json:"autoscalingPolicy,omitempty"`
22909
22910	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
22911	// format.
22912	CreationTimestamp string `json:"creationTimestamp,omitempty"`
22913
22914	// Description: An optional description of this resource. Provide this
22915	// property when you create the resource.
22916	Description string `json:"description,omitempty"`
22917
22918	Fingerprint string `json:"fingerprint,omitempty"`
22919
22920	// Id: [Output Only] The unique identifier for the resource. This
22921	// identifier is defined by the server.
22922	Id uint64 `json:"id,omitempty,string"`
22923
22924	// Kind: [Output Only] The type of the resource. Always
22925	// compute#nodeGroup for node group.
22926	Kind string `json:"kind,omitempty"`
22927
22928	// MaintenancePolicy: Specifies how to handle instances when a node in
22929	// the group undergoes maintenance.
22930	//
22931	// Possible values:
22932	//   "DEFAULT"
22933	//   "MAINTENANCE_POLICY_UNSPECIFIED"
22934	//   "MIGRATE_WITHIN_NODE_GROUP"
22935	//   "RESTART_IN_PLACE"
22936	MaintenancePolicy string `json:"maintenancePolicy,omitempty"`
22937
22938	// Name: The name of the resource, provided by the client when initially
22939	// creating the resource. The resource name must be 1-63 characters
22940	// long, and comply with RFC1035. Specifically, the name must be 1-63
22941	// characters long and match the regular expression
22942	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
22943	// a lowercase letter, and all following characters must be a dash,
22944	// lowercase letter, or digit, except the last character, which cannot
22945	// be a dash.
22946	Name string `json:"name,omitempty"`
22947
22948	// NodeTemplate: The URL of the node template to which this node group
22949	// belongs.
22950	NodeTemplate string `json:"nodeTemplate,omitempty"`
22951
22952	// SelfLink: [Output Only] Server-defined URL for the resource.
22953	SelfLink string `json:"selfLink,omitempty"`
22954
22955	// Size: [Output Only] The total number of nodes in the node group.
22956	Size int64 `json:"size,omitempty"`
22957
22958	// Possible values:
22959	//   "CREATING"
22960	//   "DELETING"
22961	//   "INVALID"
22962	//   "READY"
22963	Status string `json:"status,omitempty"`
22964
22965	// Zone: [Output Only] The name of the zone where the node group
22966	// resides, such as us-central1-a.
22967	Zone string `json:"zone,omitempty"`
22968
22969	// ServerResponse contains the HTTP response code and headers from the
22970	// server.
22971	googleapi.ServerResponse `json:"-"`
22972
22973	// ForceSendFields is a list of field names (e.g. "AutoscalingPolicy")
22974	// to unconditionally include in API requests. By default, fields with
22975	// empty values are omitted from API requests. However, any non-pointer,
22976	// non-interface field appearing in ForceSendFields will be sent to the
22977	// server regardless of whether the field is empty or not. This may be
22978	// used to include empty fields in Patch requests.
22979	ForceSendFields []string `json:"-"`
22980
22981	// NullFields is a list of field names (e.g. "AutoscalingPolicy") to
22982	// include in API requests with the JSON null value. By default, fields
22983	// with empty values are omitted from API requests. However, any field
22984	// with an empty value appearing in NullFields will be sent to the
22985	// server as null. It is an error if a field in this list has a
22986	// non-empty value. This may be used to include null fields in Patch
22987	// requests.
22988	NullFields []string `json:"-"`
22989}
22990
22991func (s *NodeGroup) MarshalJSON() ([]byte, error) {
22992	type NoMethod NodeGroup
22993	raw := NoMethod(*s)
22994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
22995}
22996
22997type NodeGroupAggregatedList struct {
22998	// Id: [Output Only] Unique identifier for the resource; defined by the
22999	// server.
23000	Id string `json:"id,omitempty"`
23001
23002	// Items: A list of NodeGroupsScopedList resources.
23003	Items map[string]NodeGroupsScopedList `json:"items,omitempty"`
23004
23005	// Kind: [Output Only] Type of resource.Always
23006	// compute#nodeGroupAggregatedList for aggregated lists of node groups.
23007	Kind string `json:"kind,omitempty"`
23008
23009	// NextPageToken: [Output Only] This token allows you to get the next
23010	// page of results for list requests. If the number of results is larger
23011	// than maxResults, use the nextPageToken as a value for the query
23012	// parameter pageToken in the next list request. Subsequent list
23013	// requests will have their own nextPageToken to continue paging through
23014	// the results.
23015	NextPageToken string `json:"nextPageToken,omitempty"`
23016
23017	// SelfLink: [Output Only] Server-defined URL for this resource.
23018	SelfLink string `json:"selfLink,omitempty"`
23019
23020	// Warning: [Output Only] Informational warning message.
23021	Warning *NodeGroupAggregatedListWarning `json:"warning,omitempty"`
23022
23023	// ServerResponse contains the HTTP response code and headers from the
23024	// server.
23025	googleapi.ServerResponse `json:"-"`
23026
23027	// ForceSendFields is a list of field names (e.g. "Id") to
23028	// unconditionally include in API requests. By default, fields with
23029	// empty values are omitted from API requests. However, any non-pointer,
23030	// non-interface field appearing in ForceSendFields will be sent to the
23031	// server regardless of whether the field is empty or not. This may be
23032	// used to include empty fields in Patch requests.
23033	ForceSendFields []string `json:"-"`
23034
23035	// NullFields is a list of field names (e.g. "Id") to include in API
23036	// requests with the JSON null value. By default, fields with empty
23037	// values are omitted from API requests. However, any field with an
23038	// empty value appearing in NullFields will be sent to the server as
23039	// null. It is an error if a field in this list has a non-empty value.
23040	// This may be used to include null fields in Patch requests.
23041	NullFields []string `json:"-"`
23042}
23043
23044func (s *NodeGroupAggregatedList) MarshalJSON() ([]byte, error) {
23045	type NoMethod NodeGroupAggregatedList
23046	raw := NoMethod(*s)
23047	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23048}
23049
23050// NodeGroupAggregatedListWarning: [Output Only] Informational warning
23051// message.
23052type NodeGroupAggregatedListWarning 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 []*NodeGroupAggregatedListWarningData `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 *NodeGroupAggregatedListWarning) MarshalJSON() ([]byte, error) {
23110	type NoMethod NodeGroupAggregatedListWarning
23111	raw := NoMethod(*s)
23112	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23113}
23114
23115type NodeGroupAggregatedListWarningData 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 *NodeGroupAggregatedListWarningData) MarshalJSON() ([]byte, error) {
23147	type NoMethod NodeGroupAggregatedListWarningData
23148	raw := NoMethod(*s)
23149	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23150}
23151
23152type NodeGroupAutoscalingPolicy struct {
23153	// MaxNodes: The maximum number of nodes that the group should have.
23154	MaxNodes int64 `json:"maxNodes,omitempty"`
23155
23156	// MinNodes: The minimum number of nodes that the group should have.
23157	MinNodes int64 `json:"minNodes,omitempty"`
23158
23159	// Mode: The autoscaling mode.
23160	//
23161	// Possible values:
23162	//   "MODE_UNSPECIFIED"
23163	//   "OFF"
23164	//   "ON"
23165	//   "ONLY_SCALE_OUT"
23166	Mode string `json:"mode,omitempty"`
23167
23168	// ForceSendFields is a list of field names (e.g. "MaxNodes") to
23169	// unconditionally include in API requests. By default, fields with
23170	// empty values are omitted from API requests. However, any non-pointer,
23171	// non-interface field appearing in ForceSendFields will be sent to the
23172	// server regardless of whether the field is empty or not. This may be
23173	// used to include empty fields in Patch requests.
23174	ForceSendFields []string `json:"-"`
23175
23176	// NullFields is a list of field names (e.g. "MaxNodes") to include in
23177	// API requests with the JSON null value. By default, fields with empty
23178	// values are omitted from API requests. However, any field with an
23179	// empty value appearing in NullFields will be sent to the server as
23180	// null. It is an error if a field in this list has a non-empty value.
23181	// This may be used to include null fields in Patch requests.
23182	NullFields []string `json:"-"`
23183}
23184
23185func (s *NodeGroupAutoscalingPolicy) MarshalJSON() ([]byte, error) {
23186	type NoMethod NodeGroupAutoscalingPolicy
23187	raw := NoMethod(*s)
23188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23189}
23190
23191// NodeGroupList: Contains a list of nodeGroups.
23192type NodeGroupList struct {
23193	// Id: [Output Only] Unique identifier for the resource; defined by the
23194	// server.
23195	Id string `json:"id,omitempty"`
23196
23197	// Items: A list of NodeGroup resources.
23198	Items []*NodeGroup `json:"items,omitempty"`
23199
23200	// Kind: [Output Only] Type of resource.Always compute#nodeGroupList for
23201	// lists of node groups.
23202	Kind string `json:"kind,omitempty"`
23203
23204	// NextPageToken: [Output Only] This token allows you to get the next
23205	// page of results for list requests. If the number of results is larger
23206	// than maxResults, use the nextPageToken as a value for the query
23207	// parameter pageToken in the next list request. Subsequent list
23208	// requests will have their own nextPageToken to continue paging through
23209	// the results.
23210	NextPageToken string `json:"nextPageToken,omitempty"`
23211
23212	// SelfLink: [Output Only] Server-defined URL for this resource.
23213	SelfLink string `json:"selfLink,omitempty"`
23214
23215	// Warning: [Output Only] Informational warning message.
23216	Warning *NodeGroupListWarning `json:"warning,omitempty"`
23217
23218	// ServerResponse contains the HTTP response code and headers from the
23219	// server.
23220	googleapi.ServerResponse `json:"-"`
23221
23222	// ForceSendFields is a list of field names (e.g. "Id") to
23223	// unconditionally include in API requests. By default, fields with
23224	// empty values are omitted from API requests. However, any non-pointer,
23225	// non-interface field appearing in ForceSendFields will be sent to the
23226	// server regardless of whether the field is empty or not. This may be
23227	// used to include empty fields in Patch requests.
23228	ForceSendFields []string `json:"-"`
23229
23230	// NullFields is a list of field names (e.g. "Id") to include in API
23231	// requests with the JSON null value. By default, fields with empty
23232	// values are omitted from API requests. However, any field with an
23233	// empty value appearing in NullFields will be sent to the server as
23234	// null. It is an error if a field in this list has a non-empty value.
23235	// This may be used to include null fields in Patch requests.
23236	NullFields []string `json:"-"`
23237}
23238
23239func (s *NodeGroupList) MarshalJSON() ([]byte, error) {
23240	type NoMethod NodeGroupList
23241	raw := NoMethod(*s)
23242	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23243}
23244
23245// NodeGroupListWarning: [Output Only] Informational warning message.
23246type NodeGroupListWarning struct {
23247	// Code: [Output Only] A warning code, if applicable. For example,
23248	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23249	// the response.
23250	//
23251	// Possible values:
23252	//   "CLEANUP_FAILED"
23253	//   "DEPRECATED_RESOURCE_USED"
23254	//   "DEPRECATED_TYPE_USED"
23255	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23256	//   "EXPERIMENTAL_TYPE_USED"
23257	//   "EXTERNAL_API_WARNING"
23258	//   "FIELD_VALUE_OVERRIDEN"
23259	//   "INJECTED_KERNELS_DEPRECATED"
23260	//   "MISSING_TYPE_DEPENDENCY"
23261	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23262	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23263	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23264	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23265	//   "NEXT_HOP_NOT_RUNNING"
23266	//   "NOT_CRITICAL_ERROR"
23267	//   "NO_RESULTS_ON_PAGE"
23268	//   "REQUIRED_TOS_AGREEMENT"
23269	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23270	//   "RESOURCE_NOT_DELETED"
23271	//   "SCHEMA_VALIDATION_IGNORED"
23272	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23273	//   "UNDECLARED_PROPERTIES"
23274	//   "UNREACHABLE"
23275	Code string `json:"code,omitempty"`
23276
23277	// Data: [Output Only] Metadata about this warning in key: value format.
23278	// For example:
23279	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23280	Data []*NodeGroupListWarningData `json:"data,omitempty"`
23281
23282	// Message: [Output Only] A human-readable description of the warning
23283	// code.
23284	Message string `json:"message,omitempty"`
23285
23286	// ForceSendFields is a list of field names (e.g. "Code") to
23287	// unconditionally include in API requests. By default, fields with
23288	// empty values are omitted from API requests. However, any non-pointer,
23289	// non-interface field appearing in ForceSendFields will be sent to the
23290	// server regardless of whether the field is empty or not. This may be
23291	// used to include empty fields in Patch requests.
23292	ForceSendFields []string `json:"-"`
23293
23294	// NullFields is a list of field names (e.g. "Code") to include in API
23295	// requests with the JSON null value. By default, fields with empty
23296	// values are omitted from API requests. However, any field with an
23297	// empty value appearing in NullFields will be sent to the server as
23298	// null. It is an error if a field in this list has a non-empty value.
23299	// This may be used to include null fields in Patch requests.
23300	NullFields []string `json:"-"`
23301}
23302
23303func (s *NodeGroupListWarning) MarshalJSON() ([]byte, error) {
23304	type NoMethod NodeGroupListWarning
23305	raw := NoMethod(*s)
23306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23307}
23308
23309type NodeGroupListWarningData struct {
23310	// Key: [Output Only] A key that provides more detail on the warning
23311	// being returned. For example, for warnings where there are no results
23312	// in a list request for a particular zone, this key might be scope and
23313	// the key value might be the zone name. Other examples might be a key
23314	// indicating a deprecated resource and a suggested replacement, or a
23315	// warning about invalid network settings (for example, if an instance
23316	// attempts to perform IP forwarding but is not enabled for IP
23317	// forwarding).
23318	Key string `json:"key,omitempty"`
23319
23320	// Value: [Output Only] A warning data value corresponding to the key.
23321	Value string `json:"value,omitempty"`
23322
23323	// ForceSendFields is a list of field names (e.g. "Key") to
23324	// unconditionally include in API requests. By default, fields with
23325	// empty values are omitted from API requests. However, any non-pointer,
23326	// non-interface field appearing in ForceSendFields will be sent to the
23327	// server regardless of whether the field is empty or not. This may be
23328	// used to include empty fields in Patch requests.
23329	ForceSendFields []string `json:"-"`
23330
23331	// NullFields is a list of field names (e.g. "Key") to include in API
23332	// requests with the JSON null value. By default, fields with empty
23333	// values are omitted from API requests. However, any field with an
23334	// empty value appearing in NullFields will be sent to the server as
23335	// null. It is an error if a field in this list has a non-empty value.
23336	// This may be used to include null fields in Patch requests.
23337	NullFields []string `json:"-"`
23338}
23339
23340func (s *NodeGroupListWarningData) MarshalJSON() ([]byte, error) {
23341	type NoMethod NodeGroupListWarningData
23342	raw := NoMethod(*s)
23343	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23344}
23345
23346type NodeGroupNode struct {
23347	// Instances: Instances scheduled on this node.
23348	Instances []string `json:"instances,omitempty"`
23349
23350	// Name: The name of the node.
23351	Name string `json:"name,omitempty"`
23352
23353	// NodeType: The type of this node.
23354	NodeType string `json:"nodeType,omitempty"`
23355
23356	// ServerBinding: Binding properties for the physical server.
23357	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
23358
23359	// ServerId: Server ID associated with this node.
23360	ServerId string `json:"serverId,omitempty"`
23361
23362	// Possible values:
23363	//   "CREATING"
23364	//   "DELETING"
23365	//   "INVALID"
23366	//   "READY"
23367	//   "REPAIRING"
23368	Status string `json:"status,omitempty"`
23369
23370	// ForceSendFields is a list of field names (e.g. "Instances") to
23371	// unconditionally include in API requests. By default, fields with
23372	// empty values are omitted from API requests. However, any non-pointer,
23373	// non-interface field appearing in ForceSendFields will be sent to the
23374	// server regardless of whether the field is empty or not. This may be
23375	// used to include empty fields in Patch requests.
23376	ForceSendFields []string `json:"-"`
23377
23378	// NullFields is a list of field names (e.g. "Instances") to include in
23379	// API requests with the JSON null value. By default, fields with empty
23380	// values are omitted from API requests. However, any field with an
23381	// empty value appearing in NullFields will be sent to the server as
23382	// null. It is an error if a field in this list has a non-empty value.
23383	// This may be used to include null fields in Patch requests.
23384	NullFields []string `json:"-"`
23385}
23386
23387func (s *NodeGroupNode) MarshalJSON() ([]byte, error) {
23388	type NoMethod NodeGroupNode
23389	raw := NoMethod(*s)
23390	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23391}
23392
23393type NodeGroupsAddNodesRequest struct {
23394	// AdditionalNodeCount: Count of additional nodes to be added to the
23395	// node group.
23396	AdditionalNodeCount int64 `json:"additionalNodeCount,omitempty"`
23397
23398	// ForceSendFields is a list of field names (e.g. "AdditionalNodeCount")
23399	// to unconditionally include in API requests. By default, fields with
23400	// empty values are omitted from API requests. However, any non-pointer,
23401	// non-interface field appearing in ForceSendFields will be sent to the
23402	// server regardless of whether the field is empty or not. This may be
23403	// used to include empty fields in Patch requests.
23404	ForceSendFields []string `json:"-"`
23405
23406	// NullFields is a list of field names (e.g. "AdditionalNodeCount") to
23407	// include in API requests with the JSON null value. By default, fields
23408	// with empty values are omitted from API requests. However, any field
23409	// with an empty value appearing in NullFields will be sent to the
23410	// server as null. It is an error if a field in this list has a
23411	// non-empty value. This may be used to include null fields in Patch
23412	// requests.
23413	NullFields []string `json:"-"`
23414}
23415
23416func (s *NodeGroupsAddNodesRequest) MarshalJSON() ([]byte, error) {
23417	type NoMethod NodeGroupsAddNodesRequest
23418	raw := NoMethod(*s)
23419	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23420}
23421
23422type NodeGroupsDeleteNodesRequest struct {
23423	// Nodes: Names of the nodes to delete.
23424	Nodes []string `json:"nodes,omitempty"`
23425
23426	// ForceSendFields is a list of field names (e.g. "Nodes") to
23427	// unconditionally include in API requests. By default, fields with
23428	// empty values are omitted from API requests. However, any non-pointer,
23429	// non-interface field appearing in ForceSendFields will be sent to the
23430	// server regardless of whether the field is empty or not. This may be
23431	// used to include empty fields in Patch requests.
23432	ForceSendFields []string `json:"-"`
23433
23434	// NullFields is a list of field names (e.g. "Nodes") to include in API
23435	// requests with the JSON null value. By default, fields with empty
23436	// values are omitted from API requests. However, any field with an
23437	// empty value appearing in NullFields will be sent to the server as
23438	// null. It is an error if a field in this list has a non-empty value.
23439	// This may be used to include null fields in Patch requests.
23440	NullFields []string `json:"-"`
23441}
23442
23443func (s *NodeGroupsDeleteNodesRequest) MarshalJSON() ([]byte, error) {
23444	type NoMethod NodeGroupsDeleteNodesRequest
23445	raw := NoMethod(*s)
23446	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23447}
23448
23449type NodeGroupsListNodes struct {
23450	// Id: [Output Only] Unique identifier for the resource; defined by the
23451	// server.
23452	Id string `json:"id,omitempty"`
23453
23454	// Items: A list of Node resources.
23455	Items []*NodeGroupNode `json:"items,omitempty"`
23456
23457	// Kind: [Output Only] The resource type, which is always
23458	// compute.nodeGroupsListNodes for the list of nodes in the specified
23459	// node group.
23460	Kind string `json:"kind,omitempty"`
23461
23462	// NextPageToken: [Output Only] This token allows you to get the next
23463	// page of results for list requests. If the number of results is larger
23464	// than maxResults, use the nextPageToken as a value for the query
23465	// parameter pageToken in the next list request. Subsequent list
23466	// requests will have their own nextPageToken to continue paging through
23467	// the results.
23468	NextPageToken string `json:"nextPageToken,omitempty"`
23469
23470	// SelfLink: [Output Only] Server-defined URL for this resource.
23471	SelfLink string `json:"selfLink,omitempty"`
23472
23473	// Warning: [Output Only] Informational warning message.
23474	Warning *NodeGroupsListNodesWarning `json:"warning,omitempty"`
23475
23476	// ServerResponse contains the HTTP response code and headers from the
23477	// server.
23478	googleapi.ServerResponse `json:"-"`
23479
23480	// ForceSendFields is a list of field names (e.g. "Id") to
23481	// unconditionally include in API requests. By default, fields with
23482	// empty values are omitted from API requests. However, any non-pointer,
23483	// non-interface field appearing in ForceSendFields will be sent to the
23484	// server regardless of whether the field is empty or not. This may be
23485	// used to include empty fields in Patch requests.
23486	ForceSendFields []string `json:"-"`
23487
23488	// NullFields is a list of field names (e.g. "Id") to include in API
23489	// requests with the JSON null value. By default, fields with empty
23490	// values are omitted from API requests. However, any field with an
23491	// empty value appearing in NullFields will be sent to the server as
23492	// null. It is an error if a field in this list has a non-empty value.
23493	// This may be used to include null fields in Patch requests.
23494	NullFields []string `json:"-"`
23495}
23496
23497func (s *NodeGroupsListNodes) MarshalJSON() ([]byte, error) {
23498	type NoMethod NodeGroupsListNodes
23499	raw := NoMethod(*s)
23500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23501}
23502
23503// NodeGroupsListNodesWarning: [Output Only] Informational warning
23504// message.
23505type NodeGroupsListNodesWarning struct {
23506	// Code: [Output Only] A warning code, if applicable. For example,
23507	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23508	// the response.
23509	//
23510	// Possible values:
23511	//   "CLEANUP_FAILED"
23512	//   "DEPRECATED_RESOURCE_USED"
23513	//   "DEPRECATED_TYPE_USED"
23514	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23515	//   "EXPERIMENTAL_TYPE_USED"
23516	//   "EXTERNAL_API_WARNING"
23517	//   "FIELD_VALUE_OVERRIDEN"
23518	//   "INJECTED_KERNELS_DEPRECATED"
23519	//   "MISSING_TYPE_DEPENDENCY"
23520	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23521	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23522	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23523	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23524	//   "NEXT_HOP_NOT_RUNNING"
23525	//   "NOT_CRITICAL_ERROR"
23526	//   "NO_RESULTS_ON_PAGE"
23527	//   "REQUIRED_TOS_AGREEMENT"
23528	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23529	//   "RESOURCE_NOT_DELETED"
23530	//   "SCHEMA_VALIDATION_IGNORED"
23531	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23532	//   "UNDECLARED_PROPERTIES"
23533	//   "UNREACHABLE"
23534	Code string `json:"code,omitempty"`
23535
23536	// Data: [Output Only] Metadata about this warning in key: value format.
23537	// For example:
23538	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23539	Data []*NodeGroupsListNodesWarningData `json:"data,omitempty"`
23540
23541	// Message: [Output Only] A human-readable description of the warning
23542	// code.
23543	Message string `json:"message,omitempty"`
23544
23545	// ForceSendFields is a list of field names (e.g. "Code") to
23546	// unconditionally include in API requests. By default, fields with
23547	// empty values are omitted from API requests. However, any non-pointer,
23548	// non-interface field appearing in ForceSendFields will be sent to the
23549	// server regardless of whether the field is empty or not. This may be
23550	// used to include empty fields in Patch requests.
23551	ForceSendFields []string `json:"-"`
23552
23553	// NullFields is a list of field names (e.g. "Code") to include in API
23554	// requests with the JSON null value. By default, fields with empty
23555	// values are omitted from API requests. However, any field with an
23556	// empty value appearing in NullFields will be sent to the server as
23557	// null. It is an error if a field in this list has a non-empty value.
23558	// This may be used to include null fields in Patch requests.
23559	NullFields []string `json:"-"`
23560}
23561
23562func (s *NodeGroupsListNodesWarning) MarshalJSON() ([]byte, error) {
23563	type NoMethod NodeGroupsListNodesWarning
23564	raw := NoMethod(*s)
23565	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23566}
23567
23568type NodeGroupsListNodesWarningData struct {
23569	// Key: [Output Only] A key that provides more detail on the warning
23570	// being returned. For example, for warnings where there are no results
23571	// in a list request for a particular zone, this key might be scope and
23572	// the key value might be the zone name. Other examples might be a key
23573	// indicating a deprecated resource and a suggested replacement, or a
23574	// warning about invalid network settings (for example, if an instance
23575	// attempts to perform IP forwarding but is not enabled for IP
23576	// forwarding).
23577	Key string `json:"key,omitempty"`
23578
23579	// Value: [Output Only] A warning data value corresponding to the key.
23580	Value string `json:"value,omitempty"`
23581
23582	// ForceSendFields is a list of field names (e.g. "Key") to
23583	// unconditionally include in API requests. By default, fields with
23584	// empty values are omitted from API requests. However, any non-pointer,
23585	// non-interface field appearing in ForceSendFields will be sent to the
23586	// server regardless of whether the field is empty or not. This may be
23587	// used to include empty fields in Patch requests.
23588	ForceSendFields []string `json:"-"`
23589
23590	// NullFields is a list of field names (e.g. "Key") to include in API
23591	// requests with the JSON null value. By default, fields with empty
23592	// values are omitted from API requests. However, any field with an
23593	// empty value appearing in NullFields will be sent to the server as
23594	// null. It is an error if a field in this list has a non-empty value.
23595	// This may be used to include null fields in Patch requests.
23596	NullFields []string `json:"-"`
23597}
23598
23599func (s *NodeGroupsListNodesWarningData) MarshalJSON() ([]byte, error) {
23600	type NoMethod NodeGroupsListNodesWarningData
23601	raw := NoMethod(*s)
23602	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23603}
23604
23605type NodeGroupsScopedList struct {
23606	// NodeGroups: [Output Only] A list of node groups contained in this
23607	// scope.
23608	NodeGroups []*NodeGroup `json:"nodeGroups,omitempty"`
23609
23610	// Warning: [Output Only] An informational warning that appears when the
23611	// nodeGroup list is empty.
23612	Warning *NodeGroupsScopedListWarning `json:"warning,omitempty"`
23613
23614	// ForceSendFields is a list of field names (e.g. "NodeGroups") to
23615	// unconditionally include in API requests. By default, fields with
23616	// empty values are omitted from API requests. However, any non-pointer,
23617	// non-interface field appearing in ForceSendFields will be sent to the
23618	// server regardless of whether the field is empty or not. This may be
23619	// used to include empty fields in Patch requests.
23620	ForceSendFields []string `json:"-"`
23621
23622	// NullFields is a list of field names (e.g. "NodeGroups") to include in
23623	// API requests with the JSON null value. By default, fields with empty
23624	// values are omitted from API requests. However, any field with an
23625	// empty value appearing in NullFields will be sent to the server as
23626	// null. It is an error if a field in this list has a non-empty value.
23627	// This may be used to include null fields in Patch requests.
23628	NullFields []string `json:"-"`
23629}
23630
23631func (s *NodeGroupsScopedList) MarshalJSON() ([]byte, error) {
23632	type NoMethod NodeGroupsScopedList
23633	raw := NoMethod(*s)
23634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23635}
23636
23637// NodeGroupsScopedListWarning: [Output Only] An informational warning
23638// that appears when the nodeGroup list is empty.
23639type NodeGroupsScopedListWarning struct {
23640	// Code: [Output Only] A warning code, if applicable. For example,
23641	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23642	// the response.
23643	//
23644	// Possible values:
23645	//   "CLEANUP_FAILED"
23646	//   "DEPRECATED_RESOURCE_USED"
23647	//   "DEPRECATED_TYPE_USED"
23648	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23649	//   "EXPERIMENTAL_TYPE_USED"
23650	//   "EXTERNAL_API_WARNING"
23651	//   "FIELD_VALUE_OVERRIDEN"
23652	//   "INJECTED_KERNELS_DEPRECATED"
23653	//   "MISSING_TYPE_DEPENDENCY"
23654	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23655	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23656	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23657	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23658	//   "NEXT_HOP_NOT_RUNNING"
23659	//   "NOT_CRITICAL_ERROR"
23660	//   "NO_RESULTS_ON_PAGE"
23661	//   "REQUIRED_TOS_AGREEMENT"
23662	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23663	//   "RESOURCE_NOT_DELETED"
23664	//   "SCHEMA_VALIDATION_IGNORED"
23665	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23666	//   "UNDECLARED_PROPERTIES"
23667	//   "UNREACHABLE"
23668	Code string `json:"code,omitempty"`
23669
23670	// Data: [Output Only] Metadata about this warning in key: value format.
23671	// For example:
23672	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23673	Data []*NodeGroupsScopedListWarningData `json:"data,omitempty"`
23674
23675	// Message: [Output Only] A human-readable description of the warning
23676	// code.
23677	Message string `json:"message,omitempty"`
23678
23679	// ForceSendFields is a list of field names (e.g. "Code") to
23680	// unconditionally include in API requests. By default, fields with
23681	// empty values are omitted from API requests. However, any non-pointer,
23682	// non-interface field appearing in ForceSendFields will be sent to the
23683	// server regardless of whether the field is empty or not. This may be
23684	// used to include empty fields in Patch requests.
23685	ForceSendFields []string `json:"-"`
23686
23687	// NullFields is a list of field names (e.g. "Code") to include in API
23688	// requests with the JSON null value. By default, fields with empty
23689	// values are omitted from API requests. However, any field with an
23690	// empty value appearing in NullFields will be sent to the server as
23691	// null. It is an error if a field in this list has a non-empty value.
23692	// This may be used to include null fields in Patch requests.
23693	NullFields []string `json:"-"`
23694}
23695
23696func (s *NodeGroupsScopedListWarning) MarshalJSON() ([]byte, error) {
23697	type NoMethod NodeGroupsScopedListWarning
23698	raw := NoMethod(*s)
23699	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23700}
23701
23702type NodeGroupsScopedListWarningData struct {
23703	// Key: [Output Only] A key that provides more detail on the warning
23704	// being returned. For example, for warnings where there are no results
23705	// in a list request for a particular zone, this key might be scope and
23706	// the key value might be the zone name. Other examples might be a key
23707	// indicating a deprecated resource and a suggested replacement, or a
23708	// warning about invalid network settings (for example, if an instance
23709	// attempts to perform IP forwarding but is not enabled for IP
23710	// forwarding).
23711	Key string `json:"key,omitempty"`
23712
23713	// Value: [Output Only] A warning data value corresponding to the key.
23714	Value string `json:"value,omitempty"`
23715
23716	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") to include in API
23725	// 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 *NodeGroupsScopedListWarningData) MarshalJSON() ([]byte, error) {
23734	type NoMethod NodeGroupsScopedListWarningData
23735	raw := NoMethod(*s)
23736	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23737}
23738
23739type NodeGroupsSetNodeTemplateRequest struct {
23740	// NodeTemplate: Full or partial URL of the node template resource to be
23741	// updated for this node group.
23742	NodeTemplate string `json:"nodeTemplate,omitempty"`
23743
23744	// ForceSendFields is a list of field names (e.g. "NodeTemplate") to
23745	// unconditionally include in API requests. By default, fields with
23746	// empty values are omitted from API requests. However, any non-pointer,
23747	// non-interface field appearing in ForceSendFields will be sent to the
23748	// server regardless of whether the field is empty or not. This may be
23749	// used to include empty fields in Patch requests.
23750	ForceSendFields []string `json:"-"`
23751
23752	// NullFields is a list of field names (e.g. "NodeTemplate") to include
23753	// in API requests with the JSON null value. By default, fields with
23754	// empty values are omitted from API requests. However, any field with
23755	// an empty value appearing in NullFields will be sent to the server as
23756	// null. It is an error if a field in this list has a non-empty value.
23757	// This may be used to include null fields in Patch requests.
23758	NullFields []string `json:"-"`
23759}
23760
23761func (s *NodeGroupsSetNodeTemplateRequest) MarshalJSON() ([]byte, error) {
23762	type NoMethod NodeGroupsSetNodeTemplateRequest
23763	raw := NoMethod(*s)
23764	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23765}
23766
23767// NodeTemplate: Represent a sole-tenant Node Template resource.
23768//
23769// You can use a template to define properties for nodes in a node
23770// group. For more information, read Creating node groups and instances.
23771// (== resource_for {$api_version}.nodeTemplates ==) (== NextID: 18 ==)
23772type NodeTemplate struct {
23773	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
23774	// format.
23775	CreationTimestamp string `json:"creationTimestamp,omitempty"`
23776
23777	// Description: An optional description of this resource. Provide this
23778	// property when you create the resource.
23779	Description string `json:"description,omitempty"`
23780
23781	// Id: [Output Only] The unique identifier for the resource. This
23782	// identifier is defined by the server.
23783	Id uint64 `json:"id,omitempty,string"`
23784
23785	// Kind: [Output Only] The type of the resource. Always
23786	// compute#nodeTemplate for node templates.
23787	Kind string `json:"kind,omitempty"`
23788
23789	// Name: The name of the resource, provided by the client when initially
23790	// creating the resource. The resource name must be 1-63 characters
23791	// long, and comply with RFC1035. Specifically, the name must be 1-63
23792	// characters long and match the regular expression
23793	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
23794	// a lowercase letter, and all following characters must be a dash,
23795	// lowercase letter, or digit, except the last character, which cannot
23796	// be a dash.
23797	Name string `json:"name,omitempty"`
23798
23799	// NodeAffinityLabels: Labels to use for node affinity, which will be
23800	// used in instance scheduling.
23801	NodeAffinityLabels map[string]string `json:"nodeAffinityLabels,omitempty"`
23802
23803	// NodeType: The node type to use for nodes group that are created from
23804	// this template.
23805	NodeType string `json:"nodeType,omitempty"`
23806
23807	// NodeTypeFlexibility: The flexible properties of the desired node
23808	// type. Node groups that use this node template will create nodes of a
23809	// type that matches these properties.
23810	//
23811	// This field is mutually exclusive with the node_type property; you can
23812	// only define one or the other, but not both.
23813	NodeTypeFlexibility *NodeTemplateNodeTypeFlexibility `json:"nodeTypeFlexibility,omitempty"`
23814
23815	// Region: [Output Only] The name of the region where the node template
23816	// resides, such as us-central1.
23817	Region string `json:"region,omitempty"`
23818
23819	// SelfLink: [Output Only] Server-defined URL for the resource.
23820	SelfLink string `json:"selfLink,omitempty"`
23821
23822	// ServerBinding: Sets the binding properties for the physical server.
23823	// Valid values include:
23824	// - [Default] RESTART_NODE_ON_ANY_SERVER: Restarts VMs on any available
23825	// physical server
23826	// - RESTART_NODE_ON_MINIMAL_SERVER: Restarts VMs on the same physical
23827	// server whenever possible
23828	//
23829	// See Sole-tenant node options for more information.
23830	ServerBinding *ServerBinding `json:"serverBinding,omitempty"`
23831
23832	// Status: [Output Only] The status of the node template. One of the
23833	// following values: CREATING, READY, and DELETING.
23834	//
23835	// Possible values:
23836	//   "CREATING"
23837	//   "DELETING"
23838	//   "INVALID"
23839	//   "READY"
23840	Status string `json:"status,omitempty"`
23841
23842	// StatusMessage: [Output Only] An optional, human-readable explanation
23843	// of the status.
23844	StatusMessage string `json:"statusMessage,omitempty"`
23845
23846	// ServerResponse contains the HTTP response code and headers from the
23847	// server.
23848	googleapi.ServerResponse `json:"-"`
23849
23850	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
23851	// to unconditionally include in API requests. By default, fields with
23852	// empty values are omitted from API requests. However, any non-pointer,
23853	// non-interface field appearing in ForceSendFields will be sent to the
23854	// server regardless of whether the field is empty or not. This may be
23855	// used to include empty fields in Patch requests.
23856	ForceSendFields []string `json:"-"`
23857
23858	// NullFields is a list of field names (e.g. "CreationTimestamp") to
23859	// include in API requests with the JSON null value. By default, fields
23860	// with empty values are omitted from API requests. However, any field
23861	// with an empty value appearing in NullFields will be sent to the
23862	// server as null. It is an error if a field in this list has a
23863	// non-empty value. This may be used to include null fields in Patch
23864	// requests.
23865	NullFields []string `json:"-"`
23866}
23867
23868func (s *NodeTemplate) MarshalJSON() ([]byte, error) {
23869	type NoMethod NodeTemplate
23870	raw := NoMethod(*s)
23871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23872}
23873
23874type NodeTemplateAggregatedList struct {
23875	// Id: [Output Only] Unique identifier for the resource; defined by the
23876	// server.
23877	Id string `json:"id,omitempty"`
23878
23879	// Items: A list of NodeTemplatesScopedList resources.
23880	Items map[string]NodeTemplatesScopedList `json:"items,omitempty"`
23881
23882	// Kind: [Output Only] Type of resource.Always
23883	// compute#nodeTemplateAggregatedList for aggregated lists of node
23884	// templates.
23885	Kind string `json:"kind,omitempty"`
23886
23887	// NextPageToken: [Output Only] This token allows you to get the next
23888	// page of results for list requests. If the number of results is larger
23889	// than maxResults, use the nextPageToken as a value for the query
23890	// parameter pageToken in the next list request. Subsequent list
23891	// requests will have their own nextPageToken to continue paging through
23892	// the results.
23893	NextPageToken string `json:"nextPageToken,omitempty"`
23894
23895	// SelfLink: [Output Only] Server-defined URL for this resource.
23896	SelfLink string `json:"selfLink,omitempty"`
23897
23898	// Warning: [Output Only] Informational warning message.
23899	Warning *NodeTemplateAggregatedListWarning `json:"warning,omitempty"`
23900
23901	// ServerResponse contains the HTTP response code and headers from the
23902	// server.
23903	googleapi.ServerResponse `json:"-"`
23904
23905	// ForceSendFields is a list of field names (e.g. "Id") to
23906	// unconditionally include in API requests. By default, fields with
23907	// empty values are omitted from API requests. However, any non-pointer,
23908	// non-interface field appearing in ForceSendFields will be sent to the
23909	// server regardless of whether the field is empty or not. This may be
23910	// used to include empty fields in Patch requests.
23911	ForceSendFields []string `json:"-"`
23912
23913	// NullFields is a list of field names (e.g. "Id") to include in API
23914	// requests with the JSON null value. By default, fields with empty
23915	// values are omitted from API requests. However, any field with an
23916	// empty value appearing in NullFields will be sent to the server as
23917	// null. It is an error if a field in this list has a non-empty value.
23918	// This may be used to include null fields in Patch requests.
23919	NullFields []string `json:"-"`
23920}
23921
23922func (s *NodeTemplateAggregatedList) MarshalJSON() ([]byte, error) {
23923	type NoMethod NodeTemplateAggregatedList
23924	raw := NoMethod(*s)
23925	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23926}
23927
23928// NodeTemplateAggregatedListWarning: [Output Only] Informational
23929// warning message.
23930type NodeTemplateAggregatedListWarning struct {
23931	// Code: [Output Only] A warning code, if applicable. For example,
23932	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
23933	// the response.
23934	//
23935	// Possible values:
23936	//   "CLEANUP_FAILED"
23937	//   "DEPRECATED_RESOURCE_USED"
23938	//   "DEPRECATED_TYPE_USED"
23939	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
23940	//   "EXPERIMENTAL_TYPE_USED"
23941	//   "EXTERNAL_API_WARNING"
23942	//   "FIELD_VALUE_OVERRIDEN"
23943	//   "INJECTED_KERNELS_DEPRECATED"
23944	//   "MISSING_TYPE_DEPENDENCY"
23945	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
23946	//   "NEXT_HOP_CANNOT_IP_FORWARD"
23947	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
23948	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
23949	//   "NEXT_HOP_NOT_RUNNING"
23950	//   "NOT_CRITICAL_ERROR"
23951	//   "NO_RESULTS_ON_PAGE"
23952	//   "REQUIRED_TOS_AGREEMENT"
23953	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
23954	//   "RESOURCE_NOT_DELETED"
23955	//   "SCHEMA_VALIDATION_IGNORED"
23956	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
23957	//   "UNDECLARED_PROPERTIES"
23958	//   "UNREACHABLE"
23959	Code string `json:"code,omitempty"`
23960
23961	// Data: [Output Only] Metadata about this warning in key: value format.
23962	// For example:
23963	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
23964	Data []*NodeTemplateAggregatedListWarningData `json:"data,omitempty"`
23965
23966	// Message: [Output Only] A human-readable description of the warning
23967	// code.
23968	Message string `json:"message,omitempty"`
23969
23970	// ForceSendFields is a list of field names (e.g. "Code") to
23971	// unconditionally include in API requests. By default, fields with
23972	// empty values are omitted from API requests. However, any non-pointer,
23973	// non-interface field appearing in ForceSendFields will be sent to the
23974	// server regardless of whether the field is empty or not. This may be
23975	// used to include empty fields in Patch requests.
23976	ForceSendFields []string `json:"-"`
23977
23978	// NullFields is a list of field names (e.g. "Code") to include in API
23979	// requests with the JSON null value. By default, fields with empty
23980	// values are omitted from API requests. However, any field with an
23981	// empty value appearing in NullFields will be sent to the server as
23982	// null. It is an error if a field in this list has a non-empty value.
23983	// This may be used to include null fields in Patch requests.
23984	NullFields []string `json:"-"`
23985}
23986
23987func (s *NodeTemplateAggregatedListWarning) MarshalJSON() ([]byte, error) {
23988	type NoMethod NodeTemplateAggregatedListWarning
23989	raw := NoMethod(*s)
23990	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
23991}
23992
23993type NodeTemplateAggregatedListWarningData struct {
23994	// Key: [Output Only] A key that provides more detail on the warning
23995	// being returned. For example, for warnings where there are no results
23996	// in a list request for a particular zone, this key might be scope and
23997	// the key value might be the zone name. Other examples might be a key
23998	// indicating a deprecated resource and a suggested replacement, or a
23999	// warning about invalid network settings (for example, if an instance
24000	// attempts to perform IP forwarding but is not enabled for IP
24001	// forwarding).
24002	Key string `json:"key,omitempty"`
24003
24004	// Value: [Output Only] A warning data value corresponding to the key.
24005	Value string `json:"value,omitempty"`
24006
24007	// ForceSendFields is a list of field names (e.g. "Key") to
24008	// unconditionally include in API requests. By default, fields with
24009	// empty values are omitted from API requests. However, any non-pointer,
24010	// non-interface field appearing in ForceSendFields will be sent to the
24011	// server regardless of whether the field is empty or not. This may be
24012	// used to include empty fields in Patch requests.
24013	ForceSendFields []string `json:"-"`
24014
24015	// NullFields is a list of field names (e.g. "Key") to include in API
24016	// requests with the JSON null value. By default, fields with empty
24017	// values are omitted from API requests. However, any field with an
24018	// empty value appearing in NullFields will be sent to the server as
24019	// null. It is an error if a field in this list has a non-empty value.
24020	// This may be used to include null fields in Patch requests.
24021	NullFields []string `json:"-"`
24022}
24023
24024func (s *NodeTemplateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24025	type NoMethod NodeTemplateAggregatedListWarningData
24026	raw := NoMethod(*s)
24027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24028}
24029
24030// NodeTemplateList: Contains a list of node templates.
24031type NodeTemplateList struct {
24032	// Id: [Output Only] Unique identifier for the resource; defined by the
24033	// server.
24034	Id string `json:"id,omitempty"`
24035
24036	// Items: A list of NodeTemplate resources.
24037	Items []*NodeTemplate `json:"items,omitempty"`
24038
24039	// Kind: [Output Only] Type of resource.Always compute#nodeTemplateList
24040	// for lists of node templates.
24041	Kind string `json:"kind,omitempty"`
24042
24043	// NextPageToken: [Output Only] This token allows you to get the next
24044	// page of results for list requests. If the number of results is larger
24045	// than maxResults, use the nextPageToken as a value for the query
24046	// parameter pageToken in the next list request. Subsequent list
24047	// requests will have their own nextPageToken to continue paging through
24048	// the results.
24049	NextPageToken string `json:"nextPageToken,omitempty"`
24050
24051	// SelfLink: [Output Only] Server-defined URL for this resource.
24052	SelfLink string `json:"selfLink,omitempty"`
24053
24054	// Warning: [Output Only] Informational warning message.
24055	Warning *NodeTemplateListWarning `json:"warning,omitempty"`
24056
24057	// ServerResponse contains the HTTP response code and headers from the
24058	// server.
24059	googleapi.ServerResponse `json:"-"`
24060
24061	// ForceSendFields is a list of field names (e.g. "Id") to
24062	// unconditionally include in API requests. By default, fields with
24063	// empty values are omitted from API requests. However, any non-pointer,
24064	// non-interface field appearing in ForceSendFields will be sent to the
24065	// server regardless of whether the field is empty or not. This may be
24066	// used to include empty fields in Patch requests.
24067	ForceSendFields []string `json:"-"`
24068
24069	// NullFields is a list of field names (e.g. "Id") to include in API
24070	// requests with the JSON null value. By default, fields with empty
24071	// values are omitted from API requests. However, any field with an
24072	// empty value appearing in NullFields will be sent to the server as
24073	// null. It is an error if a field in this list has a non-empty value.
24074	// This may be used to include null fields in Patch requests.
24075	NullFields []string `json:"-"`
24076}
24077
24078func (s *NodeTemplateList) MarshalJSON() ([]byte, error) {
24079	type NoMethod NodeTemplateList
24080	raw := NoMethod(*s)
24081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24082}
24083
24084// NodeTemplateListWarning: [Output Only] Informational warning message.
24085type NodeTemplateListWarning struct {
24086	// Code: [Output Only] A warning code, if applicable. For example,
24087	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24088	// the response.
24089	//
24090	// Possible values:
24091	//   "CLEANUP_FAILED"
24092	//   "DEPRECATED_RESOURCE_USED"
24093	//   "DEPRECATED_TYPE_USED"
24094	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24095	//   "EXPERIMENTAL_TYPE_USED"
24096	//   "EXTERNAL_API_WARNING"
24097	//   "FIELD_VALUE_OVERRIDEN"
24098	//   "INJECTED_KERNELS_DEPRECATED"
24099	//   "MISSING_TYPE_DEPENDENCY"
24100	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24101	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24102	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24103	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24104	//   "NEXT_HOP_NOT_RUNNING"
24105	//   "NOT_CRITICAL_ERROR"
24106	//   "NO_RESULTS_ON_PAGE"
24107	//   "REQUIRED_TOS_AGREEMENT"
24108	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24109	//   "RESOURCE_NOT_DELETED"
24110	//   "SCHEMA_VALIDATION_IGNORED"
24111	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24112	//   "UNDECLARED_PROPERTIES"
24113	//   "UNREACHABLE"
24114	Code string `json:"code,omitempty"`
24115
24116	// Data: [Output Only] Metadata about this warning in key: value format.
24117	// For example:
24118	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24119	Data []*NodeTemplateListWarningData `json:"data,omitempty"`
24120
24121	// Message: [Output Only] A human-readable description of the warning
24122	// code.
24123	Message string `json:"message,omitempty"`
24124
24125	// ForceSendFields is a list of field names (e.g. "Code") to
24126	// unconditionally include in API requests. By default, fields with
24127	// empty values are omitted from API requests. However, any non-pointer,
24128	// non-interface field appearing in ForceSendFields will be sent to the
24129	// server regardless of whether the field is empty or not. This may be
24130	// used to include empty fields in Patch requests.
24131	ForceSendFields []string `json:"-"`
24132
24133	// NullFields is a list of field names (e.g. "Code") to include in API
24134	// requests with the JSON null value. By default, fields with empty
24135	// values are omitted from API requests. However, any field with an
24136	// empty value appearing in NullFields will be sent to the server as
24137	// null. It is an error if a field in this list has a non-empty value.
24138	// This may be used to include null fields in Patch requests.
24139	NullFields []string `json:"-"`
24140}
24141
24142func (s *NodeTemplateListWarning) MarshalJSON() ([]byte, error) {
24143	type NoMethod NodeTemplateListWarning
24144	raw := NoMethod(*s)
24145	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24146}
24147
24148type NodeTemplateListWarningData struct {
24149	// Key: [Output Only] A key that provides more detail on the warning
24150	// being returned. For example, for warnings where there are no results
24151	// in a list request for a particular zone, this key might be scope and
24152	// the key value might be the zone name. Other examples might be a key
24153	// indicating a deprecated resource and a suggested replacement, or a
24154	// warning about invalid network settings (for example, if an instance
24155	// attempts to perform IP forwarding but is not enabled for IP
24156	// forwarding).
24157	Key string `json:"key,omitempty"`
24158
24159	// Value: [Output Only] A warning data value corresponding to the key.
24160	Value string `json:"value,omitempty"`
24161
24162	// ForceSendFields is a list of field names (e.g. "Key") to
24163	// unconditionally include in API requests. By default, fields with
24164	// empty values are omitted from API requests. However, any non-pointer,
24165	// non-interface field appearing in ForceSendFields will be sent to the
24166	// server regardless of whether the field is empty or not. This may be
24167	// used to include empty fields in Patch requests.
24168	ForceSendFields []string `json:"-"`
24169
24170	// NullFields is a list of field names (e.g. "Key") to include in API
24171	// requests with the JSON null value. By default, fields with empty
24172	// values are omitted from API requests. However, any field with an
24173	// empty value appearing in NullFields will be sent to the server as
24174	// null. It is an error if a field in this list has a non-empty value.
24175	// This may be used to include null fields in Patch requests.
24176	NullFields []string `json:"-"`
24177}
24178
24179func (s *NodeTemplateListWarningData) MarshalJSON() ([]byte, error) {
24180	type NoMethod NodeTemplateListWarningData
24181	raw := NoMethod(*s)
24182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24183}
24184
24185type NodeTemplateNodeTypeFlexibility struct {
24186	Cpus string `json:"cpus,omitempty"`
24187
24188	LocalSsd string `json:"localSsd,omitempty"`
24189
24190	Memory string `json:"memory,omitempty"`
24191
24192	// ForceSendFields is a list of field names (e.g. "Cpus") to
24193	// unconditionally include in API requests. By default, fields with
24194	// empty values are omitted from API requests. However, any non-pointer,
24195	// non-interface field appearing in ForceSendFields will be sent to the
24196	// server regardless of whether the field is empty or not. This may be
24197	// used to include empty fields in Patch requests.
24198	ForceSendFields []string `json:"-"`
24199
24200	// NullFields is a list of field names (e.g. "Cpus") to include in API
24201	// requests with the JSON null value. By default, fields with empty
24202	// values are omitted from API requests. However, any field with an
24203	// empty value appearing in NullFields will be sent to the server as
24204	// null. It is an error if a field in this list has a non-empty value.
24205	// This may be used to include null fields in Patch requests.
24206	NullFields []string `json:"-"`
24207}
24208
24209func (s *NodeTemplateNodeTypeFlexibility) MarshalJSON() ([]byte, error) {
24210	type NoMethod NodeTemplateNodeTypeFlexibility
24211	raw := NoMethod(*s)
24212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24213}
24214
24215type NodeTemplatesScopedList struct {
24216	// NodeTemplates: [Output Only] A list of node templates contained in
24217	// this scope.
24218	NodeTemplates []*NodeTemplate `json:"nodeTemplates,omitempty"`
24219
24220	// Warning: [Output Only] An informational warning that appears when the
24221	// node templates list is empty.
24222	Warning *NodeTemplatesScopedListWarning `json:"warning,omitempty"`
24223
24224	// ForceSendFields is a list of field names (e.g. "NodeTemplates") to
24225	// unconditionally include in API requests. By default, fields with
24226	// empty values are omitted from API requests. However, any non-pointer,
24227	// non-interface field appearing in ForceSendFields will be sent to the
24228	// server regardless of whether the field is empty or not. This may be
24229	// used to include empty fields in Patch requests.
24230	ForceSendFields []string `json:"-"`
24231
24232	// NullFields is a list of field names (e.g. "NodeTemplates") to include
24233	// in API requests with the JSON null value. By default, fields with
24234	// empty values are omitted from API requests. However, any field with
24235	// an empty value appearing in NullFields will be sent to the server as
24236	// null. It is an error if a field in this list has a non-empty value.
24237	// This may be used to include null fields in Patch requests.
24238	NullFields []string `json:"-"`
24239}
24240
24241func (s *NodeTemplatesScopedList) MarshalJSON() ([]byte, error) {
24242	type NoMethod NodeTemplatesScopedList
24243	raw := NoMethod(*s)
24244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24245}
24246
24247// NodeTemplatesScopedListWarning: [Output Only] An informational
24248// warning that appears when the node templates list is empty.
24249type NodeTemplatesScopedListWarning struct {
24250	// Code: [Output Only] A warning code, if applicable. For example,
24251	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24252	// the response.
24253	//
24254	// Possible values:
24255	//   "CLEANUP_FAILED"
24256	//   "DEPRECATED_RESOURCE_USED"
24257	//   "DEPRECATED_TYPE_USED"
24258	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24259	//   "EXPERIMENTAL_TYPE_USED"
24260	//   "EXTERNAL_API_WARNING"
24261	//   "FIELD_VALUE_OVERRIDEN"
24262	//   "INJECTED_KERNELS_DEPRECATED"
24263	//   "MISSING_TYPE_DEPENDENCY"
24264	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24265	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24266	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24267	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24268	//   "NEXT_HOP_NOT_RUNNING"
24269	//   "NOT_CRITICAL_ERROR"
24270	//   "NO_RESULTS_ON_PAGE"
24271	//   "REQUIRED_TOS_AGREEMENT"
24272	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24273	//   "RESOURCE_NOT_DELETED"
24274	//   "SCHEMA_VALIDATION_IGNORED"
24275	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24276	//   "UNDECLARED_PROPERTIES"
24277	//   "UNREACHABLE"
24278	Code string `json:"code,omitempty"`
24279
24280	// Data: [Output Only] Metadata about this warning in key: value format.
24281	// For example:
24282	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24283	Data []*NodeTemplatesScopedListWarningData `json:"data,omitempty"`
24284
24285	// Message: [Output Only] A human-readable description of the warning
24286	// code.
24287	Message string `json:"message,omitempty"`
24288
24289	// ForceSendFields is a list of field names (e.g. "Code") to
24290	// unconditionally include in API requests. By default, fields with
24291	// empty values are omitted from API requests. However, any non-pointer,
24292	// non-interface field appearing in ForceSendFields will be sent to the
24293	// server regardless of whether the field is empty or not. This may be
24294	// used to include empty fields in Patch requests.
24295	ForceSendFields []string `json:"-"`
24296
24297	// NullFields is a list of field names (e.g. "Code") to include in API
24298	// requests with the JSON null value. By default, fields with empty
24299	// values are omitted from API requests. However, any field with an
24300	// empty value appearing in NullFields will be sent to the server as
24301	// null. It is an error if a field in this list has a non-empty value.
24302	// This may be used to include null fields in Patch requests.
24303	NullFields []string `json:"-"`
24304}
24305
24306func (s *NodeTemplatesScopedListWarning) MarshalJSON() ([]byte, error) {
24307	type NoMethod NodeTemplatesScopedListWarning
24308	raw := NoMethod(*s)
24309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24310}
24311
24312type NodeTemplatesScopedListWarningData struct {
24313	// Key: [Output Only] A key that provides more detail on the warning
24314	// being returned. For example, for warnings where there are no results
24315	// in a list request for a particular zone, this key might be scope and
24316	// the key value might be the zone name. Other examples might be a key
24317	// indicating a deprecated resource and a suggested replacement, or a
24318	// warning about invalid network settings (for example, if an instance
24319	// attempts to perform IP forwarding but is not enabled for IP
24320	// forwarding).
24321	Key string `json:"key,omitempty"`
24322
24323	// Value: [Output Only] A warning data value corresponding to the key.
24324	Value string `json:"value,omitempty"`
24325
24326	// ForceSendFields is a list of field names (e.g. "Key") to
24327	// unconditionally include in API requests. By default, fields with
24328	// empty values are omitted from API requests. However, any non-pointer,
24329	// non-interface field appearing in ForceSendFields will be sent to the
24330	// server regardless of whether the field is empty or not. This may be
24331	// used to include empty fields in Patch requests.
24332	ForceSendFields []string `json:"-"`
24333
24334	// NullFields is a list of field names (e.g. "Key") to include in API
24335	// requests with the JSON null value. By default, fields with empty
24336	// values are omitted from API requests. However, any field with an
24337	// empty value appearing in NullFields will be sent to the server as
24338	// null. It is an error if a field in this list has a non-empty value.
24339	// This may be used to include null fields in Patch requests.
24340	NullFields []string `json:"-"`
24341}
24342
24343func (s *NodeTemplatesScopedListWarningData) MarshalJSON() ([]byte, error) {
24344	type NoMethod NodeTemplatesScopedListWarningData
24345	raw := NoMethod(*s)
24346	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24347}
24348
24349// NodeType: Represent a sole-tenant Node Type resource.
24350//
24351// Each node within a node group must have a node type. A node type
24352// specifies the total amount of cores and memory for that node.
24353// Currently, the only available node type is n1-node-96-624 node type
24354// that has 96 vCPUs and 624 GB of memory, available in multiple zones.
24355// For more information read Node types. (== resource_for
24356// {$api_version}.nodeTypes ==)
24357type NodeType struct {
24358	// CpuPlatform: [Output Only] The CPU platform used by this node type.
24359	CpuPlatform string `json:"cpuPlatform,omitempty"`
24360
24361	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24362	// format.
24363	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24364
24365	// Deprecated: [Output Only] The deprecation status associated with this
24366	// node type.
24367	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
24368
24369	// Description: [Output Only] An optional textual description of the
24370	// resource.
24371	Description string `json:"description,omitempty"`
24372
24373	// GuestCpus: [Output Only] The number of virtual CPUs that are
24374	// available to the node type.
24375	GuestCpus int64 `json:"guestCpus,omitempty"`
24376
24377	// Id: [Output Only] The unique identifier for the resource. This
24378	// identifier is defined by the server.
24379	Id uint64 `json:"id,omitempty,string"`
24380
24381	// Kind: [Output Only] The type of the resource. Always compute#nodeType
24382	// for node types.
24383	Kind string `json:"kind,omitempty"`
24384
24385	// LocalSsdGb: [Output Only] Local SSD available to the node type,
24386	// defined in GB.
24387	LocalSsdGb int64 `json:"localSsdGb,omitempty"`
24388
24389	// MemoryMb: [Output Only] The amount of physical memory available to
24390	// the node type, defined in MB.
24391	MemoryMb int64 `json:"memoryMb,omitempty"`
24392
24393	// Name: [Output Only] Name of the resource.
24394	Name string `json:"name,omitempty"`
24395
24396	// SelfLink: [Output Only] Server-defined URL for the resource.
24397	SelfLink string `json:"selfLink,omitempty"`
24398
24399	// Zone: [Output Only] The name of the zone where the node type resides,
24400	// such as us-central1-a.
24401	Zone string `json:"zone,omitempty"`
24402
24403	// ServerResponse contains the HTTP response code and headers from the
24404	// server.
24405	googleapi.ServerResponse `json:"-"`
24406
24407	// ForceSendFields is a list of field names (e.g. "CpuPlatform") to
24408	// unconditionally include in API requests. By default, fields with
24409	// empty values are omitted from API requests. However, any non-pointer,
24410	// non-interface field appearing in ForceSendFields will be sent to the
24411	// server regardless of whether the field is empty or not. This may be
24412	// used to include empty fields in Patch requests.
24413	ForceSendFields []string `json:"-"`
24414
24415	// NullFields is a list of field names (e.g. "CpuPlatform") to include
24416	// in API requests with the JSON null value. By default, fields with
24417	// empty values are omitted from API requests. However, any field with
24418	// an empty value appearing in NullFields will be sent to the server as
24419	// null. It is an error if a field in this list has a non-empty value.
24420	// This may be used to include null fields in Patch requests.
24421	NullFields []string `json:"-"`
24422}
24423
24424func (s *NodeType) MarshalJSON() ([]byte, error) {
24425	type NoMethod NodeType
24426	raw := NoMethod(*s)
24427	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24428}
24429
24430type NodeTypeAggregatedList struct {
24431	// Id: [Output Only] Unique identifier for the resource; defined by the
24432	// server.
24433	Id string `json:"id,omitempty"`
24434
24435	// Items: A list of NodeTypesScopedList resources.
24436	Items map[string]NodeTypesScopedList `json:"items,omitempty"`
24437
24438	// Kind: [Output Only] Type of resource.Always
24439	// compute#nodeTypeAggregatedList for aggregated lists of node types.
24440	Kind string `json:"kind,omitempty"`
24441
24442	// NextPageToken: [Output Only] This token allows you to get the next
24443	// page of results for list requests. If the number of results is larger
24444	// than maxResults, use the nextPageToken as a value for the query
24445	// parameter pageToken in the next list request. Subsequent list
24446	// requests will have their own nextPageToken to continue paging through
24447	// the results.
24448	NextPageToken string `json:"nextPageToken,omitempty"`
24449
24450	// SelfLink: [Output Only] Server-defined URL for this resource.
24451	SelfLink string `json:"selfLink,omitempty"`
24452
24453	// Warning: [Output Only] Informational warning message.
24454	Warning *NodeTypeAggregatedListWarning `json:"warning,omitempty"`
24455
24456	// ServerResponse contains the HTTP response code and headers from the
24457	// server.
24458	googleapi.ServerResponse `json:"-"`
24459
24460	// ForceSendFields is a list of field names (e.g. "Id") to
24461	// unconditionally include in API requests. By default, fields with
24462	// empty values are omitted from API requests. However, any non-pointer,
24463	// non-interface field appearing in ForceSendFields will be sent to the
24464	// server regardless of whether the field is empty or not. This may be
24465	// used to include empty fields in Patch requests.
24466	ForceSendFields []string `json:"-"`
24467
24468	// NullFields is a list of field names (e.g. "Id") to include in API
24469	// requests with the JSON null value. By default, fields with empty
24470	// values are omitted from API requests. However, any field with an
24471	// empty value appearing in NullFields will be sent to the server as
24472	// null. It is an error if a field in this list has a non-empty value.
24473	// This may be used to include null fields in Patch requests.
24474	NullFields []string `json:"-"`
24475}
24476
24477func (s *NodeTypeAggregatedList) MarshalJSON() ([]byte, error) {
24478	type NoMethod NodeTypeAggregatedList
24479	raw := NoMethod(*s)
24480	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24481}
24482
24483// NodeTypeAggregatedListWarning: [Output Only] Informational warning
24484// message.
24485type NodeTypeAggregatedListWarning struct {
24486	// Code: [Output Only] A warning code, if applicable. For example,
24487	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24488	// the response.
24489	//
24490	// Possible values:
24491	//   "CLEANUP_FAILED"
24492	//   "DEPRECATED_RESOURCE_USED"
24493	//   "DEPRECATED_TYPE_USED"
24494	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24495	//   "EXPERIMENTAL_TYPE_USED"
24496	//   "EXTERNAL_API_WARNING"
24497	//   "FIELD_VALUE_OVERRIDEN"
24498	//   "INJECTED_KERNELS_DEPRECATED"
24499	//   "MISSING_TYPE_DEPENDENCY"
24500	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24501	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24502	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24503	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24504	//   "NEXT_HOP_NOT_RUNNING"
24505	//   "NOT_CRITICAL_ERROR"
24506	//   "NO_RESULTS_ON_PAGE"
24507	//   "REQUIRED_TOS_AGREEMENT"
24508	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24509	//   "RESOURCE_NOT_DELETED"
24510	//   "SCHEMA_VALIDATION_IGNORED"
24511	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24512	//   "UNDECLARED_PROPERTIES"
24513	//   "UNREACHABLE"
24514	Code string `json:"code,omitempty"`
24515
24516	// Data: [Output Only] Metadata about this warning in key: value format.
24517	// For example:
24518	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24519	Data []*NodeTypeAggregatedListWarningData `json:"data,omitempty"`
24520
24521	// Message: [Output Only] A human-readable description of the warning
24522	// code.
24523	Message string `json:"message,omitempty"`
24524
24525	// ForceSendFields is a list of field names (e.g. "Code") to
24526	// unconditionally include in API requests. By default, fields with
24527	// empty values are omitted from API requests. However, any non-pointer,
24528	// non-interface field appearing in ForceSendFields will be sent to the
24529	// server regardless of whether the field is empty or not. This may be
24530	// used to include empty fields in Patch requests.
24531	ForceSendFields []string `json:"-"`
24532
24533	// NullFields is a list of field names (e.g. "Code") to include in API
24534	// requests with the JSON null value. By default, fields with empty
24535	// values are omitted from API requests. However, any field with an
24536	// empty value appearing in NullFields will be sent to the server as
24537	// null. It is an error if a field in this list has a non-empty value.
24538	// This may be used to include null fields in Patch requests.
24539	NullFields []string `json:"-"`
24540}
24541
24542func (s *NodeTypeAggregatedListWarning) MarshalJSON() ([]byte, error) {
24543	type NoMethod NodeTypeAggregatedListWarning
24544	raw := NoMethod(*s)
24545	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24546}
24547
24548type NodeTypeAggregatedListWarningData struct {
24549	// Key: [Output Only] A key that provides more detail on the warning
24550	// being returned. For example, for warnings where there are no results
24551	// in a list request for a particular zone, this key might be scope and
24552	// the key value might be the zone name. Other examples might be a key
24553	// indicating a deprecated resource and a suggested replacement, or a
24554	// warning about invalid network settings (for example, if an instance
24555	// attempts to perform IP forwarding but is not enabled for IP
24556	// forwarding).
24557	Key string `json:"key,omitempty"`
24558
24559	// Value: [Output Only] A warning data value corresponding to the key.
24560	Value string `json:"value,omitempty"`
24561
24562	// ForceSendFields is a list of field names (e.g. "Key") to
24563	// unconditionally include in API requests. By default, fields with
24564	// empty values are omitted from API requests. However, any non-pointer,
24565	// non-interface field appearing in ForceSendFields will be sent to the
24566	// server regardless of whether the field is empty or not. This may be
24567	// used to include empty fields in Patch requests.
24568	ForceSendFields []string `json:"-"`
24569
24570	// NullFields is a list of field names (e.g. "Key") to include in API
24571	// requests with the JSON null value. By default, fields with empty
24572	// values are omitted from API requests. However, any field with an
24573	// empty value appearing in NullFields will be sent to the server as
24574	// null. It is an error if a field in this list has a non-empty value.
24575	// This may be used to include null fields in Patch requests.
24576	NullFields []string `json:"-"`
24577}
24578
24579func (s *NodeTypeAggregatedListWarningData) MarshalJSON() ([]byte, error) {
24580	type NoMethod NodeTypeAggregatedListWarningData
24581	raw := NoMethod(*s)
24582	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24583}
24584
24585// NodeTypeList: Contains a list of node types.
24586type NodeTypeList struct {
24587	// Id: [Output Only] Unique identifier for the resource; defined by the
24588	// server.
24589	Id string `json:"id,omitempty"`
24590
24591	// Items: A list of NodeType resources.
24592	Items []*NodeType `json:"items,omitempty"`
24593
24594	// Kind: [Output Only] Type of resource.Always compute#nodeTypeList for
24595	// lists of node types.
24596	Kind string `json:"kind,omitempty"`
24597
24598	// NextPageToken: [Output Only] This token allows you to get the next
24599	// page of results for list requests. If the number of results is larger
24600	// than maxResults, use the nextPageToken as a value for the query
24601	// parameter pageToken in the next list request. Subsequent list
24602	// requests will have their own nextPageToken to continue paging through
24603	// the results.
24604	NextPageToken string `json:"nextPageToken,omitempty"`
24605
24606	// SelfLink: [Output Only] Server-defined URL for this resource.
24607	SelfLink string `json:"selfLink,omitempty"`
24608
24609	// Warning: [Output Only] Informational warning message.
24610	Warning *NodeTypeListWarning `json:"warning,omitempty"`
24611
24612	// ServerResponse contains the HTTP response code and headers from the
24613	// server.
24614	googleapi.ServerResponse `json:"-"`
24615
24616	// ForceSendFields is a list of field names (e.g. "Id") to
24617	// unconditionally include in API requests. By default, fields with
24618	// empty values are omitted from API requests. However, any non-pointer,
24619	// non-interface field appearing in ForceSendFields will be sent to the
24620	// server regardless of whether the field is empty or not. This may be
24621	// used to include empty fields in Patch requests.
24622	ForceSendFields []string `json:"-"`
24623
24624	// NullFields is a list of field names (e.g. "Id") to include in API
24625	// requests with the JSON null value. By default, fields with empty
24626	// values are omitted from API requests. However, any field with an
24627	// empty value appearing in NullFields will be sent to the server as
24628	// null. It is an error if a field in this list has a non-empty value.
24629	// This may be used to include null fields in Patch requests.
24630	NullFields []string `json:"-"`
24631}
24632
24633func (s *NodeTypeList) MarshalJSON() ([]byte, error) {
24634	type NoMethod NodeTypeList
24635	raw := NoMethod(*s)
24636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24637}
24638
24639// NodeTypeListWarning: [Output Only] Informational warning message.
24640type NodeTypeListWarning struct {
24641	// Code: [Output Only] A warning code, if applicable. For example,
24642	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24643	// the response.
24644	//
24645	// Possible values:
24646	//   "CLEANUP_FAILED"
24647	//   "DEPRECATED_RESOURCE_USED"
24648	//   "DEPRECATED_TYPE_USED"
24649	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24650	//   "EXPERIMENTAL_TYPE_USED"
24651	//   "EXTERNAL_API_WARNING"
24652	//   "FIELD_VALUE_OVERRIDEN"
24653	//   "INJECTED_KERNELS_DEPRECATED"
24654	//   "MISSING_TYPE_DEPENDENCY"
24655	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24656	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24657	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24658	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24659	//   "NEXT_HOP_NOT_RUNNING"
24660	//   "NOT_CRITICAL_ERROR"
24661	//   "NO_RESULTS_ON_PAGE"
24662	//   "REQUIRED_TOS_AGREEMENT"
24663	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24664	//   "RESOURCE_NOT_DELETED"
24665	//   "SCHEMA_VALIDATION_IGNORED"
24666	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24667	//   "UNDECLARED_PROPERTIES"
24668	//   "UNREACHABLE"
24669	Code string `json:"code,omitempty"`
24670
24671	// Data: [Output Only] Metadata about this warning in key: value format.
24672	// For example:
24673	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24674	Data []*NodeTypeListWarningData `json:"data,omitempty"`
24675
24676	// Message: [Output Only] A human-readable description of the warning
24677	// code.
24678	Message string `json:"message,omitempty"`
24679
24680	// ForceSendFields is a list of field names (e.g. "Code") to
24681	// unconditionally include in API requests. By default, fields with
24682	// empty values are omitted from API requests. However, any non-pointer,
24683	// non-interface field appearing in ForceSendFields will be sent to the
24684	// server regardless of whether the field is empty or not. This may be
24685	// used to include empty fields in Patch requests.
24686	ForceSendFields []string `json:"-"`
24687
24688	// NullFields is a list of field names (e.g. "Code") to include in API
24689	// requests with the JSON null value. By default, fields with empty
24690	// values are omitted from API requests. However, any field with an
24691	// empty value appearing in NullFields will be sent to the server as
24692	// null. It is an error if a field in this list has a non-empty value.
24693	// This may be used to include null fields in Patch requests.
24694	NullFields []string `json:"-"`
24695}
24696
24697func (s *NodeTypeListWarning) MarshalJSON() ([]byte, error) {
24698	type NoMethod NodeTypeListWarning
24699	raw := NoMethod(*s)
24700	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24701}
24702
24703type NodeTypeListWarningData struct {
24704	// Key: [Output Only] A key that provides more detail on the warning
24705	// being returned. For example, for warnings where there are no results
24706	// in a list request for a particular zone, this key might be scope and
24707	// the key value might be the zone name. Other examples might be a key
24708	// indicating a deprecated resource and a suggested replacement, or a
24709	// warning about invalid network settings (for example, if an instance
24710	// attempts to perform IP forwarding but is not enabled for IP
24711	// forwarding).
24712	Key string `json:"key,omitempty"`
24713
24714	// Value: [Output Only] A warning data value corresponding to the key.
24715	Value string `json:"value,omitempty"`
24716
24717	// ForceSendFields is a list of field names (e.g. "Key") to
24718	// unconditionally include in API requests. By default, fields with
24719	// empty values are omitted from API requests. However, any non-pointer,
24720	// non-interface field appearing in ForceSendFields will be sent to the
24721	// server regardless of whether the field is empty or not. This may be
24722	// used to include empty fields in Patch requests.
24723	ForceSendFields []string `json:"-"`
24724
24725	// NullFields is a list of field names (e.g. "Key") to include in API
24726	// requests with the JSON null value. By default, fields with empty
24727	// values are omitted from API requests. However, any field with an
24728	// empty value appearing in NullFields will be sent to the server as
24729	// null. It is an error if a field in this list has a non-empty value.
24730	// This may be used to include null fields in Patch requests.
24731	NullFields []string `json:"-"`
24732}
24733
24734func (s *NodeTypeListWarningData) MarshalJSON() ([]byte, error) {
24735	type NoMethod NodeTypeListWarningData
24736	raw := NoMethod(*s)
24737	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24738}
24739
24740type NodeTypesScopedList struct {
24741	// NodeTypes: [Output Only] A list of node types contained in this
24742	// scope.
24743	NodeTypes []*NodeType `json:"nodeTypes,omitempty"`
24744
24745	// Warning: [Output Only] An informational warning that appears when the
24746	// node types list is empty.
24747	Warning *NodeTypesScopedListWarning `json:"warning,omitempty"`
24748
24749	// ForceSendFields is a list of field names (e.g. "NodeTypes") to
24750	// unconditionally include in API requests. By default, fields with
24751	// empty values are omitted from API requests. However, any non-pointer,
24752	// non-interface field appearing in ForceSendFields will be sent to the
24753	// server regardless of whether the field is empty or not. This may be
24754	// used to include empty fields in Patch requests.
24755	ForceSendFields []string `json:"-"`
24756
24757	// NullFields is a list of field names (e.g. "NodeTypes") to include in
24758	// API requests with the JSON null value. By default, fields with empty
24759	// values are omitted from API requests. However, any field with an
24760	// empty value appearing in NullFields will be sent to the server as
24761	// null. It is an error if a field in this list has a non-empty value.
24762	// This may be used to include null fields in Patch requests.
24763	NullFields []string `json:"-"`
24764}
24765
24766func (s *NodeTypesScopedList) MarshalJSON() ([]byte, error) {
24767	type NoMethod NodeTypesScopedList
24768	raw := NoMethod(*s)
24769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24770}
24771
24772// NodeTypesScopedListWarning: [Output Only] An informational warning
24773// that appears when the node types list is empty.
24774type NodeTypesScopedListWarning struct {
24775	// Code: [Output Only] A warning code, if applicable. For example,
24776	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
24777	// the response.
24778	//
24779	// Possible values:
24780	//   "CLEANUP_FAILED"
24781	//   "DEPRECATED_RESOURCE_USED"
24782	//   "DEPRECATED_TYPE_USED"
24783	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
24784	//   "EXPERIMENTAL_TYPE_USED"
24785	//   "EXTERNAL_API_WARNING"
24786	//   "FIELD_VALUE_OVERRIDEN"
24787	//   "INJECTED_KERNELS_DEPRECATED"
24788	//   "MISSING_TYPE_DEPENDENCY"
24789	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
24790	//   "NEXT_HOP_CANNOT_IP_FORWARD"
24791	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
24792	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
24793	//   "NEXT_HOP_NOT_RUNNING"
24794	//   "NOT_CRITICAL_ERROR"
24795	//   "NO_RESULTS_ON_PAGE"
24796	//   "REQUIRED_TOS_AGREEMENT"
24797	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
24798	//   "RESOURCE_NOT_DELETED"
24799	//   "SCHEMA_VALIDATION_IGNORED"
24800	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
24801	//   "UNDECLARED_PROPERTIES"
24802	//   "UNREACHABLE"
24803	Code string `json:"code,omitempty"`
24804
24805	// Data: [Output Only] Metadata about this warning in key: value format.
24806	// For example:
24807	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
24808	Data []*NodeTypesScopedListWarningData `json:"data,omitempty"`
24809
24810	// Message: [Output Only] A human-readable description of the warning
24811	// code.
24812	Message string `json:"message,omitempty"`
24813
24814	// ForceSendFields is a list of field names (e.g. "Code") to
24815	// unconditionally include in API requests. By default, fields with
24816	// empty values are omitted from API requests. However, any non-pointer,
24817	// non-interface field appearing in ForceSendFields will be sent to the
24818	// server regardless of whether the field is empty or not. This may be
24819	// used to include empty fields in Patch requests.
24820	ForceSendFields []string `json:"-"`
24821
24822	// NullFields is a list of field names (e.g. "Code") to include in API
24823	// requests with the JSON null value. By default, fields with empty
24824	// values are omitted from API requests. However, any field with an
24825	// empty value appearing in NullFields will be sent to the server as
24826	// null. It is an error if a field in this list has a non-empty value.
24827	// This may be used to include null fields in Patch requests.
24828	NullFields []string `json:"-"`
24829}
24830
24831func (s *NodeTypesScopedListWarning) MarshalJSON() ([]byte, error) {
24832	type NoMethod NodeTypesScopedListWarning
24833	raw := NoMethod(*s)
24834	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24835}
24836
24837type NodeTypesScopedListWarningData struct {
24838	// Key: [Output Only] A key that provides more detail on the warning
24839	// being returned. For example, for warnings where there are no results
24840	// in a list request for a particular zone, this key might be scope and
24841	// the key value might be the zone name. Other examples might be a key
24842	// indicating a deprecated resource and a suggested replacement, or a
24843	// warning about invalid network settings (for example, if an instance
24844	// attempts to perform IP forwarding but is not enabled for IP
24845	// forwarding).
24846	Key string `json:"key,omitempty"`
24847
24848	// Value: [Output Only] A warning data value corresponding to the key.
24849	Value string `json:"value,omitempty"`
24850
24851	// ForceSendFields is a list of field names (e.g. "Key") to
24852	// unconditionally include in API requests. By default, fields with
24853	// empty values are omitted from API requests. However, any non-pointer,
24854	// non-interface field appearing in ForceSendFields will be sent to the
24855	// server regardless of whether the field is empty or not. This may be
24856	// used to include empty fields in Patch requests.
24857	ForceSendFields []string `json:"-"`
24858
24859	// NullFields is a list of field names (e.g. "Key") to include in API
24860	// requests with the JSON null value. By default, fields with empty
24861	// values are omitted from API requests. However, any field with an
24862	// empty value appearing in NullFields will be sent to the server as
24863	// null. It is an error if a field in this list has a non-empty value.
24864	// This may be used to include null fields in Patch requests.
24865	NullFields []string `json:"-"`
24866}
24867
24868func (s *NodeTypesScopedListWarningData) MarshalJSON() ([]byte, error) {
24869	type NoMethod NodeTypesScopedListWarningData
24870	raw := NoMethod(*s)
24871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24872}
24873
24874// NotificationEndpoint: A notification endpoint resource defines an
24875// endpoint to receive notifications when there are status changes
24876// detected by the associated health check service.
24877type NotificationEndpoint struct {
24878	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
24879	// format.
24880	CreationTimestamp string `json:"creationTimestamp,omitempty"`
24881
24882	// Description: An optional description of this resource. Provide this
24883	// property when you create the resource.
24884	Description string `json:"description,omitempty"`
24885
24886	// GrpcSettings: Settings of the gRPC notification endpoint including
24887	// the endpoint URL and the retry duration.
24888	GrpcSettings *NotificationEndpointGrpcSettings `json:"grpcSettings,omitempty"`
24889
24890	// Id: [Output Only] A unique identifier for this resource type. The
24891	// server generates this identifier.
24892	Id uint64 `json:"id,omitempty,string"`
24893
24894	// Kind: [Output Only] Type of the resource. Always
24895	// compute#notificationEndpoint for notification endpoints.
24896	Kind string `json:"kind,omitempty"`
24897
24898	// Name: Name of the resource. Provided by the client when the resource
24899	// is created. The name must be 1-63 characters long, and comply with
24900	// RFC1035. Specifically, the name must be 1-63 characters long and
24901	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
24902	// the first character must be a lowercase letter, and all following
24903	// characters must be a dash, lowercase letter, or digit, except the
24904	// last character, which cannot be a dash.
24905	Name string `json:"name,omitempty"`
24906
24907	// Region: [Output Only] URL of the region where the notification
24908	// endpoint resides. This field applies only to the regional resource.
24909	// You must specify this field as part of the HTTP request URL. It is
24910	// not settable as a field in the request body.
24911	Region string `json:"region,omitempty"`
24912
24913	// SelfLink: [Output Only] Server-defined URL for the resource.
24914	SelfLink string `json:"selfLink,omitempty"`
24915
24916	// ServerResponse contains the HTTP response code and headers from the
24917	// server.
24918	googleapi.ServerResponse `json:"-"`
24919
24920	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
24921	// to unconditionally include in API requests. By default, fields with
24922	// empty values are omitted from API requests. However, any non-pointer,
24923	// non-interface field appearing in ForceSendFields will be sent to the
24924	// server regardless of whether the field is empty or not. This may be
24925	// used to include empty fields in Patch requests.
24926	ForceSendFields []string `json:"-"`
24927
24928	// NullFields is a list of field names (e.g. "CreationTimestamp") to
24929	// include in API requests with the JSON null value. By default, fields
24930	// with empty values are omitted from API requests. However, any field
24931	// with an empty value appearing in NullFields will be sent to the
24932	// server as null. It is an error if a field in this list has a
24933	// non-empty value. This may be used to include null fields in Patch
24934	// requests.
24935	NullFields []string `json:"-"`
24936}
24937
24938func (s *NotificationEndpoint) MarshalJSON() ([]byte, error) {
24939	type NoMethod NotificationEndpoint
24940	raw := NoMethod(*s)
24941	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24942}
24943
24944// NotificationEndpointGrpcSettings: Represents a gRPC setting that
24945// describes one gRPC notification endpoint and the retry duration
24946// attempting to send notification to this endpoint.
24947type NotificationEndpointGrpcSettings struct {
24948	// Authority: Optional. If specified, this field is used to set the
24949	// authority header by the sender of notifications. See
24950	// https://tools.ietf.org/html/rfc7540#section-8.1.2.3
24951	Authority string `json:"authority,omitempty"`
24952
24953	// Endpoint: Endpoint to which gRPC notifications are sent. This must be
24954	// a valid gRPCLB DNS name.
24955	Endpoint string `json:"endpoint,omitempty"`
24956
24957	// PayloadName: Optional. If specified, this field is used to populate
24958	// the "name" field in gRPC requests.
24959	PayloadName string `json:"payloadName,omitempty"`
24960
24961	// ResendInterval: Optional. This field is used to configure how often
24962	// to send a full update of all non-healthy backends. If unspecified,
24963	// full updates are not sent. If specified, must be in the range between
24964	// 600 seconds to 3600 seconds. Nanos are disallowed.
24965	ResendInterval *Duration `json:"resendInterval,omitempty"`
24966
24967	// RetryDurationSec: How much time (in seconds) is spent attempting
24968	// notification retries until a successful response is received. Default
24969	// is 30s. Limit is 20m (1200s). Must be a positive number.
24970	RetryDurationSec int64 `json:"retryDurationSec,omitempty"`
24971
24972	// ForceSendFields is a list of field names (e.g. "Authority") to
24973	// unconditionally include in API requests. By default, fields with
24974	// empty values are omitted from API requests. However, any non-pointer,
24975	// non-interface field appearing in ForceSendFields will be sent to the
24976	// server regardless of whether the field is empty or not. This may be
24977	// used to include empty fields in Patch requests.
24978	ForceSendFields []string `json:"-"`
24979
24980	// NullFields is a list of field names (e.g. "Authority") to include in
24981	// API requests with the JSON null value. By default, fields with empty
24982	// values are omitted from API requests. However, any field with an
24983	// empty value appearing in NullFields will be sent to the server as
24984	// null. It is an error if a field in this list has a non-empty value.
24985	// This may be used to include null fields in Patch requests.
24986	NullFields []string `json:"-"`
24987}
24988
24989func (s *NotificationEndpointGrpcSettings) MarshalJSON() ([]byte, error) {
24990	type NoMethod NotificationEndpointGrpcSettings
24991	raw := NoMethod(*s)
24992	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
24993}
24994
24995type NotificationEndpointList struct {
24996	// Id: [Output Only] Unique identifier for the resource; defined by the
24997	// server.
24998	Id string `json:"id,omitempty"`
24999
25000	// Items: A list of NotificationEndpoint resources.
25001	Items []*NotificationEndpoint `json:"items,omitempty"`
25002
25003	// Kind: [Output Only] Type of the resource. Always
25004	// compute#notificationEndpoint for notification endpoints.
25005	Kind string `json:"kind,omitempty"`
25006
25007	// NextPageToken: [Output Only] This token allows you to get the next
25008	// page of results for list requests. If the number of results is larger
25009	// than maxResults, use the nextPageToken as a value for the query
25010	// parameter pageToken in the next list request. Subsequent list
25011	// requests will have their own nextPageToken to continue paging through
25012	// the results.
25013	NextPageToken string `json:"nextPageToken,omitempty"`
25014
25015	// SelfLink: [Output Only] Server-defined URL for this resource.
25016	SelfLink string `json:"selfLink,omitempty"`
25017
25018	// Warning: [Output Only] Informational warning message.
25019	Warning *NotificationEndpointListWarning `json:"warning,omitempty"`
25020
25021	// ServerResponse contains the HTTP response code and headers from the
25022	// server.
25023	googleapi.ServerResponse `json:"-"`
25024
25025	// ForceSendFields is a list of field names (e.g. "Id") to
25026	// unconditionally include in API requests. By default, fields with
25027	// empty values are omitted from API requests. However, any non-pointer,
25028	// non-interface field appearing in ForceSendFields will be sent to the
25029	// server regardless of whether the field is empty or not. This may be
25030	// used to include empty fields in Patch requests.
25031	ForceSendFields []string `json:"-"`
25032
25033	// NullFields is a list of field names (e.g. "Id") to include in API
25034	// requests with the JSON null value. By default, fields with empty
25035	// values are omitted from API requests. However, any field with an
25036	// empty value appearing in NullFields will be sent to the server as
25037	// null. It is an error if a field in this list has a non-empty value.
25038	// This may be used to include null fields in Patch requests.
25039	NullFields []string `json:"-"`
25040}
25041
25042func (s *NotificationEndpointList) MarshalJSON() ([]byte, error) {
25043	type NoMethod NotificationEndpointList
25044	raw := NoMethod(*s)
25045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25046}
25047
25048// NotificationEndpointListWarning: [Output Only] Informational warning
25049// message.
25050type NotificationEndpointListWarning struct {
25051	// Code: [Output Only] A warning code, if applicable. For example,
25052	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25053	// the response.
25054	//
25055	// Possible values:
25056	//   "CLEANUP_FAILED"
25057	//   "DEPRECATED_RESOURCE_USED"
25058	//   "DEPRECATED_TYPE_USED"
25059	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25060	//   "EXPERIMENTAL_TYPE_USED"
25061	//   "EXTERNAL_API_WARNING"
25062	//   "FIELD_VALUE_OVERRIDEN"
25063	//   "INJECTED_KERNELS_DEPRECATED"
25064	//   "MISSING_TYPE_DEPENDENCY"
25065	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25066	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25067	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25068	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25069	//   "NEXT_HOP_NOT_RUNNING"
25070	//   "NOT_CRITICAL_ERROR"
25071	//   "NO_RESULTS_ON_PAGE"
25072	//   "REQUIRED_TOS_AGREEMENT"
25073	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25074	//   "RESOURCE_NOT_DELETED"
25075	//   "SCHEMA_VALIDATION_IGNORED"
25076	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25077	//   "UNDECLARED_PROPERTIES"
25078	//   "UNREACHABLE"
25079	Code string `json:"code,omitempty"`
25080
25081	// Data: [Output Only] Metadata about this warning in key: value format.
25082	// For example:
25083	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25084	Data []*NotificationEndpointListWarningData `json:"data,omitempty"`
25085
25086	// Message: [Output Only] A human-readable description of the warning
25087	// code.
25088	Message string `json:"message,omitempty"`
25089
25090	// ForceSendFields is a list of field names (e.g. "Code") to
25091	// unconditionally include in API requests. By default, fields with
25092	// empty values are omitted from API requests. However, any non-pointer,
25093	// non-interface field appearing in ForceSendFields will be sent to the
25094	// server regardless of whether the field is empty or not. This may be
25095	// used to include empty fields in Patch requests.
25096	ForceSendFields []string `json:"-"`
25097
25098	// NullFields is a list of field names (e.g. "Code") to include in API
25099	// requests with the JSON null value. By default, fields with empty
25100	// values are omitted from API requests. However, any field with an
25101	// empty value appearing in NullFields will be sent to the server as
25102	// null. It is an error if a field in this list has a non-empty value.
25103	// This may be used to include null fields in Patch requests.
25104	NullFields []string `json:"-"`
25105}
25106
25107func (s *NotificationEndpointListWarning) MarshalJSON() ([]byte, error) {
25108	type NoMethod NotificationEndpointListWarning
25109	raw := NoMethod(*s)
25110	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25111}
25112
25113type NotificationEndpointListWarningData struct {
25114	// Key: [Output Only] A key that provides more detail on the warning
25115	// being returned. For example, for warnings where there are no results
25116	// in a list request for a particular zone, this key might be scope and
25117	// the key value might be the zone name. Other examples might be a key
25118	// indicating a deprecated resource and a suggested replacement, or a
25119	// warning about invalid network settings (for example, if an instance
25120	// attempts to perform IP forwarding but is not enabled for IP
25121	// forwarding).
25122	Key string `json:"key,omitempty"`
25123
25124	// Value: [Output Only] A warning data value corresponding to the key.
25125	Value string `json:"value,omitempty"`
25126
25127	// ForceSendFields is a list of field names (e.g. "Key") to
25128	// unconditionally include in API requests. By default, fields with
25129	// empty values are omitted from API requests. However, any non-pointer,
25130	// non-interface field appearing in ForceSendFields will be sent to the
25131	// server regardless of whether the field is empty or not. This may be
25132	// used to include empty fields in Patch requests.
25133	ForceSendFields []string `json:"-"`
25134
25135	// NullFields is a list of field names (e.g. "Key") to include in API
25136	// requests with the JSON null value. By default, fields with empty
25137	// values are omitted from API requests. However, any field with an
25138	// empty value appearing in NullFields will be sent to the server as
25139	// null. It is an error if a field in this list has a non-empty value.
25140	// This may be used to include null fields in Patch requests.
25141	NullFields []string `json:"-"`
25142}
25143
25144func (s *NotificationEndpointListWarningData) MarshalJSON() ([]byte, error) {
25145	type NoMethod NotificationEndpointListWarningData
25146	raw := NoMethod(*s)
25147	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25148}
25149
25150// Operation: Represents an Operation resource.
25151//
25152// Google Compute Engine has three Operation resources:
25153//
25154// * [Global](/compute/docs/reference/rest/latest/globalOperations) *
25155// [Regional](/compute/docs/reference/rest/latest/regionOperations) *
25156// [Zonal](/compute/docs/reference/rest/latest/zoneOperations)
25157//
25158// You can use an operation resource to manage asynchronous API
25159// requests. For more information, read Handling API
25160// responses.
25161//
25162// Operations can be global, regional or zonal.
25163// - For global operations, use the globalOperations resource.
25164// - For regional operations, use the regionOperations resource.
25165// - For zonal operations, use the zonalOperations resource.
25166//
25167// For more information, read  Global, Regional, and Zonal Resources.
25168// (== resource_for {$api_version}.globalOperations ==) (== resource_for
25169// {$api_version}.regionOperations ==) (== resource_for
25170// {$api_version}.zoneOperations ==)
25171type Operation struct {
25172	// ClientOperationId: [Output Only] The value of `requestId` if you
25173	// provided it in the request. Not present otherwise.
25174	ClientOperationId string `json:"clientOperationId,omitempty"`
25175
25176	// CreationTimestamp: [Deprecated] This field is deprecated.
25177	CreationTimestamp string `json:"creationTimestamp,omitempty"`
25178
25179	// Description: [Output Only] A textual description of the operation,
25180	// which is set when the operation is created.
25181	Description string `json:"description,omitempty"`
25182
25183	// EndTime: [Output Only] The time that this operation was completed.
25184	// This value is in RFC3339 text format.
25185	EndTime string `json:"endTime,omitempty"`
25186
25187	// Error: [Output Only] If errors are generated during processing of the
25188	// operation, this field will be populated.
25189	Error *OperationError `json:"error,omitempty"`
25190
25191	// HttpErrorMessage: [Output Only] If the operation fails, this field
25192	// contains the HTTP error message that was returned, such as NOT FOUND.
25193	HttpErrorMessage string `json:"httpErrorMessage,omitempty"`
25194
25195	// HttpErrorStatusCode: [Output Only] If the operation fails, this field
25196	// contains the HTTP error status code that was returned. For example, a
25197	// 404 means the resource was not found.
25198	HttpErrorStatusCode int64 `json:"httpErrorStatusCode,omitempty"`
25199
25200	// Id: [Output Only] The unique identifier for the operation. This
25201	// identifier is defined by the server.
25202	Id uint64 `json:"id,omitempty,string"`
25203
25204	// InsertTime: [Output Only] The time that this operation was requested.
25205	// This value is in RFC3339 text format.
25206	InsertTime string `json:"insertTime,omitempty"`
25207
25208	// Kind: [Output Only] Type of the resource. Always compute#operation
25209	// for Operation resources.
25210	Kind string `json:"kind,omitempty"`
25211
25212	// Name: [Output Only] Name of the operation.
25213	Name string `json:"name,omitempty"`
25214
25215	// OperationType: [Output Only] The type of operation, such as insert,
25216	// update, or delete, and so on.
25217	OperationType string `json:"operationType,omitempty"`
25218
25219	// Progress: [Output Only] An optional progress indicator that ranges
25220	// from 0 to 100. There is no requirement that this be linear or support
25221	// any granularity of operations. This should not be used to guess when
25222	// the operation will be complete. This number should monotonically
25223	// increase as the operation progresses.
25224	Progress int64 `json:"progress,omitempty"`
25225
25226	// Region: [Output Only] The URL of the region where the operation
25227	// resides. Only applicable when performing regional operations.
25228	Region string `json:"region,omitempty"`
25229
25230	// SelfLink: [Output Only] Server-defined URL for the resource.
25231	SelfLink string `json:"selfLink,omitempty"`
25232
25233	// StartTime: [Output Only] The time that this operation was started by
25234	// the server. This value is in RFC3339 text format.
25235	StartTime string `json:"startTime,omitempty"`
25236
25237	// Status: [Output Only] The status of the operation, which can be one
25238	// of the following: PENDING, RUNNING, or DONE.
25239	//
25240	// Possible values:
25241	//   "DONE"
25242	//   "PENDING"
25243	//   "RUNNING"
25244	Status string `json:"status,omitempty"`
25245
25246	// StatusMessage: [Output Only] An optional textual description of the
25247	// current status of the operation.
25248	StatusMessage string `json:"statusMessage,omitempty"`
25249
25250	// TargetId: [Output Only] The unique target ID, which identifies a
25251	// specific incarnation of the target resource.
25252	TargetId uint64 `json:"targetId,omitempty,string"`
25253
25254	// TargetLink: [Output Only] The URL of the resource that the operation
25255	// modifies. For operations related to creating a snapshot, this points
25256	// to the persistent disk that the snapshot was created from.
25257	TargetLink string `json:"targetLink,omitempty"`
25258
25259	// User: [Output Only] User who requested the operation, for example:
25260	// user@example.com.
25261	User string `json:"user,omitempty"`
25262
25263	// Warnings: [Output Only] If warning messages are generated during
25264	// processing of the operation, this field will be populated.
25265	Warnings []*OperationWarnings `json:"warnings,omitempty"`
25266
25267	// Zone: [Output Only] The URL of the zone where the operation resides.
25268	// Only applicable when performing per-zone operations.
25269	Zone string `json:"zone,omitempty"`
25270
25271	// ServerResponse contains the HTTP response code and headers from the
25272	// server.
25273	googleapi.ServerResponse `json:"-"`
25274
25275	// ForceSendFields is a list of field names (e.g. "ClientOperationId")
25276	// to unconditionally include in API requests. By default, fields with
25277	// empty values are omitted from API requests. However, any non-pointer,
25278	// non-interface field appearing in ForceSendFields will be sent to the
25279	// server regardless of whether the field is empty or not. This may be
25280	// used to include empty fields in Patch requests.
25281	ForceSendFields []string `json:"-"`
25282
25283	// NullFields is a list of field names (e.g. "ClientOperationId") to
25284	// include in API requests with the JSON null value. By default, fields
25285	// with empty values are omitted from API requests. However, any field
25286	// with an empty value appearing in NullFields will be sent to the
25287	// server as null. It is an error if a field in this list has a
25288	// non-empty value. This may be used to include null fields in Patch
25289	// requests.
25290	NullFields []string `json:"-"`
25291}
25292
25293func (s *Operation) MarshalJSON() ([]byte, error) {
25294	type NoMethod Operation
25295	raw := NoMethod(*s)
25296	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25297}
25298
25299// OperationError: [Output Only] If errors are generated during
25300// processing of the operation, this field will be populated.
25301type OperationError struct {
25302	// Errors: [Output Only] The array of errors encountered while
25303	// processing this operation.
25304	Errors []*OperationErrorErrors `json:"errors,omitempty"`
25305
25306	// ForceSendFields is a list of field names (e.g. "Errors") to
25307	// unconditionally include in API requests. By default, fields with
25308	// empty values are omitted from API requests. However, any non-pointer,
25309	// non-interface field appearing in ForceSendFields will be sent to the
25310	// server regardless of whether the field is empty or not. This may be
25311	// used to include empty fields in Patch requests.
25312	ForceSendFields []string `json:"-"`
25313
25314	// NullFields is a list of field names (e.g. "Errors") to include in API
25315	// requests with the JSON null value. By default, fields with empty
25316	// values are omitted from API requests. However, any field with an
25317	// empty value appearing in NullFields will be sent to the server as
25318	// null. It is an error if a field in this list has a non-empty value.
25319	// This may be used to include null fields in Patch requests.
25320	NullFields []string `json:"-"`
25321}
25322
25323func (s *OperationError) MarshalJSON() ([]byte, error) {
25324	type NoMethod OperationError
25325	raw := NoMethod(*s)
25326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25327}
25328
25329type OperationErrorErrors struct {
25330	// Code: [Output Only] The error type identifier for this error.
25331	Code string `json:"code,omitempty"`
25332
25333	// Location: [Output Only] Indicates the field in the request that
25334	// caused the error. This property is optional.
25335	Location string `json:"location,omitempty"`
25336
25337	// Message: [Output Only] An optional, human-readable error message.
25338	Message string `json:"message,omitempty"`
25339
25340	// ForceSendFields is a list of field names (e.g. "Code") to
25341	// unconditionally include in API requests. By default, fields with
25342	// empty values are omitted from API requests. However, any non-pointer,
25343	// non-interface field appearing in ForceSendFields will be sent to the
25344	// server regardless of whether the field is empty or not. This may be
25345	// used to include empty fields in Patch requests.
25346	ForceSendFields []string `json:"-"`
25347
25348	// NullFields is a list of field names (e.g. "Code") to include in API
25349	// requests with the JSON null value. By default, fields with empty
25350	// values are omitted from API requests. However, any field with an
25351	// empty value appearing in NullFields will be sent to the server as
25352	// null. It is an error if a field in this list has a non-empty value.
25353	// This may be used to include null fields in Patch requests.
25354	NullFields []string `json:"-"`
25355}
25356
25357func (s *OperationErrorErrors) MarshalJSON() ([]byte, error) {
25358	type NoMethod OperationErrorErrors
25359	raw := NoMethod(*s)
25360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25361}
25362
25363type OperationWarnings struct {
25364	// Code: [Output Only] A warning code, if applicable. For example,
25365	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25366	// the response.
25367	//
25368	// Possible values:
25369	//   "CLEANUP_FAILED"
25370	//   "DEPRECATED_RESOURCE_USED"
25371	//   "DEPRECATED_TYPE_USED"
25372	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25373	//   "EXPERIMENTAL_TYPE_USED"
25374	//   "EXTERNAL_API_WARNING"
25375	//   "FIELD_VALUE_OVERRIDEN"
25376	//   "INJECTED_KERNELS_DEPRECATED"
25377	//   "MISSING_TYPE_DEPENDENCY"
25378	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25379	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25380	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25381	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25382	//   "NEXT_HOP_NOT_RUNNING"
25383	//   "NOT_CRITICAL_ERROR"
25384	//   "NO_RESULTS_ON_PAGE"
25385	//   "REQUIRED_TOS_AGREEMENT"
25386	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25387	//   "RESOURCE_NOT_DELETED"
25388	//   "SCHEMA_VALIDATION_IGNORED"
25389	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25390	//   "UNDECLARED_PROPERTIES"
25391	//   "UNREACHABLE"
25392	Code string `json:"code,omitempty"`
25393
25394	// Data: [Output Only] Metadata about this warning in key: value format.
25395	// For example:
25396	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25397	Data []*OperationWarningsData `json:"data,omitempty"`
25398
25399	// Message: [Output Only] A human-readable description of the warning
25400	// code.
25401	Message string `json:"message,omitempty"`
25402
25403	// ForceSendFields is a list of field names (e.g. "Code") to
25404	// unconditionally include in API requests. By default, fields with
25405	// empty values are omitted from API requests. However, any non-pointer,
25406	// non-interface field appearing in ForceSendFields will be sent to the
25407	// server regardless of whether the field is empty or not. This may be
25408	// used to include empty fields in Patch requests.
25409	ForceSendFields []string `json:"-"`
25410
25411	// NullFields is a list of field names (e.g. "Code") to include in API
25412	// requests with the JSON null value. By default, fields with empty
25413	// values are omitted from API requests. However, any field with an
25414	// empty value appearing in NullFields will be sent to the server as
25415	// null. It is an error if a field in this list has a non-empty value.
25416	// This may be used to include null fields in Patch requests.
25417	NullFields []string `json:"-"`
25418}
25419
25420func (s *OperationWarnings) MarshalJSON() ([]byte, error) {
25421	type NoMethod OperationWarnings
25422	raw := NoMethod(*s)
25423	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25424}
25425
25426type OperationWarningsData struct {
25427	// Key: [Output Only] A key that provides more detail on the warning
25428	// being returned. For example, for warnings where there are no results
25429	// in a list request for a particular zone, this key might be scope and
25430	// the key value might be the zone name. Other examples might be a key
25431	// indicating a deprecated resource and a suggested replacement, or a
25432	// warning about invalid network settings (for example, if an instance
25433	// attempts to perform IP forwarding but is not enabled for IP
25434	// forwarding).
25435	Key string `json:"key,omitempty"`
25436
25437	// Value: [Output Only] A warning data value corresponding to the key.
25438	Value string `json:"value,omitempty"`
25439
25440	// ForceSendFields is a list of field names (e.g. "Key") to
25441	// unconditionally include in API requests. By default, fields with
25442	// empty values are omitted from API requests. However, any non-pointer,
25443	// non-interface field appearing in ForceSendFields will be sent to the
25444	// server regardless of whether the field is empty or not. This may be
25445	// used to include empty fields in Patch requests.
25446	ForceSendFields []string `json:"-"`
25447
25448	// NullFields is a list of field names (e.g. "Key") to include in API
25449	// requests with the JSON null value. By default, fields with empty
25450	// values are omitted from API requests. However, any field with an
25451	// empty value appearing in NullFields will be sent to the server as
25452	// null. It is an error if a field in this list has a non-empty value.
25453	// This may be used to include null fields in Patch requests.
25454	NullFields []string `json:"-"`
25455}
25456
25457func (s *OperationWarningsData) MarshalJSON() ([]byte, error) {
25458	type NoMethod OperationWarningsData
25459	raw := NoMethod(*s)
25460	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25461}
25462
25463type OperationAggregatedList struct {
25464	// Id: [Output Only] The unique identifier for the resource. This
25465	// identifier is defined by the server.
25466	Id string `json:"id,omitempty"`
25467
25468	// Items: [Output Only] A map of scoped operation lists.
25469	Items map[string]OperationsScopedList `json:"items,omitempty"`
25470
25471	// Kind: [Output Only] Type of resource. Always
25472	// compute#operationAggregatedList for aggregated lists of operations.
25473	Kind string `json:"kind,omitempty"`
25474
25475	// NextPageToken: [Output Only] This token allows you to get the next
25476	// page of results for list requests. If the number of results is larger
25477	// than maxResults, use the nextPageToken as a value for the query
25478	// parameter pageToken in the next list request. Subsequent list
25479	// requests will have their own nextPageToken to continue paging through
25480	// the results.
25481	NextPageToken string `json:"nextPageToken,omitempty"`
25482
25483	// SelfLink: [Output Only] Server-defined URL for this resource.
25484	SelfLink string `json:"selfLink,omitempty"`
25485
25486	// Warning: [Output Only] Informational warning message.
25487	Warning *OperationAggregatedListWarning `json:"warning,omitempty"`
25488
25489	// ServerResponse contains the HTTP response code and headers from the
25490	// server.
25491	googleapi.ServerResponse `json:"-"`
25492
25493	// ForceSendFields is a list of field names (e.g. "Id") to
25494	// unconditionally include in API requests. By default, fields with
25495	// empty values are omitted from API requests. However, any non-pointer,
25496	// non-interface field appearing in ForceSendFields will be sent to the
25497	// server regardless of whether the field is empty or not. This may be
25498	// used to include empty fields in Patch requests.
25499	ForceSendFields []string `json:"-"`
25500
25501	// NullFields is a list of field names (e.g. "Id") to include in API
25502	// requests with the JSON null value. By default, fields with empty
25503	// values are omitted from API requests. However, any field with an
25504	// empty value appearing in NullFields will be sent to the server as
25505	// null. It is an error if a field in this list has a non-empty value.
25506	// This may be used to include null fields in Patch requests.
25507	NullFields []string `json:"-"`
25508}
25509
25510func (s *OperationAggregatedList) MarshalJSON() ([]byte, error) {
25511	type NoMethod OperationAggregatedList
25512	raw := NoMethod(*s)
25513	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25514}
25515
25516// OperationAggregatedListWarning: [Output Only] Informational warning
25517// message.
25518type OperationAggregatedListWarning struct {
25519	// Code: [Output Only] A warning code, if applicable. For example,
25520	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25521	// the response.
25522	//
25523	// Possible values:
25524	//   "CLEANUP_FAILED"
25525	//   "DEPRECATED_RESOURCE_USED"
25526	//   "DEPRECATED_TYPE_USED"
25527	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25528	//   "EXPERIMENTAL_TYPE_USED"
25529	//   "EXTERNAL_API_WARNING"
25530	//   "FIELD_VALUE_OVERRIDEN"
25531	//   "INJECTED_KERNELS_DEPRECATED"
25532	//   "MISSING_TYPE_DEPENDENCY"
25533	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25534	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25535	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25536	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25537	//   "NEXT_HOP_NOT_RUNNING"
25538	//   "NOT_CRITICAL_ERROR"
25539	//   "NO_RESULTS_ON_PAGE"
25540	//   "REQUIRED_TOS_AGREEMENT"
25541	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25542	//   "RESOURCE_NOT_DELETED"
25543	//   "SCHEMA_VALIDATION_IGNORED"
25544	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25545	//   "UNDECLARED_PROPERTIES"
25546	//   "UNREACHABLE"
25547	Code string `json:"code,omitempty"`
25548
25549	// Data: [Output Only] Metadata about this warning in key: value format.
25550	// For example:
25551	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25552	Data []*OperationAggregatedListWarningData `json:"data,omitempty"`
25553
25554	// Message: [Output Only] A human-readable description of the warning
25555	// code.
25556	Message string `json:"message,omitempty"`
25557
25558	// ForceSendFields is a list of field names (e.g. "Code") to
25559	// unconditionally include in API requests. By default, fields with
25560	// empty values are omitted from API requests. However, any non-pointer,
25561	// non-interface field appearing in ForceSendFields will be sent to the
25562	// server regardless of whether the field is empty or not. This may be
25563	// used to include empty fields in Patch requests.
25564	ForceSendFields []string `json:"-"`
25565
25566	// NullFields is a list of field names (e.g. "Code") to include in API
25567	// requests with the JSON null value. By default, fields with empty
25568	// values are omitted from API requests. However, any field with an
25569	// empty value appearing in NullFields will be sent to the server as
25570	// null. It is an error if a field in this list has a non-empty value.
25571	// This may be used to include null fields in Patch requests.
25572	NullFields []string `json:"-"`
25573}
25574
25575func (s *OperationAggregatedListWarning) MarshalJSON() ([]byte, error) {
25576	type NoMethod OperationAggregatedListWarning
25577	raw := NoMethod(*s)
25578	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25579}
25580
25581type OperationAggregatedListWarningData struct {
25582	// Key: [Output Only] A key that provides more detail on the warning
25583	// being returned. For example, for warnings where there are no results
25584	// in a list request for a particular zone, this key might be scope and
25585	// the key value might be the zone name. Other examples might be a key
25586	// indicating a deprecated resource and a suggested replacement, or a
25587	// warning about invalid network settings (for example, if an instance
25588	// attempts to perform IP forwarding but is not enabled for IP
25589	// forwarding).
25590	Key string `json:"key,omitempty"`
25591
25592	// Value: [Output Only] A warning data value corresponding to the key.
25593	Value string `json:"value,omitempty"`
25594
25595	// ForceSendFields is a list of field names (e.g. "Key") to
25596	// unconditionally include in API requests. By default, fields with
25597	// empty values are omitted from API requests. However, any non-pointer,
25598	// non-interface field appearing in ForceSendFields will be sent to the
25599	// server regardless of whether the field is empty or not. This may be
25600	// used to include empty fields in Patch requests.
25601	ForceSendFields []string `json:"-"`
25602
25603	// NullFields is a list of field names (e.g. "Key") to include in API
25604	// requests with the JSON null value. By default, fields with empty
25605	// values are omitted from API requests. However, any field with an
25606	// empty value appearing in NullFields will be sent to the server as
25607	// null. It is an error if a field in this list has a non-empty value.
25608	// This may be used to include null fields in Patch requests.
25609	NullFields []string `json:"-"`
25610}
25611
25612func (s *OperationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
25613	type NoMethod OperationAggregatedListWarningData
25614	raw := NoMethod(*s)
25615	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25616}
25617
25618// OperationList: Contains a list of Operation resources.
25619type OperationList struct {
25620	// Id: [Output Only] The unique identifier for the resource. This
25621	// identifier is defined by the server.
25622	Id string `json:"id,omitempty"`
25623
25624	// Items: [Output Only] A list of Operation resources.
25625	Items []*Operation `json:"items,omitempty"`
25626
25627	// Kind: [Output Only] Type of resource. Always compute#operations for
25628	// Operations resource.
25629	Kind string `json:"kind,omitempty"`
25630
25631	// NextPageToken: [Output Only] This token allows you to get the next
25632	// page of results for list requests. If the number of results is larger
25633	// than maxResults, use the nextPageToken as a value for the query
25634	// parameter pageToken in the next list request. Subsequent list
25635	// requests will have their own nextPageToken to continue paging through
25636	// the results.
25637	NextPageToken string `json:"nextPageToken,omitempty"`
25638
25639	// SelfLink: [Output Only] Server-defined URL for this resource.
25640	SelfLink string `json:"selfLink,omitempty"`
25641
25642	// Warning: [Output Only] Informational warning message.
25643	Warning *OperationListWarning `json:"warning,omitempty"`
25644
25645	// ServerResponse contains the HTTP response code and headers from the
25646	// server.
25647	googleapi.ServerResponse `json:"-"`
25648
25649	// ForceSendFields is a list of field names (e.g. "Id") to
25650	// unconditionally include in API requests. By default, fields with
25651	// empty values are omitted from API requests. However, any non-pointer,
25652	// non-interface field appearing in ForceSendFields will be sent to the
25653	// server regardless of whether the field is empty or not. This may be
25654	// used to include empty fields in Patch requests.
25655	ForceSendFields []string `json:"-"`
25656
25657	// NullFields is a list of field names (e.g. "Id") to include in API
25658	// requests with the JSON null value. By default, fields with empty
25659	// values are omitted from API requests. However, any field with an
25660	// empty value appearing in NullFields will be sent to the server as
25661	// null. It is an error if a field in this list has a non-empty value.
25662	// This may be used to include null fields in Patch requests.
25663	NullFields []string `json:"-"`
25664}
25665
25666func (s *OperationList) MarshalJSON() ([]byte, error) {
25667	type NoMethod OperationList
25668	raw := NoMethod(*s)
25669	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25670}
25671
25672// OperationListWarning: [Output Only] Informational warning message.
25673type OperationListWarning struct {
25674	// Code: [Output Only] A warning code, if applicable. For example,
25675	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25676	// the response.
25677	//
25678	// Possible values:
25679	//   "CLEANUP_FAILED"
25680	//   "DEPRECATED_RESOURCE_USED"
25681	//   "DEPRECATED_TYPE_USED"
25682	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25683	//   "EXPERIMENTAL_TYPE_USED"
25684	//   "EXTERNAL_API_WARNING"
25685	//   "FIELD_VALUE_OVERRIDEN"
25686	//   "INJECTED_KERNELS_DEPRECATED"
25687	//   "MISSING_TYPE_DEPENDENCY"
25688	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25689	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25690	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25691	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25692	//   "NEXT_HOP_NOT_RUNNING"
25693	//   "NOT_CRITICAL_ERROR"
25694	//   "NO_RESULTS_ON_PAGE"
25695	//   "REQUIRED_TOS_AGREEMENT"
25696	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25697	//   "RESOURCE_NOT_DELETED"
25698	//   "SCHEMA_VALIDATION_IGNORED"
25699	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25700	//   "UNDECLARED_PROPERTIES"
25701	//   "UNREACHABLE"
25702	Code string `json:"code,omitempty"`
25703
25704	// Data: [Output Only] Metadata about this warning in key: value format.
25705	// For example:
25706	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25707	Data []*OperationListWarningData `json:"data,omitempty"`
25708
25709	// Message: [Output Only] A human-readable description of the warning
25710	// code.
25711	Message string `json:"message,omitempty"`
25712
25713	// ForceSendFields is a list of field names (e.g. "Code") to
25714	// unconditionally include in API requests. By default, fields with
25715	// empty values are omitted from API requests. However, any non-pointer,
25716	// non-interface field appearing in ForceSendFields will be sent to the
25717	// server regardless of whether the field is empty or not. This may be
25718	// used to include empty fields in Patch requests.
25719	ForceSendFields []string `json:"-"`
25720
25721	// NullFields is a list of field names (e.g. "Code") to include in API
25722	// requests with the JSON null value. By default, fields with empty
25723	// values are omitted from API requests. However, any field with an
25724	// empty value appearing in NullFields will be sent to the server as
25725	// null. It is an error if a field in this list has a non-empty value.
25726	// This may be used to include null fields in Patch requests.
25727	NullFields []string `json:"-"`
25728}
25729
25730func (s *OperationListWarning) MarshalJSON() ([]byte, error) {
25731	type NoMethod OperationListWarning
25732	raw := NoMethod(*s)
25733	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25734}
25735
25736type OperationListWarningData struct {
25737	// Key: [Output Only] A key that provides more detail on the warning
25738	// being returned. For example, for warnings where there are no results
25739	// in a list request for a particular zone, this key might be scope and
25740	// the key value might be the zone name. Other examples might be a key
25741	// indicating a deprecated resource and a suggested replacement, or a
25742	// warning about invalid network settings (for example, if an instance
25743	// attempts to perform IP forwarding but is not enabled for IP
25744	// forwarding).
25745	Key string `json:"key,omitempty"`
25746
25747	// Value: [Output Only] A warning data value corresponding to the key.
25748	Value string `json:"value,omitempty"`
25749
25750	// ForceSendFields is a list of field names (e.g. "Key") to
25751	// unconditionally include in API requests. By default, fields with
25752	// empty values are omitted from API requests. However, any non-pointer,
25753	// non-interface field appearing in ForceSendFields will be sent to the
25754	// server regardless of whether the field is empty or not. This may be
25755	// used to include empty fields in Patch requests.
25756	ForceSendFields []string `json:"-"`
25757
25758	// NullFields is a list of field names (e.g. "Key") to include in API
25759	// requests with the JSON null value. By default, fields with empty
25760	// values are omitted from API requests. However, any field with an
25761	// empty value appearing in NullFields will be sent to the server as
25762	// null. It is an error if a field in this list has a non-empty value.
25763	// This may be used to include null fields in Patch requests.
25764	NullFields []string `json:"-"`
25765}
25766
25767func (s *OperationListWarningData) MarshalJSON() ([]byte, error) {
25768	type NoMethod OperationListWarningData
25769	raw := NoMethod(*s)
25770	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25771}
25772
25773type OperationsScopedList struct {
25774	// Operations: [Output Only] A list of operations contained in this
25775	// scope.
25776	Operations []*Operation `json:"operations,omitempty"`
25777
25778	// Warning: [Output Only] Informational warning which replaces the list
25779	// of operations when the list is empty.
25780	Warning *OperationsScopedListWarning `json:"warning,omitempty"`
25781
25782	// ForceSendFields is a list of field names (e.g. "Operations") to
25783	// unconditionally include in API requests. By default, fields with
25784	// empty values are omitted from API requests. However, any non-pointer,
25785	// non-interface field appearing in ForceSendFields will be sent to the
25786	// server regardless of whether the field is empty or not. This may be
25787	// used to include empty fields in Patch requests.
25788	ForceSendFields []string `json:"-"`
25789
25790	// NullFields is a list of field names (e.g. "Operations") to include in
25791	// API requests with the JSON null value. By default, fields with empty
25792	// values are omitted from API requests. However, any field with an
25793	// empty value appearing in NullFields will be sent to the server as
25794	// null. It is an error if a field in this list has a non-empty value.
25795	// This may be used to include null fields in Patch requests.
25796	NullFields []string `json:"-"`
25797}
25798
25799func (s *OperationsScopedList) MarshalJSON() ([]byte, error) {
25800	type NoMethod OperationsScopedList
25801	raw := NoMethod(*s)
25802	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25803}
25804
25805// OperationsScopedListWarning: [Output Only] Informational warning
25806// which replaces the list of operations when the list is empty.
25807type OperationsScopedListWarning struct {
25808	// Code: [Output Only] A warning code, if applicable. For example,
25809	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
25810	// the response.
25811	//
25812	// Possible values:
25813	//   "CLEANUP_FAILED"
25814	//   "DEPRECATED_RESOURCE_USED"
25815	//   "DEPRECATED_TYPE_USED"
25816	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
25817	//   "EXPERIMENTAL_TYPE_USED"
25818	//   "EXTERNAL_API_WARNING"
25819	//   "FIELD_VALUE_OVERRIDEN"
25820	//   "INJECTED_KERNELS_DEPRECATED"
25821	//   "MISSING_TYPE_DEPENDENCY"
25822	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
25823	//   "NEXT_HOP_CANNOT_IP_FORWARD"
25824	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
25825	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
25826	//   "NEXT_HOP_NOT_RUNNING"
25827	//   "NOT_CRITICAL_ERROR"
25828	//   "NO_RESULTS_ON_PAGE"
25829	//   "REQUIRED_TOS_AGREEMENT"
25830	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
25831	//   "RESOURCE_NOT_DELETED"
25832	//   "SCHEMA_VALIDATION_IGNORED"
25833	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
25834	//   "UNDECLARED_PROPERTIES"
25835	//   "UNREACHABLE"
25836	Code string `json:"code,omitempty"`
25837
25838	// Data: [Output Only] Metadata about this warning in key: value format.
25839	// For example:
25840	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
25841	Data []*OperationsScopedListWarningData `json:"data,omitempty"`
25842
25843	// Message: [Output Only] A human-readable description of the warning
25844	// code.
25845	Message string `json:"message,omitempty"`
25846
25847	// ForceSendFields is a list of field names (e.g. "Code") to
25848	// unconditionally include in API requests. By default, fields with
25849	// empty values are omitted from API requests. However, any non-pointer,
25850	// non-interface field appearing in ForceSendFields will be sent to the
25851	// server regardless of whether the field is empty or not. This may be
25852	// used to include empty fields in Patch requests.
25853	ForceSendFields []string `json:"-"`
25854
25855	// NullFields is a list of field names (e.g. "Code") to include in API
25856	// requests with the JSON null value. By default, fields with empty
25857	// values are omitted from API requests. However, any field with an
25858	// empty value appearing in NullFields will be sent to the server as
25859	// null. It is an error if a field in this list has a non-empty value.
25860	// This may be used to include null fields in Patch requests.
25861	NullFields []string `json:"-"`
25862}
25863
25864func (s *OperationsScopedListWarning) MarshalJSON() ([]byte, error) {
25865	type NoMethod OperationsScopedListWarning
25866	raw := NoMethod(*s)
25867	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25868}
25869
25870type OperationsScopedListWarningData struct {
25871	// Key: [Output Only] A key that provides more detail on the warning
25872	// being returned. For example, for warnings where there are no results
25873	// in a list request for a particular zone, this key might be scope and
25874	// the key value might be the zone name. Other examples might be a key
25875	// indicating a deprecated resource and a suggested replacement, or a
25876	// warning about invalid network settings (for example, if an instance
25877	// attempts to perform IP forwarding but is not enabled for IP
25878	// forwarding).
25879	Key string `json:"key,omitempty"`
25880
25881	// Value: [Output Only] A warning data value corresponding to the key.
25882	Value string `json:"value,omitempty"`
25883
25884	// ForceSendFields is a list of field names (e.g. "Key") to
25885	// unconditionally include in API requests. By default, fields with
25886	// empty values are omitted from API requests. However, any non-pointer,
25887	// non-interface field appearing in ForceSendFields will be sent to the
25888	// server regardless of whether the field is empty or not. This may be
25889	// used to include empty fields in Patch requests.
25890	ForceSendFields []string `json:"-"`
25891
25892	// NullFields is a list of field names (e.g. "Key") to include in API
25893	// requests with the JSON null value. By default, fields with empty
25894	// values are omitted from API requests. However, any field with an
25895	// empty value appearing in NullFields will be sent to the server as
25896	// null. It is an error if a field in this list has a non-empty value.
25897	// This may be used to include null fields in Patch requests.
25898	NullFields []string `json:"-"`
25899}
25900
25901func (s *OperationsScopedListWarningData) MarshalJSON() ([]byte, error) {
25902	type NoMethod OperationsScopedListWarningData
25903	raw := NoMethod(*s)
25904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
25905}
25906
25907// OutlierDetection: Settings controlling the eviction of unhealthy
25908// hosts from the load balancing pool for the backend service.
25909type OutlierDetection struct {
25910	// BaseEjectionTime: The base time that a host is ejected for. The real
25911	// ejection time is equal to the base ejection time multiplied by the
25912	// number of times the host has been ejected. Defaults to 30000ms or
25913	// 30s.
25914	BaseEjectionTime *Duration `json:"baseEjectionTime,omitempty"`
25915
25916	// ConsecutiveErrors: Number of errors before a host is ejected from the
25917	// connection pool. When the backend host is accessed over HTTP, a 5xx
25918	// return code qualifies as an error. Defaults to 5.
25919	ConsecutiveErrors int64 `json:"consecutiveErrors,omitempty"`
25920
25921	// ConsecutiveGatewayFailure: The number of consecutive gateway failures
25922	// (502, 503, 504 status or connection errors that are mapped to one of
25923	// those status codes) before a consecutive gateway failure ejection
25924	// occurs. Defaults to 3.
25925	ConsecutiveGatewayFailure int64 `json:"consecutiveGatewayFailure,omitempty"`
25926
25927	// EnforcingConsecutiveErrors: The percentage chance that a host will be
25928	// actually ejected when an outlier status is detected through
25929	// consecutive 5xx. This setting can be used to disable ejection or to
25930	// ramp it up slowly. Defaults to 0.
25931	EnforcingConsecutiveErrors int64 `json:"enforcingConsecutiveErrors,omitempty"`
25932
25933	// EnforcingConsecutiveGatewayFailure: The percentage chance that a host
25934	// will be actually ejected when an outlier status is detected through
25935	// consecutive gateway failures. This setting can be used to disable
25936	// ejection or to ramp it up slowly. Defaults to 100.
25937	EnforcingConsecutiveGatewayFailure int64 `json:"enforcingConsecutiveGatewayFailure,omitempty"`
25938
25939	// EnforcingSuccessRate: The percentage chance that a host will be
25940	// actually ejected when an outlier status is detected through success
25941	// rate statistics. This setting can be used to disable ejection or to
25942	// ramp it up slowly. Defaults to 100.
25943	EnforcingSuccessRate int64 `json:"enforcingSuccessRate,omitempty"`
25944
25945	// Interval: Time interval between ejection analysis sweeps. This can
25946	// result in both new ejections as well as hosts being returned to
25947	// service. Defaults to 1 second.
25948	Interval *Duration `json:"interval,omitempty"`
25949
25950	// MaxEjectionPercent: Maximum percentage of hosts in the load balancing
25951	// pool for the backend service that can be ejected. Defaults to 50%.
25952	MaxEjectionPercent int64 `json:"maxEjectionPercent,omitempty"`
25953
25954	// SuccessRateMinimumHosts: The number of hosts in a cluster that must
25955	// have enough request volume to detect success rate outliers. If the
25956	// number of hosts is less than this setting, outlier detection via
25957	// success rate statistics is not performed for any host in the cluster.
25958	// Defaults to 5.
25959	SuccessRateMinimumHosts int64 `json:"successRateMinimumHosts,omitempty"`
25960
25961	// SuccessRateRequestVolume: The minimum number of total requests that
25962	// must be collected in one interval (as defined by the interval
25963	// duration above) to include this host in success rate based outlier
25964	// detection. If the volume is lower than this setting, outlier
25965	// detection via success rate statistics is not performed for that host.
25966	// Defaults to 100.
25967	SuccessRateRequestVolume int64 `json:"successRateRequestVolume,omitempty"`
25968
25969	// SuccessRateStdevFactor: This factor is used to determine the ejection
25970	// threshold for success rate outlier ejection. The ejection threshold
25971	// is the difference between the mean success rate, and the product of
25972	// this factor and the standard deviation of the mean success rate: mean
25973	// - (stdev * success_rate_stdev_factor). This factor is divided by a
25974	// thousand to get a double. That is, if the desired factor is 1.9, the
25975	// runtime value should be 1900. Defaults to 1900.
25976	SuccessRateStdevFactor int64 `json:"successRateStdevFactor,omitempty"`
25977
25978	// ForceSendFields is a list of field names (e.g. "BaseEjectionTime") to
25979	// unconditionally include in API requests. By default, fields with
25980	// empty values are omitted from API requests. However, any non-pointer,
25981	// non-interface field appearing in ForceSendFields will be sent to the
25982	// server regardless of whether the field is empty or not. This may be
25983	// used to include empty fields in Patch requests.
25984	ForceSendFields []string `json:"-"`
25985
25986	// NullFields is a list of field names (e.g. "BaseEjectionTime") to
25987	// include in API requests with the JSON null value. By default, fields
25988	// with empty values are omitted from API requests. However, any field
25989	// with an empty value appearing in NullFields will be sent to the
25990	// server as null. It is an error if a field in this list has a
25991	// non-empty value. This may be used to include null fields in Patch
25992	// requests.
25993	NullFields []string `json:"-"`
25994}
25995
25996func (s *OutlierDetection) MarshalJSON() ([]byte, error) {
25997	type NoMethod OutlierDetection
25998	raw := NoMethod(*s)
25999	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26000}
26001
26002// PacketIntervals: Next free: 7
26003type PacketIntervals struct {
26004	// AvgMs: Average observed inter-packet interval in milliseconds.
26005	AvgMs int64 `json:"avgMs,omitempty,string"`
26006
26007	// Duration: From how long ago in the past these intervals were
26008	// observed.
26009	//
26010	// Possible values:
26011	//   "DURATION_UNSPECIFIED"
26012	//   "HOUR"
26013	//   "MAX"
26014	//   "MINUTE"
26015	Duration string `json:"duration,omitempty"`
26016
26017	// MaxMs: Maximum observed inter-packet interval in milliseconds.
26018	MaxMs int64 `json:"maxMs,omitempty,string"`
26019
26020	// MinMs: Minimum observed inter-packet interval in milliseconds.
26021	MinMs int64 `json:"minMs,omitempty,string"`
26022
26023	// NumIntervals: Number of inter-packet intervals from which these
26024	// statistics were derived.
26025	NumIntervals int64 `json:"numIntervals,omitempty,string"`
26026
26027	// Type: The type of packets for which inter-packet intervals were
26028	// computed.
26029	//
26030	// Possible values:
26031	//   "LOOPBACK"
26032	//   "RECEIVE"
26033	//   "TRANSMIT"
26034	//   "TYPE_UNSPECIFIED"
26035	Type string `json:"type,omitempty"`
26036
26037	// ForceSendFields is a list of field names (e.g. "AvgMs") to
26038	// unconditionally include in API requests. By default, fields with
26039	// empty values are omitted from API requests. However, any non-pointer,
26040	// non-interface field appearing in ForceSendFields will be sent to the
26041	// server regardless of whether the field is empty or not. This may be
26042	// used to include empty fields in Patch requests.
26043	ForceSendFields []string `json:"-"`
26044
26045	// NullFields is a list of field names (e.g. "AvgMs") to include in API
26046	// requests with the JSON null value. By default, fields with empty
26047	// values are omitted from API requests. However, any field with an
26048	// empty value appearing in NullFields will be sent to the server as
26049	// null. It is an error if a field in this list has a non-empty value.
26050	// This may be used to include null fields in Patch requests.
26051	NullFields []string `json:"-"`
26052}
26053
26054func (s *PacketIntervals) MarshalJSON() ([]byte, error) {
26055	type NoMethod PacketIntervals
26056	raw := NoMethod(*s)
26057	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26058}
26059
26060// PacketMirroring: Represents a PacketMirroring resource.
26061type PacketMirroring struct {
26062	// CollectorIlb: The Forwarding Rule resource of type
26063	// loadBalancingScheme=INTERNAL that will be used as collector for
26064	// mirrored traffic. The specified forwarding rule must have
26065	// isMirroringCollector set to true.
26066	CollectorIlb *PacketMirroringForwardingRuleInfo `json:"collectorIlb,omitempty"`
26067
26068	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
26069	// format.
26070	CreationTimestamp string `json:"creationTimestamp,omitempty"`
26071
26072	// Description: An optional description of this resource. Provide this
26073	// property when you create the resource.
26074	Description string `json:"description,omitempty"`
26075
26076	// Enable: Indicates whether or not this packet mirroring takes effect.
26077	// If set to FALSE, this packet mirroring policy will not be enforced on
26078	// the network.
26079	//
26080	// The default is TRUE.
26081	//
26082	// Possible values:
26083	//   "FALSE"
26084	//   "TRUE"
26085	Enable string `json:"enable,omitempty"`
26086
26087	// Filter: Filter for mirrored traffic. If unspecified, all traffic is
26088	// mirrored.
26089	Filter *PacketMirroringFilter `json:"filter,omitempty"`
26090
26091	// Id: [Output Only] The unique identifier for the resource. This
26092	// identifier is defined by the server.
26093	Id uint64 `json:"id,omitempty,string"`
26094
26095	// Kind: [Output Only] Type of the resource. Always
26096	// compute#packetMirroring for packet mirrorings.
26097	Kind string `json:"kind,omitempty"`
26098
26099	// MirroredResources: PacketMirroring mirroredResourceInfos.
26100	// MirroredResourceInfo specifies a set of mirrored VM instances,
26101	// subnetworks and/or tags for which traffic from/to all VM instances
26102	// will be mirrored.
26103	MirroredResources *PacketMirroringMirroredResourceInfo `json:"mirroredResources,omitempty"`
26104
26105	// Name: Name of the resource; provided by the client when the resource
26106	// is created. The name must be 1-63 characters long, and comply with
26107	// RFC1035. Specifically, the name must be 1-63 characters long and
26108	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
26109	// the first character must be a lowercase letter, and all following
26110	// characters must be a dash, lowercase letter, or digit, except the
26111	// last character, which cannot be a dash.
26112	Name string `json:"name,omitempty"`
26113
26114	// Network: Specifies the mirrored VPC network. Only packets in this
26115	// network will be mirrored. All mirrored VMs should have a NIC in the
26116	// given network. All mirrored subnetworks should belong to the given
26117	// network.
26118	Network *PacketMirroringNetworkInfo `json:"network,omitempty"`
26119
26120	// Priority: The priority of applying this configuration. Priority is
26121	// used to break ties in cases where there is more than one matching
26122	// rule. In the case of two rules that apply for a given Instance, the
26123	// one with the lowest-numbered priority value wins.
26124	//
26125	// Default value is 1000. Valid range is 0 through 65535.
26126	Priority int64 `json:"priority,omitempty"`
26127
26128	// Region: [Output Only] URI of the region where the packetMirroring
26129	// resides.
26130	Region string `json:"region,omitempty"`
26131
26132	// SelfLink: [Output Only] Server-defined URL for the resource.
26133	SelfLink string `json:"selfLink,omitempty"`
26134
26135	// ServerResponse contains the HTTP response code and headers from the
26136	// server.
26137	googleapi.ServerResponse `json:"-"`
26138
26139	// ForceSendFields is a list of field names (e.g. "CollectorIlb") to
26140	// unconditionally include in API requests. By default, fields with
26141	// empty values are omitted from API requests. However, any non-pointer,
26142	// non-interface field appearing in ForceSendFields will be sent to the
26143	// server regardless of whether the field is empty or not. This may be
26144	// used to include empty fields in Patch requests.
26145	ForceSendFields []string `json:"-"`
26146
26147	// NullFields is a list of field names (e.g. "CollectorIlb") to include
26148	// in API requests with the JSON null value. By default, fields with
26149	// empty values are omitted from API requests. However, any field with
26150	// an empty value appearing in NullFields will be sent to the server as
26151	// null. It is an error if a field in this list has a non-empty value.
26152	// This may be used to include null fields in Patch requests.
26153	NullFields []string `json:"-"`
26154}
26155
26156func (s *PacketMirroring) MarshalJSON() ([]byte, error) {
26157	type NoMethod PacketMirroring
26158	raw := NoMethod(*s)
26159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26160}
26161
26162// PacketMirroringAggregatedList: Contains a list of packetMirrorings.
26163type PacketMirroringAggregatedList struct {
26164	// Id: [Output Only] Unique identifier for the resource; defined by the
26165	// server.
26166	Id string `json:"id,omitempty"`
26167
26168	// Items: A list of PacketMirroring resources.
26169	Items map[string]PacketMirroringsScopedList `json:"items,omitempty"`
26170
26171	// Kind: Type of resource.
26172	Kind string `json:"kind,omitempty"`
26173
26174	// NextPageToken: [Output Only] This token allows you to get the next
26175	// page of results for list requests. If the number of results is larger
26176	// than maxResults, use the nextPageToken as a value for the query
26177	// parameter pageToken in the next list request. Subsequent list
26178	// requests will have their own nextPageToken to continue paging through
26179	// the results.
26180	NextPageToken string `json:"nextPageToken,omitempty"`
26181
26182	// SelfLink: [Output Only] Server-defined URL for this resource.
26183	SelfLink string `json:"selfLink,omitempty"`
26184
26185	// Warning: [Output Only] Informational warning message.
26186	Warning *PacketMirroringAggregatedListWarning `json:"warning,omitempty"`
26187
26188	// ServerResponse contains the HTTP response code and headers from the
26189	// server.
26190	googleapi.ServerResponse `json:"-"`
26191
26192	// ForceSendFields is a list of field names (e.g. "Id") to
26193	// unconditionally include in API requests. By default, fields with
26194	// empty values are omitted from API requests. However, any non-pointer,
26195	// non-interface field appearing in ForceSendFields will be sent to the
26196	// server regardless of whether the field is empty or not. This may be
26197	// used to include empty fields in Patch requests.
26198	ForceSendFields []string `json:"-"`
26199
26200	// NullFields is a list of field names (e.g. "Id") to include in API
26201	// requests with the JSON null value. By default, fields with empty
26202	// values are omitted from API requests. However, any field with an
26203	// empty value appearing in NullFields will be sent to the server as
26204	// null. It is an error if a field in this list has a non-empty value.
26205	// This may be used to include null fields in Patch requests.
26206	NullFields []string `json:"-"`
26207}
26208
26209func (s *PacketMirroringAggregatedList) MarshalJSON() ([]byte, error) {
26210	type NoMethod PacketMirroringAggregatedList
26211	raw := NoMethod(*s)
26212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26213}
26214
26215// PacketMirroringAggregatedListWarning: [Output Only] Informational
26216// warning message.
26217type PacketMirroringAggregatedListWarning struct {
26218	// Code: [Output Only] A warning code, if applicable. For example,
26219	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26220	// the response.
26221	//
26222	// Possible values:
26223	//   "CLEANUP_FAILED"
26224	//   "DEPRECATED_RESOURCE_USED"
26225	//   "DEPRECATED_TYPE_USED"
26226	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26227	//   "EXPERIMENTAL_TYPE_USED"
26228	//   "EXTERNAL_API_WARNING"
26229	//   "FIELD_VALUE_OVERRIDEN"
26230	//   "INJECTED_KERNELS_DEPRECATED"
26231	//   "MISSING_TYPE_DEPENDENCY"
26232	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26233	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26234	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26235	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26236	//   "NEXT_HOP_NOT_RUNNING"
26237	//   "NOT_CRITICAL_ERROR"
26238	//   "NO_RESULTS_ON_PAGE"
26239	//   "REQUIRED_TOS_AGREEMENT"
26240	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26241	//   "RESOURCE_NOT_DELETED"
26242	//   "SCHEMA_VALIDATION_IGNORED"
26243	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26244	//   "UNDECLARED_PROPERTIES"
26245	//   "UNREACHABLE"
26246	Code string `json:"code,omitempty"`
26247
26248	// Data: [Output Only] Metadata about this warning in key: value format.
26249	// For example:
26250	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26251	Data []*PacketMirroringAggregatedListWarningData `json:"data,omitempty"`
26252
26253	// Message: [Output Only] A human-readable description of the warning
26254	// code.
26255	Message string `json:"message,omitempty"`
26256
26257	// ForceSendFields is a list of field names (e.g. "Code") to
26258	// unconditionally include in API requests. By default, fields with
26259	// empty values are omitted from API requests. However, any non-pointer,
26260	// non-interface field appearing in ForceSendFields will be sent to the
26261	// server regardless of whether the field is empty or not. This may be
26262	// used to include empty fields in Patch requests.
26263	ForceSendFields []string `json:"-"`
26264
26265	// NullFields is a list of field names (e.g. "Code") to include in API
26266	// requests with the JSON null value. By default, fields with empty
26267	// values are omitted from API requests. However, any field with an
26268	// empty value appearing in NullFields will be sent to the server as
26269	// null. It is an error if a field in this list has a non-empty value.
26270	// This may be used to include null fields in Patch requests.
26271	NullFields []string `json:"-"`
26272}
26273
26274func (s *PacketMirroringAggregatedListWarning) MarshalJSON() ([]byte, error) {
26275	type NoMethod PacketMirroringAggregatedListWarning
26276	raw := NoMethod(*s)
26277	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26278}
26279
26280type PacketMirroringAggregatedListWarningData struct {
26281	// Key: [Output Only] A key that provides more detail on the warning
26282	// being returned. For example, for warnings where there are no results
26283	// in a list request for a particular zone, this key might be scope and
26284	// the key value might be the zone name. Other examples might be a key
26285	// indicating a deprecated resource and a suggested replacement, or a
26286	// warning about invalid network settings (for example, if an instance
26287	// attempts to perform IP forwarding but is not enabled for IP
26288	// forwarding).
26289	Key string `json:"key,omitempty"`
26290
26291	// Value: [Output Only] A warning data value corresponding to the key.
26292	Value string `json:"value,omitempty"`
26293
26294	// ForceSendFields is a list of field names (e.g. "Key") to
26295	// unconditionally include in API requests. By default, fields with
26296	// empty values are omitted from API requests. However, any non-pointer,
26297	// non-interface field appearing in ForceSendFields will be sent to the
26298	// server regardless of whether the field is empty or not. This may be
26299	// used to include empty fields in Patch requests.
26300	ForceSendFields []string `json:"-"`
26301
26302	// NullFields is a list of field names (e.g. "Key") to include in API
26303	// requests with the JSON null value. By default, fields with empty
26304	// values are omitted from API requests. However, any field with an
26305	// empty value appearing in NullFields will be sent to the server as
26306	// null. It is an error if a field in this list has a non-empty value.
26307	// This may be used to include null fields in Patch requests.
26308	NullFields []string `json:"-"`
26309}
26310
26311func (s *PacketMirroringAggregatedListWarningData) MarshalJSON() ([]byte, error) {
26312	type NoMethod PacketMirroringAggregatedListWarningData
26313	raw := NoMethod(*s)
26314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26315}
26316
26317type PacketMirroringFilter struct {
26318	// IPProtocols: Protocols that apply as filter on mirrored traffic. If
26319	// no protocols are specified, all traffic that matches the specified
26320	// CIDR ranges is mirrored. If neither cidrRanges nor IPProtocols is
26321	// specified, all traffic is mirrored.
26322	IPProtocols []string `json:"IPProtocols,omitempty"`
26323
26324	// CidrRanges: IP CIDR ranges that apply as filter on the source
26325	// (ingress) or destination (egress) IP in the IP header. Only IPv4 is
26326	// supported. If no ranges are specified, all traffic that matches the
26327	// specified IPProtocols is mirrored. If neither cidrRanges nor
26328	// IPProtocols is specified, all traffic is mirrored.
26329	CidrRanges []string `json:"cidrRanges,omitempty"`
26330
26331	// ForceSendFields is a list of field names (e.g. "IPProtocols") to
26332	// unconditionally include in API requests. By default, fields with
26333	// empty values are omitted from API requests. However, any non-pointer,
26334	// non-interface field appearing in ForceSendFields will be sent to the
26335	// server regardless of whether the field is empty or not. This may be
26336	// used to include empty fields in Patch requests.
26337	ForceSendFields []string `json:"-"`
26338
26339	// NullFields is a list of field names (e.g. "IPProtocols") to include
26340	// in API requests with the JSON null value. By default, fields with
26341	// empty values are omitted from API requests. However, any field with
26342	// an empty value appearing in NullFields will be sent to the server as
26343	// null. It is an error if a field in this list has a non-empty value.
26344	// This may be used to include null fields in Patch requests.
26345	NullFields []string `json:"-"`
26346}
26347
26348func (s *PacketMirroringFilter) MarshalJSON() ([]byte, error) {
26349	type NoMethod PacketMirroringFilter
26350	raw := NoMethod(*s)
26351	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26352}
26353
26354type PacketMirroringForwardingRuleInfo struct {
26355	// CanonicalUrl: [Output Only] Unique identifier for the forwarding
26356	// rule; defined by the server.
26357	CanonicalUrl string `json:"canonicalUrl,omitempty"`
26358
26359	// Url: Resource URL to the forwarding rule representing the ILB
26360	// configured as destination of the mirrored traffic.
26361	Url string `json:"url,omitempty"`
26362
26363	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
26364	// unconditionally include in API requests. By default, fields with
26365	// empty values are omitted from API requests. However, any non-pointer,
26366	// non-interface field appearing in ForceSendFields will be sent to the
26367	// server regardless of whether the field is empty or not. This may be
26368	// used to include empty fields in Patch requests.
26369	ForceSendFields []string `json:"-"`
26370
26371	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
26372	// in API requests with the JSON null value. By default, fields with
26373	// empty values are omitted from API requests. However, any field with
26374	// an empty value appearing in NullFields will be sent to the server as
26375	// null. It is an error if a field in this list has a non-empty value.
26376	// This may be used to include null fields in Patch requests.
26377	NullFields []string `json:"-"`
26378}
26379
26380func (s *PacketMirroringForwardingRuleInfo) MarshalJSON() ([]byte, error) {
26381	type NoMethod PacketMirroringForwardingRuleInfo
26382	raw := NoMethod(*s)
26383	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26384}
26385
26386// PacketMirroringList: Contains a list of PacketMirroring resources.
26387type PacketMirroringList struct {
26388	// Id: [Output Only] Unique identifier for the resource; defined by the
26389	// server.
26390	Id string `json:"id,omitempty"`
26391
26392	// Items: A list of PacketMirroring resources.
26393	Items []*PacketMirroring `json:"items,omitempty"`
26394
26395	// Kind: [Output Only] Type of resource. Always compute#packetMirroring
26396	// for packetMirrorings.
26397	Kind string `json:"kind,omitempty"`
26398
26399	// NextPageToken: [Output Only] This token allows you to get the next
26400	// page of results for list requests. If the number of results is larger
26401	// than maxResults, use the nextPageToken as a value for the query
26402	// parameter pageToken in the next list request. Subsequent list
26403	// requests will have their own nextPageToken to continue paging through
26404	// the results.
26405	NextPageToken string `json:"nextPageToken,omitempty"`
26406
26407	// SelfLink: [Output Only] Server-defined URL for this resource.
26408	SelfLink string `json:"selfLink,omitempty"`
26409
26410	// Warning: [Output Only] Informational warning message.
26411	Warning *PacketMirroringListWarning `json:"warning,omitempty"`
26412
26413	// ServerResponse contains the HTTP response code and headers from the
26414	// server.
26415	googleapi.ServerResponse `json:"-"`
26416
26417	// ForceSendFields is a list of field names (e.g. "Id") to
26418	// unconditionally include in API requests. By default, fields with
26419	// empty values are omitted from API requests. However, any non-pointer,
26420	// non-interface field appearing in ForceSendFields will be sent to the
26421	// server regardless of whether the field is empty or not. This may be
26422	// used to include empty fields in Patch requests.
26423	ForceSendFields []string `json:"-"`
26424
26425	// NullFields is a list of field names (e.g. "Id") to include in API
26426	// requests with the JSON null value. By default, fields with empty
26427	// values are omitted from API requests. However, any field with an
26428	// empty value appearing in NullFields will be sent to the server as
26429	// null. It is an error if a field in this list has a non-empty value.
26430	// This may be used to include null fields in Patch requests.
26431	NullFields []string `json:"-"`
26432}
26433
26434func (s *PacketMirroringList) MarshalJSON() ([]byte, error) {
26435	type NoMethod PacketMirroringList
26436	raw := NoMethod(*s)
26437	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26438}
26439
26440// PacketMirroringListWarning: [Output Only] Informational warning
26441// message.
26442type PacketMirroringListWarning struct {
26443	// Code: [Output Only] A warning code, if applicable. For example,
26444	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26445	// the response.
26446	//
26447	// Possible values:
26448	//   "CLEANUP_FAILED"
26449	//   "DEPRECATED_RESOURCE_USED"
26450	//   "DEPRECATED_TYPE_USED"
26451	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26452	//   "EXPERIMENTAL_TYPE_USED"
26453	//   "EXTERNAL_API_WARNING"
26454	//   "FIELD_VALUE_OVERRIDEN"
26455	//   "INJECTED_KERNELS_DEPRECATED"
26456	//   "MISSING_TYPE_DEPENDENCY"
26457	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26458	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26459	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26460	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26461	//   "NEXT_HOP_NOT_RUNNING"
26462	//   "NOT_CRITICAL_ERROR"
26463	//   "NO_RESULTS_ON_PAGE"
26464	//   "REQUIRED_TOS_AGREEMENT"
26465	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26466	//   "RESOURCE_NOT_DELETED"
26467	//   "SCHEMA_VALIDATION_IGNORED"
26468	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26469	//   "UNDECLARED_PROPERTIES"
26470	//   "UNREACHABLE"
26471	Code string `json:"code,omitempty"`
26472
26473	// Data: [Output Only] Metadata about this warning in key: value format.
26474	// For example:
26475	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26476	Data []*PacketMirroringListWarningData `json:"data,omitempty"`
26477
26478	// Message: [Output Only] A human-readable description of the warning
26479	// code.
26480	Message string `json:"message,omitempty"`
26481
26482	// ForceSendFields is a list of field names (e.g. "Code") to
26483	// unconditionally include in API requests. By default, fields with
26484	// empty values are omitted from API requests. However, any non-pointer,
26485	// non-interface field appearing in ForceSendFields will be sent to the
26486	// server regardless of whether the field is empty or not. This may be
26487	// used to include empty fields in Patch requests.
26488	ForceSendFields []string `json:"-"`
26489
26490	// NullFields is a list of field names (e.g. "Code") to include in API
26491	// requests with the JSON null value. By default, fields with empty
26492	// values are omitted from API requests. However, any field with an
26493	// empty value appearing in NullFields will be sent to the server as
26494	// null. It is an error if a field in this list has a non-empty value.
26495	// This may be used to include null fields in Patch requests.
26496	NullFields []string `json:"-"`
26497}
26498
26499func (s *PacketMirroringListWarning) MarshalJSON() ([]byte, error) {
26500	type NoMethod PacketMirroringListWarning
26501	raw := NoMethod(*s)
26502	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26503}
26504
26505type PacketMirroringListWarningData struct {
26506	// Key: [Output Only] A key that provides more detail on the warning
26507	// being returned. For example, for warnings where there are no results
26508	// in a list request for a particular zone, this key might be scope and
26509	// the key value might be the zone name. Other examples might be a key
26510	// indicating a deprecated resource and a suggested replacement, or a
26511	// warning about invalid network settings (for example, if an instance
26512	// attempts to perform IP forwarding but is not enabled for IP
26513	// forwarding).
26514	Key string `json:"key,omitempty"`
26515
26516	// Value: [Output Only] A warning data value corresponding to the key.
26517	Value string `json:"value,omitempty"`
26518
26519	// ForceSendFields is a list of field names (e.g. "Key") to
26520	// unconditionally include in API requests. By default, fields with
26521	// empty values are omitted from API requests. However, any non-pointer,
26522	// non-interface field appearing in ForceSendFields will be sent to the
26523	// server regardless of whether the field is empty or not. This may be
26524	// used to include empty fields in Patch requests.
26525	ForceSendFields []string `json:"-"`
26526
26527	// NullFields is a list of field names (e.g. "Key") to include in API
26528	// requests with the JSON null value. By default, fields with empty
26529	// values are omitted from API requests. However, any field with an
26530	// empty value appearing in NullFields will be sent to the server as
26531	// null. It is an error if a field in this list has a non-empty value.
26532	// This may be used to include null fields in Patch requests.
26533	NullFields []string `json:"-"`
26534}
26535
26536func (s *PacketMirroringListWarningData) MarshalJSON() ([]byte, error) {
26537	type NoMethod PacketMirroringListWarningData
26538	raw := NoMethod(*s)
26539	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26540}
26541
26542type PacketMirroringMirroredResourceInfo struct {
26543	// Instances: A set of virtual machine instances that are being
26544	// mirrored. They must live in zones contained in the same region as
26545	// this packetMirroring.
26546	//
26547	// Note that this config will apply only to those network interfaces of
26548	// the Instances that belong to the network specified in this
26549	// packetMirroring.
26550	//
26551	// You may specify a maximum of 50 Instances.
26552	Instances []*PacketMirroringMirroredResourceInfoInstanceInfo `json:"instances,omitempty"`
26553
26554	// Subnetworks: A set of subnetworks for which traffic from/to all VM
26555	// instances will be mirrored. They must live in the same region as this
26556	// packetMirroring.
26557	//
26558	// You may specify a maximum of 5 subnetworks.
26559	Subnetworks []*PacketMirroringMirroredResourceInfoSubnetInfo `json:"subnetworks,omitempty"`
26560
26561	// Tags: A set of mirrored tags. Traffic from/to all VM instances that
26562	// have one or more of these tags will be mirrored.
26563	Tags []string `json:"tags,omitempty"`
26564
26565	// ForceSendFields is a list of field names (e.g. "Instances") to
26566	// unconditionally include in API requests. By default, fields with
26567	// empty values are omitted from API requests. However, any non-pointer,
26568	// non-interface field appearing in ForceSendFields will be sent to the
26569	// server regardless of whether the field is empty or not. This may be
26570	// used to include empty fields in Patch requests.
26571	ForceSendFields []string `json:"-"`
26572
26573	// NullFields is a list of field names (e.g. "Instances") to include in
26574	// API requests with the JSON null value. By default, fields with empty
26575	// values are omitted from API requests. However, any field with an
26576	// empty value appearing in NullFields will be sent to the server as
26577	// null. It is an error if a field in this list has a non-empty value.
26578	// This may be used to include null fields in Patch requests.
26579	NullFields []string `json:"-"`
26580}
26581
26582func (s *PacketMirroringMirroredResourceInfo) MarshalJSON() ([]byte, error) {
26583	type NoMethod PacketMirroringMirroredResourceInfo
26584	raw := NoMethod(*s)
26585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26586}
26587
26588type PacketMirroringMirroredResourceInfoInstanceInfo struct {
26589	// CanonicalUrl: [Output Only] Unique identifier for the instance;
26590	// defined by the server.
26591	CanonicalUrl string `json:"canonicalUrl,omitempty"`
26592
26593	// Url: Resource URL to the virtual machine instance which is being
26594	// mirrored.
26595	Url string `json:"url,omitempty"`
26596
26597	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
26598	// unconditionally include in API requests. By default, fields with
26599	// empty values are omitted from API requests. However, any non-pointer,
26600	// non-interface field appearing in ForceSendFields will be sent to the
26601	// server regardless of whether the field is empty or not. This may be
26602	// used to include empty fields in Patch requests.
26603	ForceSendFields []string `json:"-"`
26604
26605	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
26606	// in API requests with the JSON null value. By default, fields with
26607	// empty values are omitted from API requests. However, any field with
26608	// an empty value appearing in NullFields will be sent to the server as
26609	// null. It is an error if a field in this list has a non-empty value.
26610	// This may be used to include null fields in Patch requests.
26611	NullFields []string `json:"-"`
26612}
26613
26614func (s *PacketMirroringMirroredResourceInfoInstanceInfo) MarshalJSON() ([]byte, error) {
26615	type NoMethod PacketMirroringMirroredResourceInfoInstanceInfo
26616	raw := NoMethod(*s)
26617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26618}
26619
26620type PacketMirroringMirroredResourceInfoSubnetInfo struct {
26621	// CanonicalUrl: [Output Only] Unique identifier for the subnetwork;
26622	// defined by the server.
26623	CanonicalUrl string `json:"canonicalUrl,omitempty"`
26624
26625	// Url: Resource URL to the subnetwork for which traffic from/to all VM
26626	// instances will be mirrored.
26627	Url string `json:"url,omitempty"`
26628
26629	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
26630	// unconditionally include in API requests. By default, fields with
26631	// empty values are omitted from API requests. However, any non-pointer,
26632	// non-interface field appearing in ForceSendFields will be sent to the
26633	// server regardless of whether the field is empty or not. This may be
26634	// used to include empty fields in Patch requests.
26635	ForceSendFields []string `json:"-"`
26636
26637	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
26638	// in API requests with the JSON null value. By default, fields with
26639	// empty values are omitted from API requests. However, any field with
26640	// an empty value appearing in NullFields will be sent to the server as
26641	// null. It is an error if a field in this list has a non-empty value.
26642	// This may be used to include null fields in Patch requests.
26643	NullFields []string `json:"-"`
26644}
26645
26646func (s *PacketMirroringMirroredResourceInfoSubnetInfo) MarshalJSON() ([]byte, error) {
26647	type NoMethod PacketMirroringMirroredResourceInfoSubnetInfo
26648	raw := NoMethod(*s)
26649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26650}
26651
26652type PacketMirroringNetworkInfo struct {
26653	// CanonicalUrl: [Output Only] Unique identifier for the network;
26654	// defined by the server.
26655	CanonicalUrl string `json:"canonicalUrl,omitempty"`
26656
26657	// Url: URL of the network resource.
26658	Url string `json:"url,omitempty"`
26659
26660	// ForceSendFields is a list of field names (e.g. "CanonicalUrl") to
26661	// unconditionally include in API requests. By default, fields with
26662	// empty values are omitted from API requests. However, any non-pointer,
26663	// non-interface field appearing in ForceSendFields will be sent to the
26664	// server regardless of whether the field is empty or not. This may be
26665	// used to include empty fields in Patch requests.
26666	ForceSendFields []string `json:"-"`
26667
26668	// NullFields is a list of field names (e.g. "CanonicalUrl") to include
26669	// in API requests with the JSON null value. By default, fields with
26670	// empty values are omitted from API requests. However, any field with
26671	// an empty value appearing in NullFields will be sent to the server as
26672	// null. It is an error if a field in this list has a non-empty value.
26673	// This may be used to include null fields in Patch requests.
26674	NullFields []string `json:"-"`
26675}
26676
26677func (s *PacketMirroringNetworkInfo) MarshalJSON() ([]byte, error) {
26678	type NoMethod PacketMirroringNetworkInfo
26679	raw := NoMethod(*s)
26680	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26681}
26682
26683type PacketMirroringsScopedList struct {
26684	// PacketMirrorings: A list of packetMirrorings contained in this scope.
26685	PacketMirrorings []*PacketMirroring `json:"packetMirrorings,omitempty"`
26686
26687	// Warning: Informational warning which replaces the list of
26688	// packetMirrorings when the list is empty.
26689	Warning *PacketMirroringsScopedListWarning `json:"warning,omitempty"`
26690
26691	// ForceSendFields is a list of field names (e.g. "PacketMirrorings") to
26692	// unconditionally include in API requests. By default, fields with
26693	// empty values are omitted from API requests. However, any non-pointer,
26694	// non-interface field appearing in ForceSendFields will be sent to the
26695	// server regardless of whether the field is empty or not. This may be
26696	// used to include empty fields in Patch requests.
26697	ForceSendFields []string `json:"-"`
26698
26699	// NullFields is a list of field names (e.g. "PacketMirrorings") to
26700	// include in API requests with the JSON null value. By default, fields
26701	// with empty values are omitted from API requests. However, any field
26702	// with an empty value appearing in NullFields will be sent to the
26703	// server as null. It is an error if a field in this list has a
26704	// non-empty value. This may be used to include null fields in Patch
26705	// requests.
26706	NullFields []string `json:"-"`
26707}
26708
26709func (s *PacketMirroringsScopedList) MarshalJSON() ([]byte, error) {
26710	type NoMethod PacketMirroringsScopedList
26711	raw := NoMethod(*s)
26712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26713}
26714
26715// PacketMirroringsScopedListWarning: Informational warning which
26716// replaces the list of packetMirrorings when the list is empty.
26717type PacketMirroringsScopedListWarning struct {
26718	// Code: [Output Only] A warning code, if applicable. For example,
26719	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
26720	// the response.
26721	//
26722	// Possible values:
26723	//   "CLEANUP_FAILED"
26724	//   "DEPRECATED_RESOURCE_USED"
26725	//   "DEPRECATED_TYPE_USED"
26726	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
26727	//   "EXPERIMENTAL_TYPE_USED"
26728	//   "EXTERNAL_API_WARNING"
26729	//   "FIELD_VALUE_OVERRIDEN"
26730	//   "INJECTED_KERNELS_DEPRECATED"
26731	//   "MISSING_TYPE_DEPENDENCY"
26732	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
26733	//   "NEXT_HOP_CANNOT_IP_FORWARD"
26734	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
26735	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
26736	//   "NEXT_HOP_NOT_RUNNING"
26737	//   "NOT_CRITICAL_ERROR"
26738	//   "NO_RESULTS_ON_PAGE"
26739	//   "REQUIRED_TOS_AGREEMENT"
26740	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
26741	//   "RESOURCE_NOT_DELETED"
26742	//   "SCHEMA_VALIDATION_IGNORED"
26743	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
26744	//   "UNDECLARED_PROPERTIES"
26745	//   "UNREACHABLE"
26746	Code string `json:"code,omitempty"`
26747
26748	// Data: [Output Only] Metadata about this warning in key: value format.
26749	// For example:
26750	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
26751	Data []*PacketMirroringsScopedListWarningData `json:"data,omitempty"`
26752
26753	// Message: [Output Only] A human-readable description of the warning
26754	// code.
26755	Message string `json:"message,omitempty"`
26756
26757	// ForceSendFields is a list of field names (e.g. "Code") to
26758	// unconditionally include in API requests. By default, fields with
26759	// empty values are omitted from API requests. However, any non-pointer,
26760	// non-interface field appearing in ForceSendFields will be sent to the
26761	// server regardless of whether the field is empty or not. This may be
26762	// used to include empty fields in Patch requests.
26763	ForceSendFields []string `json:"-"`
26764
26765	// NullFields is a list of field names (e.g. "Code") to include in API
26766	// requests with the JSON null value. By default, fields with empty
26767	// values are omitted from API requests. However, any field with an
26768	// empty value appearing in NullFields will be sent to the server as
26769	// null. It is an error if a field in this list has a non-empty value.
26770	// This may be used to include null fields in Patch requests.
26771	NullFields []string `json:"-"`
26772}
26773
26774func (s *PacketMirroringsScopedListWarning) MarshalJSON() ([]byte, error) {
26775	type NoMethod PacketMirroringsScopedListWarning
26776	raw := NoMethod(*s)
26777	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26778}
26779
26780type PacketMirroringsScopedListWarningData struct {
26781	// Key: [Output Only] A key that provides more detail on the warning
26782	// being returned. For example, for warnings where there are no results
26783	// in a list request for a particular zone, this key might be scope and
26784	// the key value might be the zone name. Other examples might be a key
26785	// indicating a deprecated resource and a suggested replacement, or a
26786	// warning about invalid network settings (for example, if an instance
26787	// attempts to perform IP forwarding but is not enabled for IP
26788	// forwarding).
26789	Key string `json:"key,omitempty"`
26790
26791	// Value: [Output Only] A warning data value corresponding to the key.
26792	Value string `json:"value,omitempty"`
26793
26794	// ForceSendFields is a list of field names (e.g. "Key") to
26795	// unconditionally include in API requests. By default, fields with
26796	// empty values are omitted from API requests. However, any non-pointer,
26797	// non-interface field appearing in ForceSendFields will be sent to the
26798	// server regardless of whether the field is empty or not. This may be
26799	// used to include empty fields in Patch requests.
26800	ForceSendFields []string `json:"-"`
26801
26802	// NullFields is a list of field names (e.g. "Key") to include in API
26803	// requests with the JSON null value. By default, fields with empty
26804	// values are omitted from API requests. However, any field with an
26805	// empty value appearing in NullFields will be sent to the server as
26806	// null. It is an error if a field in this list has a non-empty value.
26807	// This may be used to include null fields in Patch requests.
26808	NullFields []string `json:"-"`
26809}
26810
26811func (s *PacketMirroringsScopedListWarningData) MarshalJSON() ([]byte, error) {
26812	type NoMethod PacketMirroringsScopedListWarningData
26813	raw := NoMethod(*s)
26814	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26815}
26816
26817// PathMatcher: A matcher for the path portion of the URL. The
26818// BackendService from the longest-matched rule will serve the URL. If
26819// no rule was matched, the default service will be used.
26820type PathMatcher struct {
26821	// DefaultRouteAction: defaultRouteAction takes effect when none of the
26822	// pathRules or routeRules match. The load balancer performs advanced
26823	// routing actions like URL rewrites, header transformations, etc. prior
26824	// to forwarding the request to the selected backend. If
26825	// defaultRouteAction specifies any weightedBackendServices,
26826	// defaultService must not be set. Conversely if defaultService is set,
26827	// defaultRouteAction cannot contain any  weightedBackendServices.
26828	// Only one of defaultRouteAction or defaultUrlRedirect must be set.
26829	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
26830
26831	// DefaultService: The full or partial URL to the BackendService
26832	// resource. This will be used if none of the pathRules or routeRules
26833	// defined by this PathMatcher are matched. For example, the following
26834	// are all valid URLs to a BackendService resource:
26835	// -
26836	// https://www.googleapis.com/compute/v1/projects/project/global/backendServices/backendService
26837	// - compute/v1/projects/project/global/backendServices/backendService
26838	//
26839	// - global/backendServices/backendService  If defaultRouteAction is
26840	// additionally specified, advanced routing actions like URL Rewrites,
26841	// etc. take effect prior to sending the request to the backend.
26842	// However, if defaultService is specified, defaultRouteAction cannot
26843	// contain any weightedBackendServices. Conversely, if
26844	// defaultRouteAction specifies any weightedBackendServices,
26845	// defaultService must not be specified.
26846	// Only one of defaultService, defaultUrlRedirect  or
26847	// defaultRouteAction.weightedBackendService must be set.
26848	// Authorization requires one or more of the following Google IAM
26849	// permissions on the specified resource default_service:
26850	// - compute.backendBuckets.use
26851	// - compute.backendServices.use
26852	DefaultService string `json:"defaultService,omitempty"`
26853
26854	// DefaultUrlRedirect: When none of the specified pathRules or
26855	// routeRules match, the request is redirected to a URL specified by
26856	// defaultUrlRedirect.
26857	// If defaultUrlRedirect is specified, defaultService or
26858	// defaultRouteAction must not be set.
26859	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
26860
26861	// Description: An optional description of this resource. Provide this
26862	// property when you create the resource.
26863	Description string `json:"description,omitempty"`
26864
26865	// HeaderAction: Specifies changes to request and response headers that
26866	// need to take effect for the selected backendService.
26867	// HeaderAction specified here are applied after the matching
26868	// HttpRouteRule HeaderAction and before the HeaderAction in the UrlMap
26869	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
26870
26871	// Name: The name to which this PathMatcher is referred by the HostRule.
26872	Name string `json:"name,omitempty"`
26873
26874	// PathRules: The list of path rules. Use this list instead of
26875	// routeRules when routing based on simple path matching is all that's
26876	// required. The order by which path rules are specified does not
26877	// matter. Matches are always done on the longest-path-first basis.
26878	// For example: a pathRule with a path /a/b/c/* will match before /a/b/*
26879	// irrespective of the order in which those paths appear in this
26880	// list.
26881	// Within a given pathMatcher, only one of pathRules or routeRules must
26882	// be set.
26883	PathRules []*PathRule `json:"pathRules,omitempty"`
26884
26885	// RouteRules: The list of HTTP route rules. Use this list instead of
26886	// pathRules when advanced route matching and routing actions are
26887	// desired. routeRules are evaluated in order of priority, from the
26888	// lowest to highest number.
26889	// Within a given pathMatcher, you can set only one of pathRules or
26890	// routeRules.
26891	RouteRules []*HttpRouteRule `json:"routeRules,omitempty"`
26892
26893	// ForceSendFields is a list of field names (e.g. "DefaultRouteAction")
26894	// to unconditionally include in API requests. By default, fields with
26895	// empty values are omitted from API requests. However, any non-pointer,
26896	// non-interface field appearing in ForceSendFields will be sent to the
26897	// server regardless of whether the field is empty or not. This may be
26898	// used to include empty fields in Patch requests.
26899	ForceSendFields []string `json:"-"`
26900
26901	// NullFields is a list of field names (e.g. "DefaultRouteAction") to
26902	// include in API requests with the JSON null value. By default, fields
26903	// with empty values are omitted from API requests. However, any field
26904	// with an empty value appearing in NullFields will be sent to the
26905	// server as null. It is an error if a field in this list has a
26906	// non-empty value. This may be used to include null fields in Patch
26907	// requests.
26908	NullFields []string `json:"-"`
26909}
26910
26911func (s *PathMatcher) MarshalJSON() ([]byte, error) {
26912	type NoMethod PathMatcher
26913	raw := NoMethod(*s)
26914	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26915}
26916
26917// PathRule: A path-matching rule for a URL. If matched, will use the
26918// specified BackendService to handle the traffic arriving at this URL.
26919type PathRule struct {
26920	// Paths: The list of path patterns to match. Each must start with / and
26921	// the only place a * is allowed is at the end following a /. The string
26922	// fed to the path matcher does not include any text after the first ?
26923	// or #, and those chars are not allowed here.
26924	Paths []string `json:"paths,omitempty"`
26925
26926	// RouteAction: In response to a matching path, the load balancer
26927	// performs advanced routing actions like URL rewrites, header
26928	// transformations, etc. prior to forwarding the request to the selected
26929	// backend. If routeAction specifies any  weightedBackendServices,
26930	// service must not be set. Conversely if service is set, routeAction
26931	// cannot contain any  weightedBackendServices.
26932	// Only one of routeAction or urlRedirect must be set.
26933	RouteAction *HttpRouteAction `json:"routeAction,omitempty"`
26934
26935	// Service: The full or partial URL of the backend service resource to
26936	// which traffic is directed if this rule is matched. If routeAction is
26937	// additionally specified, advanced routing actions like URL Rewrites,
26938	// etc. take effect prior to sending the request to the backend.
26939	// However, if service is specified, routeAction cannot contain any
26940	// weightedBackendService s. Conversely, if routeAction specifies any
26941	// weightedBackendServices, service must not be specified.
26942	// Only one of urlRedirect, service or
26943	// routeAction.weightedBackendService must be set.
26944	Service string `json:"service,omitempty"`
26945
26946	// UrlRedirect: When a path pattern is matched, the request is
26947	// redirected to a URL specified by urlRedirect.
26948	// If urlRedirect is specified, service or routeAction must not be set.
26949	UrlRedirect *HttpRedirectAction `json:"urlRedirect,omitempty"`
26950
26951	// ForceSendFields is a list of field names (e.g. "Paths") to
26952	// unconditionally include in API requests. By default, fields with
26953	// empty values are omitted from API requests. However, any non-pointer,
26954	// non-interface field appearing in ForceSendFields will be sent to the
26955	// server regardless of whether the field is empty or not. This may be
26956	// used to include empty fields in Patch requests.
26957	ForceSendFields []string `json:"-"`
26958
26959	// NullFields is a list of field names (e.g. "Paths") to include in API
26960	// requests with the JSON null value. By default, fields with empty
26961	// values are omitted from API requests. However, any field with an
26962	// empty value appearing in NullFields will be sent to the server as
26963	// null. It is an error if a field in this list has a non-empty value.
26964	// This may be used to include null fields in Patch requests.
26965	NullFields []string `json:"-"`
26966}
26967
26968func (s *PathRule) MarshalJSON() ([]byte, error) {
26969	type NoMethod PathRule
26970	raw := NoMethod(*s)
26971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
26972}
26973
26974type PerInstanceConfig struct {
26975	// Fingerprint: Fingerprint of this per-instance config. This field may
26976	// be used in optimistic locking. It will be ignored when inserting a
26977	// per-instance config. An up-to-date fingerprint must be provided in
26978	// order to update an existing per-instance config or the field needs to
26979	// be unset.
26980	Fingerprint string `json:"fingerprint,omitempty"`
26981
26982	// Name: The name of the per-instance config and the corresponding
26983	// instance. Serves as a merge key during UpdatePerInstanceConfigs
26984	// operation, i.e. if per-instance config with the same name exists then
26985	// it will be updated, otherwise a new one will be created for the VM
26986	// instance with the same name. An attempt to create a per-instance
26987	// config for a VM instance that either doesn't exist or is not part of
26988	// the group will result in a failure.
26989	Name string `json:"name,omitempty"`
26990
26991	// PreservedState: Intended preserved state for the given instance. Does
26992	// not contain state generated based on Stateful Policy.
26993	PreservedState *PreservedState `json:"preservedState,omitempty"`
26994
26995	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
26996	// unconditionally include in API requests. By default, fields with
26997	// empty values are omitted from API requests. However, any non-pointer,
26998	// non-interface field appearing in ForceSendFields will be sent to the
26999	// server regardless of whether the field is empty or not. This may be
27000	// used to include empty fields in Patch requests.
27001	ForceSendFields []string `json:"-"`
27002
27003	// NullFields is a list of field names (e.g. "Fingerprint") to include
27004	// in API requests with the JSON null value. By default, fields with
27005	// empty values are omitted from API requests. However, any field with
27006	// an empty value appearing in NullFields will be sent to the server as
27007	// null. It is an error if a field in this list has a non-empty value.
27008	// This may be used to include null fields in Patch requests.
27009	NullFields []string `json:"-"`
27010}
27011
27012func (s *PerInstanceConfig) MarshalJSON() ([]byte, error) {
27013	type NoMethod PerInstanceConfig
27014	raw := NoMethod(*s)
27015	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27016}
27017
27018// Policy: An Identity and Access Management (IAM) policy, which
27019// specifies access controls for Google Cloud resources.
27020//
27021//
27022//
27023// A `Policy` is a collection of `bindings`. A `binding` binds one or
27024// more `members` to a single `role`. Members can be user accounts,
27025// service accounts, Google groups, and domains (such as G Suite). A
27026// `role` is a named list of permissions; each `role` can be an IAM
27027// predefined role or a user-created custom role.
27028//
27029// Optionally, a `binding` can specify a `condition`, which is a logical
27030// expression that allows access to a resource only if the expression
27031// evaluates to `true`. A condition can add constraints based on
27032// attributes of the request, the resource, or both.
27033//
27034// **JSON example:**
27035//
27036// { "bindings": [ { "role": "roles/resourcemanager.organizationAdmin",
27037// "members": [ "user:mike@example.com", "group:admins@example.com",
27038// "domain:google.com",
27039// "serviceAccount:my-project-id@appspot.gserviceaccount.com" ] }, {
27040// "role": "roles/resourcemanager.organizationViewer", "members":
27041// ["user:eve@example.com"], "condition": { "title": "expirable access",
27042// "description": "Does not grant access after Sep 2020", "expression":
27043// "request.time < timestamp('2020-10-01T00:00:00.000Z')", } } ],
27044// "etag": "BwWWja0YfJA=", "version": 3 }
27045//
27046// **YAML example:**
27047//
27048// bindings: - members: - user:mike@example.com -
27049// group:admins@example.com - domain:google.com -
27050// serviceAccount:my-project-id@appspot.gserviceaccount.com role:
27051// roles/resourcemanager.organizationAdmin - members: -
27052// user:eve@example.com role: roles/resourcemanager.organizationViewer
27053// condition: title: expirable access description: Does not grant access
27054// after Sep 2020 expression: request.time <
27055// timestamp('2020-10-01T00:00:00.000Z') - etag: BwWWja0YfJA= - version:
27056// 3
27057//
27058// For a description of IAM and its features, see the [IAM
27059// documentation](https://cloud.google.com/iam/docs/).
27060type Policy struct {
27061	// AuditConfigs: Specifies cloud audit logging configuration for this
27062	// policy.
27063	AuditConfigs []*AuditConfig `json:"auditConfigs,omitempty"`
27064
27065	// Bindings: Associates a list of `members` to a `role`. Optionally, may
27066	// specify a `condition` that determines how and when the `bindings` are
27067	// applied. Each of the `bindings` must contain at least one member.
27068	Bindings []*Binding `json:"bindings,omitempty"`
27069
27070	// Etag: `etag` is used for optimistic concurrency control as a way to
27071	// help prevent simultaneous updates of a policy from overwriting each
27072	// other. It is strongly suggested that systems make use of the `etag`
27073	// in the read-modify-write cycle to perform policy updates in order to
27074	// avoid race conditions: An `etag` is returned in the response to
27075	// `getIamPolicy`, and systems are expected to put that etag in the
27076	// request to `setIamPolicy` to ensure that their change will be applied
27077	// to the same version of the policy.
27078	//
27079	// **Important:** If you use IAM Conditions, you must include the `etag`
27080	// field whenever you call `setIamPolicy`. If you omit this field, then
27081	// IAM allows you to overwrite a version `3` policy with a version `1`
27082	// policy, and all of the conditions in the version `3` policy are lost.
27083	Etag string `json:"etag,omitempty"`
27084
27085	IamOwned bool `json:"iamOwned,omitempty"`
27086
27087	// Rules: If more than one rule is specified, the rules are applied in
27088	// the following manner: - All matching LOG rules are always applied. -
27089	// If any DENY/DENY_WITH_LOG rule matches, permission is denied. Logging
27090	// will be applied if one or more matching rule requires logging. -
27091	// Otherwise, if any ALLOW/ALLOW_WITH_LOG rule matches, permission is
27092	// granted. Logging will be applied if one or more matching rule
27093	// requires logging. - Otherwise, if no rule applies, permission is
27094	// denied.
27095	Rules []*Rule `json:"rules,omitempty"`
27096
27097	// Version: Specifies the format of the policy.
27098	//
27099	// Valid values are `0`, `1`, and `3`. Requests that specify an invalid
27100	// value are rejected.
27101	//
27102	// Any operation that affects conditional role bindings must specify
27103	// version `3`. This requirement applies to the following operations:
27104	//
27105	// * Getting a policy that includes a conditional role binding * Adding
27106	// a conditional role binding to a policy * Changing a conditional role
27107	// binding in a policy * Removing any role binding, with or without a
27108	// condition, from a policy that includes conditions
27109	//
27110	// **Important:** If you use IAM Conditions, you must include the `etag`
27111	// field whenever you call `setIamPolicy`. If you omit this field, then
27112	// IAM allows you to overwrite a version `3` policy with a version `1`
27113	// policy, and all of the conditions in the version `3` policy are
27114	// lost.
27115	//
27116	// If a policy does not include any conditions, operations on that
27117	// policy may specify any valid version or leave the field unset.
27118	Version int64 `json:"version,omitempty"`
27119
27120	// ServerResponse contains the HTTP response code and headers from the
27121	// server.
27122	googleapi.ServerResponse `json:"-"`
27123
27124	// ForceSendFields is a list of field names (e.g. "AuditConfigs") to
27125	// unconditionally include in API requests. By default, fields with
27126	// empty values are omitted from API requests. However, any non-pointer,
27127	// non-interface field appearing in ForceSendFields will be sent to the
27128	// server regardless of whether the field is empty or not. This may be
27129	// used to include empty fields in Patch requests.
27130	ForceSendFields []string `json:"-"`
27131
27132	// NullFields is a list of field names (e.g. "AuditConfigs") to include
27133	// in API requests with the JSON null value. By default, fields with
27134	// empty values are omitted from API requests. However, any field with
27135	// an empty value appearing in NullFields will be sent to the server as
27136	// null. It is an error if a field in this list has a non-empty value.
27137	// This may be used to include null fields in Patch requests.
27138	NullFields []string `json:"-"`
27139}
27140
27141func (s *Policy) MarshalJSON() ([]byte, error) {
27142	type NoMethod Policy
27143	raw := NoMethod(*s)
27144	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27145}
27146
27147type PreconfiguredWafSet struct {
27148	// ExpressionSets: List of entities that are currently supported for WAF
27149	// rules.
27150	ExpressionSets []*WafExpressionSet `json:"expressionSets,omitempty"`
27151
27152	// ForceSendFields is a list of field names (e.g. "ExpressionSets") to
27153	// unconditionally include in API requests. By default, fields with
27154	// empty values are omitted from API requests. However, any non-pointer,
27155	// non-interface field appearing in ForceSendFields will be sent to the
27156	// server regardless of whether the field is empty or not. This may be
27157	// used to include empty fields in Patch requests.
27158	ForceSendFields []string `json:"-"`
27159
27160	// NullFields is a list of field names (e.g. "ExpressionSets") to
27161	// include in API requests with the JSON null value. By default, fields
27162	// with empty values are omitted from API requests. However, any field
27163	// with an empty value appearing in NullFields will be sent to the
27164	// server as null. It is an error if a field in this list has a
27165	// non-empty value. This may be used to include null fields in Patch
27166	// requests.
27167	NullFields []string `json:"-"`
27168}
27169
27170func (s *PreconfiguredWafSet) MarshalJSON() ([]byte, error) {
27171	type NoMethod PreconfiguredWafSet
27172	raw := NoMethod(*s)
27173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27174}
27175
27176// PreservedState: Preserved state for a given instance.
27177type PreservedState struct {
27178	// Disks: Preserved disks defined for this instance. This map is keyed
27179	// with the device names of the disks.
27180	Disks map[string]PreservedStatePreservedDisk `json:"disks,omitempty"`
27181
27182	// Metadata: Preserved metadata defined for this instance.
27183	Metadata map[string]string `json:"metadata,omitempty"`
27184
27185	// ForceSendFields is a list of field names (e.g. "Disks") to
27186	// unconditionally include in API requests. By default, fields with
27187	// empty values are omitted from API requests. However, any non-pointer,
27188	// non-interface field appearing in ForceSendFields will be sent to the
27189	// server regardless of whether the field is empty or not. This may be
27190	// used to include empty fields in Patch requests.
27191	ForceSendFields []string `json:"-"`
27192
27193	// NullFields is a list of field names (e.g. "Disks") to include in API
27194	// requests with the JSON null value. By default, fields with empty
27195	// values are omitted from API requests. However, any field with an
27196	// empty value appearing in NullFields will be sent to the server as
27197	// null. It is an error if a field in this list has a non-empty value.
27198	// This may be used to include null fields in Patch requests.
27199	NullFields []string `json:"-"`
27200}
27201
27202func (s *PreservedState) MarshalJSON() ([]byte, error) {
27203	type NoMethod PreservedState
27204	raw := NoMethod(*s)
27205	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27206}
27207
27208type PreservedStatePreservedDisk struct {
27209	// AutoDelete: These stateful disks will never be deleted during
27210	// autohealing, update, instance recreate operations. This flag is used
27211	// to configure if the disk should be deleted after it is no longer used
27212	// by the group, e.g. when the given instance or the whole MIG is
27213	// deleted. Note: disks attached in READ_ONLY mode cannot be
27214	// auto-deleted.
27215	//
27216	// Possible values:
27217	//   "NEVER"
27218	//   "ON_PERMANENT_INSTANCE_DELETION"
27219	AutoDelete string `json:"autoDelete,omitempty"`
27220
27221	// Mode: The mode in which to attach this disk, either READ_WRITE or
27222	// READ_ONLY. If not specified, the default is to attach the disk in
27223	// READ_WRITE mode.
27224	//
27225	// Possible values:
27226	//   "READ_ONLY"
27227	//   "READ_WRITE"
27228	Mode string `json:"mode,omitempty"`
27229
27230	// Source: The URL of the disk resource that is stateful and should be
27231	// attached to the VM instance.
27232	Source string `json:"source,omitempty"`
27233
27234	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
27235	// unconditionally include in API requests. By default, fields with
27236	// empty values are omitted from API requests. However, any non-pointer,
27237	// non-interface field appearing in ForceSendFields will be sent to the
27238	// server regardless of whether the field is empty or not. This may be
27239	// used to include empty fields in Patch requests.
27240	ForceSendFields []string `json:"-"`
27241
27242	// NullFields is a list of field names (e.g. "AutoDelete") to include in
27243	// API requests with the JSON null value. By default, fields with empty
27244	// values are omitted from API requests. However, any field with an
27245	// empty value appearing in NullFields will be sent to the server as
27246	// null. It is an error if a field in this list has a non-empty value.
27247	// This may be used to include null fields in Patch requests.
27248	NullFields []string `json:"-"`
27249}
27250
27251func (s *PreservedStatePreservedDisk) MarshalJSON() ([]byte, error) {
27252	type NoMethod PreservedStatePreservedDisk
27253	raw := NoMethod(*s)
27254	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27255}
27256
27257// Project: Represents a Project resource.
27258//
27259// A project is used to organize resources in a Google Cloud Platform
27260// environment. For more information, read about the  Resource
27261// Hierarchy. (== resource_for {$api_version}.projects ==)
27262type Project struct {
27263	// CommonInstanceMetadata: Metadata key/value pairs available to all
27264	// instances contained in this project. See Custom metadata for more
27265	// information.
27266	CommonInstanceMetadata *Metadata `json:"commonInstanceMetadata,omitempty"`
27267
27268	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27269	// format.
27270	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27271
27272	// DefaultNetworkTier: This signifies the default network tier used for
27273	// configuring resources of the project and can only take the following
27274	// values: PREMIUM, STANDARD. Initially the default network tier is
27275	// PREMIUM.
27276	//
27277	// Possible values:
27278	//   "PREMIUM"
27279	//   "STANDARD"
27280	DefaultNetworkTier string `json:"defaultNetworkTier,omitempty"`
27281
27282	// DefaultServiceAccount: [Output Only] Default service account used by
27283	// VMs running in this project.
27284	DefaultServiceAccount string `json:"defaultServiceAccount,omitempty"`
27285
27286	// Description: An optional textual description of the resource.
27287	Description string `json:"description,omitempty"`
27288
27289	// EnabledFeatures: Restricted features enabled for use on this project.
27290	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
27291
27292	// Id: [Output Only] The unique identifier for the resource. This
27293	// identifier is defined by the server. This is not the project ID, and
27294	// is just a unique ID used by Compute Engine to identify resources.
27295	Id uint64 `json:"id,omitempty,string"`
27296
27297	// Kind: [Output Only] Type of the resource. Always compute#project for
27298	// projects.
27299	Kind string `json:"kind,omitempty"`
27300
27301	// Name: The project ID. For example: my-example-project. Use the
27302	// project ID to make requests to Compute Engine.
27303	Name string `json:"name,omitempty"`
27304
27305	// Quotas: [Output Only] Quotas assigned to this project.
27306	Quotas []*Quota `json:"quotas,omitempty"`
27307
27308	// SelfLink: [Output Only] Server-defined URL for the resource.
27309	SelfLink string `json:"selfLink,omitempty"`
27310
27311	// UsageExportLocation: The naming prefix for daily usage reports and
27312	// the Google Cloud Storage bucket where they are stored.
27313	UsageExportLocation *UsageExportLocation `json:"usageExportLocation,omitempty"`
27314
27315	// XpnProjectStatus: [Output Only] The role this project has in a shared
27316	// VPC configuration. Currently only HOST projects are differentiated.
27317	//
27318	// Possible values:
27319	//   "HOST"
27320	//   "UNSPECIFIED_XPN_PROJECT_STATUS"
27321	XpnProjectStatus string `json:"xpnProjectStatus,omitempty"`
27322
27323	// ServerResponse contains the HTTP response code and headers from the
27324	// server.
27325	googleapi.ServerResponse `json:"-"`
27326
27327	// ForceSendFields is a list of field names (e.g.
27328	// "CommonInstanceMetadata") to unconditionally include in API requests.
27329	// By default, fields with empty values are omitted from API requests.
27330	// However, any non-pointer, non-interface field appearing in
27331	// ForceSendFields will be sent to the server regardless of whether the
27332	// field is empty or not. This may be used to include empty fields in
27333	// Patch requests.
27334	ForceSendFields []string `json:"-"`
27335
27336	// NullFields is a list of field names (e.g. "CommonInstanceMetadata")
27337	// to include in API requests with the JSON null value. By default,
27338	// fields with empty values are omitted from API requests. However, any
27339	// field with an empty value appearing in NullFields will be sent to the
27340	// server as null. It is an error if a field in this list has a
27341	// non-empty value. This may be used to include null fields in Patch
27342	// requests.
27343	NullFields []string `json:"-"`
27344}
27345
27346func (s *Project) MarshalJSON() ([]byte, error) {
27347	type NoMethod Project
27348	raw := NoMethod(*s)
27349	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27350}
27351
27352type ProjectsDisableXpnResourceRequest struct {
27353	// XpnResource: Service resource (a.k.a service project) ID.
27354	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
27355
27356	// ForceSendFields is a list of field names (e.g. "XpnResource") to
27357	// unconditionally include in API requests. By default, fields with
27358	// empty values are omitted from API requests. However, any non-pointer,
27359	// non-interface field appearing in ForceSendFields will be sent to the
27360	// server regardless of whether the field is empty or not. This may be
27361	// used to include empty fields in Patch requests.
27362	ForceSendFields []string `json:"-"`
27363
27364	// NullFields is a list of field names (e.g. "XpnResource") to include
27365	// in API requests with the JSON null value. By default, fields with
27366	// empty values are omitted from API requests. However, any field with
27367	// an empty value appearing in NullFields will be sent to the server as
27368	// null. It is an error if a field in this list has a non-empty value.
27369	// This may be used to include null fields in Patch requests.
27370	NullFields []string `json:"-"`
27371}
27372
27373func (s *ProjectsDisableXpnResourceRequest) MarshalJSON() ([]byte, error) {
27374	type NoMethod ProjectsDisableXpnResourceRequest
27375	raw := NoMethod(*s)
27376	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27377}
27378
27379type ProjectsEnableXpnResourceRequest struct {
27380	// XpnResource: Service resource (a.k.a service project) ID.
27381	XpnResource *XpnResourceId `json:"xpnResource,omitempty"`
27382
27383	// ForceSendFields is a list of field names (e.g. "XpnResource") to
27384	// unconditionally include in API requests. By default, fields with
27385	// empty values are omitted from API requests. However, any non-pointer,
27386	// non-interface field appearing in ForceSendFields will be sent to the
27387	// server regardless of whether the field is empty or not. This may be
27388	// used to include empty fields in Patch requests.
27389	ForceSendFields []string `json:"-"`
27390
27391	// NullFields is a list of field names (e.g. "XpnResource") to include
27392	// in API requests with the JSON null value. By default, fields with
27393	// empty values are omitted from API requests. However, any field with
27394	// an empty value appearing in NullFields will be sent to the server as
27395	// null. It is an error if a field in this list has a non-empty value.
27396	// This may be used to include null fields in Patch requests.
27397	NullFields []string `json:"-"`
27398}
27399
27400func (s *ProjectsEnableXpnResourceRequest) MarshalJSON() ([]byte, error) {
27401	type NoMethod ProjectsEnableXpnResourceRequest
27402	raw := NoMethod(*s)
27403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27404}
27405
27406type ProjectsGetXpnResources struct {
27407	// Kind: [Output Only] Type of resource. Always
27408	// compute#projectsGetXpnResources for lists of service resources (a.k.a
27409	// service projects)
27410	Kind string `json:"kind,omitempty"`
27411
27412	// NextPageToken: [Output Only] This token allows you to get the next
27413	// page of results for list requests. If the number of results is larger
27414	// than maxResults, use the nextPageToken as a value for the query
27415	// parameter pageToken in the next list request. Subsequent list
27416	// requests will have their own nextPageToken to continue paging through
27417	// the results.
27418	NextPageToken string `json:"nextPageToken,omitempty"`
27419
27420	// Resources: Service resources (a.k.a service projects) attached to
27421	// this project as their shared VPC host.
27422	Resources []*XpnResourceId `json:"resources,omitempty"`
27423
27424	// ServerResponse contains the HTTP response code and headers from the
27425	// server.
27426	googleapi.ServerResponse `json:"-"`
27427
27428	// ForceSendFields is a list of field names (e.g. "Kind") to
27429	// unconditionally include in API requests. By default, fields with
27430	// empty values are omitted from API requests. However, any non-pointer,
27431	// non-interface field appearing in ForceSendFields will be sent to the
27432	// server regardless of whether the field is empty or not. This may be
27433	// used to include empty fields in Patch requests.
27434	ForceSendFields []string `json:"-"`
27435
27436	// NullFields is a list of field names (e.g. "Kind") to include in API
27437	// requests with the JSON null value. By default, fields with empty
27438	// values are omitted from API requests. However, any field with an
27439	// empty value appearing in NullFields will be sent to the server as
27440	// null. It is an error if a field in this list has a non-empty value.
27441	// This may be used to include null fields in Patch requests.
27442	NullFields []string `json:"-"`
27443}
27444
27445func (s *ProjectsGetXpnResources) MarshalJSON() ([]byte, error) {
27446	type NoMethod ProjectsGetXpnResources
27447	raw := NoMethod(*s)
27448	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27449}
27450
27451type ProjectsListXpnHostsRequest struct {
27452	// Organization: Optional organization ID managed by Cloud Resource
27453	// Manager, for which to list shared VPC host projects. If not
27454	// specified, the organization will be inferred from the project.
27455	Organization string `json:"organization,omitempty"`
27456
27457	// ForceSendFields is a list of field names (e.g. "Organization") to
27458	// unconditionally include in API requests. By default, fields with
27459	// empty values are omitted from API requests. However, any non-pointer,
27460	// non-interface field appearing in ForceSendFields will be sent to the
27461	// server regardless of whether the field is empty or not. This may be
27462	// used to include empty fields in Patch requests.
27463	ForceSendFields []string `json:"-"`
27464
27465	// NullFields is a list of field names (e.g. "Organization") to include
27466	// in API requests with the JSON null value. By default, fields with
27467	// empty values are omitted from API requests. However, any field with
27468	// an empty value appearing in NullFields will be sent to the server as
27469	// null. It is an error if a field in this list has a non-empty value.
27470	// This may be used to include null fields in Patch requests.
27471	NullFields []string `json:"-"`
27472}
27473
27474func (s *ProjectsListXpnHostsRequest) MarshalJSON() ([]byte, error) {
27475	type NoMethod ProjectsListXpnHostsRequest
27476	raw := NoMethod(*s)
27477	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27478}
27479
27480type ProjectsSetDefaultNetworkTierRequest struct {
27481	// NetworkTier: Default network tier to be set.
27482	//
27483	// Possible values:
27484	//   "PREMIUM"
27485	//   "STANDARD"
27486	NetworkTier string `json:"networkTier,omitempty"`
27487
27488	// ForceSendFields is a list of field names (e.g. "NetworkTier") to
27489	// unconditionally include in API requests. By default, fields with
27490	// empty values are omitted from API requests. However, any non-pointer,
27491	// non-interface field appearing in ForceSendFields will be sent to the
27492	// server regardless of whether the field is empty or not. This may be
27493	// used to include empty fields in Patch requests.
27494	ForceSendFields []string `json:"-"`
27495
27496	// NullFields is a list of field names (e.g. "NetworkTier") to include
27497	// in API requests with the JSON null value. By default, fields with
27498	// empty values are omitted from API requests. However, any field with
27499	// an empty value appearing in NullFields will be sent to the server as
27500	// null. It is an error if a field in this list has a non-empty value.
27501	// This may be used to include null fields in Patch requests.
27502	NullFields []string `json:"-"`
27503}
27504
27505func (s *ProjectsSetDefaultNetworkTierRequest) MarshalJSON() ([]byte, error) {
27506	type NoMethod ProjectsSetDefaultNetworkTierRequest
27507	raw := NoMethod(*s)
27508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27509}
27510
27511// Quota: A quotas entry.
27512type Quota struct {
27513	// Limit: [Output Only] Quota limit for this metric.
27514	Limit float64 `json:"limit,omitempty"`
27515
27516	// Metric: [Output Only] Name of the quota metric.
27517	//
27518	// Possible values:
27519	//   "AUTOSCALERS"
27520	//   "BACKEND_BUCKETS"
27521	//   "BACKEND_SERVICES"
27522	//   "C2_CPUS"
27523	//   "COMMITMENTS"
27524	//   "COMMITTED_C2_CPUS"
27525	//   "COMMITTED_CPUS"
27526	//   "COMMITTED_LICENSES"
27527	//   "COMMITTED_LOCAL_SSD_TOTAL_GB"
27528	//   "COMMITTED_N2D_CPUS"
27529	//   "COMMITTED_N2_CPUS"
27530	//   "COMMITTED_NVIDIA_K80_GPUS"
27531	//   "COMMITTED_NVIDIA_P100_GPUS"
27532	//   "COMMITTED_NVIDIA_P4_GPUS"
27533	//   "COMMITTED_NVIDIA_T4_GPUS"
27534	//   "COMMITTED_NVIDIA_V100_GPUS"
27535	//   "CPUS"
27536	//   "CPUS_ALL_REGIONS"
27537	//   "DISKS_TOTAL_GB"
27538	//   "EXTERNAL_VPN_GATEWAYS"
27539	//   "FIREWALLS"
27540	//   "FORWARDING_RULES"
27541	//   "GLOBAL_INTERNAL_ADDRESSES"
27542	//   "GPUS_ALL_REGIONS"
27543	//   "HEALTH_CHECKS"
27544	//   "IMAGES"
27545	//   "INSTANCES"
27546	//   "INSTANCE_GROUPS"
27547	//   "INSTANCE_GROUP_MANAGERS"
27548	//   "INSTANCE_TEMPLATES"
27549	//   "INTERCONNECTS"
27550	//   "INTERCONNECT_ATTACHMENTS_PER_REGION"
27551	//   "INTERCONNECT_ATTACHMENTS_TOTAL_MBPS"
27552	//   "INTERCONNECT_TOTAL_GBPS"
27553	//   "INTERNAL_ADDRESSES"
27554	//   "IN_USE_ADDRESSES"
27555	//   "IN_USE_BACKUP_SCHEDULES"
27556	//   "IN_USE_SNAPSHOT_SCHEDULES"
27557	//   "LOCAL_SSD_TOTAL_GB"
27558	//   "MACHINE_IMAGES"
27559	//   "N2D_CPUS"
27560	//   "N2_CPUS"
27561	//   "NETWORKS"
27562	//   "NETWORK_ENDPOINT_GROUPS"
27563	//   "NVIDIA_K80_GPUS"
27564	//   "NVIDIA_P100_GPUS"
27565	//   "NVIDIA_P100_VWS_GPUS"
27566	//   "NVIDIA_P4_GPUS"
27567	//   "NVIDIA_P4_VWS_GPUS"
27568	//   "NVIDIA_T4_GPUS"
27569	//   "NVIDIA_T4_VWS_GPUS"
27570	//   "NVIDIA_V100_GPUS"
27571	//   "PACKET_MIRRORINGS"
27572	//   "PREEMPTIBLE_CPUS"
27573	//   "PREEMPTIBLE_LOCAL_SSD_GB"
27574	//   "PREEMPTIBLE_NVIDIA_K80_GPUS"
27575	//   "PREEMPTIBLE_NVIDIA_P100_GPUS"
27576	//   "PREEMPTIBLE_NVIDIA_P100_VWS_GPUS"
27577	//   "PREEMPTIBLE_NVIDIA_P4_GPUS"
27578	//   "PREEMPTIBLE_NVIDIA_P4_VWS_GPUS"
27579	//   "PREEMPTIBLE_NVIDIA_T4_GPUS"
27580	//   "PREEMPTIBLE_NVIDIA_T4_VWS_GPUS"
27581	//   "PREEMPTIBLE_NVIDIA_V100_GPUS"
27582	//   "PRIVATE_V6_ACCESS_SUBNETWORKS"
27583	//   "REGIONAL_AUTOSCALERS"
27584	//   "REGIONAL_INSTANCE_GROUP_MANAGERS"
27585	//   "RESERVATIONS"
27586	//   "RESOURCE_POLICIES"
27587	//   "ROUTERS"
27588	//   "ROUTES"
27589	//   "SECURITY_POLICIES"
27590	//   "SECURITY_POLICY_CEVAL_RULES"
27591	//   "SECURITY_POLICY_RULES"
27592	//   "SNAPSHOTS"
27593	//   "SSD_TOTAL_GB"
27594	//   "SSL_CERTIFICATES"
27595	//   "STATIC_ADDRESSES"
27596	//   "SUBNETWORKS"
27597	//   "TARGET_HTTPS_PROXIES"
27598	//   "TARGET_HTTP_PROXIES"
27599	//   "TARGET_INSTANCES"
27600	//   "TARGET_POOLS"
27601	//   "TARGET_SSL_PROXIES"
27602	//   "TARGET_TCP_PROXIES"
27603	//   "TARGET_VPN_GATEWAYS"
27604	//   "URL_MAPS"
27605	//   "VPN_GATEWAYS"
27606	//   "VPN_TUNNELS"
27607	Metric string `json:"metric,omitempty"`
27608
27609	// Owner: [Output Only] Owning resource. This is the resource on which
27610	// this quota is applied.
27611	Owner string `json:"owner,omitempty"`
27612
27613	// Usage: [Output Only] Current usage of this metric.
27614	Usage float64 `json:"usage,omitempty"`
27615
27616	// ForceSendFields is a list of field names (e.g. "Limit") to
27617	// unconditionally include in API requests. By default, fields with
27618	// empty values are omitted from API requests. However, any non-pointer,
27619	// non-interface field appearing in ForceSendFields will be sent to the
27620	// server regardless of whether the field is empty or not. This may be
27621	// used to include empty fields in Patch requests.
27622	ForceSendFields []string `json:"-"`
27623
27624	// NullFields is a list of field names (e.g. "Limit") to include in API
27625	// requests with the JSON null value. By default, fields with empty
27626	// values are omitted from API requests. However, any field with an
27627	// empty value appearing in NullFields will be sent to the server as
27628	// null. It is an error if a field in this list has a non-empty value.
27629	// This may be used to include null fields in Patch requests.
27630	NullFields []string `json:"-"`
27631}
27632
27633func (s *Quota) MarshalJSON() ([]byte, error) {
27634	type NoMethod Quota
27635	raw := NoMethod(*s)
27636	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27637}
27638
27639func (s *Quota) UnmarshalJSON(data []byte) error {
27640	type NoMethod Quota
27641	var s1 struct {
27642		Limit gensupport.JSONFloat64 `json:"limit"`
27643		Usage gensupport.JSONFloat64 `json:"usage"`
27644		*NoMethod
27645	}
27646	s1.NoMethod = (*NoMethod)(s)
27647	if err := json.Unmarshal(data, &s1); err != nil {
27648		return err
27649	}
27650	s.Limit = float64(s1.Limit)
27651	s.Usage = float64(s1.Usage)
27652	return nil
27653}
27654
27655// Reference: Represents a reference to a resource.
27656type Reference struct {
27657	// Kind: [Output Only] Type of the resource. Always compute#reference
27658	// for references.
27659	Kind string `json:"kind,omitempty"`
27660
27661	// ReferenceType: A description of the reference type with no implied
27662	// semantics. Possible values include:
27663	// - MEMBER_OF
27664	ReferenceType string `json:"referenceType,omitempty"`
27665
27666	// Referrer: URL of the resource which refers to the target.
27667	Referrer string `json:"referrer,omitempty"`
27668
27669	// Target: URL of the resource to which this reference points.
27670	Target string `json:"target,omitempty"`
27671
27672	// ForceSendFields is a list of field names (e.g. "Kind") to
27673	// unconditionally include in API requests. By default, fields with
27674	// empty values are omitted from API requests. However, any non-pointer,
27675	// non-interface field appearing in ForceSendFields will be sent to the
27676	// server regardless of whether the field is empty or not. This may be
27677	// used to include empty fields in Patch requests.
27678	ForceSendFields []string `json:"-"`
27679
27680	// NullFields is a list of field names (e.g. "Kind") to include in API
27681	// requests with the JSON null value. By default, fields with empty
27682	// values are omitted from API requests. However, any field with an
27683	// empty value appearing in NullFields will be sent to the server as
27684	// null. It is an error if a field in this list has a non-empty value.
27685	// This may be used to include null fields in Patch requests.
27686	NullFields []string `json:"-"`
27687}
27688
27689func (s *Reference) MarshalJSON() ([]byte, error) {
27690	type NoMethod Reference
27691	raw := NoMethod(*s)
27692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27693}
27694
27695// Region: Represents a Region resource.
27696//
27697// A region is a geographical area where a resource is located. For more
27698// information, read Regions and Zones. (== resource_for
27699// {$api_version}.regions ==)
27700type Region struct {
27701	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
27702	// format.
27703	CreationTimestamp string `json:"creationTimestamp,omitempty"`
27704
27705	// Deprecated: [Output Only] The deprecation status associated with this
27706	// region.
27707	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
27708
27709	// Description: [Output Only] Textual description of the resource.
27710	Description string `json:"description,omitempty"`
27711
27712	// Id: [Output Only] The unique identifier for the resource. This
27713	// identifier is defined by the server.
27714	Id uint64 `json:"id,omitempty,string"`
27715
27716	// Kind: [Output Only] Type of the resource. Always compute#region for
27717	// regions.
27718	Kind string `json:"kind,omitempty"`
27719
27720	// Name: [Output Only] Name of the resource.
27721	Name string `json:"name,omitempty"`
27722
27723	// Quotas: [Output Only] Quotas assigned to this region.
27724	Quotas []*Quota `json:"quotas,omitempty"`
27725
27726	// SelfLink: [Output Only] Server-defined URL for the resource.
27727	SelfLink string `json:"selfLink,omitempty"`
27728
27729	// Status: [Output Only] Status of the region, either UP or DOWN.
27730	//
27731	// Possible values:
27732	//   "DOWN"
27733	//   "UP"
27734	Status string `json:"status,omitempty"`
27735
27736	// Zones: [Output Only] A list of zones available in this region, in the
27737	// form of resource URLs.
27738	Zones []string `json:"zones,omitempty"`
27739
27740	// ServerResponse contains the HTTP response code and headers from the
27741	// server.
27742	googleapi.ServerResponse `json:"-"`
27743
27744	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
27745	// to unconditionally include in API requests. By default, fields with
27746	// empty values are omitted from API requests. However, any non-pointer,
27747	// non-interface field appearing in ForceSendFields will be sent to the
27748	// server regardless of whether the field is empty or not. This may be
27749	// used to include empty fields in Patch requests.
27750	ForceSendFields []string `json:"-"`
27751
27752	// NullFields is a list of field names (e.g. "CreationTimestamp") to
27753	// include in API requests with the JSON null value. By default, fields
27754	// with empty values are omitted from API requests. However, any field
27755	// with an empty value appearing in NullFields will be sent to the
27756	// server as null. It is an error if a field in this list has a
27757	// non-empty value. This may be used to include null fields in Patch
27758	// requests.
27759	NullFields []string `json:"-"`
27760}
27761
27762func (s *Region) MarshalJSON() ([]byte, error) {
27763	type NoMethod Region
27764	raw := NoMethod(*s)
27765	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27766}
27767
27768// RegionAutoscalerList: Contains a list of autoscalers.
27769type RegionAutoscalerList struct {
27770	// Id: [Output Only] Unique identifier for the resource; defined by the
27771	// server.
27772	Id string `json:"id,omitempty"`
27773
27774	// Items: A list of Autoscaler resources.
27775	Items []*Autoscaler `json:"items,omitempty"`
27776
27777	// Kind: Type of resource.
27778	Kind string `json:"kind,omitempty"`
27779
27780	// NextPageToken: [Output Only] This token allows you to get the next
27781	// page of results for list requests. If the number of results is larger
27782	// than maxResults, use the nextPageToken as a value for the query
27783	// parameter pageToken in the next list request. Subsequent list
27784	// requests will have their own nextPageToken to continue paging through
27785	// the results.
27786	NextPageToken string `json:"nextPageToken,omitempty"`
27787
27788	// SelfLink: [Output Only] Server-defined URL for this resource.
27789	SelfLink string `json:"selfLink,omitempty"`
27790
27791	// Warning: [Output Only] Informational warning message.
27792	Warning *RegionAutoscalerListWarning `json:"warning,omitempty"`
27793
27794	// ServerResponse contains the HTTP response code and headers from the
27795	// server.
27796	googleapi.ServerResponse `json:"-"`
27797
27798	// ForceSendFields is a list of field names (e.g. "Id") to
27799	// unconditionally include in API requests. By default, fields with
27800	// empty values are omitted from API requests. However, any non-pointer,
27801	// non-interface field appearing in ForceSendFields will be sent to the
27802	// server regardless of whether the field is empty or not. This may be
27803	// used to include empty fields in Patch requests.
27804	ForceSendFields []string `json:"-"`
27805
27806	// NullFields is a list of field names (e.g. "Id") to include in API
27807	// requests with the JSON null value. By default, fields with empty
27808	// values are omitted from API requests. However, any field with an
27809	// empty value appearing in NullFields will be sent to the server as
27810	// null. It is an error if a field in this list has a non-empty value.
27811	// This may be used to include null fields in Patch requests.
27812	NullFields []string `json:"-"`
27813}
27814
27815func (s *RegionAutoscalerList) MarshalJSON() ([]byte, error) {
27816	type NoMethod RegionAutoscalerList
27817	raw := NoMethod(*s)
27818	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27819}
27820
27821// RegionAutoscalerListWarning: [Output Only] Informational warning
27822// message.
27823type RegionAutoscalerListWarning struct {
27824	// Code: [Output Only] A warning code, if applicable. For example,
27825	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
27826	// the response.
27827	//
27828	// Possible values:
27829	//   "CLEANUP_FAILED"
27830	//   "DEPRECATED_RESOURCE_USED"
27831	//   "DEPRECATED_TYPE_USED"
27832	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
27833	//   "EXPERIMENTAL_TYPE_USED"
27834	//   "EXTERNAL_API_WARNING"
27835	//   "FIELD_VALUE_OVERRIDEN"
27836	//   "INJECTED_KERNELS_DEPRECATED"
27837	//   "MISSING_TYPE_DEPENDENCY"
27838	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
27839	//   "NEXT_HOP_CANNOT_IP_FORWARD"
27840	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
27841	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
27842	//   "NEXT_HOP_NOT_RUNNING"
27843	//   "NOT_CRITICAL_ERROR"
27844	//   "NO_RESULTS_ON_PAGE"
27845	//   "REQUIRED_TOS_AGREEMENT"
27846	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
27847	//   "RESOURCE_NOT_DELETED"
27848	//   "SCHEMA_VALIDATION_IGNORED"
27849	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
27850	//   "UNDECLARED_PROPERTIES"
27851	//   "UNREACHABLE"
27852	Code string `json:"code,omitempty"`
27853
27854	// Data: [Output Only] Metadata about this warning in key: value format.
27855	// For example:
27856	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
27857	Data []*RegionAutoscalerListWarningData `json:"data,omitempty"`
27858
27859	// Message: [Output Only] A human-readable description of the warning
27860	// code.
27861	Message string `json:"message,omitempty"`
27862
27863	// ForceSendFields is a list of field names (e.g. "Code") to
27864	// unconditionally include in API requests. By default, fields with
27865	// empty values are omitted from API requests. However, any non-pointer,
27866	// non-interface field appearing in ForceSendFields will be sent to the
27867	// server regardless of whether the field is empty or not. This may be
27868	// used to include empty fields in Patch requests.
27869	ForceSendFields []string `json:"-"`
27870
27871	// NullFields is a list of field names (e.g. "Code") to include in API
27872	// requests with the JSON null value. By default, fields with empty
27873	// values are omitted from API requests. However, any field with an
27874	// empty value appearing in NullFields will be sent to the server as
27875	// null. It is an error if a field in this list has a non-empty value.
27876	// This may be used to include null fields in Patch requests.
27877	NullFields []string `json:"-"`
27878}
27879
27880func (s *RegionAutoscalerListWarning) MarshalJSON() ([]byte, error) {
27881	type NoMethod RegionAutoscalerListWarning
27882	raw := NoMethod(*s)
27883	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27884}
27885
27886type RegionAutoscalerListWarningData struct {
27887	// Key: [Output Only] A key that provides more detail on the warning
27888	// being returned. For example, for warnings where there are no results
27889	// in a list request for a particular zone, this key might be scope and
27890	// the key value might be the zone name. Other examples might be a key
27891	// indicating a deprecated resource and a suggested replacement, or a
27892	// warning about invalid network settings (for example, if an instance
27893	// attempts to perform IP forwarding but is not enabled for IP
27894	// forwarding).
27895	Key string `json:"key,omitempty"`
27896
27897	// Value: [Output Only] A warning data value corresponding to the key.
27898	Value string `json:"value,omitempty"`
27899
27900	// ForceSendFields is a list of field names (e.g. "Key") to
27901	// unconditionally include in API requests. By default, fields with
27902	// empty values are omitted from API requests. However, any non-pointer,
27903	// non-interface field appearing in ForceSendFields will be sent to the
27904	// server regardless of whether the field is empty or not. This may be
27905	// used to include empty fields in Patch requests.
27906	ForceSendFields []string `json:"-"`
27907
27908	// NullFields is a list of field names (e.g. "Key") to include in API
27909	// requests with the JSON null value. By default, fields with empty
27910	// values are omitted from API requests. However, any field with an
27911	// empty value appearing in NullFields will be sent to the server as
27912	// null. It is an error if a field in this list has a non-empty value.
27913	// This may be used to include null fields in Patch requests.
27914	NullFields []string `json:"-"`
27915}
27916
27917func (s *RegionAutoscalerListWarningData) MarshalJSON() ([]byte, error) {
27918	type NoMethod RegionAutoscalerListWarningData
27919	raw := NoMethod(*s)
27920	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27921}
27922
27923type RegionCommitmentsUpdateReservationsRequest struct {
27924	// Reservations: A list of two reservations to transfer GPUs and local
27925	// SSD between.
27926	Reservations []*Reservation `json:"reservations,omitempty"`
27927
27928	// ForceSendFields is a list of field names (e.g. "Reservations") to
27929	// unconditionally include in API requests. By default, fields with
27930	// empty values are omitted from API requests. However, any non-pointer,
27931	// non-interface field appearing in ForceSendFields will be sent to the
27932	// server regardless of whether the field is empty or not. This may be
27933	// used to include empty fields in Patch requests.
27934	ForceSendFields []string `json:"-"`
27935
27936	// NullFields is a list of field names (e.g. "Reservations") to include
27937	// in API requests with the JSON null value. By default, fields with
27938	// empty values are omitted from API requests. However, any field with
27939	// an empty value appearing in NullFields will be sent to the server as
27940	// null. It is an error if a field in this list has a non-empty value.
27941	// This may be used to include null fields in Patch requests.
27942	NullFields []string `json:"-"`
27943}
27944
27945func (s *RegionCommitmentsUpdateReservationsRequest) MarshalJSON() ([]byte, error) {
27946	type NoMethod RegionCommitmentsUpdateReservationsRequest
27947	raw := NoMethod(*s)
27948	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
27949}
27950
27951type RegionDiskTypeList struct {
27952	// Id: [Output Only] Unique identifier for the resource; defined by the
27953	// server.
27954	Id string `json:"id,omitempty"`
27955
27956	// Items: A list of DiskType resources.
27957	Items []*DiskType `json:"items,omitempty"`
27958
27959	// Kind: [Output Only] Type of resource. Always
27960	// compute#regionDiskTypeList for region disk types.
27961	Kind string `json:"kind,omitempty"`
27962
27963	// NextPageToken: [Output Only] This token allows you to get the next
27964	// page of results for list requests. If the number of results is larger
27965	// than maxResults, use the nextPageToken as a value for the query
27966	// parameter pageToken in the next list request. Subsequent list
27967	// requests will have their own nextPageToken to continue paging through
27968	// the results.
27969	NextPageToken string `json:"nextPageToken,omitempty"`
27970
27971	// SelfLink: [Output Only] Server-defined URL for this resource.
27972	SelfLink string `json:"selfLink,omitempty"`
27973
27974	// Warning: [Output Only] Informational warning message.
27975	Warning *RegionDiskTypeListWarning `json:"warning,omitempty"`
27976
27977	// ServerResponse contains the HTTP response code and headers from the
27978	// server.
27979	googleapi.ServerResponse `json:"-"`
27980
27981	// ForceSendFields is a list of field names (e.g. "Id") to
27982	// unconditionally include in API requests. By default, fields with
27983	// empty values are omitted from API requests. However, any non-pointer,
27984	// non-interface field appearing in ForceSendFields will be sent to the
27985	// server regardless of whether the field is empty or not. This may be
27986	// used to include empty fields in Patch requests.
27987	ForceSendFields []string `json:"-"`
27988
27989	// NullFields is a list of field names (e.g. "Id") to include in API
27990	// requests with the JSON null value. By default, fields with empty
27991	// values are omitted from API requests. However, any field with an
27992	// empty value appearing in NullFields will be sent to the server as
27993	// null. It is an error if a field in this list has a non-empty value.
27994	// This may be used to include null fields in Patch requests.
27995	NullFields []string `json:"-"`
27996}
27997
27998func (s *RegionDiskTypeList) MarshalJSON() ([]byte, error) {
27999	type NoMethod RegionDiskTypeList
28000	raw := NoMethod(*s)
28001	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28002}
28003
28004// RegionDiskTypeListWarning: [Output Only] Informational warning
28005// message.
28006type RegionDiskTypeListWarning struct {
28007	// Code: [Output Only] A warning code, if applicable. For example,
28008	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28009	// the response.
28010	//
28011	// Possible values:
28012	//   "CLEANUP_FAILED"
28013	//   "DEPRECATED_RESOURCE_USED"
28014	//   "DEPRECATED_TYPE_USED"
28015	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28016	//   "EXPERIMENTAL_TYPE_USED"
28017	//   "EXTERNAL_API_WARNING"
28018	//   "FIELD_VALUE_OVERRIDEN"
28019	//   "INJECTED_KERNELS_DEPRECATED"
28020	//   "MISSING_TYPE_DEPENDENCY"
28021	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28022	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28023	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28024	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28025	//   "NEXT_HOP_NOT_RUNNING"
28026	//   "NOT_CRITICAL_ERROR"
28027	//   "NO_RESULTS_ON_PAGE"
28028	//   "REQUIRED_TOS_AGREEMENT"
28029	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28030	//   "RESOURCE_NOT_DELETED"
28031	//   "SCHEMA_VALIDATION_IGNORED"
28032	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28033	//   "UNDECLARED_PROPERTIES"
28034	//   "UNREACHABLE"
28035	Code string `json:"code,omitempty"`
28036
28037	// Data: [Output Only] Metadata about this warning in key: value format.
28038	// For example:
28039	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28040	Data []*RegionDiskTypeListWarningData `json:"data,omitempty"`
28041
28042	// Message: [Output Only] A human-readable description of the warning
28043	// code.
28044	Message string `json:"message,omitempty"`
28045
28046	// ForceSendFields is a list of field names (e.g. "Code") to
28047	// unconditionally include in API requests. By default, fields with
28048	// empty values are omitted from API requests. However, any non-pointer,
28049	// non-interface field appearing in ForceSendFields will be sent to the
28050	// server regardless of whether the field is empty or not. This may be
28051	// used to include empty fields in Patch requests.
28052	ForceSendFields []string `json:"-"`
28053
28054	// NullFields is a list of field names (e.g. "Code") to include in API
28055	// requests with the JSON null value. By default, fields with empty
28056	// values are omitted from API requests. However, any field with an
28057	// empty value appearing in NullFields will be sent to the server as
28058	// null. It is an error if a field in this list has a non-empty value.
28059	// This may be used to include null fields in Patch requests.
28060	NullFields []string `json:"-"`
28061}
28062
28063func (s *RegionDiskTypeListWarning) MarshalJSON() ([]byte, error) {
28064	type NoMethod RegionDiskTypeListWarning
28065	raw := NoMethod(*s)
28066	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28067}
28068
28069type RegionDiskTypeListWarningData struct {
28070	// Key: [Output Only] A key that provides more detail on the warning
28071	// being returned. For example, for warnings where there are no results
28072	// in a list request for a particular zone, this key might be scope and
28073	// the key value might be the zone name. Other examples might be a key
28074	// indicating a deprecated resource and a suggested replacement, or a
28075	// warning about invalid network settings (for example, if an instance
28076	// attempts to perform IP forwarding but is not enabled for IP
28077	// forwarding).
28078	Key string `json:"key,omitempty"`
28079
28080	// Value: [Output Only] A warning data value corresponding to the key.
28081	Value string `json:"value,omitempty"`
28082
28083	// ForceSendFields is a list of field names (e.g. "Key") to
28084	// unconditionally include in API requests. By default, fields with
28085	// empty values are omitted from API requests. However, any non-pointer,
28086	// non-interface field appearing in ForceSendFields will be sent to the
28087	// server regardless of whether the field is empty or not. This may be
28088	// used to include empty fields in Patch requests.
28089	ForceSendFields []string `json:"-"`
28090
28091	// NullFields is a list of field names (e.g. "Key") to include in API
28092	// requests with the JSON null value. By default, fields with empty
28093	// values are omitted from API requests. However, any field with an
28094	// empty value appearing in NullFields will be sent to the server as
28095	// null. It is an error if a field in this list has a non-empty value.
28096	// This may be used to include null fields in Patch requests.
28097	NullFields []string `json:"-"`
28098}
28099
28100func (s *RegionDiskTypeListWarningData) MarshalJSON() ([]byte, error) {
28101	type NoMethod RegionDiskTypeListWarningData
28102	raw := NoMethod(*s)
28103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28104}
28105
28106type RegionDisksAddResourcePoliciesRequest struct {
28107	// ResourcePolicies: Resource policies to be added to this disk.
28108	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
28109
28110	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
28111	// unconditionally include in API requests. By default, fields with
28112	// empty values are omitted from API requests. However, any non-pointer,
28113	// non-interface field appearing in ForceSendFields will be sent to the
28114	// server regardless of whether the field is empty or not. This may be
28115	// used to include empty fields in Patch requests.
28116	ForceSendFields []string `json:"-"`
28117
28118	// NullFields is a list of field names (e.g. "ResourcePolicies") to
28119	// include in API requests with the JSON null value. By default, fields
28120	// with empty values are omitted from API requests. However, any field
28121	// with an empty value appearing in NullFields will be sent to the
28122	// server as null. It is an error if a field in this list has a
28123	// non-empty value. This may be used to include null fields in Patch
28124	// requests.
28125	NullFields []string `json:"-"`
28126}
28127
28128func (s *RegionDisksAddResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
28129	type NoMethod RegionDisksAddResourcePoliciesRequest
28130	raw := NoMethod(*s)
28131	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28132}
28133
28134type RegionDisksRemoveResourcePoliciesRequest struct {
28135	// ResourcePolicies: Resource policies to be removed from this disk.
28136	ResourcePolicies []string `json:"resourcePolicies,omitempty"`
28137
28138	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
28139	// unconditionally include in API requests. By default, fields with
28140	// empty values are omitted from API requests. However, any non-pointer,
28141	// non-interface field appearing in ForceSendFields will be sent to the
28142	// server regardless of whether the field is empty or not. This may be
28143	// used to include empty fields in Patch requests.
28144	ForceSendFields []string `json:"-"`
28145
28146	// NullFields is a list of field names (e.g. "ResourcePolicies") to
28147	// include in API requests with the JSON null value. By default, fields
28148	// with empty values are omitted from API requests. However, any field
28149	// with an empty value appearing in NullFields will be sent to the
28150	// server as null. It is an error if a field in this list has a
28151	// non-empty value. This may be used to include null fields in Patch
28152	// requests.
28153	NullFields []string `json:"-"`
28154}
28155
28156func (s *RegionDisksRemoveResourcePoliciesRequest) MarshalJSON() ([]byte, error) {
28157	type NoMethod RegionDisksRemoveResourcePoliciesRequest
28158	raw := NoMethod(*s)
28159	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28160}
28161
28162type RegionDisksResizeRequest struct {
28163	// SizeGb: The new size of the regional persistent disk, which is
28164	// specified in GB.
28165	SizeGb int64 `json:"sizeGb,omitempty,string"`
28166
28167	// ForceSendFields is a list of field names (e.g. "SizeGb") to
28168	// unconditionally include in API requests. By default, fields with
28169	// empty values are omitted from API requests. However, any non-pointer,
28170	// non-interface field appearing in ForceSendFields will be sent to the
28171	// server regardless of whether the field is empty or not. This may be
28172	// used to include empty fields in Patch requests.
28173	ForceSendFields []string `json:"-"`
28174
28175	// NullFields is a list of field names (e.g. "SizeGb") to include in API
28176	// requests with the JSON null value. By default, fields with empty
28177	// values are omitted from API requests. However, any field with an
28178	// empty value appearing in NullFields will be sent to the server as
28179	// null. It is an error if a field in this list has a non-empty value.
28180	// This may be used to include null fields in Patch requests.
28181	NullFields []string `json:"-"`
28182}
28183
28184func (s *RegionDisksResizeRequest) MarshalJSON() ([]byte, error) {
28185	type NoMethod RegionDisksResizeRequest
28186	raw := NoMethod(*s)
28187	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28188}
28189
28190// RegionInstanceGroupList: Contains a list of InstanceGroup resources.
28191type RegionInstanceGroupList struct {
28192	// Id: [Output Only] Unique identifier for the resource; defined by the
28193	// server.
28194	Id string `json:"id,omitempty"`
28195
28196	// Items: A list of InstanceGroup resources.
28197	Items []*InstanceGroup `json:"items,omitempty"`
28198
28199	// Kind: The resource type.
28200	Kind string `json:"kind,omitempty"`
28201
28202	// NextPageToken: [Output Only] This token allows you to get the next
28203	// page of results for list requests. If the number of results is larger
28204	// than maxResults, use the nextPageToken as a value for the query
28205	// parameter pageToken in the next list request. Subsequent list
28206	// requests will have their own nextPageToken to continue paging through
28207	// the results.
28208	NextPageToken string `json:"nextPageToken,omitempty"`
28209
28210	// SelfLink: [Output Only] Server-defined URL for this resource.
28211	SelfLink string `json:"selfLink,omitempty"`
28212
28213	// Warning: [Output Only] Informational warning message.
28214	Warning *RegionInstanceGroupListWarning `json:"warning,omitempty"`
28215
28216	// ServerResponse contains the HTTP response code and headers from the
28217	// server.
28218	googleapi.ServerResponse `json:"-"`
28219
28220	// ForceSendFields is a list of field names (e.g. "Id") to
28221	// unconditionally include in API requests. By default, fields with
28222	// empty values are omitted from API requests. However, any non-pointer,
28223	// non-interface field appearing in ForceSendFields will be sent to the
28224	// server regardless of whether the field is empty or not. This may be
28225	// used to include empty fields in Patch requests.
28226	ForceSendFields []string `json:"-"`
28227
28228	// NullFields is a list of field names (e.g. "Id") to include in API
28229	// requests with the JSON null value. By default, fields with empty
28230	// values are omitted from API requests. However, any field with an
28231	// empty value appearing in NullFields will be sent to the server as
28232	// null. It is an error if a field in this list has a non-empty value.
28233	// This may be used to include null fields in Patch requests.
28234	NullFields []string `json:"-"`
28235}
28236
28237func (s *RegionInstanceGroupList) MarshalJSON() ([]byte, error) {
28238	type NoMethod RegionInstanceGroupList
28239	raw := NoMethod(*s)
28240	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28241}
28242
28243// RegionInstanceGroupListWarning: [Output Only] Informational warning
28244// message.
28245type RegionInstanceGroupListWarning struct {
28246	// Code: [Output Only] A warning code, if applicable. For example,
28247	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28248	// the response.
28249	//
28250	// Possible values:
28251	//   "CLEANUP_FAILED"
28252	//   "DEPRECATED_RESOURCE_USED"
28253	//   "DEPRECATED_TYPE_USED"
28254	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28255	//   "EXPERIMENTAL_TYPE_USED"
28256	//   "EXTERNAL_API_WARNING"
28257	//   "FIELD_VALUE_OVERRIDEN"
28258	//   "INJECTED_KERNELS_DEPRECATED"
28259	//   "MISSING_TYPE_DEPENDENCY"
28260	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28261	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28262	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28263	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28264	//   "NEXT_HOP_NOT_RUNNING"
28265	//   "NOT_CRITICAL_ERROR"
28266	//   "NO_RESULTS_ON_PAGE"
28267	//   "REQUIRED_TOS_AGREEMENT"
28268	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28269	//   "RESOURCE_NOT_DELETED"
28270	//   "SCHEMA_VALIDATION_IGNORED"
28271	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28272	//   "UNDECLARED_PROPERTIES"
28273	//   "UNREACHABLE"
28274	Code string `json:"code,omitempty"`
28275
28276	// Data: [Output Only] Metadata about this warning in key: value format.
28277	// For example:
28278	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28279	Data []*RegionInstanceGroupListWarningData `json:"data,omitempty"`
28280
28281	// Message: [Output Only] A human-readable description of the warning
28282	// code.
28283	Message string `json:"message,omitempty"`
28284
28285	// ForceSendFields is a list of field names (e.g. "Code") to
28286	// unconditionally include in API requests. By default, fields with
28287	// empty values are omitted from API requests. However, any non-pointer,
28288	// non-interface field appearing in ForceSendFields will be sent to the
28289	// server regardless of whether the field is empty or not. This may be
28290	// used to include empty fields in Patch requests.
28291	ForceSendFields []string `json:"-"`
28292
28293	// NullFields is a list of field names (e.g. "Code") to include in API
28294	// requests with the JSON null value. By default, fields with empty
28295	// values are omitted from API requests. However, any field with an
28296	// empty value appearing in NullFields will be sent to the server as
28297	// null. It is an error if a field in this list has a non-empty value.
28298	// This may be used to include null fields in Patch requests.
28299	NullFields []string `json:"-"`
28300}
28301
28302func (s *RegionInstanceGroupListWarning) MarshalJSON() ([]byte, error) {
28303	type NoMethod RegionInstanceGroupListWarning
28304	raw := NoMethod(*s)
28305	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28306}
28307
28308type RegionInstanceGroupListWarningData struct {
28309	// Key: [Output Only] A key that provides more detail on the warning
28310	// being returned. For example, for warnings where there are no results
28311	// in a list request for a particular zone, this key might be scope and
28312	// the key value might be the zone name. Other examples might be a key
28313	// indicating a deprecated resource and a suggested replacement, or a
28314	// warning about invalid network settings (for example, if an instance
28315	// attempts to perform IP forwarding but is not enabled for IP
28316	// forwarding).
28317	Key string `json:"key,omitempty"`
28318
28319	// Value: [Output Only] A warning data value corresponding to the key.
28320	Value string `json:"value,omitempty"`
28321
28322	// ForceSendFields is a list of field names (e.g. "Key") to
28323	// unconditionally include in API requests. By default, fields with
28324	// empty values are omitted from API requests. However, any non-pointer,
28325	// non-interface field appearing in ForceSendFields will be sent to the
28326	// server regardless of whether the field is empty or not. This may be
28327	// used to include empty fields in Patch requests.
28328	ForceSendFields []string `json:"-"`
28329
28330	// NullFields is a list of field names (e.g. "Key") to include in API
28331	// requests with the JSON null value. By default, fields with empty
28332	// values are omitted from API requests. However, any field with an
28333	// empty value appearing in NullFields will be sent to the server as
28334	// null. It is an error if a field in this list has a non-empty value.
28335	// This may be used to include null fields in Patch requests.
28336	NullFields []string `json:"-"`
28337}
28338
28339func (s *RegionInstanceGroupListWarningData) MarshalJSON() ([]byte, error) {
28340	type NoMethod RegionInstanceGroupListWarningData
28341	raw := NoMethod(*s)
28342	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28343}
28344
28345// RegionInstanceGroupManagerDeleteInstanceConfigReq:
28346// RegionInstanceGroupManagers.deletePerInstanceConfigs
28347type RegionInstanceGroupManagerDeleteInstanceConfigReq struct {
28348	// Names: The list of instance names for which we want to delete
28349	// per-instance configs on this managed instance group.
28350	Names []string `json:"names,omitempty"`
28351
28352	// ForceSendFields is a list of field names (e.g. "Names") to
28353	// unconditionally include in API requests. By default, fields with
28354	// empty values are omitted from API requests. However, any non-pointer,
28355	// non-interface field appearing in ForceSendFields will be sent to the
28356	// server regardless of whether the field is empty or not. This may be
28357	// used to include empty fields in Patch requests.
28358	ForceSendFields []string `json:"-"`
28359
28360	// NullFields is a list of field names (e.g. "Names") to include in API
28361	// requests with the JSON null value. By default, fields with empty
28362	// values are omitted from API requests. However, any field with an
28363	// empty value appearing in NullFields will be sent to the server as
28364	// null. It is an error if a field in this list has a non-empty value.
28365	// This may be used to include null fields in Patch requests.
28366	NullFields []string `json:"-"`
28367}
28368
28369func (s *RegionInstanceGroupManagerDeleteInstanceConfigReq) MarshalJSON() ([]byte, error) {
28370	type NoMethod RegionInstanceGroupManagerDeleteInstanceConfigReq
28371	raw := NoMethod(*s)
28372	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28373}
28374
28375// RegionInstanceGroupManagerList: Contains a list of managed instance
28376// groups.
28377type RegionInstanceGroupManagerList struct {
28378	// Id: [Output Only] Unique identifier for the resource; defined by the
28379	// server.
28380	Id string `json:"id,omitempty"`
28381
28382	// Items: A list of InstanceGroupManager resources.
28383	Items []*InstanceGroupManager `json:"items,omitempty"`
28384
28385	// Kind: [Output Only] The resource type, which is always
28386	// compute#instanceGroupManagerList for a list of managed instance
28387	// groups that exist in th regional scope.
28388	Kind string `json:"kind,omitempty"`
28389
28390	// NextPageToken: [Output Only] This token allows you to get the next
28391	// page of results for list requests. If the number of results is larger
28392	// than maxResults, use the nextPageToken as a value for the query
28393	// parameter pageToken in the next list request. Subsequent list
28394	// requests will have their own nextPageToken to continue paging through
28395	// the results.
28396	NextPageToken string `json:"nextPageToken,omitempty"`
28397
28398	// SelfLink: [Output Only] Server-defined URL for this resource.
28399	SelfLink string `json:"selfLink,omitempty"`
28400
28401	// Warning: [Output Only] Informational warning message.
28402	Warning *RegionInstanceGroupManagerListWarning `json:"warning,omitempty"`
28403
28404	// ServerResponse contains the HTTP response code and headers from the
28405	// server.
28406	googleapi.ServerResponse `json:"-"`
28407
28408	// ForceSendFields is a list of field names (e.g. "Id") to
28409	// unconditionally include in API requests. By default, fields with
28410	// empty values are omitted from API requests. However, any non-pointer,
28411	// non-interface field appearing in ForceSendFields will be sent to the
28412	// server regardless of whether the field is empty or not. This may be
28413	// used to include empty fields in Patch requests.
28414	ForceSendFields []string `json:"-"`
28415
28416	// NullFields is a list of field names (e.g. "Id") to include in API
28417	// requests with the JSON null value. By default, fields with empty
28418	// values are omitted from API requests. However, any field with an
28419	// empty value appearing in NullFields will be sent to the server as
28420	// null. It is an error if a field in this list has a non-empty value.
28421	// This may be used to include null fields in Patch requests.
28422	NullFields []string `json:"-"`
28423}
28424
28425func (s *RegionInstanceGroupManagerList) MarshalJSON() ([]byte, error) {
28426	type NoMethod RegionInstanceGroupManagerList
28427	raw := NoMethod(*s)
28428	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28429}
28430
28431// RegionInstanceGroupManagerListWarning: [Output Only] Informational
28432// warning message.
28433type RegionInstanceGroupManagerListWarning struct {
28434	// Code: [Output Only] A warning code, if applicable. For example,
28435	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28436	// the response.
28437	//
28438	// Possible values:
28439	//   "CLEANUP_FAILED"
28440	//   "DEPRECATED_RESOURCE_USED"
28441	//   "DEPRECATED_TYPE_USED"
28442	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28443	//   "EXPERIMENTAL_TYPE_USED"
28444	//   "EXTERNAL_API_WARNING"
28445	//   "FIELD_VALUE_OVERRIDEN"
28446	//   "INJECTED_KERNELS_DEPRECATED"
28447	//   "MISSING_TYPE_DEPENDENCY"
28448	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28449	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28450	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28451	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28452	//   "NEXT_HOP_NOT_RUNNING"
28453	//   "NOT_CRITICAL_ERROR"
28454	//   "NO_RESULTS_ON_PAGE"
28455	//   "REQUIRED_TOS_AGREEMENT"
28456	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28457	//   "RESOURCE_NOT_DELETED"
28458	//   "SCHEMA_VALIDATION_IGNORED"
28459	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28460	//   "UNDECLARED_PROPERTIES"
28461	//   "UNREACHABLE"
28462	Code string `json:"code,omitempty"`
28463
28464	// Data: [Output Only] Metadata about this warning in key: value format.
28465	// For example:
28466	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28467	Data []*RegionInstanceGroupManagerListWarningData `json:"data,omitempty"`
28468
28469	// Message: [Output Only] A human-readable description of the warning
28470	// code.
28471	Message string `json:"message,omitempty"`
28472
28473	// ForceSendFields is a list of field names (e.g. "Code") to
28474	// unconditionally include in API requests. By default, fields with
28475	// empty values are omitted from API requests. However, any non-pointer,
28476	// non-interface field appearing in ForceSendFields will be sent to the
28477	// server regardless of whether the field is empty or not. This may be
28478	// used to include empty fields in Patch requests.
28479	ForceSendFields []string `json:"-"`
28480
28481	// NullFields is a list of field names (e.g. "Code") to include in API
28482	// requests with the JSON null value. By default, fields with empty
28483	// values are omitted from API requests. However, any field with an
28484	// empty value appearing in NullFields will be sent to the server as
28485	// null. It is an error if a field in this list has a non-empty value.
28486	// This may be used to include null fields in Patch requests.
28487	NullFields []string `json:"-"`
28488}
28489
28490func (s *RegionInstanceGroupManagerListWarning) MarshalJSON() ([]byte, error) {
28491	type NoMethod RegionInstanceGroupManagerListWarning
28492	raw := NoMethod(*s)
28493	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28494}
28495
28496type RegionInstanceGroupManagerListWarningData struct {
28497	// Key: [Output Only] A key that provides more detail on the warning
28498	// being returned. For example, for warnings where there are no results
28499	// in a list request for a particular zone, this key might be scope and
28500	// the key value might be the zone name. Other examples might be a key
28501	// indicating a deprecated resource and a suggested replacement, or a
28502	// warning about invalid network settings (for example, if an instance
28503	// attempts to perform IP forwarding but is not enabled for IP
28504	// forwarding).
28505	Key string `json:"key,omitempty"`
28506
28507	// Value: [Output Only] A warning data value corresponding to the key.
28508	Value string `json:"value,omitempty"`
28509
28510	// ForceSendFields is a list of field names (e.g. "Key") to
28511	// unconditionally include in API requests. By default, fields with
28512	// empty values are omitted from API requests. However, any non-pointer,
28513	// non-interface field appearing in ForceSendFields will be sent to the
28514	// server regardless of whether the field is empty or not. This may be
28515	// used to include empty fields in Patch requests.
28516	ForceSendFields []string `json:"-"`
28517
28518	// NullFields is a list of field names (e.g. "Key") to include in API
28519	// requests with the JSON null value. By default, fields with empty
28520	// values are omitted from API requests. However, any field with an
28521	// empty value appearing in NullFields will be sent to the server as
28522	// null. It is an error if a field in this list has a non-empty value.
28523	// This may be used to include null fields in Patch requests.
28524	NullFields []string `json:"-"`
28525}
28526
28527func (s *RegionInstanceGroupManagerListWarningData) MarshalJSON() ([]byte, error) {
28528	type NoMethod RegionInstanceGroupManagerListWarningData
28529	raw := NoMethod(*s)
28530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28531}
28532
28533// RegionInstanceGroupManagerPatchInstanceConfigReq:
28534// RegionInstanceGroupManagers.patchPerInstanceConfigs
28535type RegionInstanceGroupManagerPatchInstanceConfigReq struct {
28536	// PerInstanceConfigs: The list of per-instance configs to insert or
28537	// patch on this managed instance group.
28538	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
28539
28540	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
28541	// to 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. "PerInstanceConfigs") to
28549	// include in API requests with the JSON null value. By default, fields
28550	// with empty values are omitted from API requests. However, any field
28551	// with an empty value appearing in NullFields will be sent to the
28552	// server as null. It is an error if a field in this list has a
28553	// non-empty value. This may be used to include null fields in Patch
28554	// requests.
28555	NullFields []string `json:"-"`
28556}
28557
28558func (s *RegionInstanceGroupManagerPatchInstanceConfigReq) MarshalJSON() ([]byte, error) {
28559	type NoMethod RegionInstanceGroupManagerPatchInstanceConfigReq
28560	raw := NoMethod(*s)
28561	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28562}
28563
28564// RegionInstanceGroupManagerUpdateInstanceConfigReq:
28565// RegionInstanceGroupManagers.updatePerInstanceConfigs
28566type RegionInstanceGroupManagerUpdateInstanceConfigReq struct {
28567	// PerInstanceConfigs: The list of per-instance configs to insert or
28568	// patch on this managed instance group.
28569	PerInstanceConfigs []*PerInstanceConfig `json:"perInstanceConfigs,omitempty"`
28570
28571	// ForceSendFields is a list of field names (e.g. "PerInstanceConfigs")
28572	// to unconditionally include in API requests. By default, fields with
28573	// empty values are omitted from API requests. However, any non-pointer,
28574	// non-interface field appearing in ForceSendFields will be sent to the
28575	// server regardless of whether the field is empty or not. This may be
28576	// used to include empty fields in Patch requests.
28577	ForceSendFields []string `json:"-"`
28578
28579	// NullFields is a list of field names (e.g. "PerInstanceConfigs") to
28580	// include in API requests with the JSON null value. By default, fields
28581	// with empty values are omitted from API requests. However, any field
28582	// with an empty value appearing in NullFields will be sent to the
28583	// server as null. It is an error if a field in this list has a
28584	// non-empty value. This may be used to include null fields in Patch
28585	// requests.
28586	NullFields []string `json:"-"`
28587}
28588
28589func (s *RegionInstanceGroupManagerUpdateInstanceConfigReq) MarshalJSON() ([]byte, error) {
28590	type NoMethod RegionInstanceGroupManagerUpdateInstanceConfigReq
28591	raw := NoMethod(*s)
28592	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28593}
28594
28595type RegionInstanceGroupManagersAbandonInstancesRequest struct {
28596	// Instances: The URLs of one or more instances to abandon. This can be
28597	// a full URL or a partial URL, such as
28598	// zones/[ZONE]/instances/[INSTANCE_NAME].
28599	Instances []string `json:"instances,omitempty"`
28600
28601	// ForceSendFields is a list of field names (e.g. "Instances") to
28602	// unconditionally include in API requests. By default, fields with
28603	// empty values are omitted from API requests. However, any non-pointer,
28604	// non-interface field appearing in ForceSendFields will be sent to the
28605	// server regardless of whether the field is empty or not. This may be
28606	// used to include empty fields in Patch requests.
28607	ForceSendFields []string `json:"-"`
28608
28609	// NullFields is a list of field names (e.g. "Instances") to include in
28610	// API requests with the JSON null value. By default, fields with empty
28611	// values are omitted from API requests. However, any field with an
28612	// empty value appearing in NullFields will be sent to the server as
28613	// null. It is an error if a field in this list has a non-empty value.
28614	// This may be used to include null fields in Patch requests.
28615	NullFields []string `json:"-"`
28616}
28617
28618func (s *RegionInstanceGroupManagersAbandonInstancesRequest) MarshalJSON() ([]byte, error) {
28619	type NoMethod RegionInstanceGroupManagersAbandonInstancesRequest
28620	raw := NoMethod(*s)
28621	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28622}
28623
28624// RegionInstanceGroupManagersApplyUpdatesRequest:
28625// InstanceGroupManagers.applyUpdatesToInstances
28626type RegionInstanceGroupManagersApplyUpdatesRequest struct {
28627	// Instances: The list of URLs of one or more instances for which you
28628	// want to apply updates. Each URL can be a full URL or a partial URL,
28629	// such as zones/[ZONE]/instances/[INSTANCE_NAME].
28630	Instances []string `json:"instances,omitempty"`
28631
28632	// MinimalAction: The minimal action that you want to perform on each
28633	// instance during the update:
28634	// - REPLACE: At minimum, delete the instance and create it again.
28635	// - RESTART: Stop the instance and start it again.
28636	// - REFRESH: Do not stop the instance.
28637	// - NONE: Do not disrupt the instance at all.  By default, the minimum
28638	// action is NONE. If your update requires a more disruptive action than
28639	// you set with this flag, the necessary action is performed to execute
28640	// the update.
28641	//
28642	// Possible values:
28643	//   "NONE"
28644	//   "REFRESH"
28645	//   "REPLACE"
28646	//   "RESTART"
28647	MinimalAction string `json:"minimalAction,omitempty"`
28648
28649	// MostDisruptiveAllowedAction: The most disruptive action that you want
28650	// to perform on each instance during the update:
28651	// - REPLACE: Delete the instance and create it again.
28652	// - RESTART: Stop the instance and start it again.
28653	// - REFRESH: Do not stop the instance.
28654	// - NONE: Do not disrupt the instance at all.  By default, the most
28655	// disruptive allowed action is REPLACE. If your update requires a more
28656	// disruptive action than you set with this flag, the update request
28657	// will fail.
28658	//
28659	// Possible values:
28660	//   "NONE"
28661	//   "REFRESH"
28662	//   "REPLACE"
28663	//   "RESTART"
28664	MostDisruptiveAllowedAction string `json:"mostDisruptiveAllowedAction,omitempty"`
28665
28666	// ForceSendFields is a list of field names (e.g. "Instances") to
28667	// unconditionally include in API requests. By default, fields with
28668	// empty values are omitted from API requests. However, any non-pointer,
28669	// non-interface field appearing in ForceSendFields will be sent to the
28670	// server regardless of whether the field is empty or not. This may be
28671	// used to include empty fields in Patch requests.
28672	ForceSendFields []string `json:"-"`
28673
28674	// NullFields is a list of field names (e.g. "Instances") to include in
28675	// API requests with the JSON null value. By default, fields with empty
28676	// values are omitted from API requests. However, any field with an
28677	// empty value appearing in NullFields will be sent to the server as
28678	// null. It is an error if a field in this list has a non-empty value.
28679	// This may be used to include null fields in Patch requests.
28680	NullFields []string `json:"-"`
28681}
28682
28683func (s *RegionInstanceGroupManagersApplyUpdatesRequest) MarshalJSON() ([]byte, error) {
28684	type NoMethod RegionInstanceGroupManagersApplyUpdatesRequest
28685	raw := NoMethod(*s)
28686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28687}
28688
28689// RegionInstanceGroupManagersCreateInstancesRequest:
28690// RegionInstanceGroupManagers.createInstances
28691type RegionInstanceGroupManagersCreateInstancesRequest struct {
28692	// Instances: [Required] List of specifications of per-instance configs.
28693	Instances []*PerInstanceConfig `json:"instances,omitempty"`
28694
28695	// ForceSendFields is a list of field names (e.g. "Instances") to
28696	// unconditionally include in API requests. By default, fields with
28697	// empty values are omitted from API requests. However, any non-pointer,
28698	// non-interface field appearing in ForceSendFields will be sent to the
28699	// server regardless of whether the field is empty or not. This may be
28700	// used to include empty fields in Patch requests.
28701	ForceSendFields []string `json:"-"`
28702
28703	// NullFields is a list of field names (e.g. "Instances") to include in
28704	// API requests with the JSON null value. By default, fields with empty
28705	// values are omitted from API requests. However, any field with an
28706	// empty value appearing in NullFields will be sent to the server as
28707	// null. It is an error if a field in this list has a non-empty value.
28708	// This may be used to include null fields in Patch requests.
28709	NullFields []string `json:"-"`
28710}
28711
28712func (s *RegionInstanceGroupManagersCreateInstancesRequest) MarshalJSON() ([]byte, error) {
28713	type NoMethod RegionInstanceGroupManagersCreateInstancesRequest
28714	raw := NoMethod(*s)
28715	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28716}
28717
28718type RegionInstanceGroupManagersDeleteInstancesRequest struct {
28719	// Instances: The URLs of one or more instances to delete. This can be a
28720	// full URL or a partial URL, such as
28721	// zones/[ZONE]/instances/[INSTANCE_NAME].
28722	Instances []string `json:"instances,omitempty"`
28723
28724	// ForceSendFields is a list of field names (e.g. "Instances") to
28725	// unconditionally include in API requests. By default, fields with
28726	// empty values are omitted from API requests. However, any non-pointer,
28727	// non-interface field appearing in ForceSendFields will be sent to the
28728	// server regardless of whether the field is empty or not. This may be
28729	// used to include empty fields in Patch requests.
28730	ForceSendFields []string `json:"-"`
28731
28732	// NullFields is a list of field names (e.g. "Instances") to include in
28733	// API requests with the JSON null value. By default, fields with empty
28734	// values are omitted from API requests. However, any field with an
28735	// empty value appearing in NullFields will be sent to the server as
28736	// null. It is an error if a field in this list has a non-empty value.
28737	// This may be used to include null fields in Patch requests.
28738	NullFields []string `json:"-"`
28739}
28740
28741func (s *RegionInstanceGroupManagersDeleteInstancesRequest) MarshalJSON() ([]byte, error) {
28742	type NoMethod RegionInstanceGroupManagersDeleteInstancesRequest
28743	raw := NoMethod(*s)
28744	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28745}
28746
28747type RegionInstanceGroupManagersListErrorsResponse struct {
28748	// Items: [Output Only] The list of errors of the managed instance
28749	// group.
28750	Items []*InstanceManagedByIgmError `json:"items,omitempty"`
28751
28752	// NextPageToken: [Output Only] This token allows you to get the next
28753	// page of results for list requests. If the number of results is larger
28754	// than maxResults, use the nextPageToken as a value for the query
28755	// parameter pageToken in the next list request. Subsequent list
28756	// requests will have their own nextPageToken to continue paging through
28757	// the results.
28758	NextPageToken string `json:"nextPageToken,omitempty"`
28759
28760	// ServerResponse contains the HTTP response code and headers from the
28761	// server.
28762	googleapi.ServerResponse `json:"-"`
28763
28764	// ForceSendFields is a list of field names (e.g. "Items") to
28765	// unconditionally include in API requests. By default, fields with
28766	// empty values are omitted from API requests. However, any non-pointer,
28767	// non-interface field appearing in ForceSendFields will be sent to the
28768	// server regardless of whether the field is empty or not. This may be
28769	// used to include empty fields in Patch requests.
28770	ForceSendFields []string `json:"-"`
28771
28772	// NullFields is a list of field names (e.g. "Items") to include in API
28773	// requests with the JSON null value. By default, fields with empty
28774	// values are omitted from API requests. However, any field with an
28775	// empty value appearing in NullFields will be sent to the server as
28776	// null. It is an error if a field in this list has a non-empty value.
28777	// This may be used to include null fields in Patch requests.
28778	NullFields []string `json:"-"`
28779}
28780
28781func (s *RegionInstanceGroupManagersListErrorsResponse) MarshalJSON() ([]byte, error) {
28782	type NoMethod RegionInstanceGroupManagersListErrorsResponse
28783	raw := NoMethod(*s)
28784	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28785}
28786
28787type RegionInstanceGroupManagersListInstanceConfigsResp struct {
28788	// Items: [Output Only] The list of PerInstanceConfig.
28789	Items []*PerInstanceConfig `json:"items,omitempty"`
28790
28791	// NextPageToken: [Output Only] This token allows you to get the next
28792	// page of results for list requests. If the number of results is larger
28793	// than maxResults, use the nextPageToken as a value for the query
28794	// parameter pageToken in the next list request. Subsequent list
28795	// requests will have their own nextPageToken to continue paging through
28796	// the results.
28797	NextPageToken string `json:"nextPageToken,omitempty"`
28798
28799	// Warning: [Output Only] Informational warning message.
28800	Warning *RegionInstanceGroupManagersListInstanceConfigsRespWarning `json:"warning,omitempty"`
28801
28802	// ServerResponse contains the HTTP response code and headers from the
28803	// server.
28804	googleapi.ServerResponse `json:"-"`
28805
28806	// ForceSendFields is a list of field names (e.g. "Items") to
28807	// unconditionally include in API requests. By default, fields with
28808	// empty values are omitted from API requests. However, any non-pointer,
28809	// non-interface field appearing in ForceSendFields will be sent to the
28810	// server regardless of whether the field is empty or not. This may be
28811	// used to include empty fields in Patch requests.
28812	ForceSendFields []string `json:"-"`
28813
28814	// NullFields is a list of field names (e.g. "Items") to include in API
28815	// requests with the JSON null value. By default, fields with empty
28816	// values are omitted from API requests. However, any field with an
28817	// empty value appearing in NullFields will be sent to the server as
28818	// null. It is an error if a field in this list has a non-empty value.
28819	// This may be used to include null fields in Patch requests.
28820	NullFields []string `json:"-"`
28821}
28822
28823func (s *RegionInstanceGroupManagersListInstanceConfigsResp) MarshalJSON() ([]byte, error) {
28824	type NoMethod RegionInstanceGroupManagersListInstanceConfigsResp
28825	raw := NoMethod(*s)
28826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28827}
28828
28829// RegionInstanceGroupManagersListInstanceConfigsRespWarning: [Output
28830// Only] Informational warning message.
28831type RegionInstanceGroupManagersListInstanceConfigsRespWarning struct {
28832	// Code: [Output Only] A warning code, if applicable. For example,
28833	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
28834	// the response.
28835	//
28836	// Possible values:
28837	//   "CLEANUP_FAILED"
28838	//   "DEPRECATED_RESOURCE_USED"
28839	//   "DEPRECATED_TYPE_USED"
28840	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
28841	//   "EXPERIMENTAL_TYPE_USED"
28842	//   "EXTERNAL_API_WARNING"
28843	//   "FIELD_VALUE_OVERRIDEN"
28844	//   "INJECTED_KERNELS_DEPRECATED"
28845	//   "MISSING_TYPE_DEPENDENCY"
28846	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
28847	//   "NEXT_HOP_CANNOT_IP_FORWARD"
28848	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
28849	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
28850	//   "NEXT_HOP_NOT_RUNNING"
28851	//   "NOT_CRITICAL_ERROR"
28852	//   "NO_RESULTS_ON_PAGE"
28853	//   "REQUIRED_TOS_AGREEMENT"
28854	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
28855	//   "RESOURCE_NOT_DELETED"
28856	//   "SCHEMA_VALIDATION_IGNORED"
28857	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
28858	//   "UNDECLARED_PROPERTIES"
28859	//   "UNREACHABLE"
28860	Code string `json:"code,omitempty"`
28861
28862	// Data: [Output Only] Metadata about this warning in key: value format.
28863	// For example:
28864	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
28865	Data []*RegionInstanceGroupManagersListInstanceConfigsRespWarningData `json:"data,omitempty"`
28866
28867	// Message: [Output Only] A human-readable description of the warning
28868	// code.
28869	Message string `json:"message,omitempty"`
28870
28871	// ForceSendFields is a list of field names (e.g. "Code") to
28872	// unconditionally include in API requests. By default, fields with
28873	// empty values are omitted from API requests. However, any non-pointer,
28874	// non-interface field appearing in ForceSendFields will be sent to the
28875	// server regardless of whether the field is empty or not. This may be
28876	// used to include empty fields in Patch requests.
28877	ForceSendFields []string `json:"-"`
28878
28879	// NullFields is a list of field names (e.g. "Code") to include in API
28880	// requests with the JSON null value. By default, fields with empty
28881	// values are omitted from API requests. However, any field with an
28882	// empty value appearing in NullFields will be sent to the server as
28883	// null. It is an error if a field in this list has a non-empty value.
28884	// This may be used to include null fields in Patch requests.
28885	NullFields []string `json:"-"`
28886}
28887
28888func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarning) MarshalJSON() ([]byte, error) {
28889	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarning
28890	raw := NoMethod(*s)
28891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28892}
28893
28894type RegionInstanceGroupManagersListInstanceConfigsRespWarningData struct {
28895	// Key: [Output Only] A key that provides more detail on the warning
28896	// being returned. For example, for warnings where there are no results
28897	// in a list request for a particular zone, this key might be scope and
28898	// the key value might be the zone name. Other examples might be a key
28899	// indicating a deprecated resource and a suggested replacement, or a
28900	// warning about invalid network settings (for example, if an instance
28901	// attempts to perform IP forwarding but is not enabled for IP
28902	// forwarding).
28903	Key string `json:"key,omitempty"`
28904
28905	// Value: [Output Only] A warning data value corresponding to the key.
28906	Value string `json:"value,omitempty"`
28907
28908	// ForceSendFields is a list of field names (e.g. "Key") to
28909	// unconditionally include in API requests. By default, fields with
28910	// empty values are omitted from API requests. However, any non-pointer,
28911	// non-interface field appearing in ForceSendFields will be sent to the
28912	// server regardless of whether the field is empty or not. This may be
28913	// used to include empty fields in Patch requests.
28914	ForceSendFields []string `json:"-"`
28915
28916	// NullFields is a list of field names (e.g. "Key") to include in API
28917	// requests with the JSON null value. By default, fields with empty
28918	// values are omitted from API requests. However, any field with an
28919	// empty value appearing in NullFields will be sent to the server as
28920	// null. It is an error if a field in this list has a non-empty value.
28921	// This may be used to include null fields in Patch requests.
28922	NullFields []string `json:"-"`
28923}
28924
28925func (s *RegionInstanceGroupManagersListInstanceConfigsRespWarningData) MarshalJSON() ([]byte, error) {
28926	type NoMethod RegionInstanceGroupManagersListInstanceConfigsRespWarningData
28927	raw := NoMethod(*s)
28928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28929}
28930
28931type RegionInstanceGroupManagersListInstancesResponse struct {
28932	// ManagedInstances: A list of managed instances.
28933	ManagedInstances []*ManagedInstance `json:"managedInstances,omitempty"`
28934
28935	// NextPageToken: [Output Only] This token allows you to get the next
28936	// page of results for list requests. If the number of results is larger
28937	// than maxResults, use the nextPageToken as a value for the query
28938	// parameter pageToken in the next list request. Subsequent list
28939	// requests will have their own nextPageToken to continue paging through
28940	// the results.
28941	NextPageToken string `json:"nextPageToken,omitempty"`
28942
28943	// ServerResponse contains the HTTP response code and headers from the
28944	// server.
28945	googleapi.ServerResponse `json:"-"`
28946
28947	// ForceSendFields is a list of field names (e.g. "ManagedInstances") to
28948	// unconditionally include in API requests. By default, fields with
28949	// empty values are omitted from API requests. However, any non-pointer,
28950	// non-interface field appearing in ForceSendFields will be sent to the
28951	// server regardless of whether the field is empty or not. This may be
28952	// used to include empty fields in Patch requests.
28953	ForceSendFields []string `json:"-"`
28954
28955	// NullFields is a list of field names (e.g. "ManagedInstances") to
28956	// include in API requests with the JSON null value. By default, fields
28957	// with empty values are omitted from API requests. However, any field
28958	// with an empty value appearing in NullFields will be sent to the
28959	// server as null. It is an error if a field in this list has a
28960	// non-empty value. This may be used to include null fields in Patch
28961	// requests.
28962	NullFields []string `json:"-"`
28963}
28964
28965func (s *RegionInstanceGroupManagersListInstancesResponse) MarshalJSON() ([]byte, error) {
28966	type NoMethod RegionInstanceGroupManagersListInstancesResponse
28967	raw := NoMethod(*s)
28968	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28969}
28970
28971type RegionInstanceGroupManagersRecreateRequest struct {
28972	// Instances: The URLs of one or more instances to recreate. This can be
28973	// a full URL or a partial URL, such as
28974	// zones/[ZONE]/instances/[INSTANCE_NAME].
28975	Instances []string `json:"instances,omitempty"`
28976
28977	// ForceSendFields is a list of field names (e.g. "Instances") to
28978	// unconditionally include in API requests. By default, fields with
28979	// empty values are omitted from API requests. However, any non-pointer,
28980	// non-interface field appearing in ForceSendFields will be sent to the
28981	// server regardless of whether the field is empty or not. This may be
28982	// used to include empty fields in Patch requests.
28983	ForceSendFields []string `json:"-"`
28984
28985	// NullFields is a list of field names (e.g. "Instances") to include in
28986	// API requests with the JSON null value. By default, fields with empty
28987	// values are omitted from API requests. However, any field with an
28988	// empty value appearing in NullFields will be sent to the server as
28989	// null. It is an error if a field in this list has a non-empty value.
28990	// This may be used to include null fields in Patch requests.
28991	NullFields []string `json:"-"`
28992}
28993
28994func (s *RegionInstanceGroupManagersRecreateRequest) MarshalJSON() ([]byte, error) {
28995	type NoMethod RegionInstanceGroupManagersRecreateRequest
28996	raw := NoMethod(*s)
28997	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
28998}
28999
29000type RegionInstanceGroupManagersSetAutoHealingRequest struct {
29001	AutoHealingPolicies []*InstanceGroupManagerAutoHealingPolicy `json:"autoHealingPolicies,omitempty"`
29002
29003	// ForceSendFields is a list of field names (e.g. "AutoHealingPolicies")
29004	// to unconditionally include in API requests. By default, fields with
29005	// empty values are omitted from API requests. However, any non-pointer,
29006	// non-interface field appearing in ForceSendFields will be sent to the
29007	// server regardless of whether the field is empty or not. This may be
29008	// used to include empty fields in Patch requests.
29009	ForceSendFields []string `json:"-"`
29010
29011	// NullFields is a list of field names (e.g. "AutoHealingPolicies") to
29012	// include in API requests with the JSON null value. By default, fields
29013	// with empty values are omitted from API requests. However, any field
29014	// with an empty value appearing in NullFields will be sent to the
29015	// server as null. It is an error if a field in this list has a
29016	// non-empty value. This may be used to include null fields in Patch
29017	// requests.
29018	NullFields []string `json:"-"`
29019}
29020
29021func (s *RegionInstanceGroupManagersSetAutoHealingRequest) MarshalJSON() ([]byte, error) {
29022	type NoMethod RegionInstanceGroupManagersSetAutoHealingRequest
29023	raw := NoMethod(*s)
29024	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29025}
29026
29027type RegionInstanceGroupManagersSetTargetPoolsRequest struct {
29028	// Fingerprint: Fingerprint of the target pools information, which is a
29029	// hash of the contents. This field is used for optimistic locking when
29030	// you update the target pool entries. This field is optional.
29031	Fingerprint string `json:"fingerprint,omitempty"`
29032
29033	// TargetPools: The URL of all TargetPool resources to which instances
29034	// in the instanceGroup field are added. The target pools automatically
29035	// apply to all of the instances in the managed instance group.
29036	TargetPools []string `json:"targetPools,omitempty"`
29037
29038	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
29039	// unconditionally include in API requests. By default, fields with
29040	// empty values are omitted from API requests. However, any non-pointer,
29041	// non-interface field appearing in ForceSendFields will be sent to the
29042	// server regardless of whether the field is empty or not. This may be
29043	// used to include empty fields in Patch requests.
29044	ForceSendFields []string `json:"-"`
29045
29046	// NullFields is a list of field names (e.g. "Fingerprint") to include
29047	// in API requests with the JSON null value. By default, fields with
29048	// empty values are omitted from API requests. However, any field with
29049	// an empty value appearing in NullFields will be sent to the server as
29050	// null. It is an error if a field in this list has a non-empty value.
29051	// This may be used to include null fields in Patch requests.
29052	NullFields []string `json:"-"`
29053}
29054
29055func (s *RegionInstanceGroupManagersSetTargetPoolsRequest) MarshalJSON() ([]byte, error) {
29056	type NoMethod RegionInstanceGroupManagersSetTargetPoolsRequest
29057	raw := NoMethod(*s)
29058	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29059}
29060
29061type RegionInstanceGroupManagersSetTemplateRequest struct {
29062	// InstanceTemplate: URL of the InstanceTemplate resource from which all
29063	// new instances will be created.
29064	InstanceTemplate string `json:"instanceTemplate,omitempty"`
29065
29066	// ForceSendFields is a list of field names (e.g. "InstanceTemplate") to
29067	// unconditionally include in API requests. By default, fields with
29068	// empty values are omitted from API requests. However, any non-pointer,
29069	// non-interface field appearing in ForceSendFields will be sent to the
29070	// server regardless of whether the field is empty or not. This may be
29071	// used to include empty fields in Patch requests.
29072	ForceSendFields []string `json:"-"`
29073
29074	// NullFields is a list of field names (e.g. "InstanceTemplate") to
29075	// include in API requests with the JSON null value. By default, fields
29076	// with empty values are omitted from API requests. However, any field
29077	// with an empty value appearing in NullFields will be sent to the
29078	// server as null. It is an error if a field in this list has a
29079	// non-empty value. This may be used to include null fields in Patch
29080	// requests.
29081	NullFields []string `json:"-"`
29082}
29083
29084func (s *RegionInstanceGroupManagersSetTemplateRequest) MarshalJSON() ([]byte, error) {
29085	type NoMethod RegionInstanceGroupManagersSetTemplateRequest
29086	raw := NoMethod(*s)
29087	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29088}
29089
29090type RegionInstanceGroupsListInstances struct {
29091	// Id: [Output Only] Unique identifier for the resource; defined by the
29092	// server.
29093	Id string `json:"id,omitempty"`
29094
29095	// Items: A list of InstanceWithNamedPorts resources.
29096	Items []*InstanceWithNamedPorts `json:"items,omitempty"`
29097
29098	// Kind: The resource type.
29099	Kind string `json:"kind,omitempty"`
29100
29101	// NextPageToken: [Output Only] This token allows you to get the next
29102	// page of results for list requests. If the number of results is larger
29103	// than maxResults, use the nextPageToken as a value for the query
29104	// parameter pageToken in the next list request. Subsequent list
29105	// requests will have their own nextPageToken to continue paging through
29106	// the results.
29107	NextPageToken string `json:"nextPageToken,omitempty"`
29108
29109	// SelfLink: [Output Only] Server-defined URL for this resource.
29110	SelfLink string `json:"selfLink,omitempty"`
29111
29112	// Warning: [Output Only] Informational warning message.
29113	Warning *RegionInstanceGroupsListInstancesWarning `json:"warning,omitempty"`
29114
29115	// ServerResponse contains the HTTP response code and headers from the
29116	// server.
29117	googleapi.ServerResponse `json:"-"`
29118
29119	// ForceSendFields is a list of field names (e.g. "Id") to
29120	// unconditionally include in API requests. By default, fields with
29121	// empty values are omitted from API requests. However, any non-pointer,
29122	// non-interface field appearing in ForceSendFields will be sent to the
29123	// server regardless of whether the field is empty or not. This may be
29124	// used to include empty fields in Patch requests.
29125	ForceSendFields []string `json:"-"`
29126
29127	// NullFields is a list of field names (e.g. "Id") to include in API
29128	// requests with the JSON null value. By default, fields with empty
29129	// values are omitted from API requests. However, any field with an
29130	// empty value appearing in NullFields will be sent to the server as
29131	// null. It is an error if a field in this list has a non-empty value.
29132	// This may be used to include null fields in Patch requests.
29133	NullFields []string `json:"-"`
29134}
29135
29136func (s *RegionInstanceGroupsListInstances) MarshalJSON() ([]byte, error) {
29137	type NoMethod RegionInstanceGroupsListInstances
29138	raw := NoMethod(*s)
29139	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29140}
29141
29142// RegionInstanceGroupsListInstancesWarning: [Output Only] Informational
29143// warning message.
29144type RegionInstanceGroupsListInstancesWarning struct {
29145	// Code: [Output Only] A warning code, if applicable. For example,
29146	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29147	// the response.
29148	//
29149	// Possible values:
29150	//   "CLEANUP_FAILED"
29151	//   "DEPRECATED_RESOURCE_USED"
29152	//   "DEPRECATED_TYPE_USED"
29153	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29154	//   "EXPERIMENTAL_TYPE_USED"
29155	//   "EXTERNAL_API_WARNING"
29156	//   "FIELD_VALUE_OVERRIDEN"
29157	//   "INJECTED_KERNELS_DEPRECATED"
29158	//   "MISSING_TYPE_DEPENDENCY"
29159	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29160	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29161	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29162	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29163	//   "NEXT_HOP_NOT_RUNNING"
29164	//   "NOT_CRITICAL_ERROR"
29165	//   "NO_RESULTS_ON_PAGE"
29166	//   "REQUIRED_TOS_AGREEMENT"
29167	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29168	//   "RESOURCE_NOT_DELETED"
29169	//   "SCHEMA_VALIDATION_IGNORED"
29170	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29171	//   "UNDECLARED_PROPERTIES"
29172	//   "UNREACHABLE"
29173	Code string `json:"code,omitempty"`
29174
29175	// Data: [Output Only] Metadata about this warning in key: value format.
29176	// For example:
29177	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29178	Data []*RegionInstanceGroupsListInstancesWarningData `json:"data,omitempty"`
29179
29180	// Message: [Output Only] A human-readable description of the warning
29181	// code.
29182	Message string `json:"message,omitempty"`
29183
29184	// ForceSendFields is a list of field names (e.g. "Code") to
29185	// unconditionally include in API requests. By default, fields with
29186	// empty values are omitted from API requests. However, any non-pointer,
29187	// non-interface field appearing in ForceSendFields will be sent to the
29188	// server regardless of whether the field is empty or not. This may be
29189	// used to include empty fields in Patch requests.
29190	ForceSendFields []string `json:"-"`
29191
29192	// NullFields is a list of field names (e.g. "Code") to include in API
29193	// requests with the JSON null value. By default, fields with empty
29194	// values are omitted from API requests. However, any field with an
29195	// empty value appearing in NullFields will be sent to the server as
29196	// null. It is an error if a field in this list has a non-empty value.
29197	// This may be used to include null fields in Patch requests.
29198	NullFields []string `json:"-"`
29199}
29200
29201func (s *RegionInstanceGroupsListInstancesWarning) MarshalJSON() ([]byte, error) {
29202	type NoMethod RegionInstanceGroupsListInstancesWarning
29203	raw := NoMethod(*s)
29204	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29205}
29206
29207type RegionInstanceGroupsListInstancesWarningData struct {
29208	// Key: [Output Only] A key that provides more detail on the warning
29209	// being returned. For example, for warnings where there are no results
29210	// in a list request for a particular zone, this key might be scope and
29211	// the key value might be the zone name. Other examples might be a key
29212	// indicating a deprecated resource and a suggested replacement, or a
29213	// warning about invalid network settings (for example, if an instance
29214	// attempts to perform IP forwarding but is not enabled for IP
29215	// forwarding).
29216	Key string `json:"key,omitempty"`
29217
29218	// Value: [Output Only] A warning data value corresponding to the key.
29219	Value string `json:"value,omitempty"`
29220
29221	// ForceSendFields is a list of field names (e.g. "Key") to
29222	// unconditionally include in API requests. By default, fields with
29223	// empty values are omitted from API requests. However, any non-pointer,
29224	// non-interface field appearing in ForceSendFields will be sent to the
29225	// server regardless of whether the field is empty or not. This may be
29226	// used to include empty fields in Patch requests.
29227	ForceSendFields []string `json:"-"`
29228
29229	// NullFields is a list of field names (e.g. "Key") to include in API
29230	// requests with the JSON null value. By default, fields with empty
29231	// values are omitted from API requests. However, any field with an
29232	// empty value appearing in NullFields will be sent to the server as
29233	// null. It is an error if a field in this list has a non-empty value.
29234	// This may be used to include null fields in Patch requests.
29235	NullFields []string `json:"-"`
29236}
29237
29238func (s *RegionInstanceGroupsListInstancesWarningData) MarshalJSON() ([]byte, error) {
29239	type NoMethod RegionInstanceGroupsListInstancesWarningData
29240	raw := NoMethod(*s)
29241	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29242}
29243
29244type RegionInstanceGroupsListInstancesRequest struct {
29245	// InstanceState: Instances in which state should be returned. Valid
29246	// options are: 'ALL', 'RUNNING'. By default, it lists all instances.
29247	//
29248	// Possible values:
29249	//   "ALL"
29250	//   "RUNNING"
29251	InstanceState string `json:"instanceState,omitempty"`
29252
29253	// PortName: Name of port user is interested in. It is optional. If it
29254	// is set, only information about this ports will be returned. If it is
29255	// not set, all the named ports will be returned. Always lists all
29256	// instances.
29257	PortName string `json:"portName,omitempty"`
29258
29259	// ForceSendFields is a list of field names (e.g. "InstanceState") to
29260	// unconditionally include in API requests. By default, fields with
29261	// empty values are omitted from API requests. However, any non-pointer,
29262	// non-interface field appearing in ForceSendFields will be sent to the
29263	// server regardless of whether the field is empty or not. This may be
29264	// used to include empty fields in Patch requests.
29265	ForceSendFields []string `json:"-"`
29266
29267	// NullFields is a list of field names (e.g. "InstanceState") to include
29268	// in API requests with the JSON null value. By default, fields with
29269	// empty values are omitted from API requests. However, any field with
29270	// an empty value appearing in NullFields will be sent to the server as
29271	// null. It is an error if a field in this list has a non-empty value.
29272	// This may be used to include null fields in Patch requests.
29273	NullFields []string `json:"-"`
29274}
29275
29276func (s *RegionInstanceGroupsListInstancesRequest) MarshalJSON() ([]byte, error) {
29277	type NoMethod RegionInstanceGroupsListInstancesRequest
29278	raw := NoMethod(*s)
29279	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29280}
29281
29282type RegionInstanceGroupsSetNamedPortsRequest struct {
29283	// Fingerprint: The fingerprint of the named ports information for this
29284	// instance group. Use this optional property to prevent conflicts when
29285	// multiple users change the named ports settings concurrently. Obtain
29286	// the fingerprint with the instanceGroups.get method. Then, include the
29287	// fingerprint in your request to ensure that you do not overwrite
29288	// changes that were applied from another concurrent request.
29289	Fingerprint string `json:"fingerprint,omitempty"`
29290
29291	// NamedPorts: The list of named ports to set for this instance group.
29292	NamedPorts []*NamedPort `json:"namedPorts,omitempty"`
29293
29294	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
29295	// unconditionally include in API requests. By default, fields with
29296	// empty values are omitted from API requests. However, any non-pointer,
29297	// non-interface field appearing in ForceSendFields will be sent to the
29298	// server regardless of whether the field is empty or not. This may be
29299	// used to include empty fields in Patch requests.
29300	ForceSendFields []string `json:"-"`
29301
29302	// NullFields is a list of field names (e.g. "Fingerprint") to include
29303	// in API requests with the JSON null value. By default, fields with
29304	// empty values are omitted from API requests. However, any field with
29305	// an empty value appearing in NullFields will be sent to the server as
29306	// null. It is an error if a field in this list has a non-empty value.
29307	// This may be used to include null fields in Patch requests.
29308	NullFields []string `json:"-"`
29309}
29310
29311func (s *RegionInstanceGroupsSetNamedPortsRequest) MarshalJSON() ([]byte, error) {
29312	type NoMethod RegionInstanceGroupsSetNamedPortsRequest
29313	raw := NoMethod(*s)
29314	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29315}
29316
29317// RegionList: Contains a list of region resources.
29318type RegionList struct {
29319	// Id: [Output Only] Unique identifier for the resource; defined by the
29320	// server.
29321	Id string `json:"id,omitempty"`
29322
29323	// Items: A list of Region resources.
29324	Items []*Region `json:"items,omitempty"`
29325
29326	// Kind: [Output Only] Type of resource. Always compute#regionList for
29327	// lists of regions.
29328	Kind string `json:"kind,omitempty"`
29329
29330	// NextPageToken: [Output Only] This token allows you to get the next
29331	// page of results for list requests. If the number of results is larger
29332	// than maxResults, use the nextPageToken as a value for the query
29333	// parameter pageToken in the next list request. Subsequent list
29334	// requests will have their own nextPageToken to continue paging through
29335	// the results.
29336	NextPageToken string `json:"nextPageToken,omitempty"`
29337
29338	// SelfLink: [Output Only] Server-defined URL for this resource.
29339	SelfLink string `json:"selfLink,omitempty"`
29340
29341	// Warning: [Output Only] Informational warning message.
29342	Warning *RegionListWarning `json:"warning,omitempty"`
29343
29344	// ServerResponse contains the HTTP response code and headers from the
29345	// server.
29346	googleapi.ServerResponse `json:"-"`
29347
29348	// ForceSendFields is a list of field names (e.g. "Id") to
29349	// unconditionally include in API requests. By default, fields with
29350	// empty values are omitted from API requests. However, any non-pointer,
29351	// non-interface field appearing in ForceSendFields will be sent to the
29352	// server regardless of whether the field is empty or not. This may be
29353	// used to include empty fields in Patch requests.
29354	ForceSendFields []string `json:"-"`
29355
29356	// NullFields is a list of field names (e.g. "Id") to include in API
29357	// requests with the JSON null value. By default, fields with empty
29358	// values are omitted from API requests. However, any field with an
29359	// empty value appearing in NullFields will be sent to the server as
29360	// null. It is an error if a field in this list has a non-empty value.
29361	// This may be used to include null fields in Patch requests.
29362	NullFields []string `json:"-"`
29363}
29364
29365func (s *RegionList) MarshalJSON() ([]byte, error) {
29366	type NoMethod RegionList
29367	raw := NoMethod(*s)
29368	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29369}
29370
29371// RegionListWarning: [Output Only] Informational warning message.
29372type RegionListWarning struct {
29373	// Code: [Output Only] A warning code, if applicable. For example,
29374	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29375	// the response.
29376	//
29377	// Possible values:
29378	//   "CLEANUP_FAILED"
29379	//   "DEPRECATED_RESOURCE_USED"
29380	//   "DEPRECATED_TYPE_USED"
29381	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29382	//   "EXPERIMENTAL_TYPE_USED"
29383	//   "EXTERNAL_API_WARNING"
29384	//   "FIELD_VALUE_OVERRIDEN"
29385	//   "INJECTED_KERNELS_DEPRECATED"
29386	//   "MISSING_TYPE_DEPENDENCY"
29387	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29388	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29389	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29390	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29391	//   "NEXT_HOP_NOT_RUNNING"
29392	//   "NOT_CRITICAL_ERROR"
29393	//   "NO_RESULTS_ON_PAGE"
29394	//   "REQUIRED_TOS_AGREEMENT"
29395	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29396	//   "RESOURCE_NOT_DELETED"
29397	//   "SCHEMA_VALIDATION_IGNORED"
29398	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29399	//   "UNDECLARED_PROPERTIES"
29400	//   "UNREACHABLE"
29401	Code string `json:"code,omitempty"`
29402
29403	// Data: [Output Only] Metadata about this warning in key: value format.
29404	// For example:
29405	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29406	Data []*RegionListWarningData `json:"data,omitempty"`
29407
29408	// Message: [Output Only] A human-readable description of the warning
29409	// code.
29410	Message string `json:"message,omitempty"`
29411
29412	// ForceSendFields is a list of field names (e.g. "Code") to
29413	// unconditionally include in API requests. By default, fields with
29414	// empty values are omitted from API requests. However, any non-pointer,
29415	// non-interface field appearing in ForceSendFields will be sent to the
29416	// server regardless of whether the field is empty or not. This may be
29417	// used to include empty fields in Patch requests.
29418	ForceSendFields []string `json:"-"`
29419
29420	// NullFields is a list of field names (e.g. "Code") to include in API
29421	// requests with the JSON null value. By default, fields with empty
29422	// values are omitted from API requests. However, any field with an
29423	// empty value appearing in NullFields will be sent to the server as
29424	// null. It is an error if a field in this list has a non-empty value.
29425	// This may be used to include null fields in Patch requests.
29426	NullFields []string `json:"-"`
29427}
29428
29429func (s *RegionListWarning) MarshalJSON() ([]byte, error) {
29430	type NoMethod RegionListWarning
29431	raw := NoMethod(*s)
29432	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29433}
29434
29435type RegionListWarningData struct {
29436	// Key: [Output Only] A key that provides more detail on the warning
29437	// being returned. For example, for warnings where there are no results
29438	// in a list request for a particular zone, this key might be scope and
29439	// the key value might be the zone name. Other examples might be a key
29440	// indicating a deprecated resource and a suggested replacement, or a
29441	// warning about invalid network settings (for example, if an instance
29442	// attempts to perform IP forwarding but is not enabled for IP
29443	// forwarding).
29444	Key string `json:"key,omitempty"`
29445
29446	// Value: [Output Only] A warning data value corresponding to the key.
29447	Value string `json:"value,omitempty"`
29448
29449	// ForceSendFields is a list of field names (e.g. "Key") to
29450	// unconditionally include in API requests. By default, fields with
29451	// empty values are omitted from API requests. However, any non-pointer,
29452	// non-interface field appearing in ForceSendFields will be sent to the
29453	// server regardless of whether the field is empty or not. This may be
29454	// used to include empty fields in Patch requests.
29455	ForceSendFields []string `json:"-"`
29456
29457	// NullFields is a list of field names (e.g. "Key") to include in API
29458	// requests with the JSON null value. By default, fields with empty
29459	// values are omitted from API requests. However, any field with an
29460	// empty value appearing in NullFields will be sent to the server as
29461	// null. It is an error if a field in this list has a non-empty value.
29462	// This may be used to include null fields in Patch requests.
29463	NullFields []string `json:"-"`
29464}
29465
29466func (s *RegionListWarningData) MarshalJSON() ([]byte, error) {
29467	type NoMethod RegionListWarningData
29468	raw := NoMethod(*s)
29469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29470}
29471
29472type RegionSetLabelsRequest struct {
29473	// LabelFingerprint: The fingerprint of the previous set of labels for
29474	// this resource, used to detect conflicts. The fingerprint is initially
29475	// generated by Compute Engine and changes after every request to modify
29476	// or update labels. You must always provide an up-to-date fingerprint
29477	// hash in order to update or change labels. Make a get() request to the
29478	// resource to get the latest fingerprint.
29479	LabelFingerprint string `json:"labelFingerprint,omitempty"`
29480
29481	// Labels: The labels to set for this resource.
29482	Labels map[string]string `json:"labels,omitempty"`
29483
29484	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
29485	// unconditionally include in API requests. By default, fields with
29486	// empty values are omitted from API requests. However, any non-pointer,
29487	// non-interface field appearing in ForceSendFields will be sent to the
29488	// server regardless of whether the field is empty or not. This may be
29489	// used to include empty fields in Patch requests.
29490	ForceSendFields []string `json:"-"`
29491
29492	// NullFields is a list of field names (e.g. "LabelFingerprint") to
29493	// include in API requests with the JSON null value. By default, fields
29494	// with empty values are omitted from API requests. However, any field
29495	// with an empty value appearing in NullFields will be sent to the
29496	// server as null. It is an error if a field in this list has a
29497	// non-empty value. This may be used to include null fields in Patch
29498	// requests.
29499	NullFields []string `json:"-"`
29500}
29501
29502func (s *RegionSetLabelsRequest) MarshalJSON() ([]byte, error) {
29503	type NoMethod RegionSetLabelsRequest
29504	raw := NoMethod(*s)
29505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29506}
29507
29508type RegionSetPolicyRequest struct {
29509	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
29510	// Deprecated. Use 'policy' to specify bindings.
29511	Bindings []*Binding `json:"bindings,omitempty"`
29512
29513	// Etag: Flatten Policy to create a backward compatible wire-format.
29514	// Deprecated. Use 'policy' to specify the etag.
29515	Etag string `json:"etag,omitempty"`
29516
29517	// Policy: REQUIRED: The complete policy to be applied to the
29518	// 'resource'. The size of the policy is limited to a few 10s of KB. An
29519	// empty policy is in general a valid policy but certain services (like
29520	// Projects) might reject them.
29521	Policy *Policy `json:"policy,omitempty"`
29522
29523	// ForceSendFields is a list of field names (e.g. "Bindings") to
29524	// unconditionally include in API requests. By default, fields with
29525	// empty values are omitted from API requests. However, any non-pointer,
29526	// non-interface field appearing in ForceSendFields will be sent to the
29527	// server regardless of whether the field is empty or not. This may be
29528	// used to include empty fields in Patch requests.
29529	ForceSendFields []string `json:"-"`
29530
29531	// NullFields is a list of field names (e.g. "Bindings") to include in
29532	// API requests with the JSON null value. By default, fields with empty
29533	// values are omitted from API requests. However, any field with an
29534	// empty value appearing in NullFields will be sent to the server as
29535	// null. It is an error if a field in this list has a non-empty value.
29536	// This may be used to include null fields in Patch requests.
29537	NullFields []string `json:"-"`
29538}
29539
29540func (s *RegionSetPolicyRequest) MarshalJSON() ([]byte, error) {
29541	type NoMethod RegionSetPolicyRequest
29542	raw := NoMethod(*s)
29543	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29544}
29545
29546type RegionTargetHttpsProxiesSetSslCertificatesRequest struct {
29547	// SslCertificates: New set of SslCertificate resources to associate
29548	// with this TargetHttpsProxy resource. Currently exactly one
29549	// SslCertificate resource must be specified.
29550	SslCertificates []string `json:"sslCertificates,omitempty"`
29551
29552	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
29553	// unconditionally include in API requests. By default, fields with
29554	// empty values are omitted from API requests. However, any non-pointer,
29555	// non-interface field appearing in ForceSendFields will be sent to the
29556	// server regardless of whether the field is empty or not. This may be
29557	// used to include empty fields in Patch requests.
29558	ForceSendFields []string `json:"-"`
29559
29560	// NullFields is a list of field names (e.g. "SslCertificates") to
29561	// include in API requests with the JSON null value. By default, fields
29562	// with empty values are omitted from API requests. However, any field
29563	// with an empty value appearing in NullFields will be sent to the
29564	// server as null. It is an error if a field in this list has a
29565	// non-empty value. This may be used to include null fields in Patch
29566	// requests.
29567	NullFields []string `json:"-"`
29568}
29569
29570func (s *RegionTargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
29571	type NoMethod RegionTargetHttpsProxiesSetSslCertificatesRequest
29572	raw := NoMethod(*s)
29573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29574}
29575
29576type RegionUrlMapsValidateRequest struct {
29577	// Resource: Content of the UrlMap to be validated.
29578	Resource *UrlMap `json:"resource,omitempty"`
29579
29580	// ForceSendFields is a list of field names (e.g. "Resource") to
29581	// unconditionally include in API requests. By default, fields with
29582	// empty values are omitted from API requests. However, any non-pointer,
29583	// non-interface field appearing in ForceSendFields will be sent to the
29584	// server regardless of whether the field is empty or not. This may be
29585	// used to include empty fields in Patch requests.
29586	ForceSendFields []string `json:"-"`
29587
29588	// NullFields is a list of field names (e.g. "Resource") to include in
29589	// API requests with the JSON null value. By default, fields with empty
29590	// values are omitted from API requests. However, any field with an
29591	// empty value appearing in NullFields will be sent to the server as
29592	// null. It is an error if a field in this list has a non-empty value.
29593	// This may be used to include null fields in Patch requests.
29594	NullFields []string `json:"-"`
29595}
29596
29597func (s *RegionUrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
29598	type NoMethod RegionUrlMapsValidateRequest
29599	raw := NoMethod(*s)
29600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29601}
29602
29603// RequestMirrorPolicy: A policy that specifies how requests intended
29604// for the route's backends are shadowed to a separate mirrored backend
29605// service. Loadbalancer does not wait for responses from the shadow
29606// service. Prior to sending traffic to the shadow service, the host /
29607// authority header is suffixed with -shadow.
29608type RequestMirrorPolicy struct {
29609	// BackendService: The full or partial URL to the BackendService
29610	// resource being mirrored to.
29611	BackendService string `json:"backendService,omitempty"`
29612
29613	// ForceSendFields is a list of field names (e.g. "BackendService") to
29614	// unconditionally include in API requests. By default, fields with
29615	// empty values are omitted from API requests. However, any non-pointer,
29616	// non-interface field appearing in ForceSendFields will be sent to the
29617	// server regardless of whether the field is empty or not. This may be
29618	// used to include empty fields in Patch requests.
29619	ForceSendFields []string `json:"-"`
29620
29621	// NullFields is a list of field names (e.g. "BackendService") to
29622	// include in API requests with the JSON null value. By default, fields
29623	// with empty values are omitted from API requests. However, any field
29624	// with an empty value appearing in NullFields will be sent to the
29625	// server as null. It is an error if a field in this list has a
29626	// non-empty value. This may be used to include null fields in Patch
29627	// requests.
29628	NullFields []string `json:"-"`
29629}
29630
29631func (s *RequestMirrorPolicy) MarshalJSON() ([]byte, error) {
29632	type NoMethod RequestMirrorPolicy
29633	raw := NoMethod(*s)
29634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29635}
29636
29637// Reservation: Represents a reservation resource. A reservation ensures
29638// that capacity is held in a specific zone even if the reserved VMs are
29639// not running. For more information, read  Reserving zonal resources.
29640// (== resource_for {$api_version}.reservations ==)
29641type Reservation struct {
29642	// Commitment: [Output Only] Full or partial URL to a parent commitment.
29643	// This field displays for reservations that are tied to a commitment.
29644	Commitment string `json:"commitment,omitempty"`
29645
29646	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
29647	// format.
29648	CreationTimestamp string `json:"creationTimestamp,omitempty"`
29649
29650	// Description: An optional description of this resource. Provide this
29651	// property when you create the resource.
29652	Description string `json:"description,omitempty"`
29653
29654	// Id: [Output Only] The unique identifier for the resource. This
29655	// identifier is defined by the server.
29656	Id uint64 `json:"id,omitempty,string"`
29657
29658	// Kind: [Output Only] Type of the resource. Always compute#reservations
29659	// for reservations.
29660	Kind string `json:"kind,omitempty"`
29661
29662	// Name: The name of the resource, provided by the client when initially
29663	// creating the resource. The resource name must be 1-63 characters
29664	// long, and comply with RFC1035. Specifically, the name must be 1-63
29665	// characters long and match the regular expression
29666	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
29667	// a lowercase letter, and all following characters must be a dash,
29668	// lowercase letter, or digit, except the last character, which cannot
29669	// be a dash.
29670	Name string `json:"name,omitempty"`
29671
29672	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
29673	// resource.
29674	SelfLink string `json:"selfLink,omitempty"`
29675
29676	// SpecificReservation: Reservation for instances with specific machine
29677	// shapes.
29678	SpecificReservation *AllocationSpecificSKUReservation `json:"specificReservation,omitempty"`
29679
29680	// SpecificReservationRequired: Indicates whether the reservation can be
29681	// consumed by VMs with affinity for "any" reservation. If the field is
29682	// set, then only VMs that target the reservation by name can consume
29683	// from this reservation.
29684	SpecificReservationRequired bool `json:"specificReservationRequired,omitempty"`
29685
29686	// Status: [Output Only] The status of the reservation.
29687	//
29688	// Possible values:
29689	//   "CREATING"
29690	//   "DELETING"
29691	//   "INVALID"
29692	//   "READY"
29693	//   "UPDATING"
29694	Status string `json:"status,omitempty"`
29695
29696	// Zone: Zone in which the reservation resides. A zone must be provided
29697	// if the reservation is created within a commitment.
29698	Zone string `json:"zone,omitempty"`
29699
29700	// ServerResponse contains the HTTP response code and headers from the
29701	// server.
29702	googleapi.ServerResponse `json:"-"`
29703
29704	// ForceSendFields is a list of field names (e.g. "Commitment") to
29705	// unconditionally include in API requests. By default, fields with
29706	// empty values are omitted from API requests. However, any non-pointer,
29707	// non-interface field appearing in ForceSendFields will be sent to the
29708	// server regardless of whether the field is empty or not. This may be
29709	// used to include empty fields in Patch requests.
29710	ForceSendFields []string `json:"-"`
29711
29712	// NullFields is a list of field names (e.g. "Commitment") to include in
29713	// API requests with the JSON null value. By default, fields with empty
29714	// values are omitted from API requests. However, any field with an
29715	// empty value appearing in NullFields will be sent to the server as
29716	// null. It is an error if a field in this list has a non-empty value.
29717	// This may be used to include null fields in Patch requests.
29718	NullFields []string `json:"-"`
29719}
29720
29721func (s *Reservation) MarshalJSON() ([]byte, error) {
29722	type NoMethod Reservation
29723	raw := NoMethod(*s)
29724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29725}
29726
29727// ReservationAffinity: Specifies the reservations that this instance
29728// can consume from.
29729type ReservationAffinity struct {
29730	// ConsumeReservationType: Specifies the type of reservation from which
29731	// this instance can consume resources: ANY_RESERVATION (default),
29732	// SPECIFIC_RESERVATION, or NO_RESERVATION. See  Consuming reserved
29733	// instances for examples.
29734	//
29735	// Possible values:
29736	//   "ANY_RESERVATION"
29737	//   "NO_RESERVATION"
29738	//   "SPECIFIC_RESERVATION"
29739	//   "UNSPECIFIED"
29740	ConsumeReservationType string `json:"consumeReservationType,omitempty"`
29741
29742	// Key: Corresponds to the label key of a reservation resource. To
29743	// target a SPECIFIC_RESERVATION by name, specify
29744	// googleapis.com/reservation-name as the key and specify the name of
29745	// your reservation as its value.
29746	Key string `json:"key,omitempty"`
29747
29748	// Values: Corresponds to the label values of a reservation resource.
29749	Values []string `json:"values,omitempty"`
29750
29751	// ForceSendFields is a list of field names (e.g.
29752	// "ConsumeReservationType") to unconditionally include in API requests.
29753	// By default, fields with empty values are omitted from API requests.
29754	// However, any non-pointer, non-interface field appearing in
29755	// ForceSendFields will be sent to the server regardless of whether the
29756	// field is empty or not. This may be used to include empty fields in
29757	// Patch requests.
29758	ForceSendFields []string `json:"-"`
29759
29760	// NullFields is a list of field names (e.g. "ConsumeReservationType")
29761	// to include in API requests with the JSON null value. By default,
29762	// fields with empty values are omitted from API requests. However, any
29763	// field with an empty value appearing in NullFields will be sent to the
29764	// server as null. It is an error if a field in this list has a
29765	// non-empty value. This may be used to include null fields in Patch
29766	// requests.
29767	NullFields []string `json:"-"`
29768}
29769
29770func (s *ReservationAffinity) MarshalJSON() ([]byte, error) {
29771	type NoMethod ReservationAffinity
29772	raw := NoMethod(*s)
29773	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29774}
29775
29776// ReservationAggregatedList: Contains a list of reservations.
29777type ReservationAggregatedList struct {
29778	// Id: [Output Only] Unique identifier for the resource; defined by the
29779	// server.
29780	Id string `json:"id,omitempty"`
29781
29782	// Items: A list of Allocation resources.
29783	Items map[string]ReservationsScopedList `json:"items,omitempty"`
29784
29785	// Kind: Type of resource.
29786	Kind string `json:"kind,omitempty"`
29787
29788	// NextPageToken: [Output Only] This token allows you to get the next
29789	// page of results for list requests. If the number of results is larger
29790	// than maxResults, use the nextPageToken as a value for the query
29791	// parameter pageToken in the next list request. Subsequent list
29792	// requests will have their own nextPageToken to continue paging through
29793	// the results.
29794	NextPageToken string `json:"nextPageToken,omitempty"`
29795
29796	// SelfLink: [Output Only] Server-defined URL for this resource.
29797	SelfLink string `json:"selfLink,omitempty"`
29798
29799	// Warning: [Output Only] Informational warning message.
29800	Warning *ReservationAggregatedListWarning `json:"warning,omitempty"`
29801
29802	// ServerResponse contains the HTTP response code and headers from the
29803	// server.
29804	googleapi.ServerResponse `json:"-"`
29805
29806	// ForceSendFields is a list of field names (e.g. "Id") to
29807	// unconditionally include in API requests. By default, fields with
29808	// empty values are omitted from API requests. However, any non-pointer,
29809	// non-interface field appearing in ForceSendFields will be sent to the
29810	// server regardless of whether the field is empty or not. This may be
29811	// used to include empty fields in Patch requests.
29812	ForceSendFields []string `json:"-"`
29813
29814	// NullFields is a list of field names (e.g. "Id") to include in API
29815	// requests with the JSON null value. By default, fields with empty
29816	// values are omitted from API requests. However, any field with an
29817	// empty value appearing in NullFields will be sent to the server as
29818	// null. It is an error if a field in this list has a non-empty value.
29819	// This may be used to include null fields in Patch requests.
29820	NullFields []string `json:"-"`
29821}
29822
29823func (s *ReservationAggregatedList) MarshalJSON() ([]byte, error) {
29824	type NoMethod ReservationAggregatedList
29825	raw := NoMethod(*s)
29826	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29827}
29828
29829// ReservationAggregatedListWarning: [Output Only] Informational warning
29830// message.
29831type ReservationAggregatedListWarning struct {
29832	// Code: [Output Only] A warning code, if applicable. For example,
29833	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29834	// the response.
29835	//
29836	// Possible values:
29837	//   "CLEANUP_FAILED"
29838	//   "DEPRECATED_RESOURCE_USED"
29839	//   "DEPRECATED_TYPE_USED"
29840	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29841	//   "EXPERIMENTAL_TYPE_USED"
29842	//   "EXTERNAL_API_WARNING"
29843	//   "FIELD_VALUE_OVERRIDEN"
29844	//   "INJECTED_KERNELS_DEPRECATED"
29845	//   "MISSING_TYPE_DEPENDENCY"
29846	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
29847	//   "NEXT_HOP_CANNOT_IP_FORWARD"
29848	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
29849	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
29850	//   "NEXT_HOP_NOT_RUNNING"
29851	//   "NOT_CRITICAL_ERROR"
29852	//   "NO_RESULTS_ON_PAGE"
29853	//   "REQUIRED_TOS_AGREEMENT"
29854	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
29855	//   "RESOURCE_NOT_DELETED"
29856	//   "SCHEMA_VALIDATION_IGNORED"
29857	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
29858	//   "UNDECLARED_PROPERTIES"
29859	//   "UNREACHABLE"
29860	Code string `json:"code,omitempty"`
29861
29862	// Data: [Output Only] Metadata about this warning in key: value format.
29863	// For example:
29864	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
29865	Data []*ReservationAggregatedListWarningData `json:"data,omitempty"`
29866
29867	// Message: [Output Only] A human-readable description of the warning
29868	// code.
29869	Message string `json:"message,omitempty"`
29870
29871	// ForceSendFields is a list of field names (e.g. "Code") to
29872	// unconditionally include in API requests. By default, fields with
29873	// empty values are omitted from API requests. However, any non-pointer,
29874	// non-interface field appearing in ForceSendFields will be sent to the
29875	// server regardless of whether the field is empty or not. This may be
29876	// used to include empty fields in Patch requests.
29877	ForceSendFields []string `json:"-"`
29878
29879	// NullFields is a list of field names (e.g. "Code") to include in API
29880	// requests with the JSON null value. By default, fields with empty
29881	// values are omitted from API requests. However, any field with an
29882	// empty value appearing in NullFields will be sent to the server as
29883	// null. It is an error if a field in this list has a non-empty value.
29884	// This may be used to include null fields in Patch requests.
29885	NullFields []string `json:"-"`
29886}
29887
29888func (s *ReservationAggregatedListWarning) MarshalJSON() ([]byte, error) {
29889	type NoMethod ReservationAggregatedListWarning
29890	raw := NoMethod(*s)
29891	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29892}
29893
29894type ReservationAggregatedListWarningData struct {
29895	// Key: [Output Only] A key that provides more detail on the warning
29896	// being returned. For example, for warnings where there are no results
29897	// in a list request for a particular zone, this key might be scope and
29898	// the key value might be the zone name. Other examples might be a key
29899	// indicating a deprecated resource and a suggested replacement, or a
29900	// warning about invalid network settings (for example, if an instance
29901	// attempts to perform IP forwarding but is not enabled for IP
29902	// forwarding).
29903	Key string `json:"key,omitempty"`
29904
29905	// Value: [Output Only] A warning data value corresponding to the key.
29906	Value string `json:"value,omitempty"`
29907
29908	// ForceSendFields is a list of field names (e.g. "Key") to
29909	// unconditionally include in API requests. By default, fields with
29910	// empty values are omitted from API requests. However, any non-pointer,
29911	// non-interface field appearing in ForceSendFields will be sent to the
29912	// server regardless of whether the field is empty or not. This may be
29913	// used to include empty fields in Patch requests.
29914	ForceSendFields []string `json:"-"`
29915
29916	// NullFields is a list of field names (e.g. "Key") to include in API
29917	// requests with the JSON null value. By default, fields with empty
29918	// values are omitted from API requests. However, any field with an
29919	// empty value appearing in NullFields will be sent to the server as
29920	// null. It is an error if a field in this list has a non-empty value.
29921	// This may be used to include null fields in Patch requests.
29922	NullFields []string `json:"-"`
29923}
29924
29925func (s *ReservationAggregatedListWarningData) MarshalJSON() ([]byte, error) {
29926	type NoMethod ReservationAggregatedListWarningData
29927	raw := NoMethod(*s)
29928	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29929}
29930
29931type ReservationList struct {
29932	// Id: [Output Only] The unique identifier for the resource. This
29933	// identifier is defined by the server.
29934	Id string `json:"id,omitempty"`
29935
29936	// Items: [Output Only] A list of Allocation resources.
29937	Items []*Reservation `json:"items,omitempty"`
29938
29939	// Kind: [Output Only] Type of resource.Always compute#reservationsList
29940	// for listsof reservations
29941	Kind string `json:"kind,omitempty"`
29942
29943	// NextPageToken: [Output Only] This token allows you to get the next
29944	// page of results for list requests. If the number of results is larger
29945	// than maxResults, use the nextPageToken as a value for the query
29946	// parameter pageToken in the next list request. Subsequent list
29947	// requests will have their own nextPageToken to continue paging through
29948	// the results.
29949	NextPageToken string `json:"nextPageToken,omitempty"`
29950
29951	// SelfLink: [Output Only] Server-defined URL for this resource.
29952	SelfLink string `json:"selfLink,omitempty"`
29953
29954	// Warning: [Output Only] Informational warning message.
29955	Warning *ReservationListWarning `json:"warning,omitempty"`
29956
29957	// ServerResponse contains the HTTP response code and headers from the
29958	// server.
29959	googleapi.ServerResponse `json:"-"`
29960
29961	// ForceSendFields is a list of field names (e.g. "Id") to
29962	// unconditionally include in API requests. By default, fields with
29963	// empty values are omitted from API requests. However, any non-pointer,
29964	// non-interface field appearing in ForceSendFields will be sent to the
29965	// server regardless of whether the field is empty or not. This may be
29966	// used to include empty fields in Patch requests.
29967	ForceSendFields []string `json:"-"`
29968
29969	// NullFields is a list of field names (e.g. "Id") to include in API
29970	// requests with the JSON null value. By default, fields with empty
29971	// values are omitted from API requests. However, any field with an
29972	// empty value appearing in NullFields will be sent to the server as
29973	// null. It is an error if a field in this list has a non-empty value.
29974	// This may be used to include null fields in Patch requests.
29975	NullFields []string `json:"-"`
29976}
29977
29978func (s *ReservationList) MarshalJSON() ([]byte, error) {
29979	type NoMethod ReservationList
29980	raw := NoMethod(*s)
29981	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
29982}
29983
29984// ReservationListWarning: [Output Only] Informational warning message.
29985type ReservationListWarning struct {
29986	// Code: [Output Only] A warning code, if applicable. For example,
29987	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
29988	// the response.
29989	//
29990	// Possible values:
29991	//   "CLEANUP_FAILED"
29992	//   "DEPRECATED_RESOURCE_USED"
29993	//   "DEPRECATED_TYPE_USED"
29994	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
29995	//   "EXPERIMENTAL_TYPE_USED"
29996	//   "EXTERNAL_API_WARNING"
29997	//   "FIELD_VALUE_OVERRIDEN"
29998	//   "INJECTED_KERNELS_DEPRECATED"
29999	//   "MISSING_TYPE_DEPENDENCY"
30000	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30001	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30002	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30003	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30004	//   "NEXT_HOP_NOT_RUNNING"
30005	//   "NOT_CRITICAL_ERROR"
30006	//   "NO_RESULTS_ON_PAGE"
30007	//   "REQUIRED_TOS_AGREEMENT"
30008	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30009	//   "RESOURCE_NOT_DELETED"
30010	//   "SCHEMA_VALIDATION_IGNORED"
30011	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30012	//   "UNDECLARED_PROPERTIES"
30013	//   "UNREACHABLE"
30014	Code string `json:"code,omitempty"`
30015
30016	// Data: [Output Only] Metadata about this warning in key: value format.
30017	// For example:
30018	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30019	Data []*ReservationListWarningData `json:"data,omitempty"`
30020
30021	// Message: [Output Only] A human-readable description of the warning
30022	// code.
30023	Message string `json:"message,omitempty"`
30024
30025	// ForceSendFields is a list of field names (e.g. "Code") to
30026	// unconditionally include in API requests. By default, fields with
30027	// empty values are omitted from API requests. However, any non-pointer,
30028	// non-interface field appearing in ForceSendFields will be sent to the
30029	// server regardless of whether the field is empty or not. This may be
30030	// used to include empty fields in Patch requests.
30031	ForceSendFields []string `json:"-"`
30032
30033	// NullFields is a list of field names (e.g. "Code") to include in API
30034	// requests with the JSON null value. By default, fields with empty
30035	// values are omitted from API requests. However, any field with an
30036	// empty value appearing in NullFields will be sent to the server as
30037	// null. It is an error if a field in this list has a non-empty value.
30038	// This may be used to include null fields in Patch requests.
30039	NullFields []string `json:"-"`
30040}
30041
30042func (s *ReservationListWarning) MarshalJSON() ([]byte, error) {
30043	type NoMethod ReservationListWarning
30044	raw := NoMethod(*s)
30045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30046}
30047
30048type ReservationListWarningData struct {
30049	// Key: [Output Only] A key that provides more detail on the warning
30050	// being returned. For example, for warnings where there are no results
30051	// in a list request for a particular zone, this key might be scope and
30052	// the key value might be the zone name. Other examples might be a key
30053	// indicating a deprecated resource and a suggested replacement, or a
30054	// warning about invalid network settings (for example, if an instance
30055	// attempts to perform IP forwarding but is not enabled for IP
30056	// forwarding).
30057	Key string `json:"key,omitempty"`
30058
30059	// Value: [Output Only] A warning data value corresponding to the key.
30060	Value string `json:"value,omitempty"`
30061
30062	// ForceSendFields is a list of field names (e.g. "Key") to
30063	// unconditionally include in API requests. By default, fields with
30064	// empty values are omitted from API requests. However, any non-pointer,
30065	// non-interface field appearing in ForceSendFields will be sent to the
30066	// server regardless of whether the field is empty or not. This may be
30067	// used to include empty fields in Patch requests.
30068	ForceSendFields []string `json:"-"`
30069
30070	// NullFields is a list of field names (e.g. "Key") to include in API
30071	// requests with the JSON null value. By default, fields with empty
30072	// values are omitted from API requests. However, any field with an
30073	// empty value appearing in NullFields will be sent to the server as
30074	// null. It is an error if a field in this list has a non-empty value.
30075	// This may be used to include null fields in Patch requests.
30076	NullFields []string `json:"-"`
30077}
30078
30079func (s *ReservationListWarningData) MarshalJSON() ([]byte, error) {
30080	type NoMethod ReservationListWarningData
30081	raw := NoMethod(*s)
30082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30083}
30084
30085type ReservationsResizeRequest struct {
30086	// SpecificSkuCount: Number of allocated resources can be resized with
30087	// minimum = 1 and maximum = 1000.
30088	SpecificSkuCount int64 `json:"specificSkuCount,omitempty,string"`
30089
30090	// ForceSendFields is a list of field names (e.g. "SpecificSkuCount") to
30091	// unconditionally include in API requests. By default, fields with
30092	// empty values are omitted from API requests. However, any non-pointer,
30093	// non-interface field appearing in ForceSendFields will be sent to the
30094	// server regardless of whether the field is empty or not. This may be
30095	// used to include empty fields in Patch requests.
30096	ForceSendFields []string `json:"-"`
30097
30098	// NullFields is a list of field names (e.g. "SpecificSkuCount") to
30099	// include in API requests with the JSON null value. By default, fields
30100	// with empty values are omitted from API requests. However, any field
30101	// with an empty value appearing in NullFields will be sent to the
30102	// server as null. It is an error if a field in this list has a
30103	// non-empty value. This may be used to include null fields in Patch
30104	// requests.
30105	NullFields []string `json:"-"`
30106}
30107
30108func (s *ReservationsResizeRequest) MarshalJSON() ([]byte, error) {
30109	type NoMethod ReservationsResizeRequest
30110	raw := NoMethod(*s)
30111	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30112}
30113
30114type ReservationsScopedList struct {
30115	// Reservations: A list of reservations contained in this scope.
30116	Reservations []*Reservation `json:"reservations,omitempty"`
30117
30118	// Warning: Informational warning which replaces the list of
30119	// reservations when the list is empty.
30120	Warning *ReservationsScopedListWarning `json:"warning,omitempty"`
30121
30122	// ForceSendFields is a list of field names (e.g. "Reservations") to
30123	// unconditionally include in API requests. By default, fields with
30124	// empty values are omitted from API requests. However, any non-pointer,
30125	// non-interface field appearing in ForceSendFields will be sent to the
30126	// server regardless of whether the field is empty or not. This may be
30127	// used to include empty fields in Patch requests.
30128	ForceSendFields []string `json:"-"`
30129
30130	// NullFields is a list of field names (e.g. "Reservations") to include
30131	// in API requests with the JSON null value. By default, fields with
30132	// empty values are omitted from API requests. However, any field with
30133	// an empty value appearing in NullFields will be sent to the server as
30134	// null. It is an error if a field in this list has a non-empty value.
30135	// This may be used to include null fields in Patch requests.
30136	NullFields []string `json:"-"`
30137}
30138
30139func (s *ReservationsScopedList) MarshalJSON() ([]byte, error) {
30140	type NoMethod ReservationsScopedList
30141	raw := NoMethod(*s)
30142	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30143}
30144
30145// ReservationsScopedListWarning: Informational warning which replaces
30146// the list of reservations when the list is empty.
30147type ReservationsScopedListWarning struct {
30148	// Code: [Output Only] A warning code, if applicable. For example,
30149	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30150	// the response.
30151	//
30152	// Possible values:
30153	//   "CLEANUP_FAILED"
30154	//   "DEPRECATED_RESOURCE_USED"
30155	//   "DEPRECATED_TYPE_USED"
30156	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30157	//   "EXPERIMENTAL_TYPE_USED"
30158	//   "EXTERNAL_API_WARNING"
30159	//   "FIELD_VALUE_OVERRIDEN"
30160	//   "INJECTED_KERNELS_DEPRECATED"
30161	//   "MISSING_TYPE_DEPENDENCY"
30162	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30163	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30164	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30165	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30166	//   "NEXT_HOP_NOT_RUNNING"
30167	//   "NOT_CRITICAL_ERROR"
30168	//   "NO_RESULTS_ON_PAGE"
30169	//   "REQUIRED_TOS_AGREEMENT"
30170	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30171	//   "RESOURCE_NOT_DELETED"
30172	//   "SCHEMA_VALIDATION_IGNORED"
30173	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30174	//   "UNDECLARED_PROPERTIES"
30175	//   "UNREACHABLE"
30176	Code string `json:"code,omitempty"`
30177
30178	// Data: [Output Only] Metadata about this warning in key: value format.
30179	// For example:
30180	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30181	Data []*ReservationsScopedListWarningData `json:"data,omitempty"`
30182
30183	// Message: [Output Only] A human-readable description of the warning
30184	// code.
30185	Message string `json:"message,omitempty"`
30186
30187	// ForceSendFields is a list of field names (e.g. "Code") to
30188	// unconditionally include in API requests. By default, fields with
30189	// empty values are omitted from API requests. However, any non-pointer,
30190	// non-interface field appearing in ForceSendFields will be sent to the
30191	// server regardless of whether the field is empty or not. This may be
30192	// used to include empty fields in Patch requests.
30193	ForceSendFields []string `json:"-"`
30194
30195	// NullFields is a list of field names (e.g. "Code") to include in API
30196	// requests with the JSON null value. By default, fields with empty
30197	// values are omitted from API requests. However, any field with an
30198	// empty value appearing in NullFields will be sent to the server as
30199	// null. It is an error if a field in this list has a non-empty value.
30200	// This may be used to include null fields in Patch requests.
30201	NullFields []string `json:"-"`
30202}
30203
30204func (s *ReservationsScopedListWarning) MarshalJSON() ([]byte, error) {
30205	type NoMethod ReservationsScopedListWarning
30206	raw := NoMethod(*s)
30207	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30208}
30209
30210type ReservationsScopedListWarningData struct {
30211	// Key: [Output Only] A key that provides more detail on the warning
30212	// being returned. For example, for warnings where there are no results
30213	// in a list request for a particular zone, this key might be scope and
30214	// the key value might be the zone name. Other examples might be a key
30215	// indicating a deprecated resource and a suggested replacement, or a
30216	// warning about invalid network settings (for example, if an instance
30217	// attempts to perform IP forwarding but is not enabled for IP
30218	// forwarding).
30219	Key string `json:"key,omitempty"`
30220
30221	// Value: [Output Only] A warning data value corresponding to the key.
30222	Value string `json:"value,omitempty"`
30223
30224	// ForceSendFields is a list of field names (e.g. "Key") to
30225	// unconditionally include in API requests. By default, fields with
30226	// empty values are omitted from API requests. However, any non-pointer,
30227	// non-interface field appearing in ForceSendFields will be sent to the
30228	// server regardless of whether the field is empty or not. This may be
30229	// used to include empty fields in Patch requests.
30230	ForceSendFields []string `json:"-"`
30231
30232	// NullFields is a list of field names (e.g. "Key") to include in API
30233	// requests with the JSON null value. By default, fields with empty
30234	// values are omitted from API requests. However, any field with an
30235	// empty value appearing in NullFields will be sent to the server as
30236	// null. It is an error if a field in this list has a non-empty value.
30237	// This may be used to include null fields in Patch requests.
30238	NullFields []string `json:"-"`
30239}
30240
30241func (s *ReservationsScopedListWarningData) MarshalJSON() ([]byte, error) {
30242	type NoMethod ReservationsScopedListWarningData
30243	raw := NoMethod(*s)
30244	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30245}
30246
30247// ResourceCommitment: Commitment for a particular resource (a
30248// Commitment is composed of one or more of these).
30249type ResourceCommitment struct {
30250	// AcceleratorType: Name of the accelerator type resource. Applicable
30251	// only when the type is ACCELERATOR.
30252	AcceleratorType string `json:"acceleratorType,omitempty"`
30253
30254	// Amount: The amount of the resource purchased (in a type-dependent
30255	// unit, such as bytes). For vCPUs, this can just be an integer. For
30256	// memory, this must be provided in MB. Memory must be a multiple of 256
30257	// MB, with up to 6.5GB of memory per every vCPU.
30258	Amount int64 `json:"amount,omitempty,string"`
30259
30260	// Type: Type of resource for which this commitment applies. Possible
30261	// values are VCPU and MEMORY
30262	//
30263	// Possible values:
30264	//   "ACCELERATOR"
30265	//   "LOCAL_SSD"
30266	//   "MEMORY"
30267	//   "UNSPECIFIED"
30268	//   "VCPU"
30269	Type string `json:"type,omitempty"`
30270
30271	// ForceSendFields is a list of field names (e.g. "AcceleratorType") to
30272	// unconditionally include in API requests. By default, fields with
30273	// empty values are omitted from API requests. However, any non-pointer,
30274	// non-interface field appearing in ForceSendFields will be sent to the
30275	// server regardless of whether the field is empty or not. This may be
30276	// used to include empty fields in Patch requests.
30277	ForceSendFields []string `json:"-"`
30278
30279	// NullFields is a list of field names (e.g. "AcceleratorType") to
30280	// include in API requests with the JSON null value. By default, fields
30281	// with empty values are omitted from API requests. However, any field
30282	// with an empty value appearing in NullFields will be sent to the
30283	// server as null. It is an error if a field in this list has a
30284	// non-empty value. This may be used to include null fields in Patch
30285	// requests.
30286	NullFields []string `json:"-"`
30287}
30288
30289func (s *ResourceCommitment) MarshalJSON() ([]byte, error) {
30290	type NoMethod ResourceCommitment
30291	raw := NoMethod(*s)
30292	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30293}
30294
30295type ResourceGroupReference struct {
30296	// Group: A URI referencing one of the instance groups or network
30297	// endpoint groups listed in the backend service.
30298	Group string `json:"group,omitempty"`
30299
30300	// ForceSendFields is a list of field names (e.g. "Group") to
30301	// unconditionally include in API requests. By default, fields with
30302	// empty values are omitted from API requests. However, any non-pointer,
30303	// non-interface field appearing in ForceSendFields will be sent to the
30304	// server regardless of whether the field is empty or not. This may be
30305	// used to include empty fields in Patch requests.
30306	ForceSendFields []string `json:"-"`
30307
30308	// NullFields is a list of field names (e.g. "Group") to include in API
30309	// requests with the JSON null value. By default, fields with empty
30310	// values are omitted from API requests. However, any field with an
30311	// empty value appearing in NullFields will be sent to the server as
30312	// null. It is an error if a field in this list has a non-empty value.
30313	// This may be used to include null fields in Patch requests.
30314	NullFields []string `json:"-"`
30315}
30316
30317func (s *ResourceGroupReference) MarshalJSON() ([]byte, error) {
30318	type NoMethod ResourceGroupReference
30319	raw := NoMethod(*s)
30320	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30321}
30322
30323type ResourcePoliciesScopedList struct {
30324	// ResourcePolicies: A list of resourcePolicies contained in this scope.
30325	ResourcePolicies []*ResourcePolicy `json:"resourcePolicies,omitempty"`
30326
30327	// Warning: Informational warning which replaces the list of
30328	// resourcePolicies when the list is empty.
30329	Warning *ResourcePoliciesScopedListWarning `json:"warning,omitempty"`
30330
30331	// ForceSendFields is a list of field names (e.g. "ResourcePolicies") to
30332	// unconditionally include in API requests. By default, fields with
30333	// empty values are omitted from API requests. However, any non-pointer,
30334	// non-interface field appearing in ForceSendFields will be sent to the
30335	// server regardless of whether the field is empty or not. This may be
30336	// used to include empty fields in Patch requests.
30337	ForceSendFields []string `json:"-"`
30338
30339	// NullFields is a list of field names (e.g. "ResourcePolicies") to
30340	// include in API requests with the JSON null value. By default, fields
30341	// with empty values are omitted from API requests. However, any field
30342	// with an empty value appearing in NullFields will be sent to the
30343	// server as null. It is an error if a field in this list has a
30344	// non-empty value. This may be used to include null fields in Patch
30345	// requests.
30346	NullFields []string `json:"-"`
30347}
30348
30349func (s *ResourcePoliciesScopedList) MarshalJSON() ([]byte, error) {
30350	type NoMethod ResourcePoliciesScopedList
30351	raw := NoMethod(*s)
30352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30353}
30354
30355// ResourcePoliciesScopedListWarning: Informational warning which
30356// replaces the list of resourcePolicies when the list is empty.
30357type ResourcePoliciesScopedListWarning struct {
30358	// Code: [Output Only] A warning code, if applicable. For example,
30359	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30360	// the response.
30361	//
30362	// Possible values:
30363	//   "CLEANUP_FAILED"
30364	//   "DEPRECATED_RESOURCE_USED"
30365	//   "DEPRECATED_TYPE_USED"
30366	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30367	//   "EXPERIMENTAL_TYPE_USED"
30368	//   "EXTERNAL_API_WARNING"
30369	//   "FIELD_VALUE_OVERRIDEN"
30370	//   "INJECTED_KERNELS_DEPRECATED"
30371	//   "MISSING_TYPE_DEPENDENCY"
30372	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30373	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30374	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30375	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30376	//   "NEXT_HOP_NOT_RUNNING"
30377	//   "NOT_CRITICAL_ERROR"
30378	//   "NO_RESULTS_ON_PAGE"
30379	//   "REQUIRED_TOS_AGREEMENT"
30380	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30381	//   "RESOURCE_NOT_DELETED"
30382	//   "SCHEMA_VALIDATION_IGNORED"
30383	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30384	//   "UNDECLARED_PROPERTIES"
30385	//   "UNREACHABLE"
30386	Code string `json:"code,omitempty"`
30387
30388	// Data: [Output Only] Metadata about this warning in key: value format.
30389	// For example:
30390	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30391	Data []*ResourcePoliciesScopedListWarningData `json:"data,omitempty"`
30392
30393	// Message: [Output Only] A human-readable description of the warning
30394	// code.
30395	Message string `json:"message,omitempty"`
30396
30397	// ForceSendFields is a list of field names (e.g. "Code") to
30398	// unconditionally include in API requests. By default, fields with
30399	// empty values are omitted from API requests. However, any non-pointer,
30400	// non-interface field appearing in ForceSendFields will be sent to the
30401	// server regardless of whether the field is empty or not. This may be
30402	// used to include empty fields in Patch requests.
30403	ForceSendFields []string `json:"-"`
30404
30405	// NullFields is a list of field names (e.g. "Code") to include in API
30406	// requests with the JSON null value. By default, fields with empty
30407	// values are omitted from API requests. However, any field with an
30408	// empty value appearing in NullFields will be sent to the server as
30409	// null. It is an error if a field in this list has a non-empty value.
30410	// This may be used to include null fields in Patch requests.
30411	NullFields []string `json:"-"`
30412}
30413
30414func (s *ResourcePoliciesScopedListWarning) MarshalJSON() ([]byte, error) {
30415	type NoMethod ResourcePoliciesScopedListWarning
30416	raw := NoMethod(*s)
30417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30418}
30419
30420type ResourcePoliciesScopedListWarningData struct {
30421	// Key: [Output Only] A key that provides more detail on the warning
30422	// being returned. For example, for warnings where there are no results
30423	// in a list request for a particular zone, this key might be scope and
30424	// the key value might be the zone name. Other examples might be a key
30425	// indicating a deprecated resource and a suggested replacement, or a
30426	// warning about invalid network settings (for example, if an instance
30427	// attempts to perform IP forwarding but is not enabled for IP
30428	// forwarding).
30429	Key string `json:"key,omitempty"`
30430
30431	// Value: [Output Only] A warning data value corresponding to the key.
30432	Value string `json:"value,omitempty"`
30433
30434	// ForceSendFields is a list of field names (e.g. "Key") to
30435	// unconditionally include in API requests. By default, fields with
30436	// empty values are omitted from API requests. However, any non-pointer,
30437	// non-interface field appearing in ForceSendFields will be sent to the
30438	// server regardless of whether the field is empty or not. This may be
30439	// used to include empty fields in Patch requests.
30440	ForceSendFields []string `json:"-"`
30441
30442	// NullFields is a list of field names (e.g. "Key") to include in API
30443	// requests with the JSON null value. By default, fields with empty
30444	// values are omitted from API requests. However, any field with an
30445	// empty value appearing in NullFields will be sent to the server as
30446	// null. It is an error if a field in this list has a non-empty value.
30447	// This may be used to include null fields in Patch requests.
30448	NullFields []string `json:"-"`
30449}
30450
30451func (s *ResourcePoliciesScopedListWarningData) MarshalJSON() ([]byte, error) {
30452	type NoMethod ResourcePoliciesScopedListWarningData
30453	raw := NoMethod(*s)
30454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30455}
30456
30457type ResourcePolicy struct {
30458	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
30459	// format.
30460	CreationTimestamp string `json:"creationTimestamp,omitempty"`
30461
30462	Description string `json:"description,omitempty"`
30463
30464	// GroupPlacementPolicy: Resource policy for instacnes for placement
30465	// configuration.
30466	GroupPlacementPolicy *ResourcePolicyGroupPlacementPolicy `json:"groupPlacementPolicy,omitempty"`
30467
30468	// Id: [Output Only] The unique identifier for the resource. This
30469	// identifier is defined by the server.
30470	Id uint64 `json:"id,omitempty,string"`
30471
30472	// Kind: [Output Only] Type of the resource. Always
30473	// compute#resource_policies for resource policies.
30474	Kind string `json:"kind,omitempty"`
30475
30476	// Name: The name of the resource, provided by the client when initially
30477	// creating the resource. The resource name must be 1-63 characters
30478	// long, and comply with RFC1035. Specifically, the name must be 1-63
30479	// characters long and match the regular expression
30480	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
30481	// a lowercase letter, and all following characters must be a dash,
30482	// lowercase letter, or digit, except the last character, which cannot
30483	// be a dash.
30484	Name string `json:"name,omitempty"`
30485
30486	Region string `json:"region,omitempty"`
30487
30488	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
30489	// resource.
30490	SelfLink string `json:"selfLink,omitempty"`
30491
30492	// SnapshotSchedulePolicy: Resource policy for persistent disks for
30493	// creating snapshots.
30494	SnapshotSchedulePolicy *ResourcePolicySnapshotSchedulePolicy `json:"snapshotSchedulePolicy,omitempty"`
30495
30496	// Status: [Output Only] The status of resource policy creation.
30497	//
30498	// Possible values:
30499	//   "CREATING"
30500	//   "DELETING"
30501	//   "INVALID"
30502	//   "READY"
30503	Status string `json:"status,omitempty"`
30504
30505	// ServerResponse contains the HTTP response code and headers from the
30506	// server.
30507	googleapi.ServerResponse `json:"-"`
30508
30509	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
30510	// to unconditionally include in API requests. By default, fields with
30511	// empty values are omitted from API requests. However, any non-pointer,
30512	// non-interface field appearing in ForceSendFields will be sent to the
30513	// server regardless of whether the field is empty or not. This may be
30514	// used to include empty fields in Patch requests.
30515	ForceSendFields []string `json:"-"`
30516
30517	// NullFields is a list of field names (e.g. "CreationTimestamp") to
30518	// include in API requests with the JSON null value. By default, fields
30519	// with empty values are omitted from API requests. However, any field
30520	// with an empty value appearing in NullFields will be sent to the
30521	// server as null. It is an error if a field in this list has a
30522	// non-empty value. This may be used to include null fields in Patch
30523	// requests.
30524	NullFields []string `json:"-"`
30525}
30526
30527func (s *ResourcePolicy) MarshalJSON() ([]byte, error) {
30528	type NoMethod ResourcePolicy
30529	raw := NoMethod(*s)
30530	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30531}
30532
30533// ResourcePolicyAggregatedList: Contains a list of resourcePolicies.
30534type ResourcePolicyAggregatedList struct {
30535	Etag string `json:"etag,omitempty"`
30536
30537	// Id: [Output Only] Unique identifier for the resource; defined by the
30538	// server.
30539	Id string `json:"id,omitempty"`
30540
30541	// Items: A list of ResourcePolicy resources.
30542	Items map[string]ResourcePoliciesScopedList `json:"items,omitempty"`
30543
30544	// Kind: Type of resource.
30545	Kind string `json:"kind,omitempty"`
30546
30547	// NextPageToken: [Output Only] This token allows you to get the next
30548	// page of results for list requests. If the number of results is larger
30549	// than maxResults, use the nextPageToken as a value for the query
30550	// parameter pageToken in the next list request. Subsequent list
30551	// requests will have their own nextPageToken to continue paging through
30552	// the results.
30553	NextPageToken string `json:"nextPageToken,omitempty"`
30554
30555	// SelfLink: [Output Only] Server-defined URL for this resource.
30556	SelfLink string `json:"selfLink,omitempty"`
30557
30558	// Warning: [Output Only] Informational warning message.
30559	Warning *ResourcePolicyAggregatedListWarning `json:"warning,omitempty"`
30560
30561	// ServerResponse contains the HTTP response code and headers from the
30562	// server.
30563	googleapi.ServerResponse `json:"-"`
30564
30565	// ForceSendFields is a list of field names (e.g. "Etag") to
30566	// unconditionally include in API requests. By default, fields with
30567	// empty values are omitted from API requests. However, any non-pointer,
30568	// non-interface field appearing in ForceSendFields will be sent to the
30569	// server regardless of whether the field is empty or not. This may be
30570	// used to include empty fields in Patch requests.
30571	ForceSendFields []string `json:"-"`
30572
30573	// NullFields is a list of field names (e.g. "Etag") to include in API
30574	// requests with the JSON null value. By default, fields with empty
30575	// values are omitted from API requests. However, any field with an
30576	// empty value appearing in NullFields will be sent to the server as
30577	// null. It is an error if a field in this list has a non-empty value.
30578	// This may be used to include null fields in Patch requests.
30579	NullFields []string `json:"-"`
30580}
30581
30582func (s *ResourcePolicyAggregatedList) MarshalJSON() ([]byte, error) {
30583	type NoMethod ResourcePolicyAggregatedList
30584	raw := NoMethod(*s)
30585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30586}
30587
30588// ResourcePolicyAggregatedListWarning: [Output Only] Informational
30589// warning message.
30590type ResourcePolicyAggregatedListWarning struct {
30591	// Code: [Output Only] A warning code, if applicable. For example,
30592	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30593	// the response.
30594	//
30595	// Possible values:
30596	//   "CLEANUP_FAILED"
30597	//   "DEPRECATED_RESOURCE_USED"
30598	//   "DEPRECATED_TYPE_USED"
30599	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30600	//   "EXPERIMENTAL_TYPE_USED"
30601	//   "EXTERNAL_API_WARNING"
30602	//   "FIELD_VALUE_OVERRIDEN"
30603	//   "INJECTED_KERNELS_DEPRECATED"
30604	//   "MISSING_TYPE_DEPENDENCY"
30605	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30606	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30607	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30608	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30609	//   "NEXT_HOP_NOT_RUNNING"
30610	//   "NOT_CRITICAL_ERROR"
30611	//   "NO_RESULTS_ON_PAGE"
30612	//   "REQUIRED_TOS_AGREEMENT"
30613	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30614	//   "RESOURCE_NOT_DELETED"
30615	//   "SCHEMA_VALIDATION_IGNORED"
30616	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30617	//   "UNDECLARED_PROPERTIES"
30618	//   "UNREACHABLE"
30619	Code string `json:"code,omitempty"`
30620
30621	// Data: [Output Only] Metadata about this warning in key: value format.
30622	// For example:
30623	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30624	Data []*ResourcePolicyAggregatedListWarningData `json:"data,omitempty"`
30625
30626	// Message: [Output Only] A human-readable description of the warning
30627	// code.
30628	Message string `json:"message,omitempty"`
30629
30630	// ForceSendFields is a list of field names (e.g. "Code") to
30631	// unconditionally include in API requests. By default, fields with
30632	// empty values are omitted from API requests. However, any non-pointer,
30633	// non-interface field appearing in ForceSendFields will be sent to the
30634	// server regardless of whether the field is empty or not. This may be
30635	// used to include empty fields in Patch requests.
30636	ForceSendFields []string `json:"-"`
30637
30638	// NullFields is a list of field names (e.g. "Code") to include in API
30639	// requests with the JSON null value. By default, fields with empty
30640	// values are omitted from API requests. However, any field with an
30641	// empty value appearing in NullFields will be sent to the server as
30642	// null. It is an error if a field in this list has a non-empty value.
30643	// This may be used to include null fields in Patch requests.
30644	NullFields []string `json:"-"`
30645}
30646
30647func (s *ResourcePolicyAggregatedListWarning) MarshalJSON() ([]byte, error) {
30648	type NoMethod ResourcePolicyAggregatedListWarning
30649	raw := NoMethod(*s)
30650	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30651}
30652
30653type ResourcePolicyAggregatedListWarningData struct {
30654	// Key: [Output Only] A key that provides more detail on the warning
30655	// being returned. For example, for warnings where there are no results
30656	// in a list request for a particular zone, this key might be scope and
30657	// the key value might be the zone name. Other examples might be a key
30658	// indicating a deprecated resource and a suggested replacement, or a
30659	// warning about invalid network settings (for example, if an instance
30660	// attempts to perform IP forwarding but is not enabled for IP
30661	// forwarding).
30662	Key string `json:"key,omitempty"`
30663
30664	// Value: [Output Only] A warning data value corresponding to the key.
30665	Value string `json:"value,omitempty"`
30666
30667	// ForceSendFields is a list of field names (e.g. "Key") to
30668	// unconditionally include in API requests. By default, fields with
30669	// empty values are omitted from API requests. However, any non-pointer,
30670	// non-interface field appearing in ForceSendFields will be sent to the
30671	// server regardless of whether the field is empty or not. This may be
30672	// used to include empty fields in Patch requests.
30673	ForceSendFields []string `json:"-"`
30674
30675	// NullFields is a list of field names (e.g. "Key") to include in API
30676	// requests with the JSON null value. By default, fields with empty
30677	// values are omitted from API requests. However, any field with an
30678	// empty value appearing in NullFields will be sent to the server as
30679	// null. It is an error if a field in this list has a non-empty value.
30680	// This may be used to include null fields in Patch requests.
30681	NullFields []string `json:"-"`
30682}
30683
30684func (s *ResourcePolicyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
30685	type NoMethod ResourcePolicyAggregatedListWarningData
30686	raw := NoMethod(*s)
30687	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30688}
30689
30690// ResourcePolicyDailyCycle: Time window specified for daily operations.
30691type ResourcePolicyDailyCycle struct {
30692	// DaysInCycle: Defines a schedule that runs every nth day of the month.
30693	DaysInCycle int64 `json:"daysInCycle,omitempty"`
30694
30695	// Duration: [Output only] A predetermined duration for the window,
30696	// automatically chosen to be the smallest possible in the given
30697	// scenario.
30698	Duration string `json:"duration,omitempty"`
30699
30700	// StartTime: Start time of the window. This must be in UTC format that
30701	// resolves to one of 00:00, 04:00, 08:00, 12:00, 16:00, or 20:00. For
30702	// example, both 13:00-5 and 08:00 are valid.
30703	StartTime string `json:"startTime,omitempty"`
30704
30705	// ForceSendFields is a list of field names (e.g. "DaysInCycle") to
30706	// unconditionally include in API requests. By default, fields with
30707	// empty values are omitted from API requests. However, any non-pointer,
30708	// non-interface field appearing in ForceSendFields will be sent to the
30709	// server regardless of whether the field is empty or not. This may be
30710	// used to include empty fields in Patch requests.
30711	ForceSendFields []string `json:"-"`
30712
30713	// NullFields is a list of field names (e.g. "DaysInCycle") to include
30714	// in API requests with the JSON null value. By default, fields with
30715	// empty values are omitted from API requests. However, any field with
30716	// an empty value appearing in NullFields will be sent to the server as
30717	// null. It is an error if a field in this list has a non-empty value.
30718	// This may be used to include null fields in Patch requests.
30719	NullFields []string `json:"-"`
30720}
30721
30722func (s *ResourcePolicyDailyCycle) MarshalJSON() ([]byte, error) {
30723	type NoMethod ResourcePolicyDailyCycle
30724	raw := NoMethod(*s)
30725	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30726}
30727
30728// ResourcePolicyGroupPlacementPolicy: A GroupPlacementPolicy specifies
30729// resource placement configuration. It specifies the failure bucket
30730// separation as well as network locality
30731type ResourcePolicyGroupPlacementPolicy struct {
30732	// AvailabilityDomainCount: The number of availability domains instances
30733	// will be spread across. If two instances are in different availability
30734	// domain, they will not be put in the same low latency network
30735	AvailabilityDomainCount int64 `json:"availabilityDomainCount,omitempty"`
30736
30737	// Collocation: Specifies network collocation
30738	//
30739	// Possible values:
30740	//   "COLLOCATED"
30741	//   "UNSPECIFIED_COLLOCATION"
30742	Collocation string `json:"collocation,omitempty"`
30743
30744	// VmCount: Number of vms in this placement group
30745	VmCount int64 `json:"vmCount,omitempty"`
30746
30747	// ForceSendFields is a list of field names (e.g.
30748	// "AvailabilityDomainCount") to unconditionally include in API
30749	// requests. By default, fields with empty values are omitted from API
30750	// requests. However, any non-pointer, non-interface field appearing in
30751	// ForceSendFields will be sent to the server regardless of whether the
30752	// field is empty or not. This may be used to include empty fields in
30753	// Patch requests.
30754	ForceSendFields []string `json:"-"`
30755
30756	// NullFields is a list of field names (e.g. "AvailabilityDomainCount")
30757	// to include in API requests with the JSON null value. By default,
30758	// fields with empty values are omitted from API requests. However, any
30759	// field with an empty value appearing in NullFields will be sent to the
30760	// server as null. It is an error if a field in this list has a
30761	// non-empty value. This may be used to include null fields in Patch
30762	// requests.
30763	NullFields []string `json:"-"`
30764}
30765
30766func (s *ResourcePolicyGroupPlacementPolicy) MarshalJSON() ([]byte, error) {
30767	type NoMethod ResourcePolicyGroupPlacementPolicy
30768	raw := NoMethod(*s)
30769	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30770}
30771
30772// ResourcePolicyHourlyCycle: Time window specified for hourly
30773// operations.
30774type ResourcePolicyHourlyCycle struct {
30775	// Duration: [Output only] Duration of the time window, automatically
30776	// chosen to be smallest possible in the given scenario.
30777	Duration string `json:"duration,omitempty"`
30778
30779	// HoursInCycle: Allows to define schedule that runs every nth hour.
30780	HoursInCycle int64 `json:"hoursInCycle,omitempty"`
30781
30782	// StartTime: Time within the window to start the operations. It must be
30783	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
30784	StartTime string `json:"startTime,omitempty"`
30785
30786	// ForceSendFields is a list of field names (e.g. "Duration") 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. "Duration") to include in
30795	// API 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 *ResourcePolicyHourlyCycle) MarshalJSON() ([]byte, error) {
30804	type NoMethod ResourcePolicyHourlyCycle
30805	raw := NoMethod(*s)
30806	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30807}
30808
30809type ResourcePolicyList struct {
30810	Etag string `json:"etag,omitempty"`
30811
30812	// Id: [Output Only] The unique identifier for the resource. This
30813	// identifier is defined by the server.
30814	Id string `json:"id,omitempty"`
30815
30816	// Items: [Output Only] A list of ResourcePolicy resources.
30817	Items []*ResourcePolicy `json:"items,omitempty"`
30818
30819	// Kind: [Output Only] Type of resource.Always
30820	// compute#resourcePoliciesList for listsof resourcePolicies
30821	Kind string `json:"kind,omitempty"`
30822
30823	// NextPageToken: [Output Only] This token allows you to get the next
30824	// page of results for list requests. If the number of results is larger
30825	// than maxResults, use the nextPageToken as a value for the query
30826	// parameter pageToken in the next list request. Subsequent list
30827	// requests will have their own nextPageToken to continue paging through
30828	// the results.
30829	NextPageToken string `json:"nextPageToken,omitempty"`
30830
30831	// SelfLink: [Output Only] Server-defined URL for this resource.
30832	SelfLink string `json:"selfLink,omitempty"`
30833
30834	// Warning: [Output Only] Informational warning message.
30835	Warning *ResourcePolicyListWarning `json:"warning,omitempty"`
30836
30837	// ServerResponse contains the HTTP response code and headers from the
30838	// server.
30839	googleapi.ServerResponse `json:"-"`
30840
30841	// ForceSendFields is a list of field names (e.g. "Etag") to
30842	// unconditionally include in API requests. By default, fields with
30843	// empty values are omitted from API requests. However, any non-pointer,
30844	// non-interface field appearing in ForceSendFields will be sent to the
30845	// server regardless of whether the field is empty or not. This may be
30846	// used to include empty fields in Patch requests.
30847	ForceSendFields []string `json:"-"`
30848
30849	// NullFields is a list of field names (e.g. "Etag") to include in API
30850	// requests with the JSON null value. By default, fields with empty
30851	// values are omitted from API requests. However, any field with an
30852	// empty value appearing in NullFields will be sent to the server as
30853	// null. It is an error if a field in this list has a non-empty value.
30854	// This may be used to include null fields in Patch requests.
30855	NullFields []string `json:"-"`
30856}
30857
30858func (s *ResourcePolicyList) MarshalJSON() ([]byte, error) {
30859	type NoMethod ResourcePolicyList
30860	raw := NoMethod(*s)
30861	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30862}
30863
30864// ResourcePolicyListWarning: [Output Only] Informational warning
30865// message.
30866type ResourcePolicyListWarning struct {
30867	// Code: [Output Only] A warning code, if applicable. For example,
30868	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
30869	// the response.
30870	//
30871	// Possible values:
30872	//   "CLEANUP_FAILED"
30873	//   "DEPRECATED_RESOURCE_USED"
30874	//   "DEPRECATED_TYPE_USED"
30875	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
30876	//   "EXPERIMENTAL_TYPE_USED"
30877	//   "EXTERNAL_API_WARNING"
30878	//   "FIELD_VALUE_OVERRIDEN"
30879	//   "INJECTED_KERNELS_DEPRECATED"
30880	//   "MISSING_TYPE_DEPENDENCY"
30881	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
30882	//   "NEXT_HOP_CANNOT_IP_FORWARD"
30883	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
30884	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
30885	//   "NEXT_HOP_NOT_RUNNING"
30886	//   "NOT_CRITICAL_ERROR"
30887	//   "NO_RESULTS_ON_PAGE"
30888	//   "REQUIRED_TOS_AGREEMENT"
30889	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
30890	//   "RESOURCE_NOT_DELETED"
30891	//   "SCHEMA_VALIDATION_IGNORED"
30892	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
30893	//   "UNDECLARED_PROPERTIES"
30894	//   "UNREACHABLE"
30895	Code string `json:"code,omitempty"`
30896
30897	// Data: [Output Only] Metadata about this warning in key: value format.
30898	// For example:
30899	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
30900	Data []*ResourcePolicyListWarningData `json:"data,omitempty"`
30901
30902	// Message: [Output Only] A human-readable description of the warning
30903	// code.
30904	Message string `json:"message,omitempty"`
30905
30906	// ForceSendFields is a list of field names (e.g. "Code") to
30907	// unconditionally include in API requests. By default, fields with
30908	// empty values are omitted from API requests. However, any non-pointer,
30909	// non-interface field appearing in ForceSendFields will be sent to the
30910	// server regardless of whether the field is empty or not. This may be
30911	// used to include empty fields in Patch requests.
30912	ForceSendFields []string `json:"-"`
30913
30914	// NullFields is a list of field names (e.g. "Code") to include in API
30915	// requests with the JSON null value. By default, fields with empty
30916	// values are omitted from API requests. However, any field with an
30917	// empty value appearing in NullFields will be sent to the server as
30918	// null. It is an error if a field in this list has a non-empty value.
30919	// This may be used to include null fields in Patch requests.
30920	NullFields []string `json:"-"`
30921}
30922
30923func (s *ResourcePolicyListWarning) MarshalJSON() ([]byte, error) {
30924	type NoMethod ResourcePolicyListWarning
30925	raw := NoMethod(*s)
30926	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30927}
30928
30929type ResourcePolicyListWarningData struct {
30930	// Key: [Output Only] A key that provides more detail on the warning
30931	// being returned. For example, for warnings where there are no results
30932	// in a list request for a particular zone, this key might be scope and
30933	// the key value might be the zone name. Other examples might be a key
30934	// indicating a deprecated resource and a suggested replacement, or a
30935	// warning about invalid network settings (for example, if an instance
30936	// attempts to perform IP forwarding but is not enabled for IP
30937	// forwarding).
30938	Key string `json:"key,omitempty"`
30939
30940	// Value: [Output Only] A warning data value corresponding to the key.
30941	Value string `json:"value,omitempty"`
30942
30943	// ForceSendFields is a list of field names (e.g. "Key") to
30944	// unconditionally include in API requests. By default, fields with
30945	// empty values are omitted from API requests. However, any non-pointer,
30946	// non-interface field appearing in ForceSendFields will be sent to the
30947	// server regardless of whether the field is empty or not. This may be
30948	// used to include empty fields in Patch requests.
30949	ForceSendFields []string `json:"-"`
30950
30951	// NullFields is a list of field names (e.g. "Key") to include in API
30952	// requests with the JSON null value. By default, fields with empty
30953	// values are omitted from API requests. However, any field with an
30954	// empty value appearing in NullFields will be sent to the server as
30955	// null. It is an error if a field in this list has a non-empty value.
30956	// This may be used to include null fields in Patch requests.
30957	NullFields []string `json:"-"`
30958}
30959
30960func (s *ResourcePolicyListWarningData) MarshalJSON() ([]byte, error) {
30961	type NoMethod ResourcePolicyListWarningData
30962	raw := NoMethod(*s)
30963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
30964}
30965
30966// ResourcePolicySnapshotSchedulePolicy: A snapshot schedule policy
30967// specifies when and how frequently snapshots are to be created for the
30968// target disk. Also specifies how many and how long these scheduled
30969// snapshots should be retained.
30970type ResourcePolicySnapshotSchedulePolicy struct {
30971	// RetentionPolicy: Retention policy applied to snapshots created by
30972	// this resource policy.
30973	RetentionPolicy *ResourcePolicySnapshotSchedulePolicyRetentionPolicy `json:"retentionPolicy,omitempty"`
30974
30975	// Schedule: A Vm Maintenance Policy specifies what kind of
30976	// infrastructure maintenance we are allowed to perform on this VM and
30977	// when. Schedule that is applied to disks covered by this policy.
30978	Schedule *ResourcePolicySnapshotSchedulePolicySchedule `json:"schedule,omitempty"`
30979
30980	// SnapshotProperties: Properties with which snapshots are created such
30981	// as labels, encryption keys.
30982	SnapshotProperties *ResourcePolicySnapshotSchedulePolicySnapshotProperties `json:"snapshotProperties,omitempty"`
30983
30984	// ForceSendFields is a list of field names (e.g. "RetentionPolicy") to
30985	// unconditionally include in API requests. By default, fields with
30986	// empty values are omitted from API requests. However, any non-pointer,
30987	// non-interface field appearing in ForceSendFields will be sent to the
30988	// server regardless of whether the field is empty or not. This may be
30989	// used to include empty fields in Patch requests.
30990	ForceSendFields []string `json:"-"`
30991
30992	// NullFields is a list of field names (e.g. "RetentionPolicy") to
30993	// include in API requests with the JSON null value. By default, fields
30994	// with empty values are omitted from API requests. However, any field
30995	// with an empty value appearing in NullFields will be sent to the
30996	// server as null. It is an error if a field in this list has a
30997	// non-empty value. This may be used to include null fields in Patch
30998	// requests.
30999	NullFields []string `json:"-"`
31000}
31001
31002func (s *ResourcePolicySnapshotSchedulePolicy) MarshalJSON() ([]byte, error) {
31003	type NoMethod ResourcePolicySnapshotSchedulePolicy
31004	raw := NoMethod(*s)
31005	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31006}
31007
31008// ResourcePolicySnapshotSchedulePolicyRetentionPolicy: Policy for
31009// retention of scheduled snapshots.
31010type ResourcePolicySnapshotSchedulePolicyRetentionPolicy struct {
31011	// MaxRetentionDays: Maximum age of the snapshot that is allowed to be
31012	// kept.
31013	MaxRetentionDays int64 `json:"maxRetentionDays,omitempty"`
31014
31015	// OnSourceDiskDelete: Specifies the behavior to apply to scheduled
31016	// snapshots when the source disk is deleted.
31017	//
31018	// Possible values:
31019	//   "APPLY_RETENTION_POLICY"
31020	//   "KEEP_AUTO_SNAPSHOTS"
31021	//   "UNSPECIFIED_ON_SOURCE_DISK_DELETE"
31022	OnSourceDiskDelete string `json:"onSourceDiskDelete,omitempty"`
31023
31024	// ForceSendFields is a list of field names (e.g. "MaxRetentionDays") to
31025	// unconditionally include in API requests. By default, fields with
31026	// empty values are omitted from API requests. However, any non-pointer,
31027	// non-interface field appearing in ForceSendFields will be sent to the
31028	// server regardless of whether the field is empty or not. This may be
31029	// used to include empty fields in Patch requests.
31030	ForceSendFields []string `json:"-"`
31031
31032	// NullFields is a list of field names (e.g. "MaxRetentionDays") to
31033	// include in API requests with the JSON null value. By default, fields
31034	// with empty values are omitted from API requests. However, any field
31035	// with an empty value appearing in NullFields will be sent to the
31036	// server as null. It is an error if a field in this list has a
31037	// non-empty value. This may be used to include null fields in Patch
31038	// requests.
31039	NullFields []string `json:"-"`
31040}
31041
31042func (s *ResourcePolicySnapshotSchedulePolicyRetentionPolicy) MarshalJSON() ([]byte, error) {
31043	type NoMethod ResourcePolicySnapshotSchedulePolicyRetentionPolicy
31044	raw := NoMethod(*s)
31045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31046}
31047
31048// ResourcePolicySnapshotSchedulePolicySchedule: A schedule for disks
31049// where the schedueled operations are performed.
31050type ResourcePolicySnapshotSchedulePolicySchedule struct {
31051	DailySchedule *ResourcePolicyDailyCycle `json:"dailySchedule,omitempty"`
31052
31053	HourlySchedule *ResourcePolicyHourlyCycle `json:"hourlySchedule,omitempty"`
31054
31055	WeeklySchedule *ResourcePolicyWeeklyCycle `json:"weeklySchedule,omitempty"`
31056
31057	// ForceSendFields is a list of field names (e.g. "DailySchedule") to
31058	// unconditionally include in API requests. By default, fields with
31059	// empty values are omitted from API requests. However, any non-pointer,
31060	// non-interface field appearing in ForceSendFields will be sent to the
31061	// server regardless of whether the field is empty or not. This may be
31062	// used to include empty fields in Patch requests.
31063	ForceSendFields []string `json:"-"`
31064
31065	// NullFields is a list of field names (e.g. "DailySchedule") to include
31066	// in API requests with the JSON null value. By default, fields with
31067	// empty values are omitted from API requests. However, any field with
31068	// an empty value appearing in NullFields will be sent to the server as
31069	// null. It is an error if a field in this list has a non-empty value.
31070	// This may be used to include null fields in Patch requests.
31071	NullFields []string `json:"-"`
31072}
31073
31074func (s *ResourcePolicySnapshotSchedulePolicySchedule) MarshalJSON() ([]byte, error) {
31075	type NoMethod ResourcePolicySnapshotSchedulePolicySchedule
31076	raw := NoMethod(*s)
31077	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31078}
31079
31080// ResourcePolicySnapshotSchedulePolicySnapshotProperties: Specified
31081// snapshot properties for scheduled snapshots created by this policy.
31082type ResourcePolicySnapshotSchedulePolicySnapshotProperties struct {
31083	// GuestFlush: Indication to perform a 'guest aware' snapshot.
31084	GuestFlush bool `json:"guestFlush,omitempty"`
31085
31086	// Labels: Labels to apply to scheduled snapshots. These can be later
31087	// modified by the setLabels method. Label values may be empty.
31088	Labels map[string]string `json:"labels,omitempty"`
31089
31090	// StorageLocations: Cloud Storage bucket storage location of the auto
31091	// snapshot (regional or multi-regional).
31092	StorageLocations []string `json:"storageLocations,omitempty"`
31093
31094	// ForceSendFields is a list of field names (e.g. "GuestFlush") to
31095	// unconditionally include in API requests. By default, fields with
31096	// empty values are omitted from API requests. However, any non-pointer,
31097	// non-interface field appearing in ForceSendFields will be sent to the
31098	// server regardless of whether the field is empty or not. This may be
31099	// used to include empty fields in Patch requests.
31100	ForceSendFields []string `json:"-"`
31101
31102	// NullFields is a list of field names (e.g. "GuestFlush") to include in
31103	// API requests with the JSON null value. By default, fields with empty
31104	// values are omitted from API requests. However, any field with an
31105	// empty value appearing in NullFields will be sent to the server as
31106	// null. It is an error if a field in this list has a non-empty value.
31107	// This may be used to include null fields in Patch requests.
31108	NullFields []string `json:"-"`
31109}
31110
31111func (s *ResourcePolicySnapshotSchedulePolicySnapshotProperties) MarshalJSON() ([]byte, error) {
31112	type NoMethod ResourcePolicySnapshotSchedulePolicySnapshotProperties
31113	raw := NoMethod(*s)
31114	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31115}
31116
31117// ResourcePolicyWeeklyCycle: Time window specified for weekly
31118// operations.
31119type ResourcePolicyWeeklyCycle struct {
31120	// DayOfWeeks: Up to 7 intervals/windows, one for each day of the week.
31121	DayOfWeeks []*ResourcePolicyWeeklyCycleDayOfWeek `json:"dayOfWeeks,omitempty"`
31122
31123	// ForceSendFields is a list of field names (e.g. "DayOfWeeks") to
31124	// unconditionally include in API requests. By default, fields with
31125	// empty values are omitted from API requests. However, any non-pointer,
31126	// non-interface field appearing in ForceSendFields will be sent to the
31127	// server regardless of whether the field is empty or not. This may be
31128	// used to include empty fields in Patch requests.
31129	ForceSendFields []string `json:"-"`
31130
31131	// NullFields is a list of field names (e.g. "DayOfWeeks") to include in
31132	// API requests with the JSON null value. By default, fields with empty
31133	// values are omitted from API requests. However, any field with an
31134	// empty value appearing in NullFields will be sent to the server as
31135	// null. It is an error if a field in this list has a non-empty value.
31136	// This may be used to include null fields in Patch requests.
31137	NullFields []string `json:"-"`
31138}
31139
31140func (s *ResourcePolicyWeeklyCycle) MarshalJSON() ([]byte, error) {
31141	type NoMethod ResourcePolicyWeeklyCycle
31142	raw := NoMethod(*s)
31143	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31144}
31145
31146type ResourcePolicyWeeklyCycleDayOfWeek struct {
31147	// Day: Allows to define schedule that runs specified day of the week.
31148	//
31149	// Possible values:
31150	//   "FRIDAY"
31151	//   "INVALID"
31152	//   "MONDAY"
31153	//   "SATURDAY"
31154	//   "SUNDAY"
31155	//   "THURSDAY"
31156	//   "TUESDAY"
31157	//   "WEDNESDAY"
31158	Day string `json:"day,omitempty"`
31159
31160	// Duration: [Output only] Duration of the time window, automatically
31161	// chosen to be smallest possible in the given scenario.
31162	Duration string `json:"duration,omitempty"`
31163
31164	// StartTime: Time within the window to start the operations. It must be
31165	// in format "HH:MM", where HH : [00-23] and MM : [00-00] GMT.
31166	StartTime string `json:"startTime,omitempty"`
31167
31168	// ForceSendFields is a list of field names (e.g. "Day") to
31169	// unconditionally include in API requests. By default, fields with
31170	// empty values are omitted from API requests. However, any non-pointer,
31171	// non-interface field appearing in ForceSendFields will be sent to the
31172	// server regardless of whether the field is empty or not. This may be
31173	// used to include empty fields in Patch requests.
31174	ForceSendFields []string `json:"-"`
31175
31176	// NullFields is a list of field names (e.g. "Day") to include in API
31177	// requests with the JSON null value. By default, fields with empty
31178	// values are omitted from API requests. However, any field with an
31179	// empty value appearing in NullFields will be sent to the server as
31180	// null. It is an error if a field in this list has a non-empty value.
31181	// This may be used to include null fields in Patch requests.
31182	NullFields []string `json:"-"`
31183}
31184
31185func (s *ResourcePolicyWeeklyCycleDayOfWeek) MarshalJSON() ([]byte, error) {
31186	type NoMethod ResourcePolicyWeeklyCycleDayOfWeek
31187	raw := NoMethod(*s)
31188	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31189}
31190
31191// Route: Represents a Route resource.
31192//
31193// A route defines a path from VM instances in the VPC network to a
31194// specific destination. This destination can be inside or outside the
31195// VPC network. For more information, read the Routes overview. (==
31196// resource_for {$api_version}.routes ==)
31197type Route struct {
31198	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31199	// format.
31200	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31201
31202	// Description: An optional description of this resource. Provide this
31203	// field when you create the resource.
31204	Description string `json:"description,omitempty"`
31205
31206	// DestRange: The destination range of outgoing packets that this route
31207	// applies to. Only IPv4 is supported.
31208	DestRange string `json:"destRange,omitempty"`
31209
31210	// Id: [Output Only] The unique identifier for the resource. This
31211	// identifier is defined by the server.
31212	Id uint64 `json:"id,omitempty,string"`
31213
31214	// Kind: [Output Only] Type of this resource. Always compute#routes for
31215	// Route resources.
31216	Kind string `json:"kind,omitempty"`
31217
31218	// Name: Name of the resource. Provided by the client when the resource
31219	// is created. The name must be 1-63 characters long, and comply with
31220	// RFC1035. Specifically, the name must be 1-63 characters long and
31221	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`. The first
31222	// character must be a lowercase letter, and all following characters
31223	// (except for the last character) must be a dash, lowercase letter, or
31224	// digit. The last character must be a lowercase letter or digit.
31225	Name string `json:"name,omitempty"`
31226
31227	// Network: Fully-qualified URL of the network that this route applies
31228	// to.
31229	Network string `json:"network,omitempty"`
31230
31231	// NextHopGateway: The URL to a gateway that should handle matching
31232	// packets. You can only specify the internet gateway using a full or
31233	// partial valid URL:
31234	// projects/project/global/gateways/default-internet-gateway
31235	NextHopGateway string `json:"nextHopGateway,omitempty"`
31236
31237	// NextHopIlb: The URL to a forwarding rule of type
31238	// loadBalancingScheme=INTERNAL that should handle matching packets. You
31239	// can only specify the forwarding rule as a partial or full URL. For
31240	// example, the following are all valid URLs:
31241	// -
31242	// https://www.googleapis.com/compute/v1/projects/project/regions/region/forwardingRules/forwardingRule
31243	// - regions/region/forwardingRules/forwardingRule
31244	NextHopIlb string `json:"nextHopIlb,omitempty"`
31245
31246	// NextHopInstance: The URL to an instance that should handle matching
31247	// packets. You can specify this as a full or partial URL. For
31248	// example:
31249	// https://www.googleapis.com/compute/v1/projects/project/zones/
31250	// zone/instances/
31251	NextHopInstance string `json:"nextHopInstance,omitempty"`
31252
31253	// NextHopInterconnectAttachment: [Output Only] The URL to an
31254	// InterconnectAttachment which is the next hop for the route. This
31255	// field will only be populated for the dynamic routes generated by
31256	// Cloud Router with a linked interconnectAttachment.
31257	NextHopInterconnectAttachment string `json:"nextHopInterconnectAttachment,omitempty"`
31258
31259	// NextHopIp: The network IP address of an instance that should handle
31260	// matching packets. Only IPv4 is supported.
31261	NextHopIp string `json:"nextHopIp,omitempty"`
31262
31263	// NextHopNetwork: The URL of the local network if it should handle
31264	// matching packets.
31265	NextHopNetwork string `json:"nextHopNetwork,omitempty"`
31266
31267	// NextHopPeering: [Output Only] The network peering name that should
31268	// handle matching packets, which should conform to RFC1035.
31269	NextHopPeering string `json:"nextHopPeering,omitempty"`
31270
31271	// NextHopVpnTunnel: The URL to a VpnTunnel that should handle matching
31272	// packets.
31273	NextHopVpnTunnel string `json:"nextHopVpnTunnel,omitempty"`
31274
31275	// Priority: The priority of this route. Priority is used to break ties
31276	// in cases where there is more than one matching route of equal prefix
31277	// length. In cases where multiple routes have equal prefix length, the
31278	// one with the lowest-numbered priority value wins. The default value
31279	// is `1000`. The priority value must be from `0` to `65535`, inclusive.
31280	Priority int64 `json:"priority,omitempty"`
31281
31282	// SelfLink: [Output Only] Server-defined fully-qualified URL for this
31283	// resource.
31284	SelfLink string `json:"selfLink,omitempty"`
31285
31286	// Tags: A list of instance tags to which this route applies.
31287	Tags []string `json:"tags,omitempty"`
31288
31289	// Warnings: [Output Only] If potential misconfigurations are detected
31290	// for this route, this field will be populated with warning messages.
31291	Warnings []*RouteWarnings `json:"warnings,omitempty"`
31292
31293	// ServerResponse contains the HTTP response code and headers from the
31294	// server.
31295	googleapi.ServerResponse `json:"-"`
31296
31297	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
31298	// to unconditionally include in API requests. By default, fields with
31299	// empty values are omitted from API requests. However, any non-pointer,
31300	// non-interface field appearing in ForceSendFields will be sent to the
31301	// server regardless of whether the field is empty or not. This may be
31302	// used to include empty fields in Patch requests.
31303	ForceSendFields []string `json:"-"`
31304
31305	// NullFields is a list of field names (e.g. "CreationTimestamp") to
31306	// include in API requests with the JSON null value. By default, fields
31307	// with empty values are omitted from API requests. However, any field
31308	// with an empty value appearing in NullFields will be sent to the
31309	// server as null. It is an error if a field in this list has a
31310	// non-empty value. This may be used to include null fields in Patch
31311	// requests.
31312	NullFields []string `json:"-"`
31313}
31314
31315func (s *Route) MarshalJSON() ([]byte, error) {
31316	type NoMethod Route
31317	raw := NoMethod(*s)
31318	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31319}
31320
31321type RouteWarnings struct {
31322	// Code: [Output Only] A warning code, if applicable. For example,
31323	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31324	// the response.
31325	//
31326	// Possible values:
31327	//   "CLEANUP_FAILED"
31328	//   "DEPRECATED_RESOURCE_USED"
31329	//   "DEPRECATED_TYPE_USED"
31330	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31331	//   "EXPERIMENTAL_TYPE_USED"
31332	//   "EXTERNAL_API_WARNING"
31333	//   "FIELD_VALUE_OVERRIDEN"
31334	//   "INJECTED_KERNELS_DEPRECATED"
31335	//   "MISSING_TYPE_DEPENDENCY"
31336	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31337	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31338	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31339	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31340	//   "NEXT_HOP_NOT_RUNNING"
31341	//   "NOT_CRITICAL_ERROR"
31342	//   "NO_RESULTS_ON_PAGE"
31343	//   "REQUIRED_TOS_AGREEMENT"
31344	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31345	//   "RESOURCE_NOT_DELETED"
31346	//   "SCHEMA_VALIDATION_IGNORED"
31347	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31348	//   "UNDECLARED_PROPERTIES"
31349	//   "UNREACHABLE"
31350	Code string `json:"code,omitempty"`
31351
31352	// Data: [Output Only] Metadata about this warning in key: value format.
31353	// For example:
31354	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31355	Data []*RouteWarningsData `json:"data,omitempty"`
31356
31357	// Message: [Output Only] A human-readable description of the warning
31358	// code.
31359	Message string `json:"message,omitempty"`
31360
31361	// ForceSendFields is a list of field names (e.g. "Code") to
31362	// unconditionally include in API requests. By default, fields with
31363	// empty values are omitted from API requests. However, any non-pointer,
31364	// non-interface field appearing in ForceSendFields will be sent to the
31365	// server regardless of whether the field is empty or not. This may be
31366	// used to include empty fields in Patch requests.
31367	ForceSendFields []string `json:"-"`
31368
31369	// NullFields is a list of field names (e.g. "Code") to include in API
31370	// requests with the JSON null value. By default, fields with empty
31371	// values are omitted from API requests. However, any field with an
31372	// empty value appearing in NullFields will be sent to the server as
31373	// null. It is an error if a field in this list has a non-empty value.
31374	// This may be used to include null fields in Patch requests.
31375	NullFields []string `json:"-"`
31376}
31377
31378func (s *RouteWarnings) MarshalJSON() ([]byte, error) {
31379	type NoMethod RouteWarnings
31380	raw := NoMethod(*s)
31381	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31382}
31383
31384type RouteWarningsData struct {
31385	// Key: [Output Only] A key that provides more detail on the warning
31386	// being returned. For example, for warnings where there are no results
31387	// in a list request for a particular zone, this key might be scope and
31388	// the key value might be the zone name. Other examples might be a key
31389	// indicating a deprecated resource and a suggested replacement, or a
31390	// warning about invalid network settings (for example, if an instance
31391	// attempts to perform IP forwarding but is not enabled for IP
31392	// forwarding).
31393	Key string `json:"key,omitempty"`
31394
31395	// Value: [Output Only] A warning data value corresponding to the key.
31396	Value string `json:"value,omitempty"`
31397
31398	// ForceSendFields is a list of field names (e.g. "Key") 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. "Key") 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 *RouteWarningsData) MarshalJSON() ([]byte, error) {
31416	type NoMethod RouteWarningsData
31417	raw := NoMethod(*s)
31418	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31419}
31420
31421// RouteList: Contains a list of Route resources.
31422type RouteList struct {
31423	// Id: [Output Only] Unique identifier for the resource; defined by the
31424	// server.
31425	Id string `json:"id,omitempty"`
31426
31427	// Items: A list of Route resources.
31428	Items []*Route `json:"items,omitempty"`
31429
31430	// Kind: Type of resource.
31431	Kind string `json:"kind,omitempty"`
31432
31433	// NextPageToken: [Output Only] This token allows you to get the next
31434	// page of results for list requests. If the number of results is larger
31435	// than maxResults, use the nextPageToken as a value for the query
31436	// parameter pageToken in the next list request. Subsequent list
31437	// requests will have their own nextPageToken to continue paging through
31438	// the results.
31439	NextPageToken string `json:"nextPageToken,omitempty"`
31440
31441	// SelfLink: [Output Only] Server-defined URL for this resource.
31442	SelfLink string `json:"selfLink,omitempty"`
31443
31444	// Warning: [Output Only] Informational warning message.
31445	Warning *RouteListWarning `json:"warning,omitempty"`
31446
31447	// ServerResponse contains the HTTP response code and headers from the
31448	// server.
31449	googleapi.ServerResponse `json:"-"`
31450
31451	// ForceSendFields is a list of field names (e.g. "Id") to
31452	// unconditionally include in API requests. By default, fields with
31453	// empty values are omitted from API requests. However, any non-pointer,
31454	// non-interface field appearing in ForceSendFields will be sent to the
31455	// server regardless of whether the field is empty or not. This may be
31456	// used to include empty fields in Patch requests.
31457	ForceSendFields []string `json:"-"`
31458
31459	// NullFields is a list of field names (e.g. "Id") to include in API
31460	// requests with the JSON null value. By default, fields with empty
31461	// values are omitted from API requests. However, any field with an
31462	// empty value appearing in NullFields will be sent to the server as
31463	// null. It is an error if a field in this list has a non-empty value.
31464	// This may be used to include null fields in Patch requests.
31465	NullFields []string `json:"-"`
31466}
31467
31468func (s *RouteList) MarshalJSON() ([]byte, error) {
31469	type NoMethod RouteList
31470	raw := NoMethod(*s)
31471	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31472}
31473
31474// RouteListWarning: [Output Only] Informational warning message.
31475type RouteListWarning struct {
31476	// Code: [Output Only] A warning code, if applicable. For example,
31477	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31478	// the response.
31479	//
31480	// Possible values:
31481	//   "CLEANUP_FAILED"
31482	//   "DEPRECATED_RESOURCE_USED"
31483	//   "DEPRECATED_TYPE_USED"
31484	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31485	//   "EXPERIMENTAL_TYPE_USED"
31486	//   "EXTERNAL_API_WARNING"
31487	//   "FIELD_VALUE_OVERRIDEN"
31488	//   "INJECTED_KERNELS_DEPRECATED"
31489	//   "MISSING_TYPE_DEPENDENCY"
31490	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31491	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31492	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31493	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31494	//   "NEXT_HOP_NOT_RUNNING"
31495	//   "NOT_CRITICAL_ERROR"
31496	//   "NO_RESULTS_ON_PAGE"
31497	//   "REQUIRED_TOS_AGREEMENT"
31498	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31499	//   "RESOURCE_NOT_DELETED"
31500	//   "SCHEMA_VALIDATION_IGNORED"
31501	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31502	//   "UNDECLARED_PROPERTIES"
31503	//   "UNREACHABLE"
31504	Code string `json:"code,omitempty"`
31505
31506	// Data: [Output Only] Metadata about this warning in key: value format.
31507	// For example:
31508	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31509	Data []*RouteListWarningData `json:"data,omitempty"`
31510
31511	// Message: [Output Only] A human-readable description of the warning
31512	// code.
31513	Message string `json:"message,omitempty"`
31514
31515	// ForceSendFields is a list of field names (e.g. "Code") to
31516	// unconditionally include in API requests. By default, fields with
31517	// empty values are omitted from API requests. However, any non-pointer,
31518	// non-interface field appearing in ForceSendFields will be sent to the
31519	// server regardless of whether the field is empty or not. This may be
31520	// used to include empty fields in Patch requests.
31521	ForceSendFields []string `json:"-"`
31522
31523	// NullFields is a list of field names (e.g. "Code") to include in API
31524	// requests with the JSON null value. By default, fields with empty
31525	// values are omitted from API requests. However, any field with an
31526	// empty value appearing in NullFields will be sent to the server as
31527	// null. It is an error if a field in this list has a non-empty value.
31528	// This may be used to include null fields in Patch requests.
31529	NullFields []string `json:"-"`
31530}
31531
31532func (s *RouteListWarning) MarshalJSON() ([]byte, error) {
31533	type NoMethod RouteListWarning
31534	raw := NoMethod(*s)
31535	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31536}
31537
31538type RouteListWarningData struct {
31539	// Key: [Output Only] A key that provides more detail on the warning
31540	// being returned. For example, for warnings where there are no results
31541	// in a list request for a particular zone, this key might be scope and
31542	// the key value might be the zone name. Other examples might be a key
31543	// indicating a deprecated resource and a suggested replacement, or a
31544	// warning about invalid network settings (for example, if an instance
31545	// attempts to perform IP forwarding but is not enabled for IP
31546	// forwarding).
31547	Key string `json:"key,omitempty"`
31548
31549	// Value: [Output Only] A warning data value corresponding to the key.
31550	Value string `json:"value,omitempty"`
31551
31552	// ForceSendFields is a list of field names (e.g. "Key") to
31553	// unconditionally include in API requests. By default, fields with
31554	// empty values are omitted from API requests. However, any non-pointer,
31555	// non-interface field appearing in ForceSendFields will be sent to the
31556	// server regardless of whether the field is empty or not. This may be
31557	// used to include empty fields in Patch requests.
31558	ForceSendFields []string `json:"-"`
31559
31560	// NullFields is a list of field names (e.g. "Key") to include in API
31561	// requests with the JSON null value. By default, fields with empty
31562	// values are omitted from API requests. However, any field with an
31563	// empty value appearing in NullFields will be sent to the server as
31564	// null. It is an error if a field in this list has a non-empty value.
31565	// This may be used to include null fields in Patch requests.
31566	NullFields []string `json:"-"`
31567}
31568
31569func (s *RouteListWarningData) MarshalJSON() ([]byte, error) {
31570	type NoMethod RouteListWarningData
31571	raw := NoMethod(*s)
31572	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31573}
31574
31575// Router: Represents a Cloud Router resource.
31576//
31577// For more information about Cloud Router, read the the Cloud Router
31578// overview.
31579type Router struct {
31580	// Bgp: BGP information specific to this router.
31581	Bgp *RouterBgp `json:"bgp,omitempty"`
31582
31583	// BgpPeers: BGP information that must be configured into the routing
31584	// stack to establish BGP peering. This information must specify the
31585	// peer ASN and either the interface name, IP address, or peer IP
31586	// address. Please refer to RFC4273.
31587	BgpPeers []*RouterBgpPeer `json:"bgpPeers,omitempty"`
31588
31589	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
31590	// format.
31591	CreationTimestamp string `json:"creationTimestamp,omitempty"`
31592
31593	// Description: An optional description of this resource. Provide this
31594	// property when you create the resource.
31595	Description string `json:"description,omitempty"`
31596
31597	// Id: [Output Only] The unique identifier for the resource. This
31598	// identifier is defined by the server.
31599	Id uint64 `json:"id,omitempty,string"`
31600
31601	// Interfaces: Router interfaces. Each interface requires either one
31602	// linked resource, (for example, linkedVpnTunnel), or IP address and IP
31603	// address range (for example, ipRange), or both.
31604	Interfaces []*RouterInterface `json:"interfaces,omitempty"`
31605
31606	// Kind: [Output Only] Type of resource. Always compute#router for
31607	// routers.
31608	Kind string `json:"kind,omitempty"`
31609
31610	// Name: Name of the resource. Provided by the client when the resource
31611	// is created. The name must be 1-63 characters long, and comply with
31612	// RFC1035. Specifically, the name must be 1-63 characters long and
31613	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
31614	// the first character must be a lowercase letter, and all following
31615	// characters must be a dash, lowercase letter, or digit, except the
31616	// last character, which cannot be a dash.
31617	Name string `json:"name,omitempty"`
31618
31619	// Nats: A list of NAT services created in this router.
31620	Nats []*RouterNat `json:"nats,omitempty"`
31621
31622	// Network: URI of the network to which this router belongs.
31623	Network string `json:"network,omitempty"`
31624
31625	// Region: [Output Only] URI of the region where the router resides. You
31626	// must specify this field as part of the HTTP request URL. It is not
31627	// settable as a field in the request body.
31628	Region string `json:"region,omitempty"`
31629
31630	// SelfLink: [Output Only] Server-defined URL for the resource.
31631	SelfLink string `json:"selfLink,omitempty"`
31632
31633	// ServerResponse contains the HTTP response code and headers from the
31634	// server.
31635	googleapi.ServerResponse `json:"-"`
31636
31637	// ForceSendFields is a list of field names (e.g. "Bgp") to
31638	// unconditionally include in API requests. By default, fields with
31639	// empty values are omitted from API requests. However, any non-pointer,
31640	// non-interface field appearing in ForceSendFields will be sent to the
31641	// server regardless of whether the field is empty or not. This may be
31642	// used to include empty fields in Patch requests.
31643	ForceSendFields []string `json:"-"`
31644
31645	// NullFields is a list of field names (e.g. "Bgp") to include in API
31646	// requests with the JSON null value. By default, fields with empty
31647	// values are omitted from API requests. However, any field with an
31648	// empty value appearing in NullFields will be sent to the server as
31649	// null. It is an error if a field in this list has a non-empty value.
31650	// This may be used to include null fields in Patch requests.
31651	NullFields []string `json:"-"`
31652}
31653
31654func (s *Router) MarshalJSON() ([]byte, error) {
31655	type NoMethod Router
31656	raw := NoMethod(*s)
31657	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31658}
31659
31660// RouterAdvertisedIpRange: Description-tagged IP ranges for the router
31661// to advertise.
31662type RouterAdvertisedIpRange struct {
31663	// Description: User-specified description for the IP range.
31664	Description string `json:"description,omitempty"`
31665
31666	// Range: The IP range to advertise. The value must be a CIDR-formatted
31667	// string.
31668	Range string `json:"range,omitempty"`
31669
31670	// ForceSendFields is a list of field names (e.g. "Description") to
31671	// unconditionally include in API requests. By default, fields with
31672	// empty values are omitted from API requests. However, any non-pointer,
31673	// non-interface field appearing in ForceSendFields will be sent to the
31674	// server regardless of whether the field is empty or not. This may be
31675	// used to include empty fields in Patch requests.
31676	ForceSendFields []string `json:"-"`
31677
31678	// NullFields is a list of field names (e.g. "Description") to include
31679	// in API requests with the JSON null value. By default, fields with
31680	// empty values are omitted from API requests. However, any field with
31681	// an empty value appearing in NullFields will be sent to the server as
31682	// null. It is an error if a field in this list has a non-empty value.
31683	// This may be used to include null fields in Patch requests.
31684	NullFields []string `json:"-"`
31685}
31686
31687func (s *RouterAdvertisedIpRange) MarshalJSON() ([]byte, error) {
31688	type NoMethod RouterAdvertisedIpRange
31689	raw := NoMethod(*s)
31690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31691}
31692
31693// RouterAggregatedList: Contains a list of routers.
31694type RouterAggregatedList struct {
31695	// Id: [Output Only] Unique identifier for the resource; defined by the
31696	// server.
31697	Id string `json:"id,omitempty"`
31698
31699	// Items: A list of Router resources.
31700	Items map[string]RoutersScopedList `json:"items,omitempty"`
31701
31702	// Kind: Type of resource.
31703	Kind string `json:"kind,omitempty"`
31704
31705	// NextPageToken: [Output Only] This token allows you to get the next
31706	// page of results for list requests. If the number of results is larger
31707	// than maxResults, use the nextPageToken as a value for the query
31708	// parameter pageToken in the next list request. Subsequent list
31709	// requests will have their own nextPageToken to continue paging through
31710	// the results.
31711	NextPageToken string `json:"nextPageToken,omitempty"`
31712
31713	// SelfLink: [Output Only] Server-defined URL for this resource.
31714	SelfLink string `json:"selfLink,omitempty"`
31715
31716	// Warning: [Output Only] Informational warning message.
31717	Warning *RouterAggregatedListWarning `json:"warning,omitempty"`
31718
31719	// ServerResponse contains the HTTP response code and headers from the
31720	// server.
31721	googleapi.ServerResponse `json:"-"`
31722
31723	// ForceSendFields is a list of field names (e.g. "Id") to
31724	// unconditionally include in API requests. By default, fields with
31725	// empty values are omitted from API requests. However, any non-pointer,
31726	// non-interface field appearing in ForceSendFields will be sent to the
31727	// server regardless of whether the field is empty or not. This may be
31728	// used to include empty fields in Patch requests.
31729	ForceSendFields []string `json:"-"`
31730
31731	// NullFields is a list of field names (e.g. "Id") to include in API
31732	// requests with the JSON null value. By default, fields with empty
31733	// values are omitted from API requests. However, any field with an
31734	// empty value appearing in NullFields will be sent to the server as
31735	// null. It is an error if a field in this list has a non-empty value.
31736	// This may be used to include null fields in Patch requests.
31737	NullFields []string `json:"-"`
31738}
31739
31740func (s *RouterAggregatedList) MarshalJSON() ([]byte, error) {
31741	type NoMethod RouterAggregatedList
31742	raw := NoMethod(*s)
31743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31744}
31745
31746// RouterAggregatedListWarning: [Output Only] Informational warning
31747// message.
31748type RouterAggregatedListWarning struct {
31749	// Code: [Output Only] A warning code, if applicable. For example,
31750	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
31751	// the response.
31752	//
31753	// Possible values:
31754	//   "CLEANUP_FAILED"
31755	//   "DEPRECATED_RESOURCE_USED"
31756	//   "DEPRECATED_TYPE_USED"
31757	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
31758	//   "EXPERIMENTAL_TYPE_USED"
31759	//   "EXTERNAL_API_WARNING"
31760	//   "FIELD_VALUE_OVERRIDEN"
31761	//   "INJECTED_KERNELS_DEPRECATED"
31762	//   "MISSING_TYPE_DEPENDENCY"
31763	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
31764	//   "NEXT_HOP_CANNOT_IP_FORWARD"
31765	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
31766	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
31767	//   "NEXT_HOP_NOT_RUNNING"
31768	//   "NOT_CRITICAL_ERROR"
31769	//   "NO_RESULTS_ON_PAGE"
31770	//   "REQUIRED_TOS_AGREEMENT"
31771	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
31772	//   "RESOURCE_NOT_DELETED"
31773	//   "SCHEMA_VALIDATION_IGNORED"
31774	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
31775	//   "UNDECLARED_PROPERTIES"
31776	//   "UNREACHABLE"
31777	Code string `json:"code,omitempty"`
31778
31779	// Data: [Output Only] Metadata about this warning in key: value format.
31780	// For example:
31781	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
31782	Data []*RouterAggregatedListWarningData `json:"data,omitempty"`
31783
31784	// Message: [Output Only] A human-readable description of the warning
31785	// code.
31786	Message string `json:"message,omitempty"`
31787
31788	// ForceSendFields is a list of field names (e.g. "Code") to
31789	// unconditionally include in API requests. By default, fields with
31790	// empty values are omitted from API requests. However, any non-pointer,
31791	// non-interface field appearing in ForceSendFields will be sent to the
31792	// server regardless of whether the field is empty or not. This may be
31793	// used to include empty fields in Patch requests.
31794	ForceSendFields []string `json:"-"`
31795
31796	// NullFields is a list of field names (e.g. "Code") to include in API
31797	// requests with the JSON null value. By default, fields with empty
31798	// values are omitted from API requests. However, any field with an
31799	// empty value appearing in NullFields will be sent to the server as
31800	// null. It is an error if a field in this list has a non-empty value.
31801	// This may be used to include null fields in Patch requests.
31802	NullFields []string `json:"-"`
31803}
31804
31805func (s *RouterAggregatedListWarning) MarshalJSON() ([]byte, error) {
31806	type NoMethod RouterAggregatedListWarning
31807	raw := NoMethod(*s)
31808	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31809}
31810
31811type RouterAggregatedListWarningData struct {
31812	// Key: [Output Only] A key that provides more detail on the warning
31813	// being returned. For example, for warnings where there are no results
31814	// in a list request for a particular zone, this key might be scope and
31815	// the key value might be the zone name. Other examples might be a key
31816	// indicating a deprecated resource and a suggested replacement, or a
31817	// warning about invalid network settings (for example, if an instance
31818	// attempts to perform IP forwarding but is not enabled for IP
31819	// forwarding).
31820	Key string `json:"key,omitempty"`
31821
31822	// Value: [Output Only] A warning data value corresponding to the key.
31823	Value string `json:"value,omitempty"`
31824
31825	// ForceSendFields is a list of field names (e.g. "Key") to
31826	// unconditionally include in API requests. By default, fields with
31827	// empty values are omitted from API requests. However, any non-pointer,
31828	// non-interface field appearing in ForceSendFields will be sent to the
31829	// server regardless of whether the field is empty or not. This may be
31830	// used to include empty fields in Patch requests.
31831	ForceSendFields []string `json:"-"`
31832
31833	// NullFields is a list of field names (e.g. "Key") to include in API
31834	// requests with the JSON null value. By default, fields with empty
31835	// values are omitted from API requests. However, any field with an
31836	// empty value appearing in NullFields will be sent to the server as
31837	// null. It is an error if a field in this list has a non-empty value.
31838	// This may be used to include null fields in Patch requests.
31839	NullFields []string `json:"-"`
31840}
31841
31842func (s *RouterAggregatedListWarningData) MarshalJSON() ([]byte, error) {
31843	type NoMethod RouterAggregatedListWarningData
31844	raw := NoMethod(*s)
31845	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31846}
31847
31848type RouterBgp struct {
31849	// AdvertiseMode: User-specified flag to indicate which mode to use for
31850	// advertisement. The options are DEFAULT or CUSTOM.
31851	//
31852	// Possible values:
31853	//   "CUSTOM"
31854	//   "DEFAULT"
31855	AdvertiseMode string `json:"advertiseMode,omitempty"`
31856
31857	// AdvertisedGroups: User-specified list of prefix groups to advertise
31858	// in custom mode. This field can only be populated if advertise_mode is
31859	// CUSTOM and is advertised to all peers of the router. These groups
31860	// will be advertised in addition to any specified prefixes. Leave this
31861	// field blank to advertise no custom groups.
31862	//
31863	// Possible values:
31864	//   "ALL_SUBNETS"
31865	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
31866
31867	// AdvertisedIpRanges: User-specified list of individual IP ranges to
31868	// advertise in custom mode. This field can only be populated if
31869	// advertise_mode is CUSTOM and is advertised to all peers of the
31870	// router. These IP ranges will be advertised in addition to any
31871	// specified groups. Leave this field blank to advertise no custom IP
31872	// ranges.
31873	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
31874
31875	// Asn: Local BGP Autonomous System Number (ASN). Must be an RFC6996
31876	// private ASN, either 16-bit or 32-bit. The value will be fixed for
31877	// this router resource. All VPN tunnels that link to this router will
31878	// have the same local ASN.
31879	Asn int64 `json:"asn,omitempty"`
31880
31881	// KeepaliveInterval: The interval in seconds between BGP keepalive
31882	// messages that are sent to the peer. Hold time is three times the
31883	// interval at which keepalive messages are sent, and the hold time is
31884	// the maximum number of seconds allowed to elapse between successive
31885	// keepalive messages that BGP receives from a peer. BGP will use the
31886	// smaller of either the local hold time value or the peer's hold time
31887	// value as the hold time for the BGP connection between the two peers.
31888	// If set, this value must be between 1 and 120. The default is 20.
31889	KeepaliveInterval int64 `json:"keepaliveInterval,omitempty"`
31890
31891	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
31892	// unconditionally include in API requests. By default, fields with
31893	// empty values are omitted from API requests. However, any non-pointer,
31894	// non-interface field appearing in ForceSendFields will be sent to the
31895	// server regardless of whether the field is empty or not. This may be
31896	// used to include empty fields in Patch requests.
31897	ForceSendFields []string `json:"-"`
31898
31899	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
31900	// in API requests with the JSON null value. By default, fields with
31901	// empty values are omitted from API requests. However, any field with
31902	// an empty value appearing in NullFields will be sent to the server as
31903	// null. It is an error if a field in this list has a non-empty value.
31904	// This may be used to include null fields in Patch requests.
31905	NullFields []string `json:"-"`
31906}
31907
31908func (s *RouterBgp) MarshalJSON() ([]byte, error) {
31909	type NoMethod RouterBgp
31910	raw := NoMethod(*s)
31911	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
31912}
31913
31914type RouterBgpPeer struct {
31915	// AdvertiseMode: User-specified flag to indicate which mode to use for
31916	// advertisement.
31917	//
31918	// Possible values:
31919	//   "CUSTOM"
31920	//   "DEFAULT"
31921	AdvertiseMode string `json:"advertiseMode,omitempty"`
31922
31923	// AdvertisedGroups: User-specified list of prefix groups to advertise
31924	// in custom mode, which can take one of the following options:
31925	// - ALL_SUBNETS: Advertises all available subnets, including peer VPC
31926	// subnets.
31927	// - ALL_VPC_SUBNETS: Advertises the router's own VPC subnets.
31928	// - ALL_PEER_VPC_SUBNETS: Advertises peer subnets of the router's VPC
31929	// network. Note that this field can only be populated if advertise_mode
31930	// is CUSTOM and overrides the list defined for the router (in the "bgp"
31931	// message). These groups are advertised in addition to any specified
31932	// prefixes. Leave this field blank to advertise no custom groups.
31933	//
31934	// Possible values:
31935	//   "ALL_SUBNETS"
31936	AdvertisedGroups []string `json:"advertisedGroups,omitempty"`
31937
31938	// AdvertisedIpRanges: User-specified list of individual IP ranges to
31939	// advertise in custom mode. This field can only be populated if
31940	// advertise_mode is CUSTOM and overrides the list defined for the
31941	// router (in the "bgp" message). These IP ranges are advertised in
31942	// addition to any specified groups. Leave this field blank to advertise
31943	// no custom IP ranges.
31944	AdvertisedIpRanges []*RouterAdvertisedIpRange `json:"advertisedIpRanges,omitempty"`
31945
31946	// AdvertisedRoutePriority: The priority of routes advertised to this
31947	// BGP peer. Where there is more than one matching route of maximum
31948	// length, the routes with the lowest priority value win.
31949	AdvertisedRoutePriority int64 `json:"advertisedRoutePriority,omitempty"`
31950
31951	// Bfd: BFD configuration for the BGP peering.
31952	Bfd *RouterBgpPeerBfd `json:"bfd,omitempty"`
31953
31954	// Enable: The status of the BGP peer connection. If set to FALSE, any
31955	// active session with the peer is terminated and all associated routing
31956	// information is removed. If set to TRUE, the peer connection can be
31957	// established with routing information. The default is TRUE.
31958	//
31959	// Possible values:
31960	//   "FALSE"
31961	//   "TRUE"
31962	Enable string `json:"enable,omitempty"`
31963
31964	// InterfaceName: Name of the interface the BGP peer is associated with.
31965	InterfaceName string `json:"interfaceName,omitempty"`
31966
31967	// IpAddress: IP address of the interface inside Google Cloud Platform.
31968	// Only IPv4 is supported.
31969	IpAddress string `json:"ipAddress,omitempty"`
31970
31971	// ManagementType: [Output Only] The resource that configures and
31972	// manages this BGP peer.
31973	// - MANAGED_BY_USER is the default value and can be managed by you or
31974	// other users
31975	// - MANAGED_BY_ATTACHMENT is a BGP peer that is configured and managed
31976	// by Cloud Interconnect, specifically by an InterconnectAttachment of
31977	// type PARTNER. Google automatically creates, updates, and deletes this
31978	// type of BGP peer when the PARTNER InterconnectAttachment is created,
31979	// updated, or deleted.
31980	//
31981	// Possible values:
31982	//   "MANAGED_BY_ATTACHMENT"
31983	//   "MANAGED_BY_USER"
31984	ManagementType string `json:"managementType,omitempty"`
31985
31986	// Name: Name of this BGP peer. The name must be 1-63 characters long,
31987	// and comply with RFC1035. Specifically, the name must be 1-63
31988	// characters long and match the regular expression
31989	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
31990	// a lowercase letter, and all following characters must be a dash,
31991	// lowercase letter, or digit, except the last character, which cannot
31992	// be a dash.
31993	Name string `json:"name,omitempty"`
31994
31995	// PeerAsn: Peer BGP Autonomous System Number (ASN). Each BGP interface
31996	// may use a different value.
31997	PeerAsn int64 `json:"peerAsn,omitempty"`
31998
31999	// PeerIpAddress: IP address of the BGP interface outside Google Cloud
32000	// Platform. Only IPv4 is supported.
32001	PeerIpAddress string `json:"peerIpAddress,omitempty"`
32002
32003	// ForceSendFields is a list of field names (e.g. "AdvertiseMode") to
32004	// unconditionally include in API requests. By default, fields with
32005	// empty values are omitted from API requests. However, any non-pointer,
32006	// non-interface field appearing in ForceSendFields will be sent to the
32007	// server regardless of whether the field is empty or not. This may be
32008	// used to include empty fields in Patch requests.
32009	ForceSendFields []string `json:"-"`
32010
32011	// NullFields is a list of field names (e.g. "AdvertiseMode") to include
32012	// in API requests with the JSON null value. By default, fields with
32013	// empty values are omitted from API requests. However, any field with
32014	// an empty value appearing in NullFields will be sent to the server as
32015	// null. It is an error if a field in this list has a non-empty value.
32016	// This may be used to include null fields in Patch requests.
32017	NullFields []string `json:"-"`
32018}
32019
32020func (s *RouterBgpPeer) MarshalJSON() ([]byte, error) {
32021	type NoMethod RouterBgpPeer
32022	raw := NoMethod(*s)
32023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32024}
32025
32026type RouterBgpPeerBfd struct {
32027	// MinReceiveInterval: The minimum interval, in milliseconds, between
32028	// BFD control packets received from the peer router. The actual value
32029	// is negotiated between the two routers and is equal to the greater of
32030	// this value and the transmit interval of the other router. If set,
32031	// this value must be between 100 and 30000. The default is 300.
32032	MinReceiveInterval int64 `json:"minReceiveInterval,omitempty"`
32033
32034	// MinTransmitInterval: The minimum interval, in milliseconds, between
32035	// BFD control packets transmitted to the peer router. The actual value
32036	// is negotiated between the two routers and is equal to the greater of
32037	// this value and the corresponding receive interval of the other
32038	// router. If set, this value must be between 100 and 30000. The default
32039	// is 300.
32040	MinTransmitInterval int64 `json:"minTransmitInterval,omitempty"`
32041
32042	// Multiplier: The number of consecutive BFD packets that must be missed
32043	// before BFD declares that a peer is unavailable. If set, the value
32044	// must be a value between 2 and 16. The default is 3.
32045	Multiplier int64 `json:"multiplier,omitempty"`
32046
32047	// SessionInitializationMode: The BFD session initialization mode for
32048	// this BGP peer. If set to ACTIVE, the Cloud Router will initiate the
32049	// BFD session for this BGP peer. If set to PASSIVE, the Cloud Router
32050	// will wait for the peer router to initiate the BFD session for this
32051	// BGP peer. If set to DISABLED, BFD is disabled for this BGP peer. The
32052	// default is PASSIVE.
32053	//
32054	// Possible values:
32055	//   "ACTIVE"
32056	//   "DISABLED"
32057	//   "PASSIVE"
32058	SessionInitializationMode string `json:"sessionInitializationMode,omitempty"`
32059
32060	// ForceSendFields is a list of field names (e.g. "MinReceiveInterval")
32061	// to unconditionally include in API requests. By default, fields with
32062	// empty values are omitted from API requests. However, any non-pointer,
32063	// non-interface field appearing in ForceSendFields will be sent to the
32064	// server regardless of whether the field is empty or not. This may be
32065	// used to include empty fields in Patch requests.
32066	ForceSendFields []string `json:"-"`
32067
32068	// NullFields is a list of field names (e.g. "MinReceiveInterval") to
32069	// include in API requests with the JSON null value. By default, fields
32070	// with empty values are omitted from API requests. However, any field
32071	// with an empty value appearing in NullFields will be sent to the
32072	// server as null. It is an error if a field in this list has a
32073	// non-empty value. This may be used to include null fields in Patch
32074	// requests.
32075	NullFields []string `json:"-"`
32076}
32077
32078func (s *RouterBgpPeerBfd) MarshalJSON() ([]byte, error) {
32079	type NoMethod RouterBgpPeerBfd
32080	raw := NoMethod(*s)
32081	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32082}
32083
32084type RouterInterface struct {
32085	// IpRange: IP address and range of the interface. The IP range must be
32086	// in the RFC3927 link-local IP address space. The value must be a
32087	// CIDR-formatted string, for example: 169.254.0.1/30. NOTE: Do not
32088	// truncate the address as it represents the IP address of the
32089	// interface.
32090	IpRange string `json:"ipRange,omitempty"`
32091
32092	// LinkedInterconnectAttachment: URI of the linked Interconnect
32093	// attachment. It must be in the same region as the router. Each
32094	// interface can have one linked resource, which can be either be a VPN
32095	// tunnel or an Interconnect attachment.
32096	LinkedInterconnectAttachment string `json:"linkedInterconnectAttachment,omitempty"`
32097
32098	// LinkedVpnTunnel: URI of the linked VPN tunnel, which must be in the
32099	// same region as the router. Each interface can have one linked
32100	// resource, which can be either a VPN tunnel or an Interconnect
32101	// attachment.
32102	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
32103
32104	// ManagementType: [Output Only] The resource that configures and
32105	// manages this interface.
32106	// - MANAGED_BY_USER is the default value and can be managed directly by
32107	// users.
32108	// - MANAGED_BY_ATTACHMENT is an interface that is configured and
32109	// managed by Cloud Interconnect, specifically, by an
32110	// InterconnectAttachment of type PARTNER. Google automatically creates,
32111	// updates, and deletes this type of interface when the PARTNER
32112	// InterconnectAttachment is created, updated, or deleted.
32113	//
32114	// Possible values:
32115	//   "MANAGED_BY_ATTACHMENT"
32116	//   "MANAGED_BY_USER"
32117	ManagementType string `json:"managementType,omitempty"`
32118
32119	// Name: Name of this interface entry. The name must be 1-63 characters
32120	// long, and comply with RFC1035. Specifically, the name must be 1-63
32121	// characters long and match the regular expression
32122	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
32123	// a lowercase letter, and all following characters must be a dash,
32124	// lowercase letter, or digit, except the last character, which cannot
32125	// be a dash.
32126	Name string `json:"name,omitempty"`
32127
32128	// ForceSendFields is a list of field names (e.g. "IpRange") to
32129	// unconditionally include in API requests. By default, fields with
32130	// empty values are omitted from API requests. However, any non-pointer,
32131	// non-interface field appearing in ForceSendFields will be sent to the
32132	// server regardless of whether the field is empty or not. This may be
32133	// used to include empty fields in Patch requests.
32134	ForceSendFields []string `json:"-"`
32135
32136	// NullFields is a list of field names (e.g. "IpRange") to include in
32137	// API requests with the JSON null value. By default, fields with empty
32138	// values are omitted from API requests. However, any field with an
32139	// empty value appearing in NullFields will be sent to the server as
32140	// null. It is an error if a field in this list has a non-empty value.
32141	// This may be used to include null fields in Patch requests.
32142	NullFields []string `json:"-"`
32143}
32144
32145func (s *RouterInterface) MarshalJSON() ([]byte, error) {
32146	type NoMethod RouterInterface
32147	raw := NoMethod(*s)
32148	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32149}
32150
32151// RouterList: Contains a list of Router resources.
32152type RouterList struct {
32153	// Id: [Output Only] Unique identifier for the resource; defined by the
32154	// server.
32155	Id string `json:"id,omitempty"`
32156
32157	// Items: A list of Router resources.
32158	Items []*Router `json:"items,omitempty"`
32159
32160	// Kind: [Output Only] Type of resource. Always compute#router for
32161	// routers.
32162	Kind string `json:"kind,omitempty"`
32163
32164	// NextPageToken: [Output Only] This token allows you to get the next
32165	// page of results for list requests. If the number of results is larger
32166	// than maxResults, use the nextPageToken as a value for the query
32167	// parameter pageToken in the next list request. Subsequent list
32168	// requests will have their own nextPageToken to continue paging through
32169	// the results.
32170	NextPageToken string `json:"nextPageToken,omitempty"`
32171
32172	// SelfLink: [Output Only] Server-defined URL for this resource.
32173	SelfLink string `json:"selfLink,omitempty"`
32174
32175	// Warning: [Output Only] Informational warning message.
32176	Warning *RouterListWarning `json:"warning,omitempty"`
32177
32178	// ServerResponse contains the HTTP response code and headers from the
32179	// server.
32180	googleapi.ServerResponse `json:"-"`
32181
32182	// ForceSendFields is a list of field names (e.g. "Id") to
32183	// unconditionally include in API requests. By default, fields with
32184	// empty values are omitted from API requests. However, any non-pointer,
32185	// non-interface field appearing in ForceSendFields will be sent to the
32186	// server regardless of whether the field is empty or not. This may be
32187	// used to include empty fields in Patch requests.
32188	ForceSendFields []string `json:"-"`
32189
32190	// NullFields is a list of field names (e.g. "Id") to include in API
32191	// requests with the JSON null value. By default, fields with empty
32192	// values are omitted from API requests. However, any field with an
32193	// empty value appearing in NullFields will be sent to the server as
32194	// null. It is an error if a field in this list has a non-empty value.
32195	// This may be used to include null fields in Patch requests.
32196	NullFields []string `json:"-"`
32197}
32198
32199func (s *RouterList) MarshalJSON() ([]byte, error) {
32200	type NoMethod RouterList
32201	raw := NoMethod(*s)
32202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32203}
32204
32205// RouterListWarning: [Output Only] Informational warning message.
32206type RouterListWarning struct {
32207	// Code: [Output Only] A warning code, if applicable. For example,
32208	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32209	// the response.
32210	//
32211	// Possible values:
32212	//   "CLEANUP_FAILED"
32213	//   "DEPRECATED_RESOURCE_USED"
32214	//   "DEPRECATED_TYPE_USED"
32215	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32216	//   "EXPERIMENTAL_TYPE_USED"
32217	//   "EXTERNAL_API_WARNING"
32218	//   "FIELD_VALUE_OVERRIDEN"
32219	//   "INJECTED_KERNELS_DEPRECATED"
32220	//   "MISSING_TYPE_DEPENDENCY"
32221	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32222	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32223	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32224	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32225	//   "NEXT_HOP_NOT_RUNNING"
32226	//   "NOT_CRITICAL_ERROR"
32227	//   "NO_RESULTS_ON_PAGE"
32228	//   "REQUIRED_TOS_AGREEMENT"
32229	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32230	//   "RESOURCE_NOT_DELETED"
32231	//   "SCHEMA_VALIDATION_IGNORED"
32232	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32233	//   "UNDECLARED_PROPERTIES"
32234	//   "UNREACHABLE"
32235	Code string `json:"code,omitempty"`
32236
32237	// Data: [Output Only] Metadata about this warning in key: value format.
32238	// For example:
32239	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32240	Data []*RouterListWarningData `json:"data,omitempty"`
32241
32242	// Message: [Output Only] A human-readable description of the warning
32243	// code.
32244	Message string `json:"message,omitempty"`
32245
32246	// ForceSendFields is a list of field names (e.g. "Code") to
32247	// unconditionally include in API requests. By default, fields with
32248	// empty values are omitted from API requests. However, any non-pointer,
32249	// non-interface field appearing in ForceSendFields will be sent to the
32250	// server regardless of whether the field is empty or not. This may be
32251	// used to include empty fields in Patch requests.
32252	ForceSendFields []string `json:"-"`
32253
32254	// NullFields is a list of field names (e.g. "Code") to include in API
32255	// requests with the JSON null value. By default, fields with empty
32256	// values are omitted from API requests. However, any field with an
32257	// empty value appearing in NullFields will be sent to the server as
32258	// null. It is an error if a field in this list has a non-empty value.
32259	// This may be used to include null fields in Patch requests.
32260	NullFields []string `json:"-"`
32261}
32262
32263func (s *RouterListWarning) MarshalJSON() ([]byte, error) {
32264	type NoMethod RouterListWarning
32265	raw := NoMethod(*s)
32266	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32267}
32268
32269type RouterListWarningData struct {
32270	// Key: [Output Only] A key that provides more detail on the warning
32271	// being returned. For example, for warnings where there are no results
32272	// in a list request for a particular zone, this key might be scope and
32273	// the key value might be the zone name. Other examples might be a key
32274	// indicating a deprecated resource and a suggested replacement, or a
32275	// warning about invalid network settings (for example, if an instance
32276	// attempts to perform IP forwarding but is not enabled for IP
32277	// forwarding).
32278	Key string `json:"key,omitempty"`
32279
32280	// Value: [Output Only] A warning data value corresponding to the key.
32281	Value string `json:"value,omitempty"`
32282
32283	// ForceSendFields is a list of field names (e.g. "Key") to
32284	// unconditionally include in API requests. By default, fields with
32285	// empty values are omitted from API requests. However, any non-pointer,
32286	// non-interface field appearing in ForceSendFields will be sent to the
32287	// server regardless of whether the field is empty or not. This may be
32288	// used to include empty fields in Patch requests.
32289	ForceSendFields []string `json:"-"`
32290
32291	// NullFields is a list of field names (e.g. "Key") to include in API
32292	// requests with the JSON null value. By default, fields with empty
32293	// values are omitted from API requests. However, any field with an
32294	// empty value appearing in NullFields will be sent to the server as
32295	// null. It is an error if a field in this list has a non-empty value.
32296	// This may be used to include null fields in Patch requests.
32297	NullFields []string `json:"-"`
32298}
32299
32300func (s *RouterListWarningData) MarshalJSON() ([]byte, error) {
32301	type NoMethod RouterListWarningData
32302	raw := NoMethod(*s)
32303	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32304}
32305
32306// RouterNat: Represents a Nat resource. It enables the VMs within the
32307// specified subnetworks to access Internet without external IP
32308// addresses. It specifies a list of subnetworks (and the ranges within)
32309// that want to use NAT. Customers can also provide the external IPs
32310// that would be used for NAT. GCP would auto-allocate ephemeral IPs if
32311// no external IPs are provided.
32312type RouterNat struct {
32313	// DrainNatIps: A list of URLs of the IP resources to be drained. These
32314	// IPs must be valid static external IPs that have been assigned to the
32315	// NAT. These IPs should be used for updating/patching a NAT only.
32316	DrainNatIps []string `json:"drainNatIps,omitempty"`
32317
32318	// IcmpIdleTimeoutSec: Timeout (in seconds) for ICMP connections.
32319	// Defaults to 30s if not set.
32320	IcmpIdleTimeoutSec int64 `json:"icmpIdleTimeoutSec,omitempty"`
32321
32322	// LogConfig: Configure logging on this NAT.
32323	LogConfig *RouterNatLogConfig `json:"logConfig,omitempty"`
32324
32325	// MinPortsPerVm: Minimum number of ports allocated to a VM from this
32326	// NAT config. If not set, a default number of ports is allocated to a
32327	// VM. This is rounded up to the nearest power of 2. For example, if the
32328	// value of this field is 50, at least 64 ports are allocated to a VM.
32329	MinPortsPerVm int64 `json:"minPortsPerVm,omitempty"`
32330
32331	// Name: Unique name of this Nat service. The name must be 1-63
32332	// characters long and comply with RFC1035.
32333	Name string `json:"name,omitempty"`
32334
32335	// NatIpAllocateOption: Specify the NatIpAllocateOption, which can take
32336	// one of the following values:
32337	// - MANUAL_ONLY: Uses only Nat IP addresses provided by customers. When
32338	// there are not enough specified Nat IPs, the Nat service fails for new
32339	// VMs.
32340	// - AUTO_ONLY: Nat IPs are allocated by Google Cloud Platform;
32341	// customers can't specify any Nat IPs. When choosing AUTO_ONLY, then
32342	// nat_ip should be empty.
32343	//
32344	// Possible values:
32345	//   "AUTO_ONLY"
32346	//   "MANUAL_ONLY"
32347	NatIpAllocateOption string `json:"natIpAllocateOption,omitempty"`
32348
32349	// NatIps: A list of URLs of the IP resources used for this Nat service.
32350	// These IP addresses must be valid static external IP addresses
32351	// assigned to the project.
32352	NatIps []string `json:"natIps,omitempty"`
32353
32354	// SourceSubnetworkIpRangesToNat: Specify the Nat option, which can take
32355	// one of the following values:
32356	// - ALL_SUBNETWORKS_ALL_IP_RANGES: All of the IP ranges in every
32357	// Subnetwork are allowed to Nat.
32358	// - ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES: All of the primary IP ranges
32359	// in every Subnetwork are allowed to Nat.
32360	// - LIST_OF_SUBNETWORKS: A list of Subnetworks are allowed to Nat
32361	// (specified in the field subnetwork below) The default is
32362	// SUBNETWORK_IP_RANGE_TO_NAT_OPTION_UNSPECIFIED. Note that if this
32363	// field contains ALL_SUBNETWORKS_ALL_IP_RANGES or
32364	// ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES, then there should not be any
32365	// other Router.Nat section in any Router for this network in this
32366	// region.
32367	//
32368	// Possible values:
32369	//   "ALL_SUBNETWORKS_ALL_IP_RANGES"
32370	//   "ALL_SUBNETWORKS_ALL_PRIMARY_IP_RANGES"
32371	//   "LIST_OF_SUBNETWORKS"
32372	SourceSubnetworkIpRangesToNat string `json:"sourceSubnetworkIpRangesToNat,omitempty"`
32373
32374	// Subnetworks: A list of Subnetwork resources whose traffic should be
32375	// translated by NAT Gateway. It is used only when LIST_OF_SUBNETWORKS
32376	// is selected for the SubnetworkIpRangeToNatOption above.
32377	Subnetworks []*RouterNatSubnetworkToNat `json:"subnetworks,omitempty"`
32378
32379	// TcpEstablishedIdleTimeoutSec: Timeout (in seconds) for TCP
32380	// established connections. Defaults to 1200s if not set.
32381	TcpEstablishedIdleTimeoutSec int64 `json:"tcpEstablishedIdleTimeoutSec,omitempty"`
32382
32383	// TcpTransitoryIdleTimeoutSec: Timeout (in seconds) for TCP transitory
32384	// connections. Defaults to 30s if not set.
32385	TcpTransitoryIdleTimeoutSec int64 `json:"tcpTransitoryIdleTimeoutSec,omitempty"`
32386
32387	// UdpIdleTimeoutSec: Timeout (in seconds) for UDP connections. Defaults
32388	// to 30s if not set.
32389	UdpIdleTimeoutSec int64 `json:"udpIdleTimeoutSec,omitempty"`
32390
32391	// ForceSendFields is a list of field names (e.g. "DrainNatIps") to
32392	// unconditionally include in API requests. By default, fields with
32393	// empty values are omitted from API requests. However, any non-pointer,
32394	// non-interface field appearing in ForceSendFields will be sent to the
32395	// server regardless of whether the field is empty or not. This may be
32396	// used to include empty fields in Patch requests.
32397	ForceSendFields []string `json:"-"`
32398
32399	// NullFields is a list of field names (e.g. "DrainNatIps") to include
32400	// in API requests with the JSON null value. By default, fields with
32401	// empty values are omitted from API requests. However, any field with
32402	// an empty value appearing in NullFields will be sent to the server as
32403	// null. It is an error if a field in this list has a non-empty value.
32404	// This may be used to include null fields in Patch requests.
32405	NullFields []string `json:"-"`
32406}
32407
32408func (s *RouterNat) MarshalJSON() ([]byte, error) {
32409	type NoMethod RouterNat
32410	raw := NoMethod(*s)
32411	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32412}
32413
32414// RouterNatLogConfig: Configuration of logging on a NAT.
32415type RouterNatLogConfig struct {
32416	// Enable: Indicates whether or not to export logs. This is false by
32417	// default.
32418	Enable bool `json:"enable,omitempty"`
32419
32420	// Filter: Specify the desired filtering of logs on this NAT. If
32421	// unspecified, logs are exported for all connections handled by this
32422	// NAT. This option can take one of the following values:
32423	// - ERRORS_ONLY: Export logs only for connection failures.
32424	// - TRANSLATIONS_ONLY: Export logs only for successful connections.
32425	// - ALL: Export logs for all connections, successful and unsuccessful.
32426	//
32427	// Possible values:
32428	//   "ALL"
32429	//   "ERRORS_ONLY"
32430	//   "TRANSLATIONS_ONLY"
32431	Filter string `json:"filter,omitempty"`
32432
32433	// ForceSendFields is a list of field names (e.g. "Enable") to
32434	// unconditionally include in API requests. By default, fields with
32435	// empty values are omitted from API requests. However, any non-pointer,
32436	// non-interface field appearing in ForceSendFields will be sent to the
32437	// server regardless of whether the field is empty or not. This may be
32438	// used to include empty fields in Patch requests.
32439	ForceSendFields []string `json:"-"`
32440
32441	// NullFields is a list of field names (e.g. "Enable") to include in API
32442	// requests with the JSON null value. By default, fields with empty
32443	// values are omitted from API requests. However, any field with an
32444	// empty value appearing in NullFields will be sent to the server as
32445	// null. It is an error if a field in this list has a non-empty value.
32446	// This may be used to include null fields in Patch requests.
32447	NullFields []string `json:"-"`
32448}
32449
32450func (s *RouterNatLogConfig) MarshalJSON() ([]byte, error) {
32451	type NoMethod RouterNatLogConfig
32452	raw := NoMethod(*s)
32453	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32454}
32455
32456// RouterNatSubnetworkToNat: Defines the IP ranges that want to use NAT
32457// for a subnetwork.
32458type RouterNatSubnetworkToNat struct {
32459	// Name: URL for the subnetwork resource that will use NAT.
32460	Name string `json:"name,omitempty"`
32461
32462	// SecondaryIpRangeNames: A list of the secondary ranges of the
32463	// Subnetwork that are allowed to use NAT. This can be populated only if
32464	// "LIST_OF_SECONDARY_IP_RANGES" is one of the values in
32465	// source_ip_ranges_to_nat.
32466	SecondaryIpRangeNames []string `json:"secondaryIpRangeNames,omitempty"`
32467
32468	// SourceIpRangesToNat: Specify the options for NAT ranges in the
32469	// Subnetwork. All options of a single value are valid except
32470	// NAT_IP_RANGE_OPTION_UNSPECIFIED. The only valid option with multiple
32471	// values is: ["PRIMARY_IP_RANGE", "LIST_OF_SECONDARY_IP_RANGES"]
32472	// Default: [ALL_IP_RANGES]
32473	//
32474	// Possible values:
32475	//   "ALL_IP_RANGES"
32476	//   "LIST_OF_SECONDARY_IP_RANGES"
32477	//   "PRIMARY_IP_RANGE"
32478	SourceIpRangesToNat []string `json:"sourceIpRangesToNat,omitempty"`
32479
32480	// ForceSendFields is a list of field names (e.g. "Name") to
32481	// unconditionally include in API requests. By default, fields with
32482	// empty values are omitted from API requests. However, any non-pointer,
32483	// non-interface field appearing in ForceSendFields will be sent to the
32484	// server regardless of whether the field is empty or not. This may be
32485	// used to include empty fields in Patch requests.
32486	ForceSendFields []string `json:"-"`
32487
32488	// NullFields is a list of field names (e.g. "Name") to include in API
32489	// requests with the JSON null value. By default, fields with empty
32490	// values are omitted from API requests. However, any field with an
32491	// empty value appearing in NullFields will be sent to the server as
32492	// null. It is an error if a field in this list has a non-empty value.
32493	// This may be used to include null fields in Patch requests.
32494	NullFields []string `json:"-"`
32495}
32496
32497func (s *RouterNatSubnetworkToNat) MarshalJSON() ([]byte, error) {
32498	type NoMethod RouterNatSubnetworkToNat
32499	raw := NoMethod(*s)
32500	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32501}
32502
32503type RouterStatus struct {
32504	// BestRoutes: Best routes for this router's network.
32505	BestRoutes []*Route `json:"bestRoutes,omitempty"`
32506
32507	// BestRoutesForRouter: Best routes learned by this router.
32508	BestRoutesForRouter []*Route `json:"bestRoutesForRouter,omitempty"`
32509
32510	BgpPeerStatus []*RouterStatusBgpPeerStatus `json:"bgpPeerStatus,omitempty"`
32511
32512	NatStatus []*RouterStatusNatStatus `json:"natStatus,omitempty"`
32513
32514	// Network: URI of the network to which this router belongs.
32515	Network string `json:"network,omitempty"`
32516
32517	// ForceSendFields is a list of field names (e.g. "BestRoutes") to
32518	// unconditionally include in API requests. By default, fields with
32519	// empty values are omitted from API requests. However, any non-pointer,
32520	// non-interface field appearing in ForceSendFields will be sent to the
32521	// server regardless of whether the field is empty or not. This may be
32522	// used to include empty fields in Patch requests.
32523	ForceSendFields []string `json:"-"`
32524
32525	// NullFields is a list of field names (e.g. "BestRoutes") to include in
32526	// API requests with the JSON null value. By default, fields with empty
32527	// values are omitted from API requests. However, any field with an
32528	// empty value appearing in NullFields will be sent to the server as
32529	// null. It is an error if a field in this list has a non-empty value.
32530	// This may be used to include null fields in Patch requests.
32531	NullFields []string `json:"-"`
32532}
32533
32534func (s *RouterStatus) MarshalJSON() ([]byte, error) {
32535	type NoMethod RouterStatus
32536	raw := NoMethod(*s)
32537	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32538}
32539
32540type RouterStatusBgpPeerStatus struct {
32541	// AdvertisedRoutes: Routes that were advertised to the remote BGP peer
32542	AdvertisedRoutes []*Route `json:"advertisedRoutes,omitempty"`
32543
32544	BfdStatus *BfdStatus `json:"bfdStatus,omitempty"`
32545
32546	// IpAddress: IP address of the local BGP interface.
32547	IpAddress string `json:"ipAddress,omitempty"`
32548
32549	// LinkedVpnTunnel: URL of the VPN tunnel that this BGP peer controls.
32550	LinkedVpnTunnel string `json:"linkedVpnTunnel,omitempty"`
32551
32552	// Name: Name of this BGP peer. Unique within the Routers resource.
32553	Name string `json:"name,omitempty"`
32554
32555	// NumLearnedRoutes: Number of routes learned from the remote BGP Peer.
32556	NumLearnedRoutes int64 `json:"numLearnedRoutes,omitempty"`
32557
32558	// PeerIpAddress: IP address of the remote BGP interface.
32559	PeerIpAddress string `json:"peerIpAddress,omitempty"`
32560
32561	// State: BGP state as specified in RFC1771.
32562	State string `json:"state,omitempty"`
32563
32564	// Status: Status of the BGP peer: {UP, DOWN}
32565	//
32566	// Possible values:
32567	//   "DOWN"
32568	//   "UNKNOWN"
32569	//   "UP"
32570	Status string `json:"status,omitempty"`
32571
32572	// Uptime: Time this session has been up. Format: 14 years, 51 weeks, 6
32573	// days, 23 hours, 59 minutes, 59 seconds
32574	Uptime string `json:"uptime,omitempty"`
32575
32576	// UptimeSeconds: Time this session has been up, in seconds. Format: 145
32577	UptimeSeconds string `json:"uptimeSeconds,omitempty"`
32578
32579	// ForceSendFields is a list of field names (e.g. "AdvertisedRoutes") to
32580	// unconditionally include in API requests. By default, fields with
32581	// empty values are omitted from API requests. However, any non-pointer,
32582	// non-interface field appearing in ForceSendFields will be sent to the
32583	// server regardless of whether the field is empty or not. This may be
32584	// used to include empty fields in Patch requests.
32585	ForceSendFields []string `json:"-"`
32586
32587	// NullFields is a list of field names (e.g. "AdvertisedRoutes") to
32588	// include in API requests with the JSON null value. By default, fields
32589	// with empty values are omitted from API requests. However, any field
32590	// with an empty value appearing in NullFields will be sent to the
32591	// server as null. It is an error if a field in this list has a
32592	// non-empty value. This may be used to include null fields in Patch
32593	// requests.
32594	NullFields []string `json:"-"`
32595}
32596
32597func (s *RouterStatusBgpPeerStatus) MarshalJSON() ([]byte, error) {
32598	type NoMethod RouterStatusBgpPeerStatus
32599	raw := NoMethod(*s)
32600	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32601}
32602
32603// RouterStatusNatStatus: Status of a NAT contained in this router. Next
32604// tag: 9
32605type RouterStatusNatStatus struct {
32606	// AutoAllocatedNatIps: A list of IPs auto-allocated for NAT. Example:
32607	// ["1.1.1.1", "129.2.16.89"]
32608	AutoAllocatedNatIps []string `json:"autoAllocatedNatIps,omitempty"`
32609
32610	// DrainAutoAllocatedNatIps: A list of IPs auto-allocated for NAT that
32611	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
32612	DrainAutoAllocatedNatIps []string `json:"drainAutoAllocatedNatIps,omitempty"`
32613
32614	// DrainUserAllocatedNatIps: A list of IPs user-allocated for NAT that
32615	// are in drain mode. Example: ["1.1.1.1", "179.12.26.133"].
32616	DrainUserAllocatedNatIps []string `json:"drainUserAllocatedNatIps,omitempty"`
32617
32618	// MinExtraNatIpsNeeded: The number of extra IPs to allocate. This will
32619	// be greater than 0 only if user-specified IPs are NOT enough to allow
32620	// all configured VMs to use NAT. This value is meaningful only when
32621	// auto-allocation of NAT IPs is *not* used.
32622	MinExtraNatIpsNeeded int64 `json:"minExtraNatIpsNeeded,omitempty"`
32623
32624	// Name: Unique name of this NAT.
32625	Name string `json:"name,omitempty"`
32626
32627	// NumVmEndpointsWithNatMappings: Number of VM endpoints (i.e., Nics)
32628	// that can use NAT.
32629	NumVmEndpointsWithNatMappings int64 `json:"numVmEndpointsWithNatMappings,omitempty"`
32630
32631	// UserAllocatedNatIpResources: A list of fully qualified URLs of
32632	// reserved IP address resources.
32633	UserAllocatedNatIpResources []string `json:"userAllocatedNatIpResources,omitempty"`
32634
32635	// UserAllocatedNatIps: A list of IPs user-allocated for NAT. They will
32636	// be raw IP strings like "179.12.26.133".
32637	UserAllocatedNatIps []string `json:"userAllocatedNatIps,omitempty"`
32638
32639	// ForceSendFields is a list of field names (e.g. "AutoAllocatedNatIps")
32640	// to unconditionally include in API requests. By default, fields with
32641	// empty values are omitted from API requests. However, any non-pointer,
32642	// non-interface field appearing in ForceSendFields will be sent to the
32643	// server regardless of whether the field is empty or not. This may be
32644	// used to include empty fields in Patch requests.
32645	ForceSendFields []string `json:"-"`
32646
32647	// NullFields is a list of field names (e.g. "AutoAllocatedNatIps") to
32648	// include in API requests with the JSON null value. By default, fields
32649	// with empty values are omitted from API requests. However, any field
32650	// with an empty value appearing in NullFields will be sent to the
32651	// server as null. It is an error if a field in this list has a
32652	// non-empty value. This may be used to include null fields in Patch
32653	// requests.
32654	NullFields []string `json:"-"`
32655}
32656
32657func (s *RouterStatusNatStatus) MarshalJSON() ([]byte, error) {
32658	type NoMethod RouterStatusNatStatus
32659	raw := NoMethod(*s)
32660	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32661}
32662
32663type RouterStatusResponse struct {
32664	// Kind: Type of resource.
32665	Kind string `json:"kind,omitempty"`
32666
32667	Result *RouterStatus `json:"result,omitempty"`
32668
32669	// ServerResponse contains the HTTP response code and headers from the
32670	// server.
32671	googleapi.ServerResponse `json:"-"`
32672
32673	// ForceSendFields is a list of field names (e.g. "Kind") to
32674	// unconditionally include in API requests. By default, fields with
32675	// empty values are omitted from API requests. However, any non-pointer,
32676	// non-interface field appearing in ForceSendFields will be sent to the
32677	// server regardless of whether the field is empty or not. This may be
32678	// used to include empty fields in Patch requests.
32679	ForceSendFields []string `json:"-"`
32680
32681	// NullFields is a list of field names (e.g. "Kind") to include in API
32682	// requests with the JSON null value. By default, fields with empty
32683	// values are omitted from API requests. However, any field with an
32684	// empty value appearing in NullFields will be sent to the server as
32685	// null. It is an error if a field in this list has a non-empty value.
32686	// This may be used to include null fields in Patch requests.
32687	NullFields []string `json:"-"`
32688}
32689
32690func (s *RouterStatusResponse) MarshalJSON() ([]byte, error) {
32691	type NoMethod RouterStatusResponse
32692	raw := NoMethod(*s)
32693	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32694}
32695
32696type RoutersPreviewResponse struct {
32697	// Resource: Preview of given router.
32698	Resource *Router `json:"resource,omitempty"`
32699
32700	// ServerResponse contains the HTTP response code and headers from the
32701	// server.
32702	googleapi.ServerResponse `json:"-"`
32703
32704	// ForceSendFields is a list of field names (e.g. "Resource") to
32705	// unconditionally include in API requests. By default, fields with
32706	// empty values are omitted from API requests. However, any non-pointer,
32707	// non-interface field appearing in ForceSendFields will be sent to the
32708	// server regardless of whether the field is empty or not. This may be
32709	// used to include empty fields in Patch requests.
32710	ForceSendFields []string `json:"-"`
32711
32712	// NullFields is a list of field names (e.g. "Resource") to include in
32713	// API requests with the JSON null value. By default, fields with empty
32714	// values are omitted from API requests. However, any field with an
32715	// empty value appearing in NullFields will be sent to the server as
32716	// null. It is an error if a field in this list has a non-empty value.
32717	// This may be used to include null fields in Patch requests.
32718	NullFields []string `json:"-"`
32719}
32720
32721func (s *RoutersPreviewResponse) MarshalJSON() ([]byte, error) {
32722	type NoMethod RoutersPreviewResponse
32723	raw := NoMethod(*s)
32724	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32725}
32726
32727type RoutersScopedList struct {
32728	// Routers: A list of routers contained in this scope.
32729	Routers []*Router `json:"routers,omitempty"`
32730
32731	// Warning: Informational warning which replaces the list of routers
32732	// when the list is empty.
32733	Warning *RoutersScopedListWarning `json:"warning,omitempty"`
32734
32735	// ForceSendFields is a list of field names (e.g. "Routers") to
32736	// unconditionally include in API requests. By default, fields with
32737	// empty values are omitted from API requests. However, any non-pointer,
32738	// non-interface field appearing in ForceSendFields will be sent to the
32739	// server regardless of whether the field is empty or not. This may be
32740	// used to include empty fields in Patch requests.
32741	ForceSendFields []string `json:"-"`
32742
32743	// NullFields is a list of field names (e.g. "Routers") to include in
32744	// API requests with the JSON null value. By default, fields with empty
32745	// values are omitted from API requests. However, any field with an
32746	// empty value appearing in NullFields will be sent to the server as
32747	// null. It is an error if a field in this list has a non-empty value.
32748	// This may be used to include null fields in Patch requests.
32749	NullFields []string `json:"-"`
32750}
32751
32752func (s *RoutersScopedList) MarshalJSON() ([]byte, error) {
32753	type NoMethod RoutersScopedList
32754	raw := NoMethod(*s)
32755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32756}
32757
32758// RoutersScopedListWarning: Informational warning which replaces the
32759// list of routers when the list is empty.
32760type RoutersScopedListWarning struct {
32761	// Code: [Output Only] A warning code, if applicable. For example,
32762	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
32763	// the response.
32764	//
32765	// Possible values:
32766	//   "CLEANUP_FAILED"
32767	//   "DEPRECATED_RESOURCE_USED"
32768	//   "DEPRECATED_TYPE_USED"
32769	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
32770	//   "EXPERIMENTAL_TYPE_USED"
32771	//   "EXTERNAL_API_WARNING"
32772	//   "FIELD_VALUE_OVERRIDEN"
32773	//   "INJECTED_KERNELS_DEPRECATED"
32774	//   "MISSING_TYPE_DEPENDENCY"
32775	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
32776	//   "NEXT_HOP_CANNOT_IP_FORWARD"
32777	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
32778	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
32779	//   "NEXT_HOP_NOT_RUNNING"
32780	//   "NOT_CRITICAL_ERROR"
32781	//   "NO_RESULTS_ON_PAGE"
32782	//   "REQUIRED_TOS_AGREEMENT"
32783	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
32784	//   "RESOURCE_NOT_DELETED"
32785	//   "SCHEMA_VALIDATION_IGNORED"
32786	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
32787	//   "UNDECLARED_PROPERTIES"
32788	//   "UNREACHABLE"
32789	Code string `json:"code,omitempty"`
32790
32791	// Data: [Output Only] Metadata about this warning in key: value format.
32792	// For example:
32793	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
32794	Data []*RoutersScopedListWarningData `json:"data,omitempty"`
32795
32796	// Message: [Output Only] A human-readable description of the warning
32797	// code.
32798	Message string `json:"message,omitempty"`
32799
32800	// ForceSendFields is a list of field names (e.g. "Code") to
32801	// unconditionally include in API requests. By default, fields with
32802	// empty values are omitted from API requests. However, any non-pointer,
32803	// non-interface field appearing in ForceSendFields will be sent to the
32804	// server regardless of whether the field is empty or not. This may be
32805	// used to include empty fields in Patch requests.
32806	ForceSendFields []string `json:"-"`
32807
32808	// NullFields is a list of field names (e.g. "Code") to include in API
32809	// requests with the JSON null value. By default, fields with empty
32810	// values are omitted from API requests. However, any field with an
32811	// empty value appearing in NullFields will be sent to the server as
32812	// null. It is an error if a field in this list has a non-empty value.
32813	// This may be used to include null fields in Patch requests.
32814	NullFields []string `json:"-"`
32815}
32816
32817func (s *RoutersScopedListWarning) MarshalJSON() ([]byte, error) {
32818	type NoMethod RoutersScopedListWarning
32819	raw := NoMethod(*s)
32820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32821}
32822
32823type RoutersScopedListWarningData struct {
32824	// Key: [Output Only] A key that provides more detail on the warning
32825	// being returned. For example, for warnings where there are no results
32826	// in a list request for a particular zone, this key might be scope and
32827	// the key value might be the zone name. Other examples might be a key
32828	// indicating a deprecated resource and a suggested replacement, or a
32829	// warning about invalid network settings (for example, if an instance
32830	// attempts to perform IP forwarding but is not enabled for IP
32831	// forwarding).
32832	Key string `json:"key,omitempty"`
32833
32834	// Value: [Output Only] A warning data value corresponding to the key.
32835	Value string `json:"value,omitempty"`
32836
32837	// ForceSendFields is a list of field names (e.g. "Key") to
32838	// unconditionally include in API requests. By default, fields with
32839	// empty values are omitted from API requests. However, any non-pointer,
32840	// non-interface field appearing in ForceSendFields will be sent to the
32841	// server regardless of whether the field is empty or not. This may be
32842	// used to include empty fields in Patch requests.
32843	ForceSendFields []string `json:"-"`
32844
32845	// NullFields is a list of field names (e.g. "Key") to include in API
32846	// requests with the JSON null value. By default, fields with empty
32847	// values are omitted from API requests. However, any field with an
32848	// empty value appearing in NullFields will be sent to the server as
32849	// null. It is an error if a field in this list has a non-empty value.
32850	// This may be used to include null fields in Patch requests.
32851	NullFields []string `json:"-"`
32852}
32853
32854func (s *RoutersScopedListWarningData) MarshalJSON() ([]byte, error) {
32855	type NoMethod RoutersScopedListWarningData
32856	raw := NoMethod(*s)
32857	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32858}
32859
32860// Rule: A rule to be applied in a Policy.
32861type Rule struct {
32862	// Action: Required
32863	//
32864	// Possible values:
32865	//   "ALLOW"
32866	//   "ALLOW_WITH_LOG"
32867	//   "DENY"
32868	//   "DENY_WITH_LOG"
32869	//   "LOG"
32870	//   "NO_ACTION"
32871	Action string `json:"action,omitempty"`
32872
32873	// Conditions: Additional restrictions that must be met. All conditions
32874	// must pass for the rule to match.
32875	Conditions []*Condition `json:"conditions,omitempty"`
32876
32877	// Description: Human-readable description of the rule.
32878	Description string `json:"description,omitempty"`
32879
32880	// Ins: If one or more 'in' clauses are specified, the rule matches if
32881	// the PRINCIPAL/AUTHORITY_SELECTOR is in at least one of these entries.
32882	Ins []string `json:"ins,omitempty"`
32883
32884	// LogConfigs: The config returned to callers of
32885	// tech.iam.IAM.CheckPolicy for any entries that match the LOG action.
32886	LogConfigs []*LogConfig `json:"logConfigs,omitempty"`
32887
32888	// NotIns: If one or more 'not_in' clauses are specified, the rule
32889	// matches if the PRINCIPAL/AUTHORITY_SELECTOR is in none of the
32890	// entries.
32891	NotIns []string `json:"notIns,omitempty"`
32892
32893	// Permissions: A permission is a string of form '..' (e.g.,
32894	// 'storage.buckets.list'). A value of '*' matches all permissions, and
32895	// a verb part of '*' (e.g., 'storage.buckets.*') matches all verbs.
32896	Permissions []string `json:"permissions,omitempty"`
32897
32898	// ForceSendFields is a list of field names (e.g. "Action") to
32899	// unconditionally include in API requests. By default, fields with
32900	// empty values are omitted from API requests. However, any non-pointer,
32901	// non-interface field appearing in ForceSendFields will be sent to the
32902	// server regardless of whether the field is empty or not. This may be
32903	// used to include empty fields in Patch requests.
32904	ForceSendFields []string `json:"-"`
32905
32906	// NullFields is a list of field names (e.g. "Action") to include in API
32907	// requests with the JSON null value. By default, fields with empty
32908	// values are omitted from API requests. However, any field with an
32909	// empty value appearing in NullFields will be sent to the server as
32910	// null. It is an error if a field in this list has a non-empty value.
32911	// This may be used to include null fields in Patch requests.
32912	NullFields []string `json:"-"`
32913}
32914
32915func (s *Rule) MarshalJSON() ([]byte, error) {
32916	type NoMethod Rule
32917	raw := NoMethod(*s)
32918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32919}
32920
32921type SSLHealthCheck struct {
32922	// Port: The TCP port number for the health check request. The default
32923	// value is 443. Valid values are 1 through 65535.
32924	Port int64 `json:"port,omitempty"`
32925
32926	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
32927	// both port and port_name are defined, port takes precedence.
32928	PortName string `json:"portName,omitempty"`
32929
32930	// PortSpecification: Specifies how port is selected for health
32931	// checking, can be one of following values:
32932	// USE_FIXED_PORT: The port number in port is used for health
32933	// checking.
32934	// USE_NAMED_PORT: The portName is used for health
32935	// checking.
32936	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
32937	// each network endpoint is used for health checking. For other
32938	// backends, the port or named port specified in the Backend Service is
32939	// used for health checking.
32940	//
32941	//
32942	// If not specified, SSL health check follows behavior specified in port
32943	// and portName fields.
32944	//
32945	// Possible values:
32946	//   "USE_FIXED_PORT"
32947	//   "USE_NAMED_PORT"
32948	//   "USE_SERVING_PORT"
32949	PortSpecification string `json:"portSpecification,omitempty"`
32950
32951	// ProxyHeader: Specifies the type of proxy header to append before
32952	// sending data to the backend, either NONE or PROXY_V1. The default is
32953	// NONE.
32954	//
32955	// Possible values:
32956	//   "NONE"
32957	//   "PROXY_V1"
32958	ProxyHeader string `json:"proxyHeader,omitempty"`
32959
32960	// Request: The application data to send once the SSL connection has
32961	// been established (default value is empty). If both request and
32962	// response are empty, the connection establishment alone will indicate
32963	// health. The request data can only be ASCII.
32964	Request string `json:"request,omitempty"`
32965
32966	// Response: The bytes to match against the beginning of the response
32967	// data. If left empty (the default value), any response will indicate
32968	// health. The response data can only be ASCII.
32969	Response string `json:"response,omitempty"`
32970
32971	// ForceSendFields is a list of field names (e.g. "Port") to
32972	// unconditionally include in API requests. By default, fields with
32973	// empty values are omitted from API requests. However, any non-pointer,
32974	// non-interface field appearing in ForceSendFields will be sent to the
32975	// server regardless of whether the field is empty or not. This may be
32976	// used to include empty fields in Patch requests.
32977	ForceSendFields []string `json:"-"`
32978
32979	// NullFields is a list of field names (e.g. "Port") to include in API
32980	// requests with the JSON null value. By default, fields with empty
32981	// values are omitted from API requests. However, any field with an
32982	// empty value appearing in NullFields will be sent to the server as
32983	// null. It is an error if a field in this list has a non-empty value.
32984	// This may be used to include null fields in Patch requests.
32985	NullFields []string `json:"-"`
32986}
32987
32988func (s *SSLHealthCheck) MarshalJSON() ([]byte, error) {
32989	type NoMethod SSLHealthCheck
32990	raw := NoMethod(*s)
32991	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
32992}
32993
32994// SavedAttachedDisk: An instance-attached disk resource.
32995type SavedAttachedDisk struct {
32996	// AutoDelete: Specifies whether the disk will be auto-deleted when the
32997	// instance is deleted (but not when the disk is detached from the
32998	// instance).
32999	AutoDelete bool `json:"autoDelete,omitempty"`
33000
33001	// Boot: Indicates that this is a boot disk. The virtual machine will
33002	// use the first partition of the disk for its root filesystem.
33003	Boot bool `json:"boot,omitempty"`
33004
33005	// DeviceName: Specifies the name of the disk attached to the source
33006	// instance.
33007	DeviceName string `json:"deviceName,omitempty"`
33008
33009	// DiskEncryptionKey: The encryption key for the disk.
33010	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
33011
33012	// DiskSizeGb: The size of the disk in base-2 GB.
33013	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
33014
33015	// DiskType: [Output Only] URL of the disk type resource. For example:
33016	// projects/project/zones/zone/diskTypes/pd-standard or pd-ssd
33017	DiskType string `json:"diskType,omitempty"`
33018
33019	// GuestOsFeatures: A list of features to enable on the guest operating
33020	// system. Applicable only for bootable images. Read  Enabling guest
33021	// operating system features to see a list of available options.
33022	GuestOsFeatures []*GuestOsFeature `json:"guestOsFeatures,omitempty"`
33023
33024	// Index: Specifies zero-based index of the disk that is attached to the
33025	// source instance.
33026	Index int64 `json:"index,omitempty"`
33027
33028	// Interface: Specifies the disk interface to use for attaching this
33029	// disk, which is either SCSI or NVME.
33030	//
33031	// Possible values:
33032	//   "NVME"
33033	//   "SCSI"
33034	Interface string `json:"interface,omitempty"`
33035
33036	// Kind: [Output Only] Type of the resource. Always compute#attachedDisk
33037	// for attached disks.
33038	Kind string `json:"kind,omitempty"`
33039
33040	// Licenses: [Output Only] Any valid publicly visible licenses.
33041	Licenses []string `json:"licenses,omitempty"`
33042
33043	// Mode: The mode in which this disk is attached to the source instance,
33044	// either READ_WRITE or READ_ONLY.
33045	//
33046	// Possible values:
33047	//   "READ_ONLY"
33048	//   "READ_WRITE"
33049	Mode string `json:"mode,omitempty"`
33050
33051	// Source: Specifies a URL of the disk attached to the source instance.
33052	Source string `json:"source,omitempty"`
33053
33054	// StorageBytes: [Output Only] A size of the storage used by the disk's
33055	// snapshot by this machine image.
33056	StorageBytes int64 `json:"storageBytes,omitempty,string"`
33057
33058	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
33059	// is in a stable state or it is being adjusted as a result of shared
33060	// storage reallocation. This status can either be UPDATING, meaning the
33061	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
33062	// size of the snapshot is up-to-date.
33063	//
33064	// Possible values:
33065	//   "UPDATING"
33066	//   "UP_TO_DATE"
33067	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
33068
33069	// Type: Specifies the type of the attached disk, either SCRATCH or
33070	// PERSISTENT.
33071	//
33072	// Possible values:
33073	//   "PERSISTENT"
33074	//   "SCRATCH"
33075	Type string `json:"type,omitempty"`
33076
33077	// ForceSendFields is a list of field names (e.g. "AutoDelete") to
33078	// unconditionally include in API requests. By default, fields with
33079	// empty values are omitted from API requests. However, any non-pointer,
33080	// non-interface field appearing in ForceSendFields will be sent to the
33081	// server regardless of whether the field is empty or not. This may be
33082	// used to include empty fields in Patch requests.
33083	ForceSendFields []string `json:"-"`
33084
33085	// NullFields is a list of field names (e.g. "AutoDelete") to include in
33086	// API requests with the JSON null value. By default, fields with empty
33087	// values are omitted from API requests. However, any field with an
33088	// empty value appearing in NullFields will be sent to the server as
33089	// null. It is an error if a field in this list has a non-empty value.
33090	// This may be used to include null fields in Patch requests.
33091	NullFields []string `json:"-"`
33092}
33093
33094func (s *SavedAttachedDisk) MarshalJSON() ([]byte, error) {
33095	type NoMethod SavedAttachedDisk
33096	raw := NoMethod(*s)
33097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33098}
33099
33100// Scheduling: Sets the scheduling options for an Instance. NextID: 9
33101type Scheduling struct {
33102	// AutomaticRestart: Specifies whether the instance should be
33103	// automatically restarted if it is terminated by Compute Engine (not
33104	// terminated by a user). You can only set the automatic restart option
33105	// for standard instances. Preemptible instances cannot be automatically
33106	// restarted.
33107	//
33108	// By default, this is set to true so an instance is automatically
33109	// restarted if it is terminated by Compute Engine.
33110	AutomaticRestart *bool `json:"automaticRestart,omitempty"`
33111
33112	// MinNodeCpus: The minimum number of virtual CPUs this instance will
33113	// consume when running on a sole-tenant node.
33114	MinNodeCpus int64 `json:"minNodeCpus,omitempty"`
33115
33116	// NodeAffinities: A set of node affinity and anti-affinity
33117	// configurations. Refer to Configuring node affinity for more
33118	// information.
33119	NodeAffinities []*SchedulingNodeAffinity `json:"nodeAffinities,omitempty"`
33120
33121	// OnHostMaintenance: Defines the maintenance behavior for this
33122	// instance. For standard instances, the default behavior is MIGRATE.
33123	// For preemptible instances, the default and only possible behavior is
33124	// TERMINATE. For more information, see Setting Instance Scheduling
33125	// Options.
33126	//
33127	// Possible values:
33128	//   "MIGRATE"
33129	//   "TERMINATE"
33130	OnHostMaintenance string `json:"onHostMaintenance,omitempty"`
33131
33132	// Preemptible: Defines whether the instance is preemptible. This can
33133	// only be set during instance creation, it cannot be set or changed
33134	// after the instance has been created.
33135	Preemptible bool `json:"preemptible,omitempty"`
33136
33137	// ForceSendFields is a list of field names (e.g. "AutomaticRestart") to
33138	// unconditionally include in API requests. By default, fields with
33139	// empty values are omitted from API requests. However, any non-pointer,
33140	// non-interface field appearing in ForceSendFields will be sent to the
33141	// server regardless of whether the field is empty or not. This may be
33142	// used to include empty fields in Patch requests.
33143	ForceSendFields []string `json:"-"`
33144
33145	// NullFields is a list of field names (e.g. "AutomaticRestart") to
33146	// include in API requests with the JSON null value. By default, fields
33147	// with empty values are omitted from API requests. However, any field
33148	// with an empty value appearing in NullFields will be sent to the
33149	// server as null. It is an error if a field in this list has a
33150	// non-empty value. This may be used to include null fields in Patch
33151	// requests.
33152	NullFields []string `json:"-"`
33153}
33154
33155func (s *Scheduling) MarshalJSON() ([]byte, error) {
33156	type NoMethod Scheduling
33157	raw := NoMethod(*s)
33158	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33159}
33160
33161// SchedulingNodeAffinity: Node Affinity: the configuration of desired
33162// nodes onto which this Instance could be scheduled.
33163type SchedulingNodeAffinity struct {
33164	// Key: Corresponds to the label key of Node resource.
33165	Key string `json:"key,omitempty"`
33166
33167	// Operator: Defines the operation of node selection. Valid operators
33168	// are IN for affinity and NOT_IN for anti-affinity.
33169	//
33170	// Possible values:
33171	//   "IN"
33172	//   "NOT_IN"
33173	//   "OPERATOR_UNSPECIFIED"
33174	Operator string `json:"operator,omitempty"`
33175
33176	// Values: Corresponds to the label values of Node resource.
33177	Values []string `json:"values,omitempty"`
33178
33179	// ForceSendFields is a list of field names (e.g. "Key") to
33180	// unconditionally include in API requests. By default, fields with
33181	// empty values are omitted from API requests. However, any non-pointer,
33182	// non-interface field appearing in ForceSendFields will be sent to the
33183	// server regardless of whether the field is empty or not. This may be
33184	// used to include empty fields in Patch requests.
33185	ForceSendFields []string `json:"-"`
33186
33187	// NullFields is a list of field names (e.g. "Key") to include in API
33188	// requests with the JSON null value. By default, fields with empty
33189	// values are omitted from API requests. However, any field with an
33190	// empty value appearing in NullFields will be sent to the server as
33191	// null. It is an error if a field in this list has a non-empty value.
33192	// This may be used to include null fields in Patch requests.
33193	NullFields []string `json:"-"`
33194}
33195
33196func (s *SchedulingNodeAffinity) MarshalJSON() ([]byte, error) {
33197	type NoMethod SchedulingNodeAffinity
33198	raw := NoMethod(*s)
33199	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33200}
33201
33202type SecurityPoliciesListPreconfiguredExpressionSetsResponse struct {
33203	PreconfiguredExpressionSets *SecurityPoliciesWafConfig `json:"preconfiguredExpressionSets,omitempty"`
33204
33205	// ServerResponse contains the HTTP response code and headers from the
33206	// server.
33207	googleapi.ServerResponse `json:"-"`
33208
33209	// ForceSendFields is a list of field names (e.g.
33210	// "PreconfiguredExpressionSets") to unconditionally include in API
33211	// requests. By default, fields with empty values are omitted from API
33212	// requests. However, any non-pointer, non-interface field appearing in
33213	// ForceSendFields will be sent to the server regardless of whether the
33214	// field is empty or not. This may be used to include empty fields in
33215	// Patch requests.
33216	ForceSendFields []string `json:"-"`
33217
33218	// NullFields is a list of field names (e.g.
33219	// "PreconfiguredExpressionSets") to include in API requests with the
33220	// JSON null value. By default, fields with empty values are omitted
33221	// from API requests. However, any field with an empty value appearing
33222	// in NullFields will be sent to the server as null. It is an error if a
33223	// field in this list has a non-empty value. This may be used to include
33224	// null fields in Patch requests.
33225	NullFields []string `json:"-"`
33226}
33227
33228func (s *SecurityPoliciesListPreconfiguredExpressionSetsResponse) MarshalJSON() ([]byte, error) {
33229	type NoMethod SecurityPoliciesListPreconfiguredExpressionSetsResponse
33230	raw := NoMethod(*s)
33231	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33232}
33233
33234type SecurityPoliciesWafConfig struct {
33235	WafRules *PreconfiguredWafSet `json:"wafRules,omitempty"`
33236
33237	// ForceSendFields is a list of field names (e.g. "WafRules") to
33238	// unconditionally include in API requests. By default, fields with
33239	// empty values are omitted from API requests. However, any non-pointer,
33240	// non-interface field appearing in ForceSendFields will be sent to the
33241	// server regardless of whether the field is empty or not. This may be
33242	// used to include empty fields in Patch requests.
33243	ForceSendFields []string `json:"-"`
33244
33245	// NullFields is a list of field names (e.g. "WafRules") to include in
33246	// API requests with the JSON null value. By default, fields with empty
33247	// values are omitted from API requests. However, any field with an
33248	// empty value appearing in NullFields will be sent to the server as
33249	// null. It is an error if a field in this list has a non-empty value.
33250	// This may be used to include null fields in Patch requests.
33251	NullFields []string `json:"-"`
33252}
33253
33254func (s *SecurityPoliciesWafConfig) MarshalJSON() ([]byte, error) {
33255	type NoMethod SecurityPoliciesWafConfig
33256	raw := NoMethod(*s)
33257	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33258}
33259
33260// SecurityPolicy: Represents a Cloud Armor Security Policy
33261// resource.
33262//
33263// Only external backend services that use load balancers can reference
33264// a Security Policy. For more information, read  Cloud Armor Security
33265// Policy Concepts. (== resource_for {$api_version}.securityPolicies ==)
33266type SecurityPolicy struct {
33267	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
33268	// format.
33269	CreationTimestamp string `json:"creationTimestamp,omitempty"`
33270
33271	// Description: An optional description of this resource. Provide this
33272	// property when you create the resource.
33273	Description string `json:"description,omitempty"`
33274
33275	// Fingerprint: Specifies a fingerprint for this resource, which is
33276	// essentially a hash of the metadata's contents and used for optimistic
33277	// locking. The fingerprint is initially generated by Compute Engine and
33278	// changes after every request to modify or update metadata. You must
33279	// always provide an up-to-date fingerprint hash in order to update or
33280	// change metadata, otherwise the request will fail with error 412
33281	// conditionNotMet.
33282	//
33283	// To see the latest fingerprint, make get() request to the security
33284	// policy.
33285	Fingerprint string `json:"fingerprint,omitempty"`
33286
33287	// Id: [Output Only] The unique identifier for the resource. This
33288	// identifier is defined by the server.
33289	Id uint64 `json:"id,omitempty,string"`
33290
33291	// Kind: [Output only] Type of the resource. Always
33292	// compute#securityPolicyfor security policies
33293	Kind string `json:"kind,omitempty"`
33294
33295	// LabelFingerprint: A fingerprint for the labels being applied to this
33296	// security policy, which is essentially a hash of the labels set used
33297	// for optimistic locking. The fingerprint is initially generated by
33298	// Compute Engine and changes after every request to modify or update
33299	// labels. You must always provide an up-to-date fingerprint hash in
33300	// order to update or change labels.
33301	//
33302	// To see the latest fingerprint, make get() request to the security
33303	// policy.
33304	LabelFingerprint string `json:"labelFingerprint,omitempty"`
33305
33306	// Labels: Labels to apply to this security policy resource. These can
33307	// be later modified by the setLabels method. Each label key/value must
33308	// comply with RFC1035. Label values may be empty.
33309	Labels map[string]string `json:"labels,omitempty"`
33310
33311	// Name: Name of the resource. Provided by the client when the resource
33312	// is created. The name must be 1-63 characters long, and comply with
33313	// RFC1035. Specifically, the name must be 1-63 characters long and
33314	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
33315	// the first character must be a lowercase letter, and all following
33316	// characters must be a dash, lowercase letter, or digit, except the
33317	// last character, which cannot be a dash.
33318	Name string `json:"name,omitempty"`
33319
33320	// Rules: A list of rules that belong to this policy. There must always
33321	// be a default rule (rule with priority 2147483647 and match "*"). If
33322	// no rules are provided when creating a security policy, a default rule
33323	// with action "allow" will be added.
33324	Rules []*SecurityPolicyRule `json:"rules,omitempty"`
33325
33326	// SelfLink: [Output Only] Server-defined URL for the resource.
33327	SelfLink string `json:"selfLink,omitempty"`
33328
33329	// ServerResponse contains the HTTP response code and headers from the
33330	// server.
33331	googleapi.ServerResponse `json:"-"`
33332
33333	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
33334	// to unconditionally include in API requests. By default, fields with
33335	// empty values are omitted from API requests. However, any non-pointer,
33336	// non-interface field appearing in ForceSendFields will be sent to the
33337	// server regardless of whether the field is empty or not. This may be
33338	// used to include empty fields in Patch requests.
33339	ForceSendFields []string `json:"-"`
33340
33341	// NullFields is a list of field names (e.g. "CreationTimestamp") to
33342	// include in API requests with the JSON null value. By default, fields
33343	// with empty values are omitted from API requests. However, any field
33344	// with an empty value appearing in NullFields will be sent to the
33345	// server as null. It is an error if a field in this list has a
33346	// non-empty value. This may be used to include null fields in Patch
33347	// requests.
33348	NullFields []string `json:"-"`
33349}
33350
33351func (s *SecurityPolicy) MarshalJSON() ([]byte, error) {
33352	type NoMethod SecurityPolicy
33353	raw := NoMethod(*s)
33354	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33355}
33356
33357type SecurityPolicyList struct {
33358	// Id: [Output Only] Unique identifier for the resource; defined by the
33359	// server.
33360	Id string `json:"id,omitempty"`
33361
33362	// Items: A list of SecurityPolicy resources.
33363	Items []*SecurityPolicy `json:"items,omitempty"`
33364
33365	// Kind: [Output Only] Type of resource. Always
33366	// compute#securityPolicyList for listsof securityPolicies
33367	Kind string `json:"kind,omitempty"`
33368
33369	// NextPageToken: [Output Only] This token allows you to get the next
33370	// page of results for list requests. If the number of results is larger
33371	// than maxResults, use the nextPageToken as a value for the query
33372	// parameter pageToken in the next list request. Subsequent list
33373	// requests will have their own nextPageToken to continue paging through
33374	// the results.
33375	NextPageToken string `json:"nextPageToken,omitempty"`
33376
33377	// Warning: [Output Only] Informational warning message.
33378	Warning *SecurityPolicyListWarning `json:"warning,omitempty"`
33379
33380	// ServerResponse contains the HTTP response code and headers from the
33381	// server.
33382	googleapi.ServerResponse `json:"-"`
33383
33384	// ForceSendFields is a list of field names (e.g. "Id") to
33385	// unconditionally include in API requests. By default, fields with
33386	// empty values are omitted from API requests. However, any non-pointer,
33387	// non-interface field appearing in ForceSendFields will be sent to the
33388	// server regardless of whether the field is empty or not. This may be
33389	// used to include empty fields in Patch requests.
33390	ForceSendFields []string `json:"-"`
33391
33392	// NullFields is a list of field names (e.g. "Id") to include in API
33393	// requests with the JSON null value. By default, fields with empty
33394	// values are omitted from API requests. However, any field with an
33395	// empty value appearing in NullFields will be sent to the server as
33396	// null. It is an error if a field in this list has a non-empty value.
33397	// This may be used to include null fields in Patch requests.
33398	NullFields []string `json:"-"`
33399}
33400
33401func (s *SecurityPolicyList) MarshalJSON() ([]byte, error) {
33402	type NoMethod SecurityPolicyList
33403	raw := NoMethod(*s)
33404	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33405}
33406
33407// SecurityPolicyListWarning: [Output Only] Informational warning
33408// message.
33409type SecurityPolicyListWarning struct {
33410	// Code: [Output Only] A warning code, if applicable. For example,
33411	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
33412	// the response.
33413	//
33414	// Possible values:
33415	//   "CLEANUP_FAILED"
33416	//   "DEPRECATED_RESOURCE_USED"
33417	//   "DEPRECATED_TYPE_USED"
33418	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
33419	//   "EXPERIMENTAL_TYPE_USED"
33420	//   "EXTERNAL_API_WARNING"
33421	//   "FIELD_VALUE_OVERRIDEN"
33422	//   "INJECTED_KERNELS_DEPRECATED"
33423	//   "MISSING_TYPE_DEPENDENCY"
33424	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
33425	//   "NEXT_HOP_CANNOT_IP_FORWARD"
33426	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
33427	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
33428	//   "NEXT_HOP_NOT_RUNNING"
33429	//   "NOT_CRITICAL_ERROR"
33430	//   "NO_RESULTS_ON_PAGE"
33431	//   "REQUIRED_TOS_AGREEMENT"
33432	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
33433	//   "RESOURCE_NOT_DELETED"
33434	//   "SCHEMA_VALIDATION_IGNORED"
33435	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
33436	//   "UNDECLARED_PROPERTIES"
33437	//   "UNREACHABLE"
33438	Code string `json:"code,omitempty"`
33439
33440	// Data: [Output Only] Metadata about this warning in key: value format.
33441	// For example:
33442	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
33443	Data []*SecurityPolicyListWarningData `json:"data,omitempty"`
33444
33445	// Message: [Output Only] A human-readable description of the warning
33446	// code.
33447	Message string `json:"message,omitempty"`
33448
33449	// ForceSendFields is a list of field names (e.g. "Code") to
33450	// unconditionally include in API requests. By default, fields with
33451	// empty values are omitted from API requests. However, any non-pointer,
33452	// non-interface field appearing in ForceSendFields will be sent to the
33453	// server regardless of whether the field is empty or not. This may be
33454	// used to include empty fields in Patch requests.
33455	ForceSendFields []string `json:"-"`
33456
33457	// NullFields is a list of field names (e.g. "Code") to include in API
33458	// requests with the JSON null value. By default, fields with empty
33459	// values are omitted from API requests. However, any field with an
33460	// empty value appearing in NullFields will be sent to the server as
33461	// null. It is an error if a field in this list has a non-empty value.
33462	// This may be used to include null fields in Patch requests.
33463	NullFields []string `json:"-"`
33464}
33465
33466func (s *SecurityPolicyListWarning) MarshalJSON() ([]byte, error) {
33467	type NoMethod SecurityPolicyListWarning
33468	raw := NoMethod(*s)
33469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33470}
33471
33472type SecurityPolicyListWarningData struct {
33473	// Key: [Output Only] A key that provides more detail on the warning
33474	// being returned. For example, for warnings where there are no results
33475	// in a list request for a particular zone, this key might be scope and
33476	// the key value might be the zone name. Other examples might be a key
33477	// indicating a deprecated resource and a suggested replacement, or a
33478	// warning about invalid network settings (for example, if an instance
33479	// attempts to perform IP forwarding but is not enabled for IP
33480	// forwarding).
33481	Key string `json:"key,omitempty"`
33482
33483	// Value: [Output Only] A warning data value corresponding to the key.
33484	Value string `json:"value,omitempty"`
33485
33486	// ForceSendFields is a list of field names (e.g. "Key") to
33487	// unconditionally include in API requests. By default, fields with
33488	// empty values are omitted from API requests. However, any non-pointer,
33489	// non-interface field appearing in ForceSendFields will be sent to the
33490	// server regardless of whether the field is empty or not. This may be
33491	// used to include empty fields in Patch requests.
33492	ForceSendFields []string `json:"-"`
33493
33494	// NullFields is a list of field names (e.g. "Key") to include in API
33495	// requests with the JSON null value. By default, fields with empty
33496	// values are omitted from API requests. However, any field with an
33497	// empty value appearing in NullFields will be sent to the server as
33498	// null. It is an error if a field in this list has a non-empty value.
33499	// This may be used to include null fields in Patch requests.
33500	NullFields []string `json:"-"`
33501}
33502
33503func (s *SecurityPolicyListWarningData) MarshalJSON() ([]byte, error) {
33504	type NoMethod SecurityPolicyListWarningData
33505	raw := NoMethod(*s)
33506	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33507}
33508
33509type SecurityPolicyReference struct {
33510	SecurityPolicy string `json:"securityPolicy,omitempty"`
33511
33512	// ForceSendFields is a list of field names (e.g. "SecurityPolicy") to
33513	// unconditionally include in API requests. By default, fields with
33514	// empty values are omitted from API requests. However, any non-pointer,
33515	// non-interface field appearing in ForceSendFields will be sent to the
33516	// server regardless of whether the field is empty or not. This may be
33517	// used to include empty fields in Patch requests.
33518	ForceSendFields []string `json:"-"`
33519
33520	// NullFields is a list of field names (e.g. "SecurityPolicy") to
33521	// include in API requests with the JSON null value. By default, fields
33522	// with empty values are omitted from API requests. However, any field
33523	// with an empty value appearing in NullFields will be sent to the
33524	// server as null. It is an error if a field in this list has a
33525	// non-empty value. This may be used to include null fields in Patch
33526	// requests.
33527	NullFields []string `json:"-"`
33528}
33529
33530func (s *SecurityPolicyReference) MarshalJSON() ([]byte, error) {
33531	type NoMethod SecurityPolicyReference
33532	raw := NoMethod(*s)
33533	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33534}
33535
33536// SecurityPolicyRule: Represents a rule that describes one or more
33537// match conditions along with the action to be taken when traffic
33538// matches this condition (allow or deny).
33539type SecurityPolicyRule struct {
33540	// Action: The Action to preform when the client connection triggers the
33541	// rule. Can currently be either "allow" or "deny()" where valid values
33542	// for status are 403, 404, and 502.
33543	Action string `json:"action,omitempty"`
33544
33545	// Description: An optional description of this resource. Provide this
33546	// property when you create the resource.
33547	Description string `json:"description,omitempty"`
33548
33549	// Kind: [Output only] Type of the resource. Always
33550	// compute#securityPolicyRule for security policy rules
33551	Kind string `json:"kind,omitempty"`
33552
33553	// Match: A match condition that incoming traffic is evaluated against.
33554	// If it evaluates to true, the corresponding 'action' is enforced.
33555	Match *SecurityPolicyRuleMatcher `json:"match,omitempty"`
33556
33557	// Preview: If set to true, the specified action is not enforced.
33558	Preview bool `json:"preview,omitempty"`
33559
33560	// Priority: An integer indicating the priority of a rule in the list.
33561	// The priority must be a positive value between 0 and 2147483647. Rules
33562	// are evaluated from highest to lowest priority where 0 is the highest
33563	// priority and 2147483647 is the lowest prority.
33564	Priority int64 `json:"priority,omitempty"`
33565
33566	// ServerResponse contains the HTTP response code and headers from the
33567	// server.
33568	googleapi.ServerResponse `json:"-"`
33569
33570	// ForceSendFields is a list of field names (e.g. "Action") to
33571	// unconditionally include in API requests. By default, fields with
33572	// empty values are omitted from API requests. However, any non-pointer,
33573	// non-interface field appearing in ForceSendFields will be sent to the
33574	// server regardless of whether the field is empty or not. This may be
33575	// used to include empty fields in Patch requests.
33576	ForceSendFields []string `json:"-"`
33577
33578	// NullFields is a list of field names (e.g. "Action") to include in API
33579	// requests with the JSON null value. By default, fields with empty
33580	// values are omitted from API requests. However, any field with an
33581	// empty value appearing in NullFields will be sent to the server as
33582	// null. It is an error if a field in this list has a non-empty value.
33583	// This may be used to include null fields in Patch requests.
33584	NullFields []string `json:"-"`
33585}
33586
33587func (s *SecurityPolicyRule) MarshalJSON() ([]byte, error) {
33588	type NoMethod SecurityPolicyRule
33589	raw := NoMethod(*s)
33590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33591}
33592
33593// SecurityPolicyRuleMatcher: Represents a match condition that incoming
33594// traffic is evaluated against. Exactly one field must be specified.
33595type SecurityPolicyRuleMatcher struct {
33596	// Config: The configuration options available when specifying
33597	// versioned_expr. This field must be specified if versioned_expr is
33598	// specified and cannot be specified if versioned_expr is not specified.
33599	Config *SecurityPolicyRuleMatcherConfig `json:"config,omitempty"`
33600
33601	// Expr: User defined CEVAL expression. A CEVAL expression is used to
33602	// specify match criteria such as origin.ip, source.region_code and
33603	// contents in the request header.
33604	Expr *Expr `json:"expr,omitempty"`
33605
33606	// VersionedExpr: Preconfigured versioned expression. If this field is
33607	// specified, config must also be specified. Available preconfigured
33608	// expressions along with their requirements are: SRC_IPS_V1 - must
33609	// specify the corresponding src_ip_range field in config.
33610	//
33611	// Possible values:
33612	//   "SRC_IPS_V1"
33613	VersionedExpr string `json:"versionedExpr,omitempty"`
33614
33615	// ForceSendFields is a list of field names (e.g. "Config") to
33616	// unconditionally include in API requests. By default, fields with
33617	// empty values are omitted from API requests. However, any non-pointer,
33618	// non-interface field appearing in ForceSendFields will be sent to the
33619	// server regardless of whether the field is empty or not. This may be
33620	// used to include empty fields in Patch requests.
33621	ForceSendFields []string `json:"-"`
33622
33623	// NullFields is a list of field names (e.g. "Config") to include in API
33624	// requests with the JSON null value. By default, fields with empty
33625	// values are omitted from API requests. However, any field with an
33626	// empty value appearing in NullFields will be sent to the server as
33627	// null. It is an error if a field in this list has a non-empty value.
33628	// This may be used to include null fields in Patch requests.
33629	NullFields []string `json:"-"`
33630}
33631
33632func (s *SecurityPolicyRuleMatcher) MarshalJSON() ([]byte, error) {
33633	type NoMethod SecurityPolicyRuleMatcher
33634	raw := NoMethod(*s)
33635	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33636}
33637
33638type SecurityPolicyRuleMatcherConfig struct {
33639	// SrcIpRanges: CIDR IP address range.
33640	SrcIpRanges []string `json:"srcIpRanges,omitempty"`
33641
33642	// ForceSendFields is a list of field names (e.g. "SrcIpRanges") to
33643	// unconditionally include in API requests. By default, fields with
33644	// empty values are omitted from API requests. However, any non-pointer,
33645	// non-interface field appearing in ForceSendFields will be sent to the
33646	// server regardless of whether the field is empty or not. This may be
33647	// used to include empty fields in Patch requests.
33648	ForceSendFields []string `json:"-"`
33649
33650	// NullFields is a list of field names (e.g. "SrcIpRanges") to include
33651	// in API requests with the JSON null value. By default, fields with
33652	// empty values are omitted from API requests. However, any field with
33653	// an empty value appearing in NullFields will be sent to the server as
33654	// null. It is an error if a field in this list has a non-empty value.
33655	// This may be used to include null fields in Patch requests.
33656	NullFields []string `json:"-"`
33657}
33658
33659func (s *SecurityPolicyRuleMatcherConfig) MarshalJSON() ([]byte, error) {
33660	type NoMethod SecurityPolicyRuleMatcherConfig
33661	raw := NoMethod(*s)
33662	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33663}
33664
33665// SerialPortOutput: An instance's serial console output.
33666type SerialPortOutput struct {
33667	// Contents: [Output Only] The contents of the console output.
33668	Contents string `json:"contents,omitempty"`
33669
33670	// Kind: [Output Only] Type of the resource. Always
33671	// compute#serialPortOutput for serial port output.
33672	Kind string `json:"kind,omitempty"`
33673
33674	// Next: [Output Only] The position of the next byte of content from the
33675	// serial console output. Use this value in the next request as the
33676	// start parameter.
33677	Next int64 `json:"next,omitempty,string"`
33678
33679	// SelfLink: [Output Only] Server-defined URL for this resource.
33680	SelfLink string `json:"selfLink,omitempty"`
33681
33682	// Start: The starting byte position of the output that was returned.
33683	// This should match the start parameter sent with the request. If the
33684	// serial console output exceeds the size of the buffer, older output
33685	// will be overwritten by newer content and the start values will be
33686	// mismatched.
33687	Start int64 `json:"start,omitempty,string"`
33688
33689	// ServerResponse contains the HTTP response code and headers from the
33690	// server.
33691	googleapi.ServerResponse `json:"-"`
33692
33693	// ForceSendFields is a list of field names (e.g. "Contents") to
33694	// unconditionally include in API requests. By default, fields with
33695	// empty values are omitted from API requests. However, any non-pointer,
33696	// non-interface field appearing in ForceSendFields will be sent to the
33697	// server regardless of whether the field is empty or not. This may be
33698	// used to include empty fields in Patch requests.
33699	ForceSendFields []string `json:"-"`
33700
33701	// NullFields is a list of field names (e.g. "Contents") to include in
33702	// API requests with the JSON null value. By default, fields with empty
33703	// values are omitted from API requests. However, any field with an
33704	// empty value appearing in NullFields will be sent to the server as
33705	// null. It is an error if a field in this list has a non-empty value.
33706	// This may be used to include null fields in Patch requests.
33707	NullFields []string `json:"-"`
33708}
33709
33710func (s *SerialPortOutput) MarshalJSON() ([]byte, error) {
33711	type NoMethod SerialPortOutput
33712	raw := NoMethod(*s)
33713	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33714}
33715
33716type ServerBinding struct {
33717	// Possible values:
33718	//   "RESTART_NODE_ON_ANY_SERVER"
33719	//   "RESTART_NODE_ON_MINIMAL_SERVERS"
33720	//   "SERVER_BINDING_TYPE_UNSPECIFIED"
33721	Type string `json:"type,omitempty"`
33722
33723	// ForceSendFields is a list of field names (e.g. "Type") to
33724	// unconditionally include in API requests. By default, fields with
33725	// empty values are omitted from API requests. However, any non-pointer,
33726	// non-interface field appearing in ForceSendFields will be sent to the
33727	// server regardless of whether the field is empty or not. This may be
33728	// used to include empty fields in Patch requests.
33729	ForceSendFields []string `json:"-"`
33730
33731	// NullFields is a list of field names (e.g. "Type") to include in API
33732	// requests with the JSON null value. By default, fields with empty
33733	// values are omitted from API requests. However, any field with an
33734	// empty value appearing in NullFields will be sent to the server as
33735	// null. It is an error if a field in this list has a non-empty value.
33736	// This may be used to include null fields in Patch requests.
33737	NullFields []string `json:"-"`
33738}
33739
33740func (s *ServerBinding) MarshalJSON() ([]byte, error) {
33741	type NoMethod ServerBinding
33742	raw := NoMethod(*s)
33743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33744}
33745
33746// ServiceAccount: A service account.
33747type ServiceAccount struct {
33748	// Email: Email address of the service account.
33749	Email string `json:"email,omitempty"`
33750
33751	// Scopes: The list of scopes to be made available for this service
33752	// account.
33753	Scopes []string `json:"scopes,omitempty"`
33754
33755	// ForceSendFields is a list of field names (e.g. "Email") to
33756	// unconditionally include in API requests. By default, fields with
33757	// empty values are omitted from API requests. However, any non-pointer,
33758	// non-interface field appearing in ForceSendFields will be sent to the
33759	// server regardless of whether the field is empty or not. This may be
33760	// used to include empty fields in Patch requests.
33761	ForceSendFields []string `json:"-"`
33762
33763	// NullFields is a list of field names (e.g. "Email") to include in API
33764	// requests with the JSON null value. By default, fields with empty
33765	// values are omitted from API requests. However, any field with an
33766	// empty value appearing in NullFields will be sent to the server as
33767	// null. It is an error if a field in this list has a non-empty value.
33768	// This may be used to include null fields in Patch requests.
33769	NullFields []string `json:"-"`
33770}
33771
33772func (s *ServiceAccount) MarshalJSON() ([]byte, error) {
33773	type NoMethod ServiceAccount
33774	raw := NoMethod(*s)
33775	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33776}
33777
33778// ShieldedInstanceConfig: A set of Shielded Instance options.
33779type ShieldedInstanceConfig struct {
33780	// EnableIntegrityMonitoring: Defines whether the instance has integrity
33781	// monitoring enabled.
33782	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
33783
33784	// EnableSecureBoot: Defines whether the instance has Secure Boot
33785	// enabled.
33786	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
33787
33788	// EnableVtpm: Defines whether the instance has the vTPM enabled.
33789	EnableVtpm bool `json:"enableVtpm,omitempty"`
33790
33791	// ForceSendFields is a list of field names (e.g.
33792	// "EnableIntegrityMonitoring") to unconditionally include in API
33793	// requests. By default, fields with empty values are omitted from API
33794	// requests. However, any non-pointer, non-interface field appearing in
33795	// ForceSendFields will be sent to the server regardless of whether the
33796	// field is empty or not. This may be used to include empty fields in
33797	// Patch requests.
33798	ForceSendFields []string `json:"-"`
33799
33800	// NullFields is a list of field names (e.g.
33801	// "EnableIntegrityMonitoring") to include in API requests with the JSON
33802	// null value. By default, fields with empty values are omitted from API
33803	// requests. However, any field with an empty value appearing in
33804	// NullFields will be sent to the server as null. It is an error if a
33805	// field in this list has a non-empty value. This may be used to include
33806	// null fields in Patch requests.
33807	NullFields []string `json:"-"`
33808}
33809
33810func (s *ShieldedInstanceConfig) MarshalJSON() ([]byte, error) {
33811	type NoMethod ShieldedInstanceConfig
33812	raw := NoMethod(*s)
33813	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33814}
33815
33816// ShieldedInstanceIdentity: A shielded Instance identity entry.
33817type ShieldedInstanceIdentity struct {
33818	// EncryptionKey: An Endorsement Key (EK) made by the RSA 2048 algorithm
33819	// issued to the Shielded Instance's vTPM.
33820	EncryptionKey *ShieldedInstanceIdentityEntry `json:"encryptionKey,omitempty"`
33821
33822	// Kind: [Output Only] Type of the resource. Always
33823	// compute#shieldedInstanceIdentity for shielded Instance identity
33824	// entry.
33825	Kind string `json:"kind,omitempty"`
33826
33827	// SigningKey: An Attestation Key (AK) made by the RSA 2048 algorithm
33828	// issued to the Shielded Instance's vTPM.
33829	SigningKey *ShieldedInstanceIdentityEntry `json:"signingKey,omitempty"`
33830
33831	// ServerResponse contains the HTTP response code and headers from the
33832	// server.
33833	googleapi.ServerResponse `json:"-"`
33834
33835	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
33836	// unconditionally include in API requests. By default, fields with
33837	// empty values are omitted from API requests. However, any non-pointer,
33838	// non-interface field appearing in ForceSendFields will be sent to the
33839	// server regardless of whether the field is empty or not. This may be
33840	// used to include empty fields in Patch requests.
33841	ForceSendFields []string `json:"-"`
33842
33843	// NullFields is a list of field names (e.g. "EncryptionKey") to include
33844	// in API requests with the JSON null value. By default, fields with
33845	// empty values are omitted from API requests. However, any field with
33846	// an empty value appearing in NullFields will be sent to the server as
33847	// null. It is an error if a field in this list has a non-empty value.
33848	// This may be used to include null fields in Patch requests.
33849	NullFields []string `json:"-"`
33850}
33851
33852func (s *ShieldedInstanceIdentity) MarshalJSON() ([]byte, error) {
33853	type NoMethod ShieldedInstanceIdentity
33854	raw := NoMethod(*s)
33855	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33856}
33857
33858// ShieldedInstanceIdentityEntry: A Shielded Instance Identity Entry.
33859type ShieldedInstanceIdentityEntry struct {
33860	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
33861	EkCert string `json:"ekCert,omitempty"`
33862
33863	// EkPub: A PEM-encoded public key.
33864	EkPub string `json:"ekPub,omitempty"`
33865
33866	// ForceSendFields is a list of field names (e.g. "EkCert") to
33867	// unconditionally include in API requests. By default, fields with
33868	// empty values are omitted from API requests. However, any non-pointer,
33869	// non-interface field appearing in ForceSendFields will be sent to the
33870	// server regardless of whether the field is empty or not. This may be
33871	// used to include empty fields in Patch requests.
33872	ForceSendFields []string `json:"-"`
33873
33874	// NullFields is a list of field names (e.g. "EkCert") to include in API
33875	// requests with the JSON null value. By default, fields with empty
33876	// values are omitted from API requests. However, any field with an
33877	// empty value appearing in NullFields will be sent to the server as
33878	// null. It is an error if a field in this list has a non-empty value.
33879	// This may be used to include null fields in Patch requests.
33880	NullFields []string `json:"-"`
33881}
33882
33883func (s *ShieldedInstanceIdentityEntry) MarshalJSON() ([]byte, error) {
33884	type NoMethod ShieldedInstanceIdentityEntry
33885	raw := NoMethod(*s)
33886	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33887}
33888
33889// ShieldedInstanceIntegrityPolicy: The policy describes the baseline
33890// against which Instance boot integrity is measured.
33891type ShieldedInstanceIntegrityPolicy struct {
33892	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
33893	// the measurements from the VM instance's most recent boot.
33894	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
33895
33896	// ForceSendFields is a list of field names (e.g.
33897	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
33898	// By default, fields with empty values are omitted from API requests.
33899	// However, any non-pointer, non-interface field appearing in
33900	// ForceSendFields will be sent to the server regardless of whether the
33901	// field is empty or not. This may be used to include empty fields in
33902	// Patch requests.
33903	ForceSendFields []string `json:"-"`
33904
33905	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
33906	// include in API requests with the JSON null value. By default, fields
33907	// with empty values are omitted from API requests. However, any field
33908	// with an empty value appearing in NullFields will be sent to the
33909	// server as null. It is an error if a field in this list has a
33910	// non-empty value. This may be used to include null fields in Patch
33911	// requests.
33912	NullFields []string `json:"-"`
33913}
33914
33915func (s *ShieldedInstanceIntegrityPolicy) MarshalJSON() ([]byte, error) {
33916	type NoMethod ShieldedInstanceIntegrityPolicy
33917	raw := NoMethod(*s)
33918	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33919}
33920
33921// ShieldedVmConfig: A set of Shielded VM options.
33922type ShieldedVmConfig struct {
33923	// EnableIntegrityMonitoring: Defines whether the instance has integrity
33924	// monitoring enabled.
33925	EnableIntegrityMonitoring bool `json:"enableIntegrityMonitoring,omitempty"`
33926
33927	// EnableSecureBoot: Defines whether the instance has Secure Boot
33928	// enabled.
33929	EnableSecureBoot bool `json:"enableSecureBoot,omitempty"`
33930
33931	// EnableVtpm: Defines whether the instance has the vTPM enabled.
33932	EnableVtpm bool `json:"enableVtpm,omitempty"`
33933
33934	// ForceSendFields is a list of field names (e.g.
33935	// "EnableIntegrityMonitoring") to unconditionally include in API
33936	// requests. By default, fields with empty values are omitted from API
33937	// requests. However, any non-pointer, non-interface field appearing in
33938	// ForceSendFields will be sent to the server regardless of whether the
33939	// field is empty or not. This may be used to include empty fields in
33940	// Patch requests.
33941	ForceSendFields []string `json:"-"`
33942
33943	// NullFields is a list of field names (e.g.
33944	// "EnableIntegrityMonitoring") to include in API requests with the JSON
33945	// null value. By default, fields with empty values are omitted from API
33946	// requests. However, any field with an empty value appearing in
33947	// NullFields will be sent to the server as null. It is an error if a
33948	// field in this list has a non-empty value. This may be used to include
33949	// null fields in Patch requests.
33950	NullFields []string `json:"-"`
33951}
33952
33953func (s *ShieldedVmConfig) MarshalJSON() ([]byte, error) {
33954	type NoMethod ShieldedVmConfig
33955	raw := NoMethod(*s)
33956	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33957}
33958
33959// ShieldedVmIdentity: A shielded VM identity entry.
33960type ShieldedVmIdentity struct {
33961	// EncryptionKey: An Endorsement Key (EK) issued to the Shielded VM's
33962	// vTPM.
33963	EncryptionKey *ShieldedVmIdentityEntry `json:"encryptionKey,omitempty"`
33964
33965	// Kind: [Output Only] Type of the resource. Always
33966	// compute#shieldedVmIdentity for shielded VM identity entry.
33967	Kind string `json:"kind,omitempty"`
33968
33969	// SigningKey: An Attestation Key (AK) issued to the Shielded VM's vTPM.
33970	SigningKey *ShieldedVmIdentityEntry `json:"signingKey,omitempty"`
33971
33972	// ServerResponse contains the HTTP response code and headers from the
33973	// server.
33974	googleapi.ServerResponse `json:"-"`
33975
33976	// ForceSendFields is a list of field names (e.g. "EncryptionKey") to
33977	// unconditionally include in API requests. By default, fields with
33978	// empty values are omitted from API requests. However, any non-pointer,
33979	// non-interface field appearing in ForceSendFields will be sent to the
33980	// server regardless of whether the field is empty or not. This may be
33981	// used to include empty fields in Patch requests.
33982	ForceSendFields []string `json:"-"`
33983
33984	// NullFields is a list of field names (e.g. "EncryptionKey") to include
33985	// in API requests with the JSON null value. By default, fields with
33986	// empty values are omitted from API requests. However, any field with
33987	// an empty value appearing in NullFields will be sent to the server as
33988	// null. It is an error if a field in this list has a non-empty value.
33989	// This may be used to include null fields in Patch requests.
33990	NullFields []string `json:"-"`
33991}
33992
33993func (s *ShieldedVmIdentity) MarshalJSON() ([]byte, error) {
33994	type NoMethod ShieldedVmIdentity
33995	raw := NoMethod(*s)
33996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
33997}
33998
33999// ShieldedVmIdentityEntry: A Shielded Instance Identity Entry.
34000type ShieldedVmIdentityEntry struct {
34001	// EkCert: A PEM-encoded X.509 certificate. This field can be empty.
34002	EkCert string `json:"ekCert,omitempty"`
34003
34004	// EkPub: A PEM-encoded public key.
34005	EkPub string `json:"ekPub,omitempty"`
34006
34007	// ForceSendFields is a list of field names (e.g. "EkCert") to
34008	// unconditionally include in API requests. By default, fields with
34009	// empty values are omitted from API requests. However, any non-pointer,
34010	// non-interface field appearing in ForceSendFields will be sent to the
34011	// server regardless of whether the field is empty or not. This may be
34012	// used to include empty fields in Patch requests.
34013	ForceSendFields []string `json:"-"`
34014
34015	// NullFields is a list of field names (e.g. "EkCert") to include in API
34016	// requests with the JSON null value. By default, fields with empty
34017	// values are omitted from API requests. However, any field with an
34018	// empty value appearing in NullFields will be sent to the server as
34019	// null. It is an error if a field in this list has a non-empty value.
34020	// This may be used to include null fields in Patch requests.
34021	NullFields []string `json:"-"`
34022}
34023
34024func (s *ShieldedVmIdentityEntry) MarshalJSON() ([]byte, error) {
34025	type NoMethod ShieldedVmIdentityEntry
34026	raw := NoMethod(*s)
34027	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34028}
34029
34030// ShieldedVmIntegrityPolicy: The policy describes the baseline against
34031// which VM instance boot integrity is measured.
34032type ShieldedVmIntegrityPolicy struct {
34033	// UpdateAutoLearnPolicy: Updates the integrity policy baseline using
34034	// the measurements from the VM instance's most recent boot.
34035	UpdateAutoLearnPolicy bool `json:"updateAutoLearnPolicy,omitempty"`
34036
34037	// ForceSendFields is a list of field names (e.g.
34038	// "UpdateAutoLearnPolicy") to unconditionally include in API requests.
34039	// By default, fields with empty values are omitted from API requests.
34040	// However, any non-pointer, non-interface field appearing in
34041	// ForceSendFields will be sent to the server regardless of whether the
34042	// field is empty or not. This may be used to include empty fields in
34043	// Patch requests.
34044	ForceSendFields []string `json:"-"`
34045
34046	// NullFields is a list of field names (e.g. "UpdateAutoLearnPolicy") to
34047	// include in API requests with the JSON null value. By default, fields
34048	// with empty values are omitted from API requests. However, any field
34049	// with an empty value appearing in NullFields will be sent to the
34050	// server as null. It is an error if a field in this list has a
34051	// non-empty value. This may be used to include null fields in Patch
34052	// requests.
34053	NullFields []string `json:"-"`
34054}
34055
34056func (s *ShieldedVmIntegrityPolicy) MarshalJSON() ([]byte, error) {
34057	type NoMethod ShieldedVmIntegrityPolicy
34058	raw := NoMethod(*s)
34059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34060}
34061
34062// SignedUrlKey: Represents a customer-supplied Signing Key used by
34063// Cloud CDN Signed URLs
34064type SignedUrlKey struct {
34065	// KeyName: Name of the key. The name must be 1-63 characters long, and
34066	// comply with RFC1035. Specifically, the name must be 1-63 characters
34067	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
34068	// which means the first character must be a lowercase letter, and all
34069	// following characters must be a dash, lowercase letter, or digit,
34070	// except the last character, which cannot be a dash.
34071	KeyName string `json:"keyName,omitempty"`
34072
34073	// KeyValue: 128-bit key value used for signing the URL. The key value
34074	// must be a valid RFC 4648 Section 5 base64url encoded string.
34075	KeyValue string `json:"keyValue,omitempty"`
34076
34077	// ForceSendFields is a list of field names (e.g. "KeyName") to
34078	// unconditionally include in API requests. By default, fields with
34079	// empty values are omitted from API requests. However, any non-pointer,
34080	// non-interface field appearing in ForceSendFields will be sent to the
34081	// server regardless of whether the field is empty or not. This may be
34082	// used to include empty fields in Patch requests.
34083	ForceSendFields []string `json:"-"`
34084
34085	// NullFields is a list of field names (e.g. "KeyName") to include in
34086	// API requests with the JSON null value. By default, fields with empty
34087	// values are omitted from API requests. However, any field with an
34088	// empty value appearing in NullFields will be sent to the server as
34089	// null. It is an error if a field in this list has a non-empty value.
34090	// This may be used to include null fields in Patch requests.
34091	NullFields []string `json:"-"`
34092}
34093
34094func (s *SignedUrlKey) MarshalJSON() ([]byte, error) {
34095	type NoMethod SignedUrlKey
34096	raw := NoMethod(*s)
34097	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34098}
34099
34100// Snapshot: Represents a Persistent Disk Snapshot resource.
34101//
34102// You can use snapshots to back up data on a regular interval. For more
34103// information, read  Creating persistent disk snapshots. (==
34104// resource_for {$api_version}.snapshots ==)
34105type Snapshot struct {
34106	// AutoCreated: [Output Only] Set to true if snapshots are automatically
34107	// created by applying resource policy on the target disk.
34108	AutoCreated bool `json:"autoCreated,omitempty"`
34109
34110	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34111	// format.
34112	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34113
34114	// Description: An optional description of this resource. Provide this
34115	// property when you create the resource.
34116	Description string `json:"description,omitempty"`
34117
34118	// DiskSizeGb: [Output Only] Size of the source disk, specified in GB.
34119	DiskSizeGb int64 `json:"diskSizeGb,omitempty,string"`
34120
34121	// DownloadBytes: [Output Only] Number of bytes downloaded to restore a
34122	// snapshot to a disk.
34123	DownloadBytes int64 `json:"downloadBytes,omitempty,string"`
34124
34125	// Id: [Output Only] The unique identifier for the resource. This
34126	// identifier is defined by the server.
34127	Id uint64 `json:"id,omitempty,string"`
34128
34129	// Kind: [Output Only] Type of the resource. Always compute#snapshot for
34130	// Snapshot resources.
34131	Kind string `json:"kind,omitempty"`
34132
34133	// LabelFingerprint: A fingerprint for the labels being applied to this
34134	// snapshot, which is essentially a hash of the labels set used for
34135	// optimistic locking. The fingerprint is initially generated by Compute
34136	// Engine and changes after every request to modify or update labels.
34137	// You must always provide an up-to-date fingerprint hash in order to
34138	// update or change labels, otherwise the request will fail with error
34139	// 412 conditionNotMet.
34140	//
34141	// To see the latest fingerprint, make a get() request to retrieve a
34142	// snapshot.
34143	LabelFingerprint string `json:"labelFingerprint,omitempty"`
34144
34145	// Labels: Labels to apply to this snapshot. These can be later modified
34146	// by the setLabels method. Label values may be empty.
34147	Labels map[string]string `json:"labels,omitempty"`
34148
34149	// LicenseCodes: [Output Only] Integer license codes indicating which
34150	// licenses are attached to this snapshot.
34151	LicenseCodes googleapi.Int64s `json:"licenseCodes,omitempty"`
34152
34153	// Licenses: [Output Only] A list of public visible licenses that apply
34154	// to this snapshot. This can be because the original image had licenses
34155	// attached (such as a Windows image).
34156	Licenses []string `json:"licenses,omitempty"`
34157
34158	// Name: Name of the resource; provided by the client when the resource
34159	// is created. The name must be 1-63 characters long, and comply with
34160	// RFC1035. Specifically, the name must be 1-63 characters long and
34161	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
34162	// the first character must be a lowercase letter, and all following
34163	// characters must be a dash, lowercase letter, or digit, except the
34164	// last character, which cannot be a dash.
34165	Name string `json:"name,omitempty"`
34166
34167	// SelfLink: [Output Only] Server-defined URL for the resource.
34168	SelfLink string `json:"selfLink,omitempty"`
34169
34170	// SnapshotEncryptionKey: Encrypts the snapshot using a
34171	// customer-supplied encryption key.
34172	//
34173	// After you encrypt a snapshot using a customer-supplied key, you must
34174	// provide the same key if you use the snapshot later. For example, you
34175	// must provide the encryption key when you create a disk from the
34176	// encrypted snapshot in a future request.
34177	//
34178	// Customer-supplied encryption keys do not protect access to metadata
34179	// of the snapshot.
34180	//
34181	// If you do not provide an encryption key when creating the snapshot,
34182	// then the snapshot will be encrypted using an automatically generated
34183	// key and you do not need to provide a key to use the snapshot later.
34184	SnapshotEncryptionKey *CustomerEncryptionKey `json:"snapshotEncryptionKey,omitempty"`
34185
34186	// SourceDisk: [Output Only] The source disk used to create this
34187	// snapshot.
34188	SourceDisk string `json:"sourceDisk,omitempty"`
34189
34190	// SourceDiskEncryptionKey: The customer-supplied encryption key of the
34191	// source disk. Required if the source disk is protected by a
34192	// customer-supplied encryption key.
34193	SourceDiskEncryptionKey *CustomerEncryptionKey `json:"sourceDiskEncryptionKey,omitempty"`
34194
34195	// SourceDiskId: [Output Only] The ID value of the disk used to create
34196	// this snapshot. This value may be used to determine whether the
34197	// snapshot was taken from the current or a previous instance of a given
34198	// disk name.
34199	SourceDiskId string `json:"sourceDiskId,omitempty"`
34200
34201	// Status: [Output Only] The status of the snapshot. This can be
34202	// CREATING, DELETING, FAILED, READY, or UPLOADING.
34203	//
34204	// Possible values:
34205	//   "CREATING"
34206	//   "DELETING"
34207	//   "FAILED"
34208	//   "READY"
34209	//   "UPLOADING"
34210	Status string `json:"status,omitempty"`
34211
34212	// StorageBytes: [Output Only] A size of the storage used by the
34213	// snapshot. As snapshots share storage, this number is expected to
34214	// change with snapshot creation/deletion.
34215	StorageBytes int64 `json:"storageBytes,omitempty,string"`
34216
34217	// StorageBytesStatus: [Output Only] An indicator whether storageBytes
34218	// is in a stable state or it is being adjusted as a result of shared
34219	// storage reallocation. This status can either be UPDATING, meaning the
34220	// size of the snapshot is being updated, or UP_TO_DATE, meaning the
34221	// size of the snapshot is up-to-date.
34222	//
34223	// Possible values:
34224	//   "UPDATING"
34225	//   "UP_TO_DATE"
34226	StorageBytesStatus string `json:"storageBytesStatus,omitempty"`
34227
34228	// StorageLocations: Cloud Storage bucket storage location of the
34229	// snapshot (regional or multi-regional).
34230	StorageLocations []string `json:"storageLocations,omitempty"`
34231
34232	// ServerResponse contains the HTTP response code and headers from the
34233	// server.
34234	googleapi.ServerResponse `json:"-"`
34235
34236	// ForceSendFields is a list of field names (e.g. "AutoCreated") to
34237	// unconditionally include in API requests. By default, fields with
34238	// empty values are omitted from API requests. However, any non-pointer,
34239	// non-interface field appearing in ForceSendFields will be sent to the
34240	// server regardless of whether the field is empty or not. This may be
34241	// used to include empty fields in Patch requests.
34242	ForceSendFields []string `json:"-"`
34243
34244	// NullFields is a list of field names (e.g. "AutoCreated") to include
34245	// in API requests with the JSON null value. By default, fields with
34246	// empty values are omitted from API requests. However, any field with
34247	// an empty value appearing in NullFields will be sent to the server as
34248	// null. It is an error if a field in this list has a non-empty value.
34249	// This may be used to include null fields in Patch requests.
34250	NullFields []string `json:"-"`
34251}
34252
34253func (s *Snapshot) MarshalJSON() ([]byte, error) {
34254	type NoMethod Snapshot
34255	raw := NoMethod(*s)
34256	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34257}
34258
34259// SnapshotList: Contains a list of Snapshot resources.
34260type SnapshotList struct {
34261	// Id: [Output Only] Unique identifier for the resource; defined by the
34262	// server.
34263	Id string `json:"id,omitempty"`
34264
34265	// Items: A list of Snapshot resources.
34266	Items []*Snapshot `json:"items,omitempty"`
34267
34268	// Kind: Type of resource.
34269	Kind string `json:"kind,omitempty"`
34270
34271	// NextPageToken: [Output Only] This token allows you to get the next
34272	// page of results for list requests. If the number of results is larger
34273	// than maxResults, use the nextPageToken as a value for the query
34274	// parameter pageToken in the next list request. Subsequent list
34275	// requests will have their own nextPageToken to continue paging through
34276	// the results.
34277	NextPageToken string `json:"nextPageToken,omitempty"`
34278
34279	// SelfLink: [Output Only] Server-defined URL for this resource.
34280	SelfLink string `json:"selfLink,omitempty"`
34281
34282	// Warning: [Output Only] Informational warning message.
34283	Warning *SnapshotListWarning `json:"warning,omitempty"`
34284
34285	// ServerResponse contains the HTTP response code and headers from the
34286	// server.
34287	googleapi.ServerResponse `json:"-"`
34288
34289	// ForceSendFields is a list of field names (e.g. "Id") to
34290	// 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. "Id") to include in API
34298	// requests with the JSON null value. By default, fields with empty
34299	// values are omitted from API requests. However, any field with an
34300	// empty value appearing in NullFields will be sent to the server as
34301	// null. It is an error if a field in this list has a non-empty value.
34302	// This may be used to include null fields in Patch requests.
34303	NullFields []string `json:"-"`
34304}
34305
34306func (s *SnapshotList) MarshalJSON() ([]byte, error) {
34307	type NoMethod SnapshotList
34308	raw := NoMethod(*s)
34309	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34310}
34311
34312// SnapshotListWarning: [Output Only] Informational warning message.
34313type SnapshotListWarning struct {
34314	// Code: [Output Only] A warning code, if applicable. For example,
34315	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34316	// the response.
34317	//
34318	// Possible values:
34319	//   "CLEANUP_FAILED"
34320	//   "DEPRECATED_RESOURCE_USED"
34321	//   "DEPRECATED_TYPE_USED"
34322	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34323	//   "EXPERIMENTAL_TYPE_USED"
34324	//   "EXTERNAL_API_WARNING"
34325	//   "FIELD_VALUE_OVERRIDEN"
34326	//   "INJECTED_KERNELS_DEPRECATED"
34327	//   "MISSING_TYPE_DEPENDENCY"
34328	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34329	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34330	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34331	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34332	//   "NEXT_HOP_NOT_RUNNING"
34333	//   "NOT_CRITICAL_ERROR"
34334	//   "NO_RESULTS_ON_PAGE"
34335	//   "REQUIRED_TOS_AGREEMENT"
34336	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34337	//   "RESOURCE_NOT_DELETED"
34338	//   "SCHEMA_VALIDATION_IGNORED"
34339	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34340	//   "UNDECLARED_PROPERTIES"
34341	//   "UNREACHABLE"
34342	Code string `json:"code,omitempty"`
34343
34344	// Data: [Output Only] Metadata about this warning in key: value format.
34345	// For example:
34346	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34347	Data []*SnapshotListWarningData `json:"data,omitempty"`
34348
34349	// Message: [Output Only] A human-readable description of the warning
34350	// code.
34351	Message string `json:"message,omitempty"`
34352
34353	// ForceSendFields is a list of field names (e.g. "Code") to
34354	// unconditionally include in API requests. By default, fields with
34355	// empty values are omitted from API requests. However, any non-pointer,
34356	// non-interface field appearing in ForceSendFields will be sent to the
34357	// server regardless of whether the field is empty or not. This may be
34358	// used to include empty fields in Patch requests.
34359	ForceSendFields []string `json:"-"`
34360
34361	// NullFields is a list of field names (e.g. "Code") to include in API
34362	// requests with the JSON null value. By default, fields with empty
34363	// values are omitted from API requests. However, any field with an
34364	// empty value appearing in NullFields will be sent to the server as
34365	// null. It is an error if a field in this list has a non-empty value.
34366	// This may be used to include null fields in Patch requests.
34367	NullFields []string `json:"-"`
34368}
34369
34370func (s *SnapshotListWarning) MarshalJSON() ([]byte, error) {
34371	type NoMethod SnapshotListWarning
34372	raw := NoMethod(*s)
34373	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34374}
34375
34376type SnapshotListWarningData struct {
34377	// Key: [Output Only] A key that provides more detail on the warning
34378	// being returned. For example, for warnings where there are no results
34379	// in a list request for a particular zone, this key might be scope and
34380	// the key value might be the zone name. Other examples might be a key
34381	// indicating a deprecated resource and a suggested replacement, or a
34382	// warning about invalid network settings (for example, if an instance
34383	// attempts to perform IP forwarding but is not enabled for IP
34384	// forwarding).
34385	Key string `json:"key,omitempty"`
34386
34387	// Value: [Output Only] A warning data value corresponding to the key.
34388	Value string `json:"value,omitempty"`
34389
34390	// ForceSendFields is a list of field names (e.g. "Key") to
34391	// unconditionally include in API requests. By default, fields with
34392	// empty values are omitted from API requests. However, any non-pointer,
34393	// non-interface field appearing in ForceSendFields will be sent to the
34394	// server regardless of whether the field is empty or not. This may be
34395	// used to include empty fields in Patch requests.
34396	ForceSendFields []string `json:"-"`
34397
34398	// NullFields is a list of field names (e.g. "Key") to include in API
34399	// requests with the JSON null value. By default, fields with empty
34400	// values are omitted from API requests. However, any field with an
34401	// empty value appearing in NullFields will be sent to the server as
34402	// null. It is an error if a field in this list has a non-empty value.
34403	// This may be used to include null fields in Patch requests.
34404	NullFields []string `json:"-"`
34405}
34406
34407func (s *SnapshotListWarningData) MarshalJSON() ([]byte, error) {
34408	type NoMethod SnapshotListWarningData
34409	raw := NoMethod(*s)
34410	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34411}
34412
34413type SourceDiskEncryptionKey struct {
34414	// DiskEncryptionKey: The customer-supplied encryption key of the source
34415	// disk. Required if the source disk is protected by a customer-supplied
34416	// encryption key.
34417	DiskEncryptionKey *CustomerEncryptionKey `json:"diskEncryptionKey,omitempty"`
34418
34419	// SourceDisk: URL of the disk attached to the source instance. This can
34420	// be a full or valid partial URL. For example, the following are valid
34421	// values:
34422	// -
34423	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/disks/disk
34424	// - projects/project/zones/zone/disks/disk
34425	// - zones/zone/disks/disk
34426	SourceDisk string `json:"sourceDisk,omitempty"`
34427
34428	// ForceSendFields is a list of field names (e.g. "DiskEncryptionKey")
34429	// to unconditionally include in API requests. By default, fields with
34430	// empty values are omitted from API requests. However, any non-pointer,
34431	// non-interface field appearing in ForceSendFields will be sent to the
34432	// server regardless of whether the field is empty or not. This may be
34433	// used to include empty fields in Patch requests.
34434	ForceSendFields []string `json:"-"`
34435
34436	// NullFields is a list of field names (e.g. "DiskEncryptionKey") to
34437	// include in API requests with the JSON null value. By default, fields
34438	// with empty values are omitted from API requests. However, any field
34439	// with an empty value appearing in NullFields will be sent to the
34440	// server as null. It is an error if a field in this list has a
34441	// non-empty value. This may be used to include null fields in Patch
34442	// requests.
34443	NullFields []string `json:"-"`
34444}
34445
34446func (s *SourceDiskEncryptionKey) MarshalJSON() ([]byte, error) {
34447	type NoMethod SourceDiskEncryptionKey
34448	raw := NoMethod(*s)
34449	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34450}
34451
34452// SourceInstanceParams: A specification of the parameters to use when
34453// creating the instance template from a source instance.
34454type SourceInstanceParams struct {
34455	// DiskConfigs: Attached disks configuration. If not provided, defaults
34456	// are applied: For boot disk and any other R/W disks, new custom images
34457	// will be created from each disk. For read-only disks, they will be
34458	// attached in read-only mode. Local SSD disks will be created as blank
34459	// volumes.
34460	DiskConfigs []*DiskInstantiationConfig `json:"diskConfigs,omitempty"`
34461
34462	// ForceSendFields is a list of field names (e.g. "DiskConfigs") to
34463	// unconditionally include in API requests. By default, fields with
34464	// empty values are omitted from API requests. However, any non-pointer,
34465	// non-interface field appearing in ForceSendFields will be sent to the
34466	// server regardless of whether the field is empty or not. This may be
34467	// used to include empty fields in Patch requests.
34468	ForceSendFields []string `json:"-"`
34469
34470	// NullFields is a list of field names (e.g. "DiskConfigs") to include
34471	// in API requests with the JSON null value. By default, fields with
34472	// empty values are omitted from API requests. However, any field with
34473	// an empty value appearing in NullFields will be sent to the server as
34474	// null. It is an error if a field in this list has a non-empty value.
34475	// This may be used to include null fields in Patch requests.
34476	NullFields []string `json:"-"`
34477}
34478
34479func (s *SourceInstanceParams) MarshalJSON() ([]byte, error) {
34480	type NoMethod SourceInstanceParams
34481	raw := NoMethod(*s)
34482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34483}
34484
34485type SourceInstanceProperties struct {
34486	// CanIpForward: Enables instances created based on this machine image
34487	// to send packets with source IP addresses other than their own and
34488	// receive packets with destination IP addresses other than their own.
34489	// If these instances will be used as an IP gateway or it will be set as
34490	// the next-hop in a Route resource, specify true. If unsure, leave this
34491	// set to false. See the Enable IP forwarding documentation for more
34492	// information.
34493	CanIpForward bool `json:"canIpForward,omitempty"`
34494
34495	// DeletionProtection: Whether the instance created from this machine
34496	// image should be protected against deletion.
34497	DeletionProtection bool `json:"deletionProtection,omitempty"`
34498
34499	// Description: An optional text description for the instances that are
34500	// created from this machine image.
34501	Description string `json:"description,omitempty"`
34502
34503	// Disks: An array of disks that are associated with the instances that
34504	// are created from this machine image.
34505	Disks []*SavedAttachedDisk `json:"disks,omitempty"`
34506
34507	// GuestAccelerators: A list of guest accelerator cards' type and count
34508	// to use for instances created from this machine image.
34509	GuestAccelerators []*AcceleratorConfig `json:"guestAccelerators,omitempty"`
34510
34511	// Labels: Labels to apply to instances that are created from this
34512	// machine image.
34513	Labels map[string]string `json:"labels,omitempty"`
34514
34515	// MachineType: The machine type to use for instances that are created
34516	// from this machine image.
34517	MachineType string `json:"machineType,omitempty"`
34518
34519	// Metadata: The metadata key/value pairs to assign to instances that
34520	// are created from this machine image. These pairs can consist of
34521	// custom metadata or predefined keys. See Project and instance metadata
34522	// for more information.
34523	Metadata *Metadata `json:"metadata,omitempty"`
34524
34525	// MinCpuPlatform: Minimum cpu/platform to be used by instances created
34526	// from this machine image. The instance may be scheduled on the
34527	// specified or newer cpu/platform. Applicable values are the friendly
34528	// names of CPU platforms, such as minCpuPlatform: "Intel Haswell" or
34529	// minCpuPlatform: "Intel Sandy Bridge". For more information, read
34530	// Specifying a Minimum CPU Platform.
34531	MinCpuPlatform string `json:"minCpuPlatform,omitempty"`
34532
34533	// NetworkInterfaces: An array of network access configurations for this
34534	// interface.
34535	NetworkInterfaces []*NetworkInterface `json:"networkInterfaces,omitempty"`
34536
34537	// Scheduling: Specifies the scheduling options for the instances that
34538	// are created from this machine image.
34539	Scheduling *Scheduling `json:"scheduling,omitempty"`
34540
34541	// ServiceAccounts: A list of service accounts with specified scopes.
34542	// Access tokens for these service accounts are available to the
34543	// instances that are created from this machine image. Use metadata
34544	// queries to obtain the access tokens for these instances.
34545	ServiceAccounts []*ServiceAccount `json:"serviceAccounts,omitempty"`
34546
34547	// Tags: A list of tags to apply to the instances that are created from
34548	// this machine image. The tags identify valid sources or targets for
34549	// network firewalls. The setTags method can modify this list of tags.
34550	// Each tag within the list must comply with RFC1035.
34551	Tags *Tags `json:"tags,omitempty"`
34552
34553	// ForceSendFields is a list of field names (e.g. "CanIpForward") to
34554	// unconditionally include in API requests. By default, fields with
34555	// empty values are omitted from API requests. However, any non-pointer,
34556	// non-interface field appearing in ForceSendFields will be sent to the
34557	// server regardless of whether the field is empty or not. This may be
34558	// used to include empty fields in Patch requests.
34559	ForceSendFields []string `json:"-"`
34560
34561	// NullFields is a list of field names (e.g. "CanIpForward") to include
34562	// in API requests with the JSON null value. By default, fields with
34563	// empty values are omitted from API requests. However, any field with
34564	// an empty value appearing in NullFields will be sent to the server as
34565	// null. It is an error if a field in this list has a non-empty value.
34566	// This may be used to include null fields in Patch requests.
34567	NullFields []string `json:"-"`
34568}
34569
34570func (s *SourceInstanceProperties) MarshalJSON() ([]byte, error) {
34571	type NoMethod SourceInstanceProperties
34572	raw := NoMethod(*s)
34573	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34574}
34575
34576// SslCertificate: Represents an SSL Certificate resource.
34577//
34578// Google Compute Engine has two SSL Certificate resources:
34579//
34580// * [Global](/compute/docs/reference/rest/latest/sslCertificates) *
34581// [Regional](/compute/docs/reference/rest/latest/regionSslCertificates)
34582//
34583//
34584// - sslCertificates are used by: - external HTTPS load balancers - SSL
34585// proxy load balancers
34586//
34587// - regionSslCertificates are used by: - internal HTTPS load
34588// balancers
34589//
34590// This SSL certificate resource also contains a private key. You can
34591// use SSL keys and certificates to secure connections to a load
34592// balancer. For more information, read  Creating and Using SSL
34593// Certificates. (== resource_for {$api_version}.sslCertificates ==) (==
34594// resource_for {$api_version}.regionSslCertificates ==) Next ID: 17
34595type SslCertificate struct {
34596	// Certificate: A local certificate file. The certificate must be in PEM
34597	// format. The certificate chain must be no greater than 5 certs long.
34598	// The chain must include at least one intermediate cert.
34599	Certificate string `json:"certificate,omitempty"`
34600
34601	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
34602	// format.
34603	CreationTimestamp string `json:"creationTimestamp,omitempty"`
34604
34605	// Description: An optional description of this resource. Provide this
34606	// property when you create the resource.
34607	Description string `json:"description,omitempty"`
34608
34609	// ExpireTime: [Output Only] Expire time of the certificate. RFC3339
34610	ExpireTime string `json:"expireTime,omitempty"`
34611
34612	// Id: [Output Only] The unique identifier for the resource. This
34613	// identifier is defined by the server.
34614	Id uint64 `json:"id,omitempty,string"`
34615
34616	// Kind: [Output Only] Type of the resource. Always
34617	// compute#sslCertificate for SSL certificates.
34618	Kind string `json:"kind,omitempty"`
34619
34620	// Managed: Configuration and status of a managed SSL certificate.
34621	Managed *SslCertificateManagedSslCertificate `json:"managed,omitempty"`
34622
34623	// Name: Name of the resource. Provided by the client when the resource
34624	// is created. The name must be 1-63 characters long, and comply with
34625	// RFC1035. Specifically, the name must be 1-63 characters long and
34626	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
34627	// the first character must be a lowercase letter, and all following
34628	// characters must be a dash, lowercase letter, or digit, except the
34629	// last character, which cannot be a dash.
34630	Name string `json:"name,omitempty"`
34631
34632	// PrivateKey: A write-only private key in PEM format. Only insert
34633	// requests will include this field.
34634	PrivateKey string `json:"privateKey,omitempty"`
34635
34636	// Region: [Output Only] URL of the region where the regional SSL
34637	// Certificate resides. This field is not applicable to global SSL
34638	// Certificate.
34639	Region string `json:"region,omitempty"`
34640
34641	// SelfLink: [Output only] Server-defined URL for the resource.
34642	SelfLink string `json:"selfLink,omitempty"`
34643
34644	// SelfManaged: Configuration and status of a self-managed SSL
34645	// certificate.
34646	SelfManaged *SslCertificateSelfManagedSslCertificate `json:"selfManaged,omitempty"`
34647
34648	// SubjectAlternativeNames: [Output Only] Domains associated with the
34649	// certificate via Subject Alternative Name.
34650	SubjectAlternativeNames []string `json:"subjectAlternativeNames,omitempty"`
34651
34652	// Type: (Optional) Specifies the type of SSL certificate, either
34653	// "SELF_MANAGED" or "MANAGED". If not specified, the certificate is
34654	// self-managed and the fields certificate and private_key are used.
34655	//
34656	// Possible values:
34657	//   "MANAGED"
34658	//   "SELF_MANAGED"
34659	//   "TYPE_UNSPECIFIED"
34660	Type string `json:"type,omitempty"`
34661
34662	// ServerResponse contains the HTTP response code and headers from the
34663	// server.
34664	googleapi.ServerResponse `json:"-"`
34665
34666	// ForceSendFields is a list of field names (e.g. "Certificate") to
34667	// unconditionally include in API requests. By default, fields with
34668	// empty values are omitted from API requests. However, any non-pointer,
34669	// non-interface field appearing in ForceSendFields will be sent to the
34670	// server regardless of whether the field is empty or not. This may be
34671	// used to include empty fields in Patch requests.
34672	ForceSendFields []string `json:"-"`
34673
34674	// NullFields is a list of field names (e.g. "Certificate") to include
34675	// in API requests with the JSON null value. By default, fields with
34676	// empty values are omitted from API requests. However, any field with
34677	// an empty value appearing in NullFields will be sent to the server as
34678	// null. It is an error if a field in this list has a non-empty value.
34679	// This may be used to include null fields in Patch requests.
34680	NullFields []string `json:"-"`
34681}
34682
34683func (s *SslCertificate) MarshalJSON() ([]byte, error) {
34684	type NoMethod SslCertificate
34685	raw := NoMethod(*s)
34686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34687}
34688
34689type SslCertificateAggregatedList struct {
34690	// Id: [Output Only] Unique identifier for the resource; defined by the
34691	// server.
34692	Id string `json:"id,omitempty"`
34693
34694	// Items: A list of SslCertificatesScopedList resources.
34695	Items map[string]SslCertificatesScopedList `json:"items,omitempty"`
34696
34697	// Kind: [Output Only] Type of resource. Always
34698	// compute#sslCertificateAggregatedList for lists of SSL Certificates.
34699	Kind string `json:"kind,omitempty"`
34700
34701	// NextPageToken: [Output Only] This token allows you to get the next
34702	// page of results for list requests. If the number of results is larger
34703	// than maxResults, use the nextPageToken as a value for the query
34704	// parameter pageToken in the next list request. Subsequent list
34705	// requests will have their own nextPageToken to continue paging through
34706	// the results.
34707	NextPageToken string `json:"nextPageToken,omitempty"`
34708
34709	// SelfLink: [Output Only] Server-defined URL for this resource.
34710	SelfLink string `json:"selfLink,omitempty"`
34711
34712	// Warning: [Output Only] Informational warning message.
34713	Warning *SslCertificateAggregatedListWarning `json:"warning,omitempty"`
34714
34715	// ServerResponse contains the HTTP response code and headers from the
34716	// server.
34717	googleapi.ServerResponse `json:"-"`
34718
34719	// ForceSendFields is a list of field names (e.g. "Id") to
34720	// unconditionally include in API requests. By default, fields with
34721	// empty values are omitted from API requests. However, any non-pointer,
34722	// non-interface field appearing in ForceSendFields will be sent to the
34723	// server regardless of whether the field is empty or not. This may be
34724	// used to include empty fields in Patch requests.
34725	ForceSendFields []string `json:"-"`
34726
34727	// NullFields is a list of field names (e.g. "Id") to include in API
34728	// requests with the JSON null value. By default, fields with empty
34729	// values are omitted from API requests. However, any field with an
34730	// empty value appearing in NullFields will be sent to the server as
34731	// null. It is an error if a field in this list has a non-empty value.
34732	// This may be used to include null fields in Patch requests.
34733	NullFields []string `json:"-"`
34734}
34735
34736func (s *SslCertificateAggregatedList) MarshalJSON() ([]byte, error) {
34737	type NoMethod SslCertificateAggregatedList
34738	raw := NoMethod(*s)
34739	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34740}
34741
34742// SslCertificateAggregatedListWarning: [Output Only] Informational
34743// warning message.
34744type SslCertificateAggregatedListWarning struct {
34745	// Code: [Output Only] A warning code, if applicable. For example,
34746	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34747	// the response.
34748	//
34749	// Possible values:
34750	//   "CLEANUP_FAILED"
34751	//   "DEPRECATED_RESOURCE_USED"
34752	//   "DEPRECATED_TYPE_USED"
34753	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34754	//   "EXPERIMENTAL_TYPE_USED"
34755	//   "EXTERNAL_API_WARNING"
34756	//   "FIELD_VALUE_OVERRIDEN"
34757	//   "INJECTED_KERNELS_DEPRECATED"
34758	//   "MISSING_TYPE_DEPENDENCY"
34759	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34760	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34761	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34762	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34763	//   "NEXT_HOP_NOT_RUNNING"
34764	//   "NOT_CRITICAL_ERROR"
34765	//   "NO_RESULTS_ON_PAGE"
34766	//   "REQUIRED_TOS_AGREEMENT"
34767	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34768	//   "RESOURCE_NOT_DELETED"
34769	//   "SCHEMA_VALIDATION_IGNORED"
34770	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34771	//   "UNDECLARED_PROPERTIES"
34772	//   "UNREACHABLE"
34773	Code string `json:"code,omitempty"`
34774
34775	// Data: [Output Only] Metadata about this warning in key: value format.
34776	// For example:
34777	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34778	Data []*SslCertificateAggregatedListWarningData `json:"data,omitempty"`
34779
34780	// Message: [Output Only] A human-readable description of the warning
34781	// code.
34782	Message string `json:"message,omitempty"`
34783
34784	// ForceSendFields is a list of field names (e.g. "Code") to
34785	// unconditionally include in API requests. By default, fields with
34786	// empty values are omitted from API requests. However, any non-pointer,
34787	// non-interface field appearing in ForceSendFields will be sent to the
34788	// server regardless of whether the field is empty or not. This may be
34789	// used to include empty fields in Patch requests.
34790	ForceSendFields []string `json:"-"`
34791
34792	// NullFields is a list of field names (e.g. "Code") to include in API
34793	// requests with the JSON null value. By default, fields with empty
34794	// values are omitted from API requests. However, any field with an
34795	// empty value appearing in NullFields will be sent to the server as
34796	// null. It is an error if a field in this list has a non-empty value.
34797	// This may be used to include null fields in Patch requests.
34798	NullFields []string `json:"-"`
34799}
34800
34801func (s *SslCertificateAggregatedListWarning) MarshalJSON() ([]byte, error) {
34802	type NoMethod SslCertificateAggregatedListWarning
34803	raw := NoMethod(*s)
34804	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34805}
34806
34807type SslCertificateAggregatedListWarningData struct {
34808	// Key: [Output Only] A key that provides more detail on the warning
34809	// being returned. For example, for warnings where there are no results
34810	// in a list request for a particular zone, this key might be scope and
34811	// the key value might be the zone name. Other examples might be a key
34812	// indicating a deprecated resource and a suggested replacement, or a
34813	// warning about invalid network settings (for example, if an instance
34814	// attempts to perform IP forwarding but is not enabled for IP
34815	// forwarding).
34816	Key string `json:"key,omitempty"`
34817
34818	// Value: [Output Only] A warning data value corresponding to the key.
34819	Value string `json:"value,omitempty"`
34820
34821	// ForceSendFields is a list of field names (e.g. "Key") to
34822	// unconditionally include in API requests. By default, fields with
34823	// empty values are omitted from API requests. However, any non-pointer,
34824	// non-interface field appearing in ForceSendFields will be sent to the
34825	// server regardless of whether the field is empty or not. This may be
34826	// used to include empty fields in Patch requests.
34827	ForceSendFields []string `json:"-"`
34828
34829	// NullFields is a list of field names (e.g. "Key") to include in API
34830	// requests with the JSON null value. By default, fields with empty
34831	// values are omitted from API requests. However, any field with an
34832	// empty value appearing in NullFields will be sent to the server as
34833	// null. It is an error if a field in this list has a non-empty value.
34834	// This may be used to include null fields in Patch requests.
34835	NullFields []string `json:"-"`
34836}
34837
34838func (s *SslCertificateAggregatedListWarningData) MarshalJSON() ([]byte, error) {
34839	type NoMethod SslCertificateAggregatedListWarningData
34840	raw := NoMethod(*s)
34841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34842}
34843
34844// SslCertificateList: Contains a list of SslCertificate resources.
34845type SslCertificateList struct {
34846	// Id: [Output Only] Unique identifier for the resource; defined by the
34847	// server.
34848	Id string `json:"id,omitempty"`
34849
34850	// Items: A list of SslCertificate resources.
34851	Items []*SslCertificate `json:"items,omitempty"`
34852
34853	// Kind: Type of resource.
34854	Kind string `json:"kind,omitempty"`
34855
34856	// NextPageToken: [Output Only] This token allows you to get the next
34857	// page of results for list requests. If the number of results is larger
34858	// than maxResults, use the nextPageToken as a value for the query
34859	// parameter pageToken in the next list request. Subsequent list
34860	// requests will have their own nextPageToken to continue paging through
34861	// the results.
34862	NextPageToken string `json:"nextPageToken,omitempty"`
34863
34864	// SelfLink: [Output Only] Server-defined URL for this resource.
34865	SelfLink string `json:"selfLink,omitempty"`
34866
34867	// Warning: [Output Only] Informational warning message.
34868	Warning *SslCertificateListWarning `json:"warning,omitempty"`
34869
34870	// ServerResponse contains the HTTP response code and headers from the
34871	// server.
34872	googleapi.ServerResponse `json:"-"`
34873
34874	// ForceSendFields is a list of field names (e.g. "Id") to
34875	// unconditionally include in API requests. By default, fields with
34876	// empty values are omitted from API requests. However, any non-pointer,
34877	// non-interface field appearing in ForceSendFields will be sent to the
34878	// server regardless of whether the field is empty or not. This may be
34879	// used to include empty fields in Patch requests.
34880	ForceSendFields []string `json:"-"`
34881
34882	// NullFields is a list of field names (e.g. "Id") to include in API
34883	// requests with the JSON null value. By default, fields with empty
34884	// values are omitted from API requests. However, any field with an
34885	// empty value appearing in NullFields will be sent to the server as
34886	// null. It is an error if a field in this list has a non-empty value.
34887	// This may be used to include null fields in Patch requests.
34888	NullFields []string `json:"-"`
34889}
34890
34891func (s *SslCertificateList) MarshalJSON() ([]byte, error) {
34892	type NoMethod SslCertificateList
34893	raw := NoMethod(*s)
34894	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34895}
34896
34897// SslCertificateListWarning: [Output Only] Informational warning
34898// message.
34899type SslCertificateListWarning struct {
34900	// Code: [Output Only] A warning code, if applicable. For example,
34901	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
34902	// the response.
34903	//
34904	// Possible values:
34905	//   "CLEANUP_FAILED"
34906	//   "DEPRECATED_RESOURCE_USED"
34907	//   "DEPRECATED_TYPE_USED"
34908	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
34909	//   "EXPERIMENTAL_TYPE_USED"
34910	//   "EXTERNAL_API_WARNING"
34911	//   "FIELD_VALUE_OVERRIDEN"
34912	//   "INJECTED_KERNELS_DEPRECATED"
34913	//   "MISSING_TYPE_DEPENDENCY"
34914	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
34915	//   "NEXT_HOP_CANNOT_IP_FORWARD"
34916	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
34917	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
34918	//   "NEXT_HOP_NOT_RUNNING"
34919	//   "NOT_CRITICAL_ERROR"
34920	//   "NO_RESULTS_ON_PAGE"
34921	//   "REQUIRED_TOS_AGREEMENT"
34922	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
34923	//   "RESOURCE_NOT_DELETED"
34924	//   "SCHEMA_VALIDATION_IGNORED"
34925	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
34926	//   "UNDECLARED_PROPERTIES"
34927	//   "UNREACHABLE"
34928	Code string `json:"code,omitempty"`
34929
34930	// Data: [Output Only] Metadata about this warning in key: value format.
34931	// For example:
34932	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
34933	Data []*SslCertificateListWarningData `json:"data,omitempty"`
34934
34935	// Message: [Output Only] A human-readable description of the warning
34936	// code.
34937	Message string `json:"message,omitempty"`
34938
34939	// ForceSendFields is a list of field names (e.g. "Code") to
34940	// unconditionally include in API requests. By default, fields with
34941	// empty values are omitted from API requests. However, any non-pointer,
34942	// non-interface field appearing in ForceSendFields will be sent to the
34943	// server regardless of whether the field is empty or not. This may be
34944	// used to include empty fields in Patch requests.
34945	ForceSendFields []string `json:"-"`
34946
34947	// NullFields is a list of field names (e.g. "Code") to include in API
34948	// requests with the JSON null value. By default, fields with empty
34949	// values are omitted from API requests. However, any field with an
34950	// empty value appearing in NullFields will be sent to the server as
34951	// null. It is an error if a field in this list has a non-empty value.
34952	// This may be used to include null fields in Patch requests.
34953	NullFields []string `json:"-"`
34954}
34955
34956func (s *SslCertificateListWarning) MarshalJSON() ([]byte, error) {
34957	type NoMethod SslCertificateListWarning
34958	raw := NoMethod(*s)
34959	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34960}
34961
34962type SslCertificateListWarningData struct {
34963	// Key: [Output Only] A key that provides more detail on the warning
34964	// being returned. For example, for warnings where there are no results
34965	// in a list request for a particular zone, this key might be scope and
34966	// the key value might be the zone name. Other examples might be a key
34967	// indicating a deprecated resource and a suggested replacement, or a
34968	// warning about invalid network settings (for example, if an instance
34969	// attempts to perform IP forwarding but is not enabled for IP
34970	// forwarding).
34971	Key string `json:"key,omitempty"`
34972
34973	// Value: [Output Only] A warning data value corresponding to the key.
34974	Value string `json:"value,omitempty"`
34975
34976	// ForceSendFields is a list of field names (e.g. "Key") to
34977	// unconditionally include in API requests. By default, fields with
34978	// empty values are omitted from API requests. However, any non-pointer,
34979	// non-interface field appearing in ForceSendFields will be sent to the
34980	// server regardless of whether the field is empty or not. This may be
34981	// used to include empty fields in Patch requests.
34982	ForceSendFields []string `json:"-"`
34983
34984	// NullFields is a list of field names (e.g. "Key") to include in API
34985	// requests with the JSON null value. By default, fields with empty
34986	// values are omitted from API requests. However, any field with an
34987	// empty value appearing in NullFields will be sent to the server as
34988	// null. It is an error if a field in this list has a non-empty value.
34989	// This may be used to include null fields in Patch requests.
34990	NullFields []string `json:"-"`
34991}
34992
34993func (s *SslCertificateListWarningData) MarshalJSON() ([]byte, error) {
34994	type NoMethod SslCertificateListWarningData
34995	raw := NoMethod(*s)
34996	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
34997}
34998
34999// SslCertificateManagedSslCertificate: Configuration and status of a
35000// managed SSL certificate.
35001type SslCertificateManagedSslCertificate struct {
35002	// DomainStatus: [Output only] Detailed statuses of the domains
35003	// specified for managed certificate resource.
35004	DomainStatus map[string]string `json:"domainStatus,omitempty"`
35005
35006	// Domains: The domains for which a managed SSL certificate will be
35007	// generated. Currently only single-domain certs are supported.
35008	Domains []string `json:"domains,omitempty"`
35009
35010	// Status: [Output only] Status of the managed certificate resource.
35011	//
35012	// Possible values:
35013	//   "ACTIVE"
35014	//   "MANAGED_CERTIFICATE_STATUS_UNSPECIFIED"
35015	//   "PROVISIONING"
35016	//   "PROVISIONING_FAILED"
35017	//   "PROVISIONING_FAILED_PERMANENTLY"
35018	//   "RENEWAL_FAILED"
35019	Status string `json:"status,omitempty"`
35020
35021	// ForceSendFields is a list of field names (e.g. "DomainStatus") to
35022	// unconditionally include in API requests. By default, fields with
35023	// empty values are omitted from API requests. However, any non-pointer,
35024	// non-interface field appearing in ForceSendFields will be sent to the
35025	// server regardless of whether the field is empty or not. This may be
35026	// used to include empty fields in Patch requests.
35027	ForceSendFields []string `json:"-"`
35028
35029	// NullFields is a list of field names (e.g. "DomainStatus") to include
35030	// in API requests with the JSON null value. By default, fields with
35031	// empty values are omitted from API requests. However, any field with
35032	// an empty value appearing in NullFields will be sent to the server as
35033	// null. It is an error if a field in this list has a non-empty value.
35034	// This may be used to include null fields in Patch requests.
35035	NullFields []string `json:"-"`
35036}
35037
35038func (s *SslCertificateManagedSslCertificate) MarshalJSON() ([]byte, error) {
35039	type NoMethod SslCertificateManagedSslCertificate
35040	raw := NoMethod(*s)
35041	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35042}
35043
35044// SslCertificateSelfManagedSslCertificate: Configuration and status of
35045// a self-managed SSL certificate.
35046type SslCertificateSelfManagedSslCertificate struct {
35047	// Certificate: A local certificate file. The certificate must be in PEM
35048	// format. The certificate chain must be no greater than 5 certs long.
35049	// The chain must include at least one intermediate cert.
35050	Certificate string `json:"certificate,omitempty"`
35051
35052	// PrivateKey: A write-only private key in PEM format. Only insert
35053	// requests will include this field.
35054	PrivateKey string `json:"privateKey,omitempty"`
35055
35056	// ForceSendFields is a list of field names (e.g. "Certificate") to
35057	// unconditionally include in API requests. By default, fields with
35058	// empty values are omitted from API requests. However, any non-pointer,
35059	// non-interface field appearing in ForceSendFields will be sent to the
35060	// server regardless of whether the field is empty or not. This may be
35061	// used to include empty fields in Patch requests.
35062	ForceSendFields []string `json:"-"`
35063
35064	// NullFields is a list of field names (e.g. "Certificate") to include
35065	// in API requests with the JSON null value. By default, fields with
35066	// empty values are omitted from API requests. However, any field with
35067	// an empty value appearing in NullFields will be sent to the server as
35068	// null. It is an error if a field in this list has a non-empty value.
35069	// This may be used to include null fields in Patch requests.
35070	NullFields []string `json:"-"`
35071}
35072
35073func (s *SslCertificateSelfManagedSslCertificate) MarshalJSON() ([]byte, error) {
35074	type NoMethod SslCertificateSelfManagedSslCertificate
35075	raw := NoMethod(*s)
35076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35077}
35078
35079type SslCertificatesScopedList struct {
35080	// SslCertificates: List of SslCertificates contained in this scope.
35081	SslCertificates []*SslCertificate `json:"sslCertificates,omitempty"`
35082
35083	// Warning: Informational warning which replaces the list of backend
35084	// services when the list is empty.
35085	Warning *SslCertificatesScopedListWarning `json:"warning,omitempty"`
35086
35087	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
35088	// unconditionally include in API requests. By default, fields with
35089	// empty values are omitted from API requests. However, any non-pointer,
35090	// non-interface field appearing in ForceSendFields will be sent to the
35091	// server regardless of whether the field is empty or not. This may be
35092	// used to include empty fields in Patch requests.
35093	ForceSendFields []string `json:"-"`
35094
35095	// NullFields is a list of field names (e.g. "SslCertificates") to
35096	// include in API requests with the JSON null value. By default, fields
35097	// with empty values are omitted from API requests. However, any field
35098	// with an empty value appearing in NullFields will be sent to the
35099	// server as null. It is an error if a field in this list has a
35100	// non-empty value. This may be used to include null fields in Patch
35101	// requests.
35102	NullFields []string `json:"-"`
35103}
35104
35105func (s *SslCertificatesScopedList) MarshalJSON() ([]byte, error) {
35106	type NoMethod SslCertificatesScopedList
35107	raw := NoMethod(*s)
35108	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35109}
35110
35111// SslCertificatesScopedListWarning: Informational warning which
35112// replaces the list of backend services when the list is empty.
35113type SslCertificatesScopedListWarning struct {
35114	// Code: [Output Only] A warning code, if applicable. For example,
35115	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35116	// the response.
35117	//
35118	// Possible values:
35119	//   "CLEANUP_FAILED"
35120	//   "DEPRECATED_RESOURCE_USED"
35121	//   "DEPRECATED_TYPE_USED"
35122	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35123	//   "EXPERIMENTAL_TYPE_USED"
35124	//   "EXTERNAL_API_WARNING"
35125	//   "FIELD_VALUE_OVERRIDEN"
35126	//   "INJECTED_KERNELS_DEPRECATED"
35127	//   "MISSING_TYPE_DEPENDENCY"
35128	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35129	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35130	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35131	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35132	//   "NEXT_HOP_NOT_RUNNING"
35133	//   "NOT_CRITICAL_ERROR"
35134	//   "NO_RESULTS_ON_PAGE"
35135	//   "REQUIRED_TOS_AGREEMENT"
35136	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35137	//   "RESOURCE_NOT_DELETED"
35138	//   "SCHEMA_VALIDATION_IGNORED"
35139	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35140	//   "UNDECLARED_PROPERTIES"
35141	//   "UNREACHABLE"
35142	Code string `json:"code,omitempty"`
35143
35144	// Data: [Output Only] Metadata about this warning in key: value format.
35145	// For example:
35146	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35147	Data []*SslCertificatesScopedListWarningData `json:"data,omitempty"`
35148
35149	// Message: [Output Only] A human-readable description of the warning
35150	// code.
35151	Message string `json:"message,omitempty"`
35152
35153	// ForceSendFields is a list of field names (e.g. "Code") to
35154	// unconditionally include in API requests. By default, fields with
35155	// empty values are omitted from API requests. However, any non-pointer,
35156	// non-interface field appearing in ForceSendFields will be sent to the
35157	// server regardless of whether the field is empty or not. This may be
35158	// used to include empty fields in Patch requests.
35159	ForceSendFields []string `json:"-"`
35160
35161	// NullFields is a list of field names (e.g. "Code") to include in API
35162	// requests with the JSON null value. By default, fields with empty
35163	// values are omitted from API requests. However, any field with an
35164	// empty value appearing in NullFields will be sent to the server as
35165	// null. It is an error if a field in this list has a non-empty value.
35166	// This may be used to include null fields in Patch requests.
35167	NullFields []string `json:"-"`
35168}
35169
35170func (s *SslCertificatesScopedListWarning) MarshalJSON() ([]byte, error) {
35171	type NoMethod SslCertificatesScopedListWarning
35172	raw := NoMethod(*s)
35173	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35174}
35175
35176type SslCertificatesScopedListWarningData struct {
35177	// Key: [Output Only] A key that provides more detail on the warning
35178	// being returned. For example, for warnings where there are no results
35179	// in a list request for a particular zone, this key might be scope and
35180	// the key value might be the zone name. Other examples might be a key
35181	// indicating a deprecated resource and a suggested replacement, or a
35182	// warning about invalid network settings (for example, if an instance
35183	// attempts to perform IP forwarding but is not enabled for IP
35184	// forwarding).
35185	Key string `json:"key,omitempty"`
35186
35187	// Value: [Output Only] A warning data value corresponding to the key.
35188	Value string `json:"value,omitempty"`
35189
35190	// ForceSendFields is a list of field names (e.g. "Key") to
35191	// unconditionally include in API requests. By default, fields with
35192	// empty values are omitted from API requests. However, any non-pointer,
35193	// non-interface field appearing in ForceSendFields will be sent to the
35194	// server regardless of whether the field is empty or not. This may be
35195	// used to include empty fields in Patch requests.
35196	ForceSendFields []string `json:"-"`
35197
35198	// NullFields is a list of field names (e.g. "Key") to include in API
35199	// requests with the JSON null value. By default, fields with empty
35200	// values are omitted from API requests. However, any field with an
35201	// empty value appearing in NullFields will be sent to the server as
35202	// null. It is an error if a field in this list has a non-empty value.
35203	// This may be used to include null fields in Patch requests.
35204	NullFields []string `json:"-"`
35205}
35206
35207func (s *SslCertificatesScopedListWarningData) MarshalJSON() ([]byte, error) {
35208	type NoMethod SslCertificatesScopedListWarningData
35209	raw := NoMethod(*s)
35210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35211}
35212
35213type SslPoliciesList struct {
35214	// Id: [Output Only] Unique identifier for the resource; defined by the
35215	// server.
35216	Id string `json:"id,omitempty"`
35217
35218	// Items: A list of SslPolicy resources.
35219	Items []*SslPolicy `json:"items,omitempty"`
35220
35221	// Kind: [Output Only] Type of the resource. Always
35222	// compute#sslPoliciesList for lists of sslPolicies.
35223	Kind string `json:"kind,omitempty"`
35224
35225	// NextPageToken: [Output Only] This token allows you to get the next
35226	// page of results for list requests. If the number of results is larger
35227	// than maxResults, use the nextPageToken as a value for the query
35228	// parameter pageToken in the next list request. Subsequent list
35229	// requests will have their own nextPageToken to continue paging through
35230	// the results.
35231	NextPageToken string `json:"nextPageToken,omitempty"`
35232
35233	// SelfLink: [Output Only] Server-defined URL for this resource.
35234	SelfLink string `json:"selfLink,omitempty"`
35235
35236	// Warning: [Output Only] Informational warning message.
35237	Warning *SslPoliciesListWarning `json:"warning,omitempty"`
35238
35239	// ServerResponse contains the HTTP response code and headers from the
35240	// server.
35241	googleapi.ServerResponse `json:"-"`
35242
35243	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
35252	// requests with the JSON null value. By default, fields with empty
35253	// values are omitted from API requests. However, any field with an
35254	// 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 *SslPoliciesList) MarshalJSON() ([]byte, error) {
35261	type NoMethod SslPoliciesList
35262	raw := NoMethod(*s)
35263	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35264}
35265
35266// SslPoliciesListWarning: [Output Only] Informational warning message.
35267type SslPoliciesListWarning struct {
35268	// Code: [Output Only] A warning code, if applicable. For example,
35269	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35270	// the response.
35271	//
35272	// Possible values:
35273	//   "CLEANUP_FAILED"
35274	//   "DEPRECATED_RESOURCE_USED"
35275	//   "DEPRECATED_TYPE_USED"
35276	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35277	//   "EXPERIMENTAL_TYPE_USED"
35278	//   "EXTERNAL_API_WARNING"
35279	//   "FIELD_VALUE_OVERRIDEN"
35280	//   "INJECTED_KERNELS_DEPRECATED"
35281	//   "MISSING_TYPE_DEPENDENCY"
35282	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35283	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35284	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35285	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35286	//   "NEXT_HOP_NOT_RUNNING"
35287	//   "NOT_CRITICAL_ERROR"
35288	//   "NO_RESULTS_ON_PAGE"
35289	//   "REQUIRED_TOS_AGREEMENT"
35290	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35291	//   "RESOURCE_NOT_DELETED"
35292	//   "SCHEMA_VALIDATION_IGNORED"
35293	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35294	//   "UNDECLARED_PROPERTIES"
35295	//   "UNREACHABLE"
35296	Code string `json:"code,omitempty"`
35297
35298	// Data: [Output Only] Metadata about this warning in key: value format.
35299	// For example:
35300	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35301	Data []*SslPoliciesListWarningData `json:"data,omitempty"`
35302
35303	// Message: [Output Only] A human-readable description of the warning
35304	// code.
35305	Message string `json:"message,omitempty"`
35306
35307	// ForceSendFields is a list of field names (e.g. "Code") to
35308	// unconditionally include in API requests. By default, fields with
35309	// empty values are omitted from API requests. However, any non-pointer,
35310	// non-interface field appearing in ForceSendFields will be sent to the
35311	// server regardless of whether the field is empty or not. This may be
35312	// used to include empty fields in Patch requests.
35313	ForceSendFields []string `json:"-"`
35314
35315	// NullFields is a list of field names (e.g. "Code") to include in API
35316	// requests with the JSON null value. By default, fields with empty
35317	// values are omitted from API requests. However, any field with an
35318	// empty value appearing in NullFields will be sent to the server as
35319	// null. It is an error if a field in this list has a non-empty value.
35320	// This may be used to include null fields in Patch requests.
35321	NullFields []string `json:"-"`
35322}
35323
35324func (s *SslPoliciesListWarning) MarshalJSON() ([]byte, error) {
35325	type NoMethod SslPoliciesListWarning
35326	raw := NoMethod(*s)
35327	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35328}
35329
35330type SslPoliciesListWarningData struct {
35331	// Key: [Output Only] A key that provides more detail on the warning
35332	// being returned. For example, for warnings where there are no results
35333	// in a list request for a particular zone, this key might be scope and
35334	// the key value might be the zone name. Other examples might be a key
35335	// indicating a deprecated resource and a suggested replacement, or a
35336	// warning about invalid network settings (for example, if an instance
35337	// attempts to perform IP forwarding but is not enabled for IP
35338	// forwarding).
35339	Key string `json:"key,omitempty"`
35340
35341	// Value: [Output Only] A warning data value corresponding to the key.
35342	Value string `json:"value,omitempty"`
35343
35344	// ForceSendFields is a list of field names (e.g. "Key") to
35345	// unconditionally include in API requests. By default, fields with
35346	// empty values are omitted from API requests. However, any non-pointer,
35347	// non-interface field appearing in ForceSendFields will be sent to the
35348	// server regardless of whether the field is empty or not. This may be
35349	// used to include empty fields in Patch requests.
35350	ForceSendFields []string `json:"-"`
35351
35352	// NullFields is a list of field names (e.g. "Key") to include in API
35353	// requests with the JSON null value. By default, fields with empty
35354	// values are omitted from API requests. However, any field with an
35355	// empty value appearing in NullFields will be sent to the server as
35356	// null. It is an error if a field in this list has a non-empty value.
35357	// This may be used to include null fields in Patch requests.
35358	NullFields []string `json:"-"`
35359}
35360
35361func (s *SslPoliciesListWarningData) MarshalJSON() ([]byte, error) {
35362	type NoMethod SslPoliciesListWarningData
35363	raw := NoMethod(*s)
35364	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35365}
35366
35367type SslPoliciesListAvailableFeaturesResponse struct {
35368	Features []string `json:"features,omitempty"`
35369
35370	// ServerResponse contains the HTTP response code and headers from the
35371	// server.
35372	googleapi.ServerResponse `json:"-"`
35373
35374	// ForceSendFields is a list of field names (e.g. "Features") to
35375	// unconditionally include in API requests. By default, fields with
35376	// empty values are omitted from API requests. However, any non-pointer,
35377	// non-interface field appearing in ForceSendFields will be sent to the
35378	// server regardless of whether the field is empty or not. This may be
35379	// used to include empty fields in Patch requests.
35380	ForceSendFields []string `json:"-"`
35381
35382	// NullFields is a list of field names (e.g. "Features") to include in
35383	// API requests with the JSON null value. By default, fields with empty
35384	// values are omitted from API requests. However, any field with an
35385	// empty value appearing in NullFields will be sent to the server as
35386	// null. It is an error if a field in this list has a non-empty value.
35387	// This may be used to include null fields in Patch requests.
35388	NullFields []string `json:"-"`
35389}
35390
35391func (s *SslPoliciesListAvailableFeaturesResponse) MarshalJSON() ([]byte, error) {
35392	type NoMethod SslPoliciesListAvailableFeaturesResponse
35393	raw := NoMethod(*s)
35394	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35395}
35396
35397// SslPolicy: Represents a Cloud Armor Security Policy resource.
35398//
35399// Only external backend services used by HTTP or HTTPS load balancers
35400// can reference a Security Policy. For more information, read read
35401// Cloud Armor Security Policy Concepts. (== resource_for
35402// {$api_version}.sslPolicies ==)
35403type SslPolicy struct {
35404	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35405	// format.
35406	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35407
35408	// CustomFeatures: A list of features enabled when the selected profile
35409	// is CUSTOM. The
35410	// - method returns the set of features that can be specified in this
35411	// list. This field must be empty if the profile is not CUSTOM.
35412	CustomFeatures []string `json:"customFeatures,omitempty"`
35413
35414	// Description: An optional description of this resource. Provide this
35415	// property when you create the resource.
35416	Description string `json:"description,omitempty"`
35417
35418	// EnabledFeatures: [Output Only] The list of features enabled in the
35419	// SSL policy.
35420	EnabledFeatures []string `json:"enabledFeatures,omitempty"`
35421
35422	// Fingerprint: Fingerprint of this resource. A hash of the contents
35423	// stored in this object. This field is used in optimistic locking. This
35424	// field will be ignored when inserting a SslPolicy. An up-to-date
35425	// fingerprint must be provided in order to update the SslPolicy,
35426	// otherwise the request will fail with error 412 conditionNotMet.
35427	//
35428	// To see the latest fingerprint, make a get() request to retrieve an
35429	// SslPolicy.
35430	Fingerprint string `json:"fingerprint,omitempty"`
35431
35432	// Id: [Output Only] The unique identifier for the resource. This
35433	// identifier is defined by the server.
35434	Id uint64 `json:"id,omitempty,string"`
35435
35436	// Kind: [Output only] Type of the resource. Always compute#sslPolicyfor
35437	// SSL policies.
35438	Kind string `json:"kind,omitempty"`
35439
35440	// MinTlsVersion: The minimum version of SSL protocol that can be used
35441	// by the clients to establish a connection with the load balancer. This
35442	// can be one of TLS_1_0, TLS_1_1, TLS_1_2.
35443	//
35444	// Possible values:
35445	//   "TLS_1_0"
35446	//   "TLS_1_1"
35447	//   "TLS_1_2"
35448	MinTlsVersion string `json:"minTlsVersion,omitempty"`
35449
35450	// Name: Name of the resource. The name must be 1-63 characters long,
35451	// and comply with RFC1035. Specifically, the name must be 1-63
35452	// characters long and match the regular expression
35453	// `[a-z]([-a-z0-9]*[a-z0-9])?` which means the first character must be
35454	// a lowercase letter, and all following characters must be a dash,
35455	// lowercase letter, or digit, except the last character, which cannot
35456	// be a dash.
35457	Name string `json:"name,omitempty"`
35458
35459	// Profile: Profile specifies the set of SSL features that can be used
35460	// by the load balancer when negotiating SSL with clients. This can be
35461	// one of COMPATIBLE, MODERN, RESTRICTED, or CUSTOM. If using CUSTOM,
35462	// the set of SSL features to enable must be specified in the
35463	// customFeatures field.
35464	//
35465	// Possible values:
35466	//   "COMPATIBLE"
35467	//   "CUSTOM"
35468	//   "MODERN"
35469	//   "RESTRICTED"
35470	Profile string `json:"profile,omitempty"`
35471
35472	// SelfLink: [Output Only] Server-defined URL for the resource.
35473	SelfLink string `json:"selfLink,omitempty"`
35474
35475	// Warnings: [Output Only] If potential misconfigurations are detected
35476	// for this SSL policy, this field will be populated with warning
35477	// messages.
35478	Warnings []*SslPolicyWarnings `json:"warnings,omitempty"`
35479
35480	// ServerResponse contains the HTTP response code and headers from the
35481	// server.
35482	googleapi.ServerResponse `json:"-"`
35483
35484	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
35485	// to unconditionally include in API requests. By default, fields with
35486	// empty values are omitted from API requests. However, any non-pointer,
35487	// non-interface field appearing in ForceSendFields will be sent to the
35488	// server regardless of whether the field is empty or not. This may be
35489	// used to include empty fields in Patch requests.
35490	ForceSendFields []string `json:"-"`
35491
35492	// NullFields is a list of field names (e.g. "CreationTimestamp") to
35493	// include in API requests with the JSON null value. By default, fields
35494	// with empty values are omitted from API requests. However, any field
35495	// with an empty value appearing in NullFields will be sent to the
35496	// server as null. It is an error if a field in this list has a
35497	// non-empty value. This may be used to include null fields in Patch
35498	// requests.
35499	NullFields []string `json:"-"`
35500}
35501
35502func (s *SslPolicy) MarshalJSON() ([]byte, error) {
35503	type NoMethod SslPolicy
35504	raw := NoMethod(*s)
35505	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35506}
35507
35508type SslPolicyWarnings struct {
35509	// Code: [Output Only] A warning code, if applicable. For example,
35510	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35511	// the response.
35512	//
35513	// Possible values:
35514	//   "CLEANUP_FAILED"
35515	//   "DEPRECATED_RESOURCE_USED"
35516	//   "DEPRECATED_TYPE_USED"
35517	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35518	//   "EXPERIMENTAL_TYPE_USED"
35519	//   "EXTERNAL_API_WARNING"
35520	//   "FIELD_VALUE_OVERRIDEN"
35521	//   "INJECTED_KERNELS_DEPRECATED"
35522	//   "MISSING_TYPE_DEPENDENCY"
35523	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
35524	//   "NEXT_HOP_CANNOT_IP_FORWARD"
35525	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
35526	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
35527	//   "NEXT_HOP_NOT_RUNNING"
35528	//   "NOT_CRITICAL_ERROR"
35529	//   "NO_RESULTS_ON_PAGE"
35530	//   "REQUIRED_TOS_AGREEMENT"
35531	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
35532	//   "RESOURCE_NOT_DELETED"
35533	//   "SCHEMA_VALIDATION_IGNORED"
35534	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
35535	//   "UNDECLARED_PROPERTIES"
35536	//   "UNREACHABLE"
35537	Code string `json:"code,omitempty"`
35538
35539	// Data: [Output Only] Metadata about this warning in key: value format.
35540	// For example:
35541	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
35542	Data []*SslPolicyWarningsData `json:"data,omitempty"`
35543
35544	// Message: [Output Only] A human-readable description of the warning
35545	// code.
35546	Message string `json:"message,omitempty"`
35547
35548	// ForceSendFields is a list of field names (e.g. "Code") to
35549	// unconditionally include in API requests. By default, fields with
35550	// empty values are omitted from API requests. However, any non-pointer,
35551	// non-interface field appearing in ForceSendFields will be sent to the
35552	// server regardless of whether the field is empty or not. This may be
35553	// used to include empty fields in Patch requests.
35554	ForceSendFields []string `json:"-"`
35555
35556	// NullFields is a list of field names (e.g. "Code") to include in API
35557	// requests with the JSON null value. By default, fields with empty
35558	// values are omitted from API requests. However, any field with an
35559	// empty value appearing in NullFields will be sent to the server as
35560	// null. It is an error if a field in this list has a non-empty value.
35561	// This may be used to include null fields in Patch requests.
35562	NullFields []string `json:"-"`
35563}
35564
35565func (s *SslPolicyWarnings) MarshalJSON() ([]byte, error) {
35566	type NoMethod SslPolicyWarnings
35567	raw := NoMethod(*s)
35568	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35569}
35570
35571type SslPolicyWarningsData struct {
35572	// Key: [Output Only] A key that provides more detail on the warning
35573	// being returned. For example, for warnings where there are no results
35574	// in a list request for a particular zone, this key might be scope and
35575	// the key value might be the zone name. Other examples might be a key
35576	// indicating a deprecated resource and a suggested replacement, or a
35577	// warning about invalid network settings (for example, if an instance
35578	// attempts to perform IP forwarding but is not enabled for IP
35579	// forwarding).
35580	Key string `json:"key,omitempty"`
35581
35582	// Value: [Output Only] A warning data value corresponding to the key.
35583	Value string `json:"value,omitempty"`
35584
35585	// ForceSendFields is a list of field names (e.g. "Key") to
35586	// unconditionally include in API requests. By default, fields with
35587	// empty values are omitted from API requests. However, any non-pointer,
35588	// non-interface field appearing in ForceSendFields will be sent to the
35589	// server regardless of whether the field is empty or not. This may be
35590	// used to include empty fields in Patch requests.
35591	ForceSendFields []string `json:"-"`
35592
35593	// NullFields is a list of field names (e.g. "Key") to include in API
35594	// requests with the JSON null value. By default, fields with empty
35595	// values are omitted from API requests. However, any field with an
35596	// empty value appearing in NullFields will be sent to the server as
35597	// null. It is an error if a field in this list has a non-empty value.
35598	// This may be used to include null fields in Patch requests.
35599	NullFields []string `json:"-"`
35600}
35601
35602func (s *SslPolicyWarningsData) MarshalJSON() ([]byte, error) {
35603	type NoMethod SslPolicyWarningsData
35604	raw := NoMethod(*s)
35605	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35606}
35607
35608type SslPolicyReference struct {
35609	// SslPolicy: URL of the SSL policy resource. Set this to empty string
35610	// to clear any existing SSL policy associated with the target proxy
35611	// resource.
35612	SslPolicy string `json:"sslPolicy,omitempty"`
35613
35614	// ForceSendFields is a list of field names (e.g. "SslPolicy") to
35615	// unconditionally include in API requests. By default, fields with
35616	// empty values are omitted from API requests. However, any non-pointer,
35617	// non-interface field appearing in ForceSendFields will be sent to the
35618	// server regardless of whether the field is empty or not. This may be
35619	// used to include empty fields in Patch requests.
35620	ForceSendFields []string `json:"-"`
35621
35622	// NullFields is a list of field names (e.g. "SslPolicy") to include in
35623	// API requests with the JSON null value. By default, fields with empty
35624	// values are omitted from API requests. However, any field with an
35625	// empty value appearing in NullFields will be sent to the server as
35626	// null. It is an error if a field in this list has a non-empty value.
35627	// This may be used to include null fields in Patch requests.
35628	NullFields []string `json:"-"`
35629}
35630
35631func (s *SslPolicyReference) MarshalJSON() ([]byte, error) {
35632	type NoMethod SslPolicyReference
35633	raw := NoMethod(*s)
35634	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35635}
35636
35637type StatefulPolicy struct {
35638	PreservedState *StatefulPolicyPreservedState `json:"preservedState,omitempty"`
35639
35640	// ForceSendFields is a list of field names (e.g. "PreservedState") to
35641	// unconditionally include in API requests. By default, fields with
35642	// empty values are omitted from API requests. However, any non-pointer,
35643	// non-interface field appearing in ForceSendFields will be sent to the
35644	// server regardless of whether the field is empty or not. This may be
35645	// used to include empty fields in Patch requests.
35646	ForceSendFields []string `json:"-"`
35647
35648	// NullFields is a list of field names (e.g. "PreservedState") to
35649	// include in API requests with the JSON null value. By default, fields
35650	// with empty values are omitted from API requests. However, any field
35651	// with an empty value appearing in NullFields will be sent to the
35652	// server as null. It is an error if a field in this list has a
35653	// non-empty value. This may be used to include null fields in Patch
35654	// requests.
35655	NullFields []string `json:"-"`
35656}
35657
35658func (s *StatefulPolicy) MarshalJSON() ([]byte, error) {
35659	type NoMethod StatefulPolicy
35660	raw := NoMethod(*s)
35661	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35662}
35663
35664// StatefulPolicyPreservedState: Configuration of preserved resources.
35665type StatefulPolicyPreservedState struct {
35666	// Disks: Disks created on the instances that will be preserved on
35667	// instance delete, update, etc. This map is keyed with the device names
35668	// of the disks.
35669	Disks map[string]StatefulPolicyPreservedStateDiskDevice `json:"disks,omitempty"`
35670
35671	// ForceSendFields is a list of field names (e.g. "Disks") to
35672	// unconditionally include in API requests. By default, fields with
35673	// empty values are omitted from API requests. However, any non-pointer,
35674	// non-interface field appearing in ForceSendFields will be sent to the
35675	// server regardless of whether the field is empty or not. This may be
35676	// used to include empty fields in Patch requests.
35677	ForceSendFields []string `json:"-"`
35678
35679	// NullFields is a list of field names (e.g. "Disks") to include in API
35680	// requests with the JSON null value. By default, fields with empty
35681	// values are omitted from API requests. However, any field with an
35682	// empty value appearing in NullFields will be sent to the server as
35683	// null. It is an error if a field in this list has a non-empty value.
35684	// This may be used to include null fields in Patch requests.
35685	NullFields []string `json:"-"`
35686}
35687
35688func (s *StatefulPolicyPreservedState) MarshalJSON() ([]byte, error) {
35689	type NoMethod StatefulPolicyPreservedState
35690	raw := NoMethod(*s)
35691	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35692}
35693
35694type StatefulPolicyPreservedStateDiskDevice struct {
35695	// AutoDelete: These stateful disks will never be deleted during
35696	// autohealing, update or VM instance recreate operations. This flag is
35697	// used to configure if the disk should be deleted after it is no longer
35698	// used by the group, e.g. when the given instance or the whole group is
35699	// deleted. Note: disks attached in READ_ONLY mode cannot be
35700	// auto-deleted.
35701	//
35702	// Possible values:
35703	//   "NEVER"
35704	//   "ON_PERMANENT_INSTANCE_DELETION"
35705	AutoDelete string `json:"autoDelete,omitempty"`
35706
35707	// ForceSendFields is a list of field names (e.g. "AutoDelete") 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. "AutoDelete") to include in
35716	// API 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 *StatefulPolicyPreservedStateDiskDevice) MarshalJSON() ([]byte, error) {
35725	type NoMethod StatefulPolicyPreservedStateDiskDevice
35726	raw := NoMethod(*s)
35727	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35728}
35729
35730// Subnetwork: Represents a Subnetwork resource.
35731//
35732// A subnetwork (also known as a subnet) is a logical partition of a
35733// Virtual Private Cloud network with one primary IP range and zero or
35734// more secondary IP ranges. For more information, read  Virtual Private
35735// Cloud (VPC) Network. (== resource_for {$api_version}.subnetworks ==)
35736type Subnetwork struct {
35737	// AllowSubnetCidrRoutesOverlap: Whether this subnetwork can conflict
35738	// with static routes. Setting this to true allows this subnetwork's
35739	// primary and secondary ranges to conflict with routes that have
35740	// already been configured on the corresponding network. Static routes
35741	// will take precedence over the subnetwork route if the route prefix
35742	// length is at least as large as the subnetwork prefix length.
35743	//
35744	// Also, packets destined to IPs within subnetwork may contain
35745	// private/sensitive data and are prevented from leaving the virtual
35746	// network. Setting this field to true will disable this feature.
35747	//
35748	// The default value is false and applies to all existing subnetworks
35749	// and automatically created subnetworks.
35750	//
35751	// This field cannot be set to true at resource creation time.
35752	AllowSubnetCidrRoutesOverlap bool `json:"allowSubnetCidrRoutesOverlap,omitempty"`
35753
35754	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
35755	// format.
35756	CreationTimestamp string `json:"creationTimestamp,omitempty"`
35757
35758	// Description: An optional description of this resource. Provide this
35759	// property when you create the resource. This field can be set only at
35760	// resource creation time.
35761	Description string `json:"description,omitempty"`
35762
35763	// EnableFlowLogs: Whether to enable flow logging for this subnetwork.
35764	// If this field is not explicitly set, it will not appear in get
35765	// listings. If not set the default behavior is to disable flow logging.
35766	EnableFlowLogs bool `json:"enableFlowLogs,omitempty"`
35767
35768	// Fingerprint: Fingerprint of this resource. A hash of the contents
35769	// stored in this object. This field is used in optimistic locking. This
35770	// field will be ignored when inserting a Subnetwork. An up-to-date
35771	// fingerprint must be provided in order to update the Subnetwork,
35772	// otherwise the request will fail with error 412 conditionNotMet.
35773	//
35774	// To see the latest fingerprint, make a get() request to retrieve a
35775	// Subnetwork.
35776	Fingerprint string `json:"fingerprint,omitempty"`
35777
35778	// GatewayAddress: [Output Only] The gateway address for default routes
35779	// to reach destination addresses outside this subnetwork.
35780	GatewayAddress string `json:"gatewayAddress,omitempty"`
35781
35782	// Id: [Output Only] The unique identifier for the resource. This
35783	// identifier is defined by the server.
35784	Id uint64 `json:"id,omitempty,string"`
35785
35786	// IpCidrRange: The range of internal addresses that are owned by this
35787	// subnetwork. Provide this property when you create the subnetwork. For
35788	// example, 10.0.0.0/8 or 192.168.0.0/16. Ranges must be unique and
35789	// non-overlapping within a network. Only IPv4 is supported. This field
35790	// can be set only at resource creation time.
35791	IpCidrRange string `json:"ipCidrRange,omitempty"`
35792
35793	// Ipv6CidrRange: [Output Only] The range of internal IPv6 addresses
35794	// that are owned by this subnetwork.
35795	Ipv6CidrRange string `json:"ipv6CidrRange,omitempty"`
35796
35797	// Kind: [Output Only] Type of the resource. Always compute#subnetwork
35798	// for Subnetwork resources.
35799	Kind string `json:"kind,omitempty"`
35800
35801	// LogConfig: This field denotes the VPC flow logging options for this
35802	// subnetwork. If logging is enabled, logs are exported to Stackdriver.
35803	LogConfig *SubnetworkLogConfig `json:"logConfig,omitempty"`
35804
35805	// Name: The name of the resource, provided by the client when initially
35806	// creating the resource. The name must be 1-63 characters long, and
35807	// comply with RFC1035. Specifically, the name must be 1-63 characters
35808	// long and match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?`
35809	// which means the first character must be a lowercase letter, and all
35810	// following characters must be a dash, lowercase letter, or digit,
35811	// except the last character, which cannot be a dash.
35812	Name string `json:"name,omitempty"`
35813
35814	// Network: The URL of the network to which this subnetwork belongs,
35815	// provided by the client when initially creating the subnetwork. Only
35816	// networks that are in the distributed mode can have subnetworks. This
35817	// field can be set only at resource creation time.
35818	Network string `json:"network,omitempty"`
35819
35820	// PrivateIpGoogleAccess: Whether the VMs in this subnet can access
35821	// Google services without assigned external IP addresses. This field
35822	// can be both set at resource creation time and updated using
35823	// setPrivateIpGoogleAccess.
35824	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
35825
35826	// PrivateIpv6GoogleAccess: The private IPv6 google access type for the
35827	// VMs in this subnet. This is an expanded field of
35828	// enablePrivateV6Access. If both fields are set,
35829	// privateIpv6GoogleAccess will take priority.
35830	//
35831	// This field can be both set at resource creation time and updated
35832	// using patch.
35833	//
35834	// Possible values:
35835	//   "DISABLE_GOOGLE_ACCESS"
35836	//   "ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE"
35837	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE"
35838	//   "ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS"
35839	PrivateIpv6GoogleAccess string `json:"privateIpv6GoogleAccess,omitempty"`
35840
35841	// PrivateIpv6GoogleAccessServiceAccounts: Deprecated in favor of enable
35842	// PrivateIpv6GoogleAccess on instance directly. The service accounts
35843	// can be used to selectively turn on Private IPv6 Google Access only on
35844	// the VMs primary service account matching the value. This value only
35845	// takes effect when PrivateIpv6GoogleAccess is
35846	// ENABLE_OUTBOUND_VM_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS or
35847	// ENABLE_BIDIRECTIONAL_ACCESS_TO_GOOGLE_FOR_SERVICE_ACCOUNTS.
35848	PrivateIpv6GoogleAccessServiceAccounts []string `json:"privateIpv6GoogleAccessServiceAccounts,omitempty"`
35849
35850	// Purpose: The purpose of the resource. This field can be either
35851	// PRIVATE_RFC_1918 or INTERNAL_HTTPS_LOAD_BALANCER. A subnetwork with
35852	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER is a user-created
35853	// subnetwork that is reserved for Internal HTTP(S) Load Balancing. If
35854	// unspecified, the purpose defaults to PRIVATE_RFC_1918.
35855	//
35856	// Possible values:
35857	//   "INTERNAL_HTTPS_LOAD_BALANCER"
35858	//   "PRIVATE"
35859	//   "PRIVATE_RFC_1918"
35860	Purpose string `json:"purpose,omitempty"`
35861
35862	// Region: URL of the region where the Subnetwork resides. This field
35863	// can be set only at resource creation time.
35864	Region string `json:"region,omitempty"`
35865
35866	// Role: The role of subnetwork. Currenly, this field is only used when
35867	// purpose = INTERNAL_HTTPS_LOAD_BALANCER. The value can be set to
35868	// ACTIVE or BACKUP. An ACTIVE subnetwork is one that is currently being
35869	// used for Internal HTTP(S) Load Balancing. A BACKUP subnetwork is one
35870	// that is ready to be promoted to ACTIVE or is currently draining. This
35871	// field can be updated with a patch request.
35872	//
35873	// Possible values:
35874	//   "ACTIVE"
35875	//   "BACKUP"
35876	Role string `json:"role,omitempty"`
35877
35878	// SecondaryIpRanges: An array of configurations for secondary IP ranges
35879	// for VM instances contained in this subnetwork. The primary IP of such
35880	// VM must belong to the primary ipCidrRange of the subnetwork. The
35881	// alias IPs may belong to either primary or secondary ranges. This
35882	// field can be updated with a patch request.
35883	SecondaryIpRanges []*SubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
35884
35885	// SelfLink: [Output Only] Server-defined URL for the resource.
35886	SelfLink string `json:"selfLink,omitempty"`
35887
35888	// State: [Output Only] The state of the subnetwork, which can be one of
35889	// READY or DRAINING. A subnetwork that is READY is ready to be used.
35890	// The state of DRAINING is only applicable to subnetworks that have the
35891	// purpose set to INTERNAL_HTTPS_LOAD_BALANCER and indicates that
35892	// connections to the load balancer are being drained. A subnetwork that
35893	// is draining cannot be used or modified until it reaches a status of
35894	// READY.
35895	//
35896	// Possible values:
35897	//   "DRAINING"
35898	//   "READY"
35899	State string `json:"state,omitempty"`
35900
35901	// ServerResponse contains the HTTP response code and headers from the
35902	// server.
35903	googleapi.ServerResponse `json:"-"`
35904
35905	// ForceSendFields is a list of field names (e.g.
35906	// "AllowSubnetCidrRoutesOverlap") to unconditionally include in API
35907	// requests. By default, fields with empty values are omitted from API
35908	// requests. However, any non-pointer, non-interface field appearing in
35909	// ForceSendFields will be sent to the server regardless of whether the
35910	// field is empty or not. This may be used to include empty fields in
35911	// Patch requests.
35912	ForceSendFields []string `json:"-"`
35913
35914	// NullFields is a list of field names (e.g.
35915	// "AllowSubnetCidrRoutesOverlap") to include in API requests with the
35916	// JSON null value. By default, fields with empty values are omitted
35917	// from API requests. However, any field with an empty value appearing
35918	// in NullFields will be sent to the server as null. It is an error if a
35919	// field in this list has a non-empty value. This may be used to include
35920	// null fields in Patch requests.
35921	NullFields []string `json:"-"`
35922}
35923
35924func (s *Subnetwork) MarshalJSON() ([]byte, error) {
35925	type NoMethod Subnetwork
35926	raw := NoMethod(*s)
35927	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35928}
35929
35930type SubnetworkAggregatedList struct {
35931	// Id: [Output Only] Unique identifier for the resource; defined by the
35932	// server.
35933	Id string `json:"id,omitempty"`
35934
35935	// Items: A list of SubnetworksScopedList resources.
35936	Items map[string]SubnetworksScopedList `json:"items,omitempty"`
35937
35938	// Kind: [Output Only] Type of resource. Always
35939	// compute#subnetworkAggregatedList for aggregated lists of subnetworks.
35940	Kind string `json:"kind,omitempty"`
35941
35942	// NextPageToken: [Output Only] This token allows you to get the next
35943	// page of results for list requests. If the number of results is larger
35944	// than maxResults, use the nextPageToken as a value for the query
35945	// parameter pageToken in the next list request. Subsequent list
35946	// requests will have their own nextPageToken to continue paging through
35947	// the results.
35948	NextPageToken string `json:"nextPageToken,omitempty"`
35949
35950	// SelfLink: [Output Only] Server-defined URL for this resource.
35951	SelfLink string `json:"selfLink,omitempty"`
35952
35953	// Warning: [Output Only] Informational warning message.
35954	Warning *SubnetworkAggregatedListWarning `json:"warning,omitempty"`
35955
35956	// ServerResponse contains the HTTP response code and headers from the
35957	// server.
35958	googleapi.ServerResponse `json:"-"`
35959
35960	// ForceSendFields is a list of field names (e.g. "Id") to
35961	// unconditionally include in API requests. By default, fields with
35962	// empty values are omitted from API requests. However, any non-pointer,
35963	// non-interface field appearing in ForceSendFields will be sent to the
35964	// server regardless of whether the field is empty or not. This may be
35965	// used to include empty fields in Patch requests.
35966	ForceSendFields []string `json:"-"`
35967
35968	// NullFields is a list of field names (e.g. "Id") to include in API
35969	// requests with the JSON null value. By default, fields with empty
35970	// values are omitted from API requests. However, any field with an
35971	// empty value appearing in NullFields will be sent to the server as
35972	// null. It is an error if a field in this list has a non-empty value.
35973	// This may be used to include null fields in Patch requests.
35974	NullFields []string `json:"-"`
35975}
35976
35977func (s *SubnetworkAggregatedList) MarshalJSON() ([]byte, error) {
35978	type NoMethod SubnetworkAggregatedList
35979	raw := NoMethod(*s)
35980	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
35981}
35982
35983// SubnetworkAggregatedListWarning: [Output Only] Informational warning
35984// message.
35985type SubnetworkAggregatedListWarning struct {
35986	// Code: [Output Only] A warning code, if applicable. For example,
35987	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
35988	// the response.
35989	//
35990	// Possible values:
35991	//   "CLEANUP_FAILED"
35992	//   "DEPRECATED_RESOURCE_USED"
35993	//   "DEPRECATED_TYPE_USED"
35994	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
35995	//   "EXPERIMENTAL_TYPE_USED"
35996	//   "EXTERNAL_API_WARNING"
35997	//   "FIELD_VALUE_OVERRIDEN"
35998	//   "INJECTED_KERNELS_DEPRECATED"
35999	//   "MISSING_TYPE_DEPENDENCY"
36000	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36001	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36002	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36003	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36004	//   "NEXT_HOP_NOT_RUNNING"
36005	//   "NOT_CRITICAL_ERROR"
36006	//   "NO_RESULTS_ON_PAGE"
36007	//   "REQUIRED_TOS_AGREEMENT"
36008	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36009	//   "RESOURCE_NOT_DELETED"
36010	//   "SCHEMA_VALIDATION_IGNORED"
36011	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36012	//   "UNDECLARED_PROPERTIES"
36013	//   "UNREACHABLE"
36014	Code string `json:"code,omitempty"`
36015
36016	// Data: [Output Only] Metadata about this warning in key: value format.
36017	// For example:
36018	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36019	Data []*SubnetworkAggregatedListWarningData `json:"data,omitempty"`
36020
36021	// Message: [Output Only] A human-readable description of the warning
36022	// code.
36023	Message string `json:"message,omitempty"`
36024
36025	// ForceSendFields is a list of field names (e.g. "Code") to
36026	// unconditionally include in API requests. By default, fields with
36027	// empty values are omitted from API requests. However, any non-pointer,
36028	// non-interface field appearing in ForceSendFields will be sent to the
36029	// server regardless of whether the field is empty or not. This may be
36030	// used to include empty fields in Patch requests.
36031	ForceSendFields []string `json:"-"`
36032
36033	// NullFields is a list of field names (e.g. "Code") to include in API
36034	// requests with the JSON null value. By default, fields with empty
36035	// values are omitted from API requests. However, any field with an
36036	// empty value appearing in NullFields will be sent to the server as
36037	// null. It is an error if a field in this list has a non-empty value.
36038	// This may be used to include null fields in Patch requests.
36039	NullFields []string `json:"-"`
36040}
36041
36042func (s *SubnetworkAggregatedListWarning) MarshalJSON() ([]byte, error) {
36043	type NoMethod SubnetworkAggregatedListWarning
36044	raw := NoMethod(*s)
36045	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36046}
36047
36048type SubnetworkAggregatedListWarningData struct {
36049	// Key: [Output Only] A key that provides more detail on the warning
36050	// being returned. For example, for warnings where there are no results
36051	// in a list request for a particular zone, this key might be scope and
36052	// the key value might be the zone name. Other examples might be a key
36053	// indicating a deprecated resource and a suggested replacement, or a
36054	// warning about invalid network settings (for example, if an instance
36055	// attempts to perform IP forwarding but is not enabled for IP
36056	// forwarding).
36057	Key string `json:"key,omitempty"`
36058
36059	// Value: [Output Only] A warning data value corresponding to the key.
36060	Value string `json:"value,omitempty"`
36061
36062	// ForceSendFields is a list of field names (e.g. "Key") to
36063	// unconditionally include in API requests. By default, fields with
36064	// empty values are omitted from API requests. However, any non-pointer,
36065	// non-interface field appearing in ForceSendFields will be sent to the
36066	// server regardless of whether the field is empty or not. This may be
36067	// used to include empty fields in Patch requests.
36068	ForceSendFields []string `json:"-"`
36069
36070	// NullFields is a list of field names (e.g. "Key") to include in API
36071	// requests with the JSON null value. By default, fields with empty
36072	// values are omitted from API requests. However, any field with an
36073	// empty value appearing in NullFields will be sent to the server as
36074	// null. It is an error if a field in this list has a non-empty value.
36075	// This may be used to include null fields in Patch requests.
36076	NullFields []string `json:"-"`
36077}
36078
36079func (s *SubnetworkAggregatedListWarningData) MarshalJSON() ([]byte, error) {
36080	type NoMethod SubnetworkAggregatedListWarningData
36081	raw := NoMethod(*s)
36082	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36083}
36084
36085// SubnetworkList: Contains a list of Subnetwork resources.
36086type SubnetworkList struct {
36087	// Id: [Output Only] Unique identifier for the resource; defined by the
36088	// server.
36089	Id string `json:"id,omitempty"`
36090
36091	// Items: A list of Subnetwork resources.
36092	Items []*Subnetwork `json:"items,omitempty"`
36093
36094	// Kind: [Output Only] Type of resource. Always compute#subnetworkList
36095	// for lists of subnetworks.
36096	Kind string `json:"kind,omitempty"`
36097
36098	// NextPageToken: [Output Only] This token allows you to get the next
36099	// page of results for list requests. If the number of results is larger
36100	// than maxResults, use the nextPageToken as a value for the query
36101	// parameter pageToken in the next list request. Subsequent list
36102	// requests will have their own nextPageToken to continue paging through
36103	// the results.
36104	NextPageToken string `json:"nextPageToken,omitempty"`
36105
36106	// SelfLink: [Output Only] Server-defined URL for this resource.
36107	SelfLink string `json:"selfLink,omitempty"`
36108
36109	// Warning: [Output Only] Informational warning message.
36110	Warning *SubnetworkListWarning `json:"warning,omitempty"`
36111
36112	// ServerResponse contains the HTTP response code and headers from the
36113	// server.
36114	googleapi.ServerResponse `json:"-"`
36115
36116	// ForceSendFields is a list of field names (e.g. "Id") to
36117	// unconditionally include in API requests. By default, fields with
36118	// empty values are omitted from API requests. However, any non-pointer,
36119	// non-interface field appearing in ForceSendFields will be sent to the
36120	// server regardless of whether the field is empty or not. This may be
36121	// used to include empty fields in Patch requests.
36122	ForceSendFields []string `json:"-"`
36123
36124	// NullFields is a list of field names (e.g. "Id") to include in API
36125	// requests with the JSON null value. By default, fields with empty
36126	// values are omitted from API requests. However, any field with an
36127	// empty value appearing in NullFields will be sent to the server as
36128	// null. It is an error if a field in this list has a non-empty value.
36129	// This may be used to include null fields in Patch requests.
36130	NullFields []string `json:"-"`
36131}
36132
36133func (s *SubnetworkList) MarshalJSON() ([]byte, error) {
36134	type NoMethod SubnetworkList
36135	raw := NoMethod(*s)
36136	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36137}
36138
36139// SubnetworkListWarning: [Output Only] Informational warning message.
36140type SubnetworkListWarning struct {
36141	// Code: [Output Only] A warning code, if applicable. For example,
36142	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36143	// the response.
36144	//
36145	// Possible values:
36146	//   "CLEANUP_FAILED"
36147	//   "DEPRECATED_RESOURCE_USED"
36148	//   "DEPRECATED_TYPE_USED"
36149	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36150	//   "EXPERIMENTAL_TYPE_USED"
36151	//   "EXTERNAL_API_WARNING"
36152	//   "FIELD_VALUE_OVERRIDEN"
36153	//   "INJECTED_KERNELS_DEPRECATED"
36154	//   "MISSING_TYPE_DEPENDENCY"
36155	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36156	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36157	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36158	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36159	//   "NEXT_HOP_NOT_RUNNING"
36160	//   "NOT_CRITICAL_ERROR"
36161	//   "NO_RESULTS_ON_PAGE"
36162	//   "REQUIRED_TOS_AGREEMENT"
36163	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36164	//   "RESOURCE_NOT_DELETED"
36165	//   "SCHEMA_VALIDATION_IGNORED"
36166	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36167	//   "UNDECLARED_PROPERTIES"
36168	//   "UNREACHABLE"
36169	Code string `json:"code,omitempty"`
36170
36171	// Data: [Output Only] Metadata about this warning in key: value format.
36172	// For example:
36173	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36174	Data []*SubnetworkListWarningData `json:"data,omitempty"`
36175
36176	// Message: [Output Only] A human-readable description of the warning
36177	// code.
36178	Message string `json:"message,omitempty"`
36179
36180	// ForceSendFields is a list of field names (e.g. "Code") to
36181	// unconditionally include in API requests. By default, fields with
36182	// empty values are omitted from API requests. However, any non-pointer,
36183	// non-interface field appearing in ForceSendFields will be sent to the
36184	// server regardless of whether the field is empty or not. This may be
36185	// used to include empty fields in Patch requests.
36186	ForceSendFields []string `json:"-"`
36187
36188	// NullFields is a list of field names (e.g. "Code") to include in API
36189	// requests with the JSON null value. By default, fields with empty
36190	// values are omitted from API requests. However, any field with an
36191	// empty value appearing in NullFields will be sent to the server as
36192	// null. It is an error if a field in this list has a non-empty value.
36193	// This may be used to include null fields in Patch requests.
36194	NullFields []string `json:"-"`
36195}
36196
36197func (s *SubnetworkListWarning) MarshalJSON() ([]byte, error) {
36198	type NoMethod SubnetworkListWarning
36199	raw := NoMethod(*s)
36200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36201}
36202
36203type SubnetworkListWarningData struct {
36204	// Key: [Output Only] A key that provides more detail on the warning
36205	// being returned. For example, for warnings where there are no results
36206	// in a list request for a particular zone, this key might be scope and
36207	// the key value might be the zone name. Other examples might be a key
36208	// indicating a deprecated resource and a suggested replacement, or a
36209	// warning about invalid network settings (for example, if an instance
36210	// attempts to perform IP forwarding but is not enabled for IP
36211	// forwarding).
36212	Key string `json:"key,omitempty"`
36213
36214	// Value: [Output Only] A warning data value corresponding to the key.
36215	Value string `json:"value,omitempty"`
36216
36217	// ForceSendFields is a list of field names (e.g. "Key") to
36218	// unconditionally include in API requests. By default, fields with
36219	// empty values are omitted from API requests. However, any non-pointer,
36220	// non-interface field appearing in ForceSendFields will be sent to the
36221	// server regardless of whether the field is empty or not. This may be
36222	// used to include empty fields in Patch requests.
36223	ForceSendFields []string `json:"-"`
36224
36225	// NullFields is a list of field names (e.g. "Key") to include in API
36226	// requests with the JSON null value. By default, fields with empty
36227	// values are omitted from API requests. However, any field with an
36228	// empty value appearing in NullFields will be sent to the server as
36229	// null. It is an error if a field in this list has a non-empty value.
36230	// This may be used to include null fields in Patch requests.
36231	NullFields []string `json:"-"`
36232}
36233
36234func (s *SubnetworkListWarningData) MarshalJSON() ([]byte, error) {
36235	type NoMethod SubnetworkListWarningData
36236	raw := NoMethod(*s)
36237	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36238}
36239
36240// SubnetworkLogConfig: The available logging options for this
36241// subnetwork.
36242type SubnetworkLogConfig struct {
36243	// AggregationInterval: Can only be specified if VPC flow logging for
36244	// this subnetwork is enabled. Toggles the aggregation interval for
36245	// collecting flow logs. Increasing the interval time will reduce the
36246	// amount of generated flow logs for long lasting connections. Default
36247	// is an interval of 5 seconds per connection.
36248	//
36249	// Possible values:
36250	//   "INTERVAL_10_MIN"
36251	//   "INTERVAL_15_MIN"
36252	//   "INTERVAL_1_MIN"
36253	//   "INTERVAL_30_SEC"
36254	//   "INTERVAL_5_MIN"
36255	//   "INTERVAL_5_SEC"
36256	AggregationInterval string `json:"aggregationInterval,omitempty"`
36257
36258	// Enable: Whether to enable flow logging for this subnetwork. If this
36259	// field is not explicitly set, it will not appear in get listings. If
36260	// not set the default behavior is to disable flow logging.
36261	Enable bool `json:"enable,omitempty"`
36262
36263	// FlowSampling: Can only be specified if VPC flow logging for this
36264	// subnetwork is enabled. The value of the field must be in [0, 1]. Set
36265	// the sampling rate of VPC flow logs within the subnetwork where 1.0
36266	// means all collected logs are reported and 0.0 means no logs are
36267	// reported. Default is 0.5, which means half of all collected logs are
36268	// reported.
36269	FlowSampling float64 `json:"flowSampling,omitempty"`
36270
36271	// Metadata: Can only be specified if VPC flow logs for this subnetwork
36272	// is enabled. Configures whether all, none or a subset of metadata
36273	// fields should be added to the reported VPC flow logs. Default is
36274	// INCLUDE_ALL_METADATA.
36275	//
36276	// Possible values:
36277	//   "EXCLUDE_ALL_METADATA"
36278	//   "INCLUDE_ALL_METADATA"
36279	Metadata string `json:"metadata,omitempty"`
36280
36281	// ForceSendFields is a list of field names (e.g. "AggregationInterval")
36282	// to unconditionally include in API requests. By default, fields with
36283	// empty values are omitted from API requests. However, any non-pointer,
36284	// non-interface field appearing in ForceSendFields will be sent to the
36285	// server regardless of whether the field is empty or not. This may be
36286	// used to include empty fields in Patch requests.
36287	ForceSendFields []string `json:"-"`
36288
36289	// NullFields is a list of field names (e.g. "AggregationInterval") to
36290	// include in API requests with the JSON null value. By default, fields
36291	// with empty values are omitted from API requests. However, any field
36292	// with an empty value appearing in NullFields will be sent to the
36293	// server as null. It is an error if a field in this list has a
36294	// non-empty value. This may be used to include null fields in Patch
36295	// requests.
36296	NullFields []string `json:"-"`
36297}
36298
36299func (s *SubnetworkLogConfig) MarshalJSON() ([]byte, error) {
36300	type NoMethod SubnetworkLogConfig
36301	raw := NoMethod(*s)
36302	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36303}
36304
36305func (s *SubnetworkLogConfig) UnmarshalJSON(data []byte) error {
36306	type NoMethod SubnetworkLogConfig
36307	var s1 struct {
36308		FlowSampling gensupport.JSONFloat64 `json:"flowSampling"`
36309		*NoMethod
36310	}
36311	s1.NoMethod = (*NoMethod)(s)
36312	if err := json.Unmarshal(data, &s1); err != nil {
36313		return err
36314	}
36315	s.FlowSampling = float64(s1.FlowSampling)
36316	return nil
36317}
36318
36319// SubnetworkSecondaryRange: Represents a secondary IP range of a
36320// subnetwork.
36321type SubnetworkSecondaryRange struct {
36322	// IpCidrRange: The range of IP addresses belonging to this subnetwork
36323	// secondary range. Provide this property when you create the
36324	// subnetwork. Ranges must be unique and non-overlapping with all
36325	// primary and secondary IP ranges within a network. Only IPv4 is
36326	// supported.
36327	IpCidrRange string `json:"ipCidrRange,omitempty"`
36328
36329	// RangeName: The name associated with this subnetwork secondary range,
36330	// used when adding an alias IP range to a VM instance. The name must be
36331	// 1-63 characters long, and comply with RFC1035. The name must be
36332	// unique within the subnetwork.
36333	RangeName string `json:"rangeName,omitempty"`
36334
36335	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
36336	// unconditionally include in API requests. By default, fields with
36337	// empty values are omitted from API requests. However, any non-pointer,
36338	// non-interface field appearing in ForceSendFields will be sent to the
36339	// server regardless of whether the field is empty or not. This may be
36340	// used to include empty fields in Patch requests.
36341	ForceSendFields []string `json:"-"`
36342
36343	// NullFields is a list of field names (e.g. "IpCidrRange") to include
36344	// in API requests with the JSON null value. By default, fields with
36345	// empty values are omitted from API requests. However, any field with
36346	// an empty value appearing in NullFields will be sent to the server as
36347	// null. It is an error if a field in this list has a non-empty value.
36348	// This may be used to include null fields in Patch requests.
36349	NullFields []string `json:"-"`
36350}
36351
36352func (s *SubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
36353	type NoMethod SubnetworkSecondaryRange
36354	raw := NoMethod(*s)
36355	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36356}
36357
36358type SubnetworksExpandIpCidrRangeRequest struct {
36359	// IpCidrRange: The IP (in CIDR format or netmask) of internal addresses
36360	// that are legal on this Subnetwork. This range should be disjoint from
36361	// other subnetworks within this network. This range can only be larger
36362	// than (i.e. a superset of) the range previously defined before the
36363	// update.
36364	IpCidrRange string `json:"ipCidrRange,omitempty"`
36365
36366	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
36367	// unconditionally include in API requests. By default, fields with
36368	// empty values are omitted from API requests. However, any non-pointer,
36369	// non-interface field appearing in ForceSendFields will be sent to the
36370	// server regardless of whether the field is empty or not. This may be
36371	// used to include empty fields in Patch requests.
36372	ForceSendFields []string `json:"-"`
36373
36374	// NullFields is a list of field names (e.g. "IpCidrRange") to include
36375	// in API requests with the JSON null value. By default, fields with
36376	// empty values are omitted from API requests. However, any field with
36377	// an empty value appearing in NullFields will be sent to the server as
36378	// null. It is an error if a field in this list has a non-empty value.
36379	// This may be used to include null fields in Patch requests.
36380	NullFields []string `json:"-"`
36381}
36382
36383func (s *SubnetworksExpandIpCidrRangeRequest) MarshalJSON() ([]byte, error) {
36384	type NoMethod SubnetworksExpandIpCidrRangeRequest
36385	raw := NoMethod(*s)
36386	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36387}
36388
36389type SubnetworksScopedList struct {
36390	// Subnetworks: A list of subnetworks contained in this scope.
36391	Subnetworks []*Subnetwork `json:"subnetworks,omitempty"`
36392
36393	// Warning: An informational warning that appears when the list of
36394	// addresses is empty.
36395	Warning *SubnetworksScopedListWarning `json:"warning,omitempty"`
36396
36397	// ForceSendFields is a list of field names (e.g. "Subnetworks") to
36398	// unconditionally include in API requests. By default, fields with
36399	// empty values are omitted from API requests. However, any non-pointer,
36400	// non-interface field appearing in ForceSendFields will be sent to the
36401	// server regardless of whether the field is empty or not. This may be
36402	// used to include empty fields in Patch requests.
36403	ForceSendFields []string `json:"-"`
36404
36405	// NullFields is a list of field names (e.g. "Subnetworks") to include
36406	// in API requests with the JSON null value. By default, fields with
36407	// empty values are omitted from API requests. However, any field with
36408	// an empty value appearing in NullFields will be sent to the server as
36409	// null. It is an error if a field in this list has a non-empty value.
36410	// This may be used to include null fields in Patch requests.
36411	NullFields []string `json:"-"`
36412}
36413
36414func (s *SubnetworksScopedList) MarshalJSON() ([]byte, error) {
36415	type NoMethod SubnetworksScopedList
36416	raw := NoMethod(*s)
36417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36418}
36419
36420// SubnetworksScopedListWarning: An informational warning that appears
36421// when the list of addresses is empty.
36422type SubnetworksScopedListWarning struct {
36423	// Code: [Output Only] A warning code, if applicable. For example,
36424	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36425	// the response.
36426	//
36427	// Possible values:
36428	//   "CLEANUP_FAILED"
36429	//   "DEPRECATED_RESOURCE_USED"
36430	//   "DEPRECATED_TYPE_USED"
36431	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36432	//   "EXPERIMENTAL_TYPE_USED"
36433	//   "EXTERNAL_API_WARNING"
36434	//   "FIELD_VALUE_OVERRIDEN"
36435	//   "INJECTED_KERNELS_DEPRECATED"
36436	//   "MISSING_TYPE_DEPENDENCY"
36437	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36438	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36439	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36440	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36441	//   "NEXT_HOP_NOT_RUNNING"
36442	//   "NOT_CRITICAL_ERROR"
36443	//   "NO_RESULTS_ON_PAGE"
36444	//   "REQUIRED_TOS_AGREEMENT"
36445	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36446	//   "RESOURCE_NOT_DELETED"
36447	//   "SCHEMA_VALIDATION_IGNORED"
36448	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36449	//   "UNDECLARED_PROPERTIES"
36450	//   "UNREACHABLE"
36451	Code string `json:"code,omitempty"`
36452
36453	// Data: [Output Only] Metadata about this warning in key: value format.
36454	// For example:
36455	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36456	Data []*SubnetworksScopedListWarningData `json:"data,omitempty"`
36457
36458	// Message: [Output Only] A human-readable description of the warning
36459	// code.
36460	Message string `json:"message,omitempty"`
36461
36462	// ForceSendFields is a list of field names (e.g. "Code") to
36463	// unconditionally include in API requests. By default, fields with
36464	// empty values are omitted from API requests. However, any non-pointer,
36465	// non-interface field appearing in ForceSendFields will be sent to the
36466	// server regardless of whether the field is empty or not. This may be
36467	// used to include empty fields in Patch requests.
36468	ForceSendFields []string `json:"-"`
36469
36470	// NullFields is a list of field names (e.g. "Code") to include in API
36471	// requests with the JSON null value. By default, fields with empty
36472	// values are omitted from API requests. However, any field with an
36473	// empty value appearing in NullFields will be sent to the server as
36474	// null. It is an error if a field in this list has a non-empty value.
36475	// This may be used to include null fields in Patch requests.
36476	NullFields []string `json:"-"`
36477}
36478
36479func (s *SubnetworksScopedListWarning) MarshalJSON() ([]byte, error) {
36480	type NoMethod SubnetworksScopedListWarning
36481	raw := NoMethod(*s)
36482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36483}
36484
36485type SubnetworksScopedListWarningData struct {
36486	// Key: [Output Only] A key that provides more detail on the warning
36487	// being returned. For example, for warnings where there are no results
36488	// in a list request for a particular zone, this key might be scope and
36489	// the key value might be the zone name. Other examples might be a key
36490	// indicating a deprecated resource and a suggested replacement, or a
36491	// warning about invalid network settings (for example, if an instance
36492	// attempts to perform IP forwarding but is not enabled for IP
36493	// forwarding).
36494	Key string `json:"key,omitempty"`
36495
36496	// Value: [Output Only] A warning data value corresponding to the key.
36497	Value string `json:"value,omitempty"`
36498
36499	// ForceSendFields is a list of field names (e.g. "Key") to
36500	// unconditionally include in API requests. By default, fields with
36501	// empty values are omitted from API requests. However, any non-pointer,
36502	// non-interface field appearing in ForceSendFields will be sent to the
36503	// server regardless of whether the field is empty or not. This may be
36504	// used to include empty fields in Patch requests.
36505	ForceSendFields []string `json:"-"`
36506
36507	// NullFields is a list of field names (e.g. "Key") to include in API
36508	// requests with the JSON null value. By default, fields with empty
36509	// values are omitted from API requests. However, any field with an
36510	// empty value appearing in NullFields will be sent to the server as
36511	// null. It is an error if a field in this list has a non-empty value.
36512	// This may be used to include null fields in Patch requests.
36513	NullFields []string `json:"-"`
36514}
36515
36516func (s *SubnetworksScopedListWarningData) MarshalJSON() ([]byte, error) {
36517	type NoMethod SubnetworksScopedListWarningData
36518	raw := NoMethod(*s)
36519	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36520}
36521
36522type SubnetworksSetPrivateIpGoogleAccessRequest struct {
36523	PrivateIpGoogleAccess bool `json:"privateIpGoogleAccess,omitempty"`
36524
36525	// ForceSendFields is a list of field names (e.g.
36526	// "PrivateIpGoogleAccess") to unconditionally include in API requests.
36527	// By default, fields with empty values are omitted from API requests.
36528	// However, any non-pointer, non-interface field appearing in
36529	// ForceSendFields will be sent to the server regardless of whether the
36530	// field is empty or not. This may be used to include empty fields in
36531	// Patch requests.
36532	ForceSendFields []string `json:"-"`
36533
36534	// NullFields is a list of field names (e.g. "PrivateIpGoogleAccess") to
36535	// include in API requests with the JSON null value. By default, fields
36536	// with empty values are omitted from API requests. However, any field
36537	// with an empty value appearing in NullFields will be sent to the
36538	// server as null. It is an error if a field in this list has a
36539	// non-empty value. This may be used to include null fields in Patch
36540	// requests.
36541	NullFields []string `json:"-"`
36542}
36543
36544func (s *SubnetworksSetPrivateIpGoogleAccessRequest) MarshalJSON() ([]byte, error) {
36545	type NoMethod SubnetworksSetPrivateIpGoogleAccessRequest
36546	raw := NoMethod(*s)
36547	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36548}
36549
36550type TCPHealthCheck struct {
36551	// Port: The TCP port number for the health check request. The default
36552	// value is 80. Valid values are 1 through 65535.
36553	Port int64 `json:"port,omitempty"`
36554
36555	// PortName: Port name as defined in InstanceGroup#NamedPort#name. If
36556	// both port and port_name are defined, port takes precedence.
36557	PortName string `json:"portName,omitempty"`
36558
36559	// PortSpecification: Specifies how port is selected for health
36560	// checking, can be one of following values:
36561	// USE_FIXED_PORT: The port number in port is used for health
36562	// checking.
36563	// USE_NAMED_PORT: The portName is used for health
36564	// checking.
36565	// USE_SERVING_PORT: For NetworkEndpointGroup, the port specified for
36566	// each network endpoint is used for health checking. For other
36567	// backends, the port or named port specified in the Backend Service is
36568	// used for health checking.
36569	//
36570	//
36571	// If not specified, TCP health check follows behavior specified in port
36572	// and portName fields.
36573	//
36574	// Possible values:
36575	//   "USE_FIXED_PORT"
36576	//   "USE_NAMED_PORT"
36577	//   "USE_SERVING_PORT"
36578	PortSpecification string `json:"portSpecification,omitempty"`
36579
36580	// ProxyHeader: Specifies the type of proxy header to append before
36581	// sending data to the backend, either NONE or PROXY_V1. The default is
36582	// NONE.
36583	//
36584	// Possible values:
36585	//   "NONE"
36586	//   "PROXY_V1"
36587	ProxyHeader string `json:"proxyHeader,omitempty"`
36588
36589	// Request: The application data to send once the TCP connection has
36590	// been established (default value is empty). If both request and
36591	// response are empty, the connection establishment alone will indicate
36592	// health. The request data can only be ASCII.
36593	Request string `json:"request,omitempty"`
36594
36595	// Response: The bytes to match against the beginning of the response
36596	// data. If left empty (the default value), any response will indicate
36597	// health. The response data can only be ASCII.
36598	Response string `json:"response,omitempty"`
36599
36600	// ForceSendFields is a list of field names (e.g. "Port") to
36601	// unconditionally include in API requests. By default, fields with
36602	// empty values are omitted from API requests. However, any non-pointer,
36603	// non-interface field appearing in ForceSendFields will be sent to the
36604	// server regardless of whether the field is empty or not. This may be
36605	// used to include empty fields in Patch requests.
36606	ForceSendFields []string `json:"-"`
36607
36608	// NullFields is a list of field names (e.g. "Port") to include in API
36609	// requests with the JSON null value. By default, fields with empty
36610	// values are omitted from API requests. However, any field with an
36611	// empty value appearing in NullFields will be sent to the server as
36612	// null. It is an error if a field in this list has a non-empty value.
36613	// This may be used to include null fields in Patch requests.
36614	NullFields []string `json:"-"`
36615}
36616
36617func (s *TCPHealthCheck) MarshalJSON() ([]byte, error) {
36618	type NoMethod TCPHealthCheck
36619	raw := NoMethod(*s)
36620	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36621}
36622
36623// Tags: A set of instance tags.
36624type Tags struct {
36625	// Fingerprint: Specifies a fingerprint for this request, which is
36626	// essentially a hash of the tags' contents and used for optimistic
36627	// locking. The fingerprint is initially generated by Compute Engine and
36628	// changes after every request to modify or update tags. You must always
36629	// provide an up-to-date fingerprint hash in order to update or change
36630	// tags.
36631	//
36632	// To see the latest fingerprint, make get() request to the instance.
36633	Fingerprint string `json:"fingerprint,omitempty"`
36634
36635	// Items: An array of tags. Each tag must be 1-63 characters long, and
36636	// comply with RFC1035.
36637	Items []string `json:"items,omitempty"`
36638
36639	// ForceSendFields is a list of field names (e.g. "Fingerprint") to
36640	// unconditionally include in API requests. By default, fields with
36641	// empty values are omitted from API requests. However, any non-pointer,
36642	// non-interface field appearing in ForceSendFields will be sent to the
36643	// server regardless of whether the field is empty or not. This may be
36644	// used to include empty fields in Patch requests.
36645	ForceSendFields []string `json:"-"`
36646
36647	// NullFields is a list of field names (e.g. "Fingerprint") to include
36648	// in API requests with the JSON null value. By default, fields with
36649	// empty values are omitted from API requests. However, any field with
36650	// an empty value appearing in NullFields will be sent to the server as
36651	// null. It is an error if a field in this list has a non-empty value.
36652	// This may be used to include null fields in Patch requests.
36653	NullFields []string `json:"-"`
36654}
36655
36656func (s *Tags) MarshalJSON() ([]byte, error) {
36657	type NoMethod Tags
36658	raw := NoMethod(*s)
36659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36660}
36661
36662type TargetHttpProxiesScopedList struct {
36663	// TargetHttpProxies: A list of TargetHttpProxies contained in this
36664	// scope.
36665	TargetHttpProxies []*TargetHttpProxy `json:"targetHttpProxies,omitempty"`
36666
36667	// Warning: Informational warning which replaces the list of backend
36668	// services when the list is empty.
36669	Warning *TargetHttpProxiesScopedListWarning `json:"warning,omitempty"`
36670
36671	// ForceSendFields is a list of field names (e.g. "TargetHttpProxies")
36672	// to unconditionally include in API requests. By default, fields with
36673	// empty values are omitted from API requests. However, any non-pointer,
36674	// non-interface field appearing in ForceSendFields will be sent to the
36675	// server regardless of whether the field is empty or not. This may be
36676	// used to include empty fields in Patch requests.
36677	ForceSendFields []string `json:"-"`
36678
36679	// NullFields is a list of field names (e.g. "TargetHttpProxies") to
36680	// include in API requests with the JSON null value. By default, fields
36681	// with empty values are omitted from API requests. However, any field
36682	// with an empty value appearing in NullFields will be sent to the
36683	// server as null. It is an error if a field in this list has a
36684	// non-empty value. This may be used to include null fields in Patch
36685	// requests.
36686	NullFields []string `json:"-"`
36687}
36688
36689func (s *TargetHttpProxiesScopedList) MarshalJSON() ([]byte, error) {
36690	type NoMethod TargetHttpProxiesScopedList
36691	raw := NoMethod(*s)
36692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36693}
36694
36695// TargetHttpProxiesScopedListWarning: Informational warning which
36696// replaces the list of backend services when the list is empty.
36697type TargetHttpProxiesScopedListWarning struct {
36698	// Code: [Output Only] A warning code, if applicable. For example,
36699	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36700	// the response.
36701	//
36702	// Possible values:
36703	//   "CLEANUP_FAILED"
36704	//   "DEPRECATED_RESOURCE_USED"
36705	//   "DEPRECATED_TYPE_USED"
36706	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36707	//   "EXPERIMENTAL_TYPE_USED"
36708	//   "EXTERNAL_API_WARNING"
36709	//   "FIELD_VALUE_OVERRIDEN"
36710	//   "INJECTED_KERNELS_DEPRECATED"
36711	//   "MISSING_TYPE_DEPENDENCY"
36712	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36713	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36714	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36715	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36716	//   "NEXT_HOP_NOT_RUNNING"
36717	//   "NOT_CRITICAL_ERROR"
36718	//   "NO_RESULTS_ON_PAGE"
36719	//   "REQUIRED_TOS_AGREEMENT"
36720	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36721	//   "RESOURCE_NOT_DELETED"
36722	//   "SCHEMA_VALIDATION_IGNORED"
36723	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36724	//   "UNDECLARED_PROPERTIES"
36725	//   "UNREACHABLE"
36726	Code string `json:"code,omitempty"`
36727
36728	// Data: [Output Only] Metadata about this warning in key: value format.
36729	// For example:
36730	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36731	Data []*TargetHttpProxiesScopedListWarningData `json:"data,omitempty"`
36732
36733	// Message: [Output Only] A human-readable description of the warning
36734	// code.
36735	Message string `json:"message,omitempty"`
36736
36737	// ForceSendFields is a list of field names (e.g. "Code") to
36738	// unconditionally include in API requests. By default, fields with
36739	// empty values are omitted from API requests. However, any non-pointer,
36740	// non-interface field appearing in ForceSendFields will be sent to the
36741	// server regardless of whether the field is empty or not. This may be
36742	// used to include empty fields in Patch requests.
36743	ForceSendFields []string `json:"-"`
36744
36745	// NullFields is a list of field names (e.g. "Code") to include in API
36746	// requests with the JSON null value. By default, fields with empty
36747	// values are omitted from API requests. However, any field with an
36748	// empty value appearing in NullFields will be sent to the server as
36749	// null. It is an error if a field in this list has a non-empty value.
36750	// This may be used to include null fields in Patch requests.
36751	NullFields []string `json:"-"`
36752}
36753
36754func (s *TargetHttpProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
36755	type NoMethod TargetHttpProxiesScopedListWarning
36756	raw := NoMethod(*s)
36757	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36758}
36759
36760type TargetHttpProxiesScopedListWarningData struct {
36761	// Key: [Output Only] A key that provides more detail on the warning
36762	// being returned. For example, for warnings where there are no results
36763	// in a list request for a particular zone, this key might be scope and
36764	// the key value might be the zone name. Other examples might be a key
36765	// indicating a deprecated resource and a suggested replacement, or a
36766	// warning about invalid network settings (for example, if an instance
36767	// attempts to perform IP forwarding but is not enabled for IP
36768	// forwarding).
36769	Key string `json:"key,omitempty"`
36770
36771	// Value: [Output Only] A warning data value corresponding to the key.
36772	Value string `json:"value,omitempty"`
36773
36774	// ForceSendFields is a list of field names (e.g. "Key") to
36775	// unconditionally include in API requests. By default, fields with
36776	// empty values are omitted from API requests. However, any non-pointer,
36777	// non-interface field appearing in ForceSendFields will be sent to the
36778	// server regardless of whether the field is empty or not. This may be
36779	// used to include empty fields in Patch requests.
36780	ForceSendFields []string `json:"-"`
36781
36782	// NullFields is a list of field names (e.g. "Key") to include in API
36783	// requests with the JSON null value. By default, fields with empty
36784	// values are omitted from API requests. However, any field with an
36785	// empty value appearing in NullFields will be sent to the server as
36786	// null. It is an error if a field in this list has a non-empty value.
36787	// This may be used to include null fields in Patch requests.
36788	NullFields []string `json:"-"`
36789}
36790
36791func (s *TargetHttpProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
36792	type NoMethod TargetHttpProxiesScopedListWarningData
36793	raw := NoMethod(*s)
36794	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36795}
36796
36797// TargetHttpProxy: Represents a Target HTTP Proxy resource.
36798//
36799// Google Compute Engine has two Target HTTP Proxy resources:
36800//
36801// * [Global](/compute/docs/reference/rest/latest/targetHttpProxies) *
36802// [Regional](/compute/docs/reference/rest/latest/regionTargetHttpProxies
36803// )
36804//
36805// A target HTTP proxy is a component of GCP HTTP load balancers.
36806//
36807// * targetHttpProxies are used by external HTTP load balancers and
36808// Traffic Director. * regionTargetHttpProxies are used by internal HTTP
36809// load balancers.
36810//
36811// Forwarding rules reference a target HTTP proxy, and the target proxy
36812// then references a URL map. For more information, read Using Target
36813// Proxies and  Forwarding rule concepts. (== resource_for
36814// {$api_version}.targetHttpProxies ==) (== resource_for
36815// {$api_version}.regionTargetHttpProxies ==)
36816type TargetHttpProxy struct {
36817	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
36818	// format.
36819	CreationTimestamp string `json:"creationTimestamp,omitempty"`
36820
36821	// Description: An optional description of this resource. Provide this
36822	// property when you create the resource.
36823	Description string `json:"description,omitempty"`
36824
36825	// Id: [Output Only] The unique identifier for the resource. This
36826	// identifier is defined by the server.
36827	Id uint64 `json:"id,omitempty,string"`
36828
36829	// Kind: [Output Only] Type of resource. Always compute#targetHttpProxy
36830	// for target HTTP proxies.
36831	Kind string `json:"kind,omitempty"`
36832
36833	// Name: Name of the resource. Provided by the client when the resource
36834	// is created. The name must be 1-63 characters long, and comply with
36835	// RFC1035. Specifically, the name must be 1-63 characters long and
36836	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
36837	// the first character must be a lowercase letter, and all following
36838	// characters must be a dash, lowercase letter, or digit, except the
36839	// last character, which cannot be a dash.
36840	Name string `json:"name,omitempty"`
36841
36842	// Region: [Output Only] URL of the region where the regional Target
36843	// HTTP Proxy resides. This field is not applicable to global Target
36844	// HTTP Proxies.
36845	Region string `json:"region,omitempty"`
36846
36847	// SelfLink: [Output Only] Server-defined URL for the resource.
36848	SelfLink string `json:"selfLink,omitempty"`
36849
36850	// UrlMap: URL to the UrlMap resource that defines the mapping from URL
36851	// to the BackendService.
36852	UrlMap string `json:"urlMap,omitempty"`
36853
36854	// ServerResponse contains the HTTP response code and headers from the
36855	// server.
36856	googleapi.ServerResponse `json:"-"`
36857
36858	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
36859	// to unconditionally include in API requests. By default, fields with
36860	// empty values are omitted from API requests. However, any non-pointer,
36861	// non-interface field appearing in ForceSendFields will be sent to the
36862	// server regardless of whether the field is empty or not. This may be
36863	// used to include empty fields in Patch requests.
36864	ForceSendFields []string `json:"-"`
36865
36866	// NullFields is a list of field names (e.g. "CreationTimestamp") to
36867	// include in API requests with the JSON null value. By default, fields
36868	// with empty values are omitted from API requests. However, any field
36869	// with an empty value appearing in NullFields will be sent to the
36870	// server as null. It is an error if a field in this list has a
36871	// non-empty value. This may be used to include null fields in Patch
36872	// requests.
36873	NullFields []string `json:"-"`
36874}
36875
36876func (s *TargetHttpProxy) MarshalJSON() ([]byte, error) {
36877	type NoMethod TargetHttpProxy
36878	raw := NoMethod(*s)
36879	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36880}
36881
36882type TargetHttpProxyAggregatedList struct {
36883	// Id: [Output Only] Unique identifier for the resource; defined by the
36884	// server.
36885	Id string `json:"id,omitempty"`
36886
36887	// Items: A list of TargetHttpProxiesScopedList resources.
36888	Items map[string]TargetHttpProxiesScopedList `json:"items,omitempty"`
36889
36890	// Kind: [Output Only] Type of resource. Always
36891	// compute#targetHttpProxyAggregatedList for lists of Target HTTP
36892	// Proxies.
36893	Kind string `json:"kind,omitempty"`
36894
36895	// NextPageToken: [Output Only] This token allows you to get the next
36896	// page of results for list requests. If the number of results is larger
36897	// than maxResults, use the nextPageToken as a value for the query
36898	// parameter pageToken in the next list request. Subsequent list
36899	// requests will have their own nextPageToken to continue paging through
36900	// the results.
36901	NextPageToken string `json:"nextPageToken,omitempty"`
36902
36903	// SelfLink: [Output Only] Server-defined URL for this resource.
36904	SelfLink string `json:"selfLink,omitempty"`
36905
36906	// Warning: [Output Only] Informational warning message.
36907	Warning *TargetHttpProxyAggregatedListWarning `json:"warning,omitempty"`
36908
36909	// ServerResponse contains the HTTP response code and headers from the
36910	// server.
36911	googleapi.ServerResponse `json:"-"`
36912
36913	// ForceSendFields is a list of field names (e.g. "Id") to
36914	// unconditionally include in API requests. By default, fields with
36915	// empty values are omitted from API requests. However, any non-pointer,
36916	// non-interface field appearing in ForceSendFields will be sent to the
36917	// server regardless of whether the field is empty or not. This may be
36918	// used to include empty fields in Patch requests.
36919	ForceSendFields []string `json:"-"`
36920
36921	// NullFields is a list of field names (e.g. "Id") to include in API
36922	// requests with the JSON null value. By default, fields with empty
36923	// values are omitted from API requests. However, any field with an
36924	// empty value appearing in NullFields will be sent to the server as
36925	// null. It is an error if a field in this list has a non-empty value.
36926	// This may be used to include null fields in Patch requests.
36927	NullFields []string `json:"-"`
36928}
36929
36930func (s *TargetHttpProxyAggregatedList) MarshalJSON() ([]byte, error) {
36931	type NoMethod TargetHttpProxyAggregatedList
36932	raw := NoMethod(*s)
36933	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36934}
36935
36936// TargetHttpProxyAggregatedListWarning: [Output Only] Informational
36937// warning message.
36938type TargetHttpProxyAggregatedListWarning struct {
36939	// Code: [Output Only] A warning code, if applicable. For example,
36940	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
36941	// the response.
36942	//
36943	// Possible values:
36944	//   "CLEANUP_FAILED"
36945	//   "DEPRECATED_RESOURCE_USED"
36946	//   "DEPRECATED_TYPE_USED"
36947	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
36948	//   "EXPERIMENTAL_TYPE_USED"
36949	//   "EXTERNAL_API_WARNING"
36950	//   "FIELD_VALUE_OVERRIDEN"
36951	//   "INJECTED_KERNELS_DEPRECATED"
36952	//   "MISSING_TYPE_DEPENDENCY"
36953	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
36954	//   "NEXT_HOP_CANNOT_IP_FORWARD"
36955	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
36956	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
36957	//   "NEXT_HOP_NOT_RUNNING"
36958	//   "NOT_CRITICAL_ERROR"
36959	//   "NO_RESULTS_ON_PAGE"
36960	//   "REQUIRED_TOS_AGREEMENT"
36961	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
36962	//   "RESOURCE_NOT_DELETED"
36963	//   "SCHEMA_VALIDATION_IGNORED"
36964	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
36965	//   "UNDECLARED_PROPERTIES"
36966	//   "UNREACHABLE"
36967	Code string `json:"code,omitempty"`
36968
36969	// Data: [Output Only] Metadata about this warning in key: value format.
36970	// For example:
36971	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
36972	Data []*TargetHttpProxyAggregatedListWarningData `json:"data,omitempty"`
36973
36974	// Message: [Output Only] A human-readable description of the warning
36975	// code.
36976	Message string `json:"message,omitempty"`
36977
36978	// ForceSendFields is a list of field names (e.g. "Code") to
36979	// unconditionally include in API requests. By default, fields with
36980	// empty values are omitted from API requests. However, any non-pointer,
36981	// non-interface field appearing in ForceSendFields will be sent to the
36982	// server regardless of whether the field is empty or not. This may be
36983	// used to include empty fields in Patch requests.
36984	ForceSendFields []string `json:"-"`
36985
36986	// NullFields is a list of field names (e.g. "Code") to include in API
36987	// requests with the JSON null value. By default, fields with empty
36988	// values are omitted from API requests. However, any field with an
36989	// empty value appearing in NullFields will be sent to the server as
36990	// null. It is an error if a field in this list has a non-empty value.
36991	// This may be used to include null fields in Patch requests.
36992	NullFields []string `json:"-"`
36993}
36994
36995func (s *TargetHttpProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
36996	type NoMethod TargetHttpProxyAggregatedListWarning
36997	raw := NoMethod(*s)
36998	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
36999}
37000
37001type TargetHttpProxyAggregatedListWarningData struct {
37002	// Key: [Output Only] A key that provides more detail on the warning
37003	// being returned. For example, for warnings where there are no results
37004	// in a list request for a particular zone, this key might be scope and
37005	// the key value might be the zone name. Other examples might be a key
37006	// indicating a deprecated resource and a suggested replacement, or a
37007	// warning about invalid network settings (for example, if an instance
37008	// attempts to perform IP forwarding but is not enabled for IP
37009	// forwarding).
37010	Key string `json:"key,omitempty"`
37011
37012	// Value: [Output Only] A warning data value corresponding to the key.
37013	Value string `json:"value,omitempty"`
37014
37015	// ForceSendFields is a list of field names (e.g. "Key") to
37016	// unconditionally include in API requests. By default, fields with
37017	// empty values are omitted from API requests. However, any non-pointer,
37018	// non-interface field appearing in ForceSendFields will be sent to the
37019	// server regardless of whether the field is empty or not. This may be
37020	// used to include empty fields in Patch requests.
37021	ForceSendFields []string `json:"-"`
37022
37023	// NullFields is a list of field names (e.g. "Key") to include in API
37024	// requests with the JSON null value. By default, fields with empty
37025	// values are omitted from API requests. However, any field with an
37026	// empty value appearing in NullFields will be sent to the server as
37027	// null. It is an error if a field in this list has a non-empty value.
37028	// This may be used to include null fields in Patch requests.
37029	NullFields []string `json:"-"`
37030}
37031
37032func (s *TargetHttpProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
37033	type NoMethod TargetHttpProxyAggregatedListWarningData
37034	raw := NoMethod(*s)
37035	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37036}
37037
37038// TargetHttpProxyList: A list of TargetHttpProxy resources.
37039type TargetHttpProxyList struct {
37040	// Id: [Output Only] Unique identifier for the resource; defined by the
37041	// server.
37042	Id string `json:"id,omitempty"`
37043
37044	// Items: A list of TargetHttpProxy resources.
37045	Items []*TargetHttpProxy `json:"items,omitempty"`
37046
37047	// Kind: Type of resource. Always compute#targetHttpProxyList for lists
37048	// of target HTTP proxies.
37049	Kind string `json:"kind,omitempty"`
37050
37051	// NextPageToken: [Output Only] This token allows you to get the next
37052	// page of results for list requests. If the number of results is larger
37053	// than maxResults, use the nextPageToken as a value for the query
37054	// parameter pageToken in the next list request. Subsequent list
37055	// requests will have their own nextPageToken to continue paging through
37056	// the results.
37057	NextPageToken string `json:"nextPageToken,omitempty"`
37058
37059	// SelfLink: [Output Only] Server-defined URL for this resource.
37060	SelfLink string `json:"selfLink,omitempty"`
37061
37062	// Warning: [Output Only] Informational warning message.
37063	Warning *TargetHttpProxyListWarning `json:"warning,omitempty"`
37064
37065	// ServerResponse contains the HTTP response code and headers from the
37066	// server.
37067	googleapi.ServerResponse `json:"-"`
37068
37069	// ForceSendFields is a list of field names (e.g. "Id") 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. "Id") to include in API
37078	// requests with the JSON null value. By default, fields with empty
37079	// values are omitted from API requests. However, any field with an
37080	// empty value appearing in NullFields will be sent to the server as
37081	// null. It is an error if a field in this list has a non-empty value.
37082	// This may be used to include null fields in Patch requests.
37083	NullFields []string `json:"-"`
37084}
37085
37086func (s *TargetHttpProxyList) MarshalJSON() ([]byte, error) {
37087	type NoMethod TargetHttpProxyList
37088	raw := NoMethod(*s)
37089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37090}
37091
37092// TargetHttpProxyListWarning: [Output Only] Informational warning
37093// message.
37094type TargetHttpProxyListWarning struct {
37095	// Code: [Output Only] A warning code, if applicable. For example,
37096	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37097	// the response.
37098	//
37099	// Possible values:
37100	//   "CLEANUP_FAILED"
37101	//   "DEPRECATED_RESOURCE_USED"
37102	//   "DEPRECATED_TYPE_USED"
37103	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37104	//   "EXPERIMENTAL_TYPE_USED"
37105	//   "EXTERNAL_API_WARNING"
37106	//   "FIELD_VALUE_OVERRIDEN"
37107	//   "INJECTED_KERNELS_DEPRECATED"
37108	//   "MISSING_TYPE_DEPENDENCY"
37109	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37110	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37111	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37112	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37113	//   "NEXT_HOP_NOT_RUNNING"
37114	//   "NOT_CRITICAL_ERROR"
37115	//   "NO_RESULTS_ON_PAGE"
37116	//   "REQUIRED_TOS_AGREEMENT"
37117	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37118	//   "RESOURCE_NOT_DELETED"
37119	//   "SCHEMA_VALIDATION_IGNORED"
37120	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37121	//   "UNDECLARED_PROPERTIES"
37122	//   "UNREACHABLE"
37123	Code string `json:"code,omitempty"`
37124
37125	// Data: [Output Only] Metadata about this warning in key: value format.
37126	// For example:
37127	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37128	Data []*TargetHttpProxyListWarningData `json:"data,omitempty"`
37129
37130	// Message: [Output Only] A human-readable description of the warning
37131	// code.
37132	Message string `json:"message,omitempty"`
37133
37134	// ForceSendFields is a list of field names (e.g. "Code") to
37135	// unconditionally include in API requests. By default, fields with
37136	// empty values are omitted from API requests. However, any non-pointer,
37137	// non-interface field appearing in ForceSendFields will be sent to the
37138	// server regardless of whether the field is empty or not. This may be
37139	// used to include empty fields in Patch requests.
37140	ForceSendFields []string `json:"-"`
37141
37142	// NullFields is a list of field names (e.g. "Code") to include in API
37143	// requests with the JSON null value. By default, fields with empty
37144	// values are omitted from API requests. However, any field with an
37145	// empty value appearing in NullFields will be sent to the server as
37146	// null. It is an error if a field in this list has a non-empty value.
37147	// This may be used to include null fields in Patch requests.
37148	NullFields []string `json:"-"`
37149}
37150
37151func (s *TargetHttpProxyListWarning) MarshalJSON() ([]byte, error) {
37152	type NoMethod TargetHttpProxyListWarning
37153	raw := NoMethod(*s)
37154	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37155}
37156
37157type TargetHttpProxyListWarningData struct {
37158	// Key: [Output Only] A key that provides more detail on the warning
37159	// being returned. For example, for warnings where there are no results
37160	// in a list request for a particular zone, this key might be scope and
37161	// the key value might be the zone name. Other examples might be a key
37162	// indicating a deprecated resource and a suggested replacement, or a
37163	// warning about invalid network settings (for example, if an instance
37164	// attempts to perform IP forwarding but is not enabled for IP
37165	// forwarding).
37166	Key string `json:"key,omitempty"`
37167
37168	// Value: [Output Only] A warning data value corresponding to the key.
37169	Value string `json:"value,omitempty"`
37170
37171	// ForceSendFields is a list of field names (e.g. "Key") to
37172	// unconditionally include in API requests. By default, fields with
37173	// empty values are omitted from API requests. However, any non-pointer,
37174	// non-interface field appearing in ForceSendFields will be sent to the
37175	// server regardless of whether the field is empty or not. This may be
37176	// used to include empty fields in Patch requests.
37177	ForceSendFields []string `json:"-"`
37178
37179	// NullFields is a list of field names (e.g. "Key") to include in API
37180	// requests with the JSON null value. By default, fields with empty
37181	// values are omitted from API requests. However, any field with an
37182	// empty value appearing in NullFields will be sent to the server as
37183	// null. It is an error if a field in this list has a non-empty value.
37184	// This may be used to include null fields in Patch requests.
37185	NullFields []string `json:"-"`
37186}
37187
37188func (s *TargetHttpProxyListWarningData) MarshalJSON() ([]byte, error) {
37189	type NoMethod TargetHttpProxyListWarningData
37190	raw := NoMethod(*s)
37191	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37192}
37193
37194type TargetHttpsProxiesScopedList struct {
37195	// TargetHttpsProxies: A list of TargetHttpsProxies contained in this
37196	// scope.
37197	TargetHttpsProxies []*TargetHttpsProxy `json:"targetHttpsProxies,omitempty"`
37198
37199	// Warning: Informational warning which replaces the list of backend
37200	// services when the list is empty.
37201	Warning *TargetHttpsProxiesScopedListWarning `json:"warning,omitempty"`
37202
37203	// ForceSendFields is a list of field names (e.g. "TargetHttpsProxies")
37204	// to unconditionally include in API requests. By default, fields with
37205	// empty values are omitted from API requests. However, any non-pointer,
37206	// non-interface field appearing in ForceSendFields will be sent to the
37207	// server regardless of whether the field is empty or not. This may be
37208	// used to include empty fields in Patch requests.
37209	ForceSendFields []string `json:"-"`
37210
37211	// NullFields is a list of field names (e.g. "TargetHttpsProxies") to
37212	// include in API requests with the JSON null value. By default, fields
37213	// with empty values are omitted from API requests. However, any field
37214	// with an empty value appearing in NullFields will be sent to the
37215	// server as null. It is an error if a field in this list has a
37216	// non-empty value. This may be used to include null fields in Patch
37217	// requests.
37218	NullFields []string `json:"-"`
37219}
37220
37221func (s *TargetHttpsProxiesScopedList) MarshalJSON() ([]byte, error) {
37222	type NoMethod TargetHttpsProxiesScopedList
37223	raw := NoMethod(*s)
37224	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37225}
37226
37227// TargetHttpsProxiesScopedListWarning: Informational warning which
37228// replaces the list of backend services when the list is empty.
37229type TargetHttpsProxiesScopedListWarning struct {
37230	// Code: [Output Only] A warning code, if applicable. For example,
37231	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37232	// the response.
37233	//
37234	// Possible values:
37235	//   "CLEANUP_FAILED"
37236	//   "DEPRECATED_RESOURCE_USED"
37237	//   "DEPRECATED_TYPE_USED"
37238	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37239	//   "EXPERIMENTAL_TYPE_USED"
37240	//   "EXTERNAL_API_WARNING"
37241	//   "FIELD_VALUE_OVERRIDEN"
37242	//   "INJECTED_KERNELS_DEPRECATED"
37243	//   "MISSING_TYPE_DEPENDENCY"
37244	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37245	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37246	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37247	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37248	//   "NEXT_HOP_NOT_RUNNING"
37249	//   "NOT_CRITICAL_ERROR"
37250	//   "NO_RESULTS_ON_PAGE"
37251	//   "REQUIRED_TOS_AGREEMENT"
37252	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37253	//   "RESOURCE_NOT_DELETED"
37254	//   "SCHEMA_VALIDATION_IGNORED"
37255	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37256	//   "UNDECLARED_PROPERTIES"
37257	//   "UNREACHABLE"
37258	Code string `json:"code,omitempty"`
37259
37260	// Data: [Output Only] Metadata about this warning in key: value format.
37261	// For example:
37262	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37263	Data []*TargetHttpsProxiesScopedListWarningData `json:"data,omitempty"`
37264
37265	// Message: [Output Only] A human-readable description of the warning
37266	// code.
37267	Message string `json:"message,omitempty"`
37268
37269	// ForceSendFields is a list of field names (e.g. "Code") to
37270	// unconditionally include in API requests. By default, fields with
37271	// empty values are omitted from API requests. However, any non-pointer,
37272	// non-interface field appearing in ForceSendFields will be sent to the
37273	// server regardless of whether the field is empty or not. This may be
37274	// used to include empty fields in Patch requests.
37275	ForceSendFields []string `json:"-"`
37276
37277	// NullFields is a list of field names (e.g. "Code") to include in API
37278	// requests with the JSON null value. By default, fields with empty
37279	// values are omitted from API requests. However, any field with an
37280	// empty value appearing in NullFields will be sent to the server as
37281	// null. It is an error if a field in this list has a non-empty value.
37282	// This may be used to include null fields in Patch requests.
37283	NullFields []string `json:"-"`
37284}
37285
37286func (s *TargetHttpsProxiesScopedListWarning) MarshalJSON() ([]byte, error) {
37287	type NoMethod TargetHttpsProxiesScopedListWarning
37288	raw := NoMethod(*s)
37289	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37290}
37291
37292type TargetHttpsProxiesScopedListWarningData struct {
37293	// Key: [Output Only] A key that provides more detail on the warning
37294	// being returned. For example, for warnings where there are no results
37295	// in a list request for a particular zone, this key might be scope and
37296	// the key value might be the zone name. Other examples might be a key
37297	// indicating a deprecated resource and a suggested replacement, or a
37298	// warning about invalid network settings (for example, if an instance
37299	// attempts to perform IP forwarding but is not enabled for IP
37300	// forwarding).
37301	Key string `json:"key,omitempty"`
37302
37303	// Value: [Output Only] A warning data value corresponding to the key.
37304	Value string `json:"value,omitempty"`
37305
37306	// ForceSendFields is a list of field names (e.g. "Key") to
37307	// unconditionally include in API requests. By default, fields with
37308	// empty values are omitted from API requests. However, any non-pointer,
37309	// non-interface field appearing in ForceSendFields will be sent to the
37310	// server regardless of whether the field is empty or not. This may be
37311	// used to include empty fields in Patch requests.
37312	ForceSendFields []string `json:"-"`
37313
37314	// NullFields is a list of field names (e.g. "Key") to include in API
37315	// requests with the JSON null value. By default, fields with empty
37316	// values are omitted from API requests. However, any field with an
37317	// empty value appearing in NullFields will be sent to the server as
37318	// null. It is an error if a field in this list has a non-empty value.
37319	// This may be used to include null fields in Patch requests.
37320	NullFields []string `json:"-"`
37321}
37322
37323func (s *TargetHttpsProxiesScopedListWarningData) MarshalJSON() ([]byte, error) {
37324	type NoMethod TargetHttpsProxiesScopedListWarningData
37325	raw := NoMethod(*s)
37326	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37327}
37328
37329type TargetHttpsProxiesSetQuicOverrideRequest struct {
37330	// QuicOverride: QUIC policy for the TargetHttpsProxy resource.
37331	//
37332	// Possible values:
37333	//   "DISABLE"
37334	//   "ENABLE"
37335	//   "NONE"
37336	QuicOverride string `json:"quicOverride,omitempty"`
37337
37338	// ForceSendFields is a list of field names (e.g. "QuicOverride") to
37339	// unconditionally include in API requests. By default, fields with
37340	// empty values are omitted from API requests. However, any non-pointer,
37341	// non-interface field appearing in ForceSendFields will be sent to the
37342	// server regardless of whether the field is empty or not. This may be
37343	// used to include empty fields in Patch requests.
37344	ForceSendFields []string `json:"-"`
37345
37346	// NullFields is a list of field names (e.g. "QuicOverride") to include
37347	// in API requests with the JSON null value. By default, fields with
37348	// empty values are omitted from API requests. However, any field with
37349	// an empty value appearing in NullFields will be sent to the server as
37350	// null. It is an error if a field in this list has a non-empty value.
37351	// This may be used to include null fields in Patch requests.
37352	NullFields []string `json:"-"`
37353}
37354
37355func (s *TargetHttpsProxiesSetQuicOverrideRequest) MarshalJSON() ([]byte, error) {
37356	type NoMethod TargetHttpsProxiesSetQuicOverrideRequest
37357	raw := NoMethod(*s)
37358	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37359}
37360
37361type TargetHttpsProxiesSetSslCertificatesRequest struct {
37362	// SslCertificates: New set of SslCertificate resources to associate
37363	// with this TargetHttpsProxy resource. Currently exactly one
37364	// SslCertificate resource must be specified.
37365	SslCertificates []string `json:"sslCertificates,omitempty"`
37366
37367	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
37368	// unconditionally include in API requests. By default, fields with
37369	// empty values are omitted from API requests. However, any non-pointer,
37370	// non-interface field appearing in ForceSendFields will be sent to the
37371	// server regardless of whether the field is empty or not. This may be
37372	// used to include empty fields in Patch requests.
37373	ForceSendFields []string `json:"-"`
37374
37375	// NullFields is a list of field names (e.g. "SslCertificates") to
37376	// include in API requests with the JSON null value. By default, fields
37377	// with empty values are omitted from API requests. However, any field
37378	// with an empty value appearing in NullFields will be sent to the
37379	// server as null. It is an error if a field in this list has a
37380	// non-empty value. This may be used to include null fields in Patch
37381	// requests.
37382	NullFields []string `json:"-"`
37383}
37384
37385func (s *TargetHttpsProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
37386	type NoMethod TargetHttpsProxiesSetSslCertificatesRequest
37387	raw := NoMethod(*s)
37388	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37389}
37390
37391// TargetHttpsProxy: Represents a Target HTTPS Proxy resource.
37392//
37393// Google Compute Engine has two Target HTTPS Proxy resources:
37394//
37395// * [Global](/compute/docs/reference/rest/latest/targetHttpsProxies) *
37396// [Regional](/compute/docs/reference/rest/latest/regionTargetHttpsProxie
37397// s)
37398//
37399// A target HTTPS proxy is a component of GCP HTTPS load balancers.
37400//
37401// * targetHttpsProxies are used by external HTTPS load balancers. *
37402// regionTargetHttpsProxies are used by internal HTTPS load
37403// balancers.
37404//
37405// Forwarding rules reference a target HTTPS proxy, and the target proxy
37406// then references a URL map. For more information, read Using Target
37407// Proxies and  Forwarding rule concepts. (== resource_for
37408// {$api_version}.targetHttpsProxies ==) (== resource_for
37409// {$api_version}.regionTargetHttpsProxies ==)
37410type TargetHttpsProxy struct {
37411	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37412	// format.
37413	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37414
37415	// Description: An optional description of this resource. Provide this
37416	// property when you create the resource.
37417	Description string `json:"description,omitempty"`
37418
37419	// Id: [Output Only] The unique identifier for the resource. This
37420	// identifier is defined by the server.
37421	Id uint64 `json:"id,omitempty,string"`
37422
37423	// Kind: [Output Only] Type of resource. Always compute#targetHttpsProxy
37424	// for target HTTPS proxies.
37425	Kind string `json:"kind,omitempty"`
37426
37427	// Name: Name of the resource. Provided by the client when the resource
37428	// is created. The name must be 1-63 characters long, and comply with
37429	// RFC1035. Specifically, the name must be 1-63 characters long and
37430	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37431	// the first character must be a lowercase letter, and all following
37432	// characters must be a dash, lowercase letter, or digit, except the
37433	// last character, which cannot be a dash.
37434	Name string `json:"name,omitempty"`
37435
37436	// QuicOverride: Specifies the QUIC override policy for this
37437	// TargetHttpsProxy resource. This setting determines whether the load
37438	// balancer attempts to negotiate QUIC with clients. You can specify
37439	// NONE, ENABLE, or DISABLE.
37440	// - When quic-override is set to NONE, Google manages whether QUIC is
37441	// used.
37442	// - When quic-override is set to ENABLE, the load balancer uses QUIC
37443	// when possible.
37444	// - When quic-override is set to DISABLE, the load balancer doesn't use
37445	// QUIC.
37446	// - If the quic-override flag is not specified, NONE is implied.
37447	// -
37448	//
37449	// Possible values:
37450	//   "DISABLE"
37451	//   "ENABLE"
37452	//   "NONE"
37453	QuicOverride string `json:"quicOverride,omitempty"`
37454
37455	// Region: [Output Only] URL of the region where the regional
37456	// TargetHttpsProxy resides. This field is not applicable to global
37457	// TargetHttpsProxies.
37458	Region string `json:"region,omitempty"`
37459
37460	// SelfLink: [Output Only] Server-defined URL for the resource.
37461	SelfLink string `json:"selfLink,omitempty"`
37462
37463	// SslCertificates: URLs to SslCertificate resources that are used to
37464	// authenticate connections between users and the load balancer. At
37465	// least one SSL certificate must be specified. Currently, you may
37466	// specify up to 15 SSL certificates.
37467	SslCertificates []string `json:"sslCertificates,omitempty"`
37468
37469	// SslPolicy: URL of SslPolicy resource that will be associated with the
37470	// TargetHttpsProxy resource. If not set, the TargetHttpsProxy resource
37471	// has no SSL policy configured.
37472	SslPolicy string `json:"sslPolicy,omitempty"`
37473
37474	// UrlMap: A fully-qualified or valid partial URL to the UrlMap resource
37475	// that defines the mapping from URL to the BackendService. For example,
37476	// the following are all valid URLs for specifying a URL map:
37477	// -
37478	// https://www.googleapis.compute/v1/projects/project/global/urlMaps/url-map
37479	// - projects/project/global/urlMaps/url-map
37480	// - global/urlMaps/url-map
37481	UrlMap string `json:"urlMap,omitempty"`
37482
37483	// ServerResponse contains the HTTP response code and headers from the
37484	// server.
37485	googleapi.ServerResponse `json:"-"`
37486
37487	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
37488	// to unconditionally include in API requests. By default, fields with
37489	// empty values are omitted from API requests. However, any non-pointer,
37490	// non-interface field appearing in ForceSendFields will be sent to the
37491	// server regardless of whether the field is empty or not. This may be
37492	// used to include empty fields in Patch requests.
37493	ForceSendFields []string `json:"-"`
37494
37495	// NullFields is a list of field names (e.g. "CreationTimestamp") to
37496	// include in API requests with the JSON null value. By default, fields
37497	// with empty values are omitted from API requests. However, any field
37498	// with an empty value appearing in NullFields will be sent to the
37499	// server as null. It is an error if a field in this list has a
37500	// non-empty value. This may be used to include null fields in Patch
37501	// requests.
37502	NullFields []string `json:"-"`
37503}
37504
37505func (s *TargetHttpsProxy) MarshalJSON() ([]byte, error) {
37506	type NoMethod TargetHttpsProxy
37507	raw := NoMethod(*s)
37508	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37509}
37510
37511type TargetHttpsProxyAggregatedList struct {
37512	// Id: [Output Only] Unique identifier for the resource; defined by the
37513	// server.
37514	Id string `json:"id,omitempty"`
37515
37516	// Items: A list of TargetHttpsProxiesScopedList resources.
37517	Items map[string]TargetHttpsProxiesScopedList `json:"items,omitempty"`
37518
37519	// Kind: [Output Only] Type of resource. Always
37520	// compute#targetHttpsProxyAggregatedList for lists of Target HTTP
37521	// Proxies.
37522	Kind string `json:"kind,omitempty"`
37523
37524	// NextPageToken: [Output Only] This token allows you to get the next
37525	// page of results for list requests. If the number of results is larger
37526	// than maxResults, use the nextPageToken as a value for the query
37527	// parameter pageToken in the next list request. Subsequent list
37528	// requests will have their own nextPageToken to continue paging through
37529	// the results.
37530	NextPageToken string `json:"nextPageToken,omitempty"`
37531
37532	// SelfLink: [Output Only] Server-defined URL for this resource.
37533	SelfLink string `json:"selfLink,omitempty"`
37534
37535	// Warning: [Output Only] Informational warning message.
37536	Warning *TargetHttpsProxyAggregatedListWarning `json:"warning,omitempty"`
37537
37538	// ServerResponse contains the HTTP response code and headers from the
37539	// server.
37540	googleapi.ServerResponse `json:"-"`
37541
37542	// ForceSendFields is a list of field names (e.g. "Id") to
37543	// unconditionally include in API requests. By default, fields with
37544	// empty values are omitted from API requests. However, any non-pointer,
37545	// non-interface field appearing in ForceSendFields will be sent to the
37546	// server regardless of whether the field is empty or not. This may be
37547	// used to include empty fields in Patch requests.
37548	ForceSendFields []string `json:"-"`
37549
37550	// NullFields is a list of field names (e.g. "Id") to include in API
37551	// requests with the JSON null value. By default, fields with empty
37552	// values are omitted from API requests. However, any field with an
37553	// empty value appearing in NullFields will be sent to the server as
37554	// null. It is an error if a field in this list has a non-empty value.
37555	// This may be used to include null fields in Patch requests.
37556	NullFields []string `json:"-"`
37557}
37558
37559func (s *TargetHttpsProxyAggregatedList) MarshalJSON() ([]byte, error) {
37560	type NoMethod TargetHttpsProxyAggregatedList
37561	raw := NoMethod(*s)
37562	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37563}
37564
37565// TargetHttpsProxyAggregatedListWarning: [Output Only] Informational
37566// warning message.
37567type TargetHttpsProxyAggregatedListWarning struct {
37568	// Code: [Output Only] A warning code, if applicable. For example,
37569	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37570	// the response.
37571	//
37572	// Possible values:
37573	//   "CLEANUP_FAILED"
37574	//   "DEPRECATED_RESOURCE_USED"
37575	//   "DEPRECATED_TYPE_USED"
37576	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37577	//   "EXPERIMENTAL_TYPE_USED"
37578	//   "EXTERNAL_API_WARNING"
37579	//   "FIELD_VALUE_OVERRIDEN"
37580	//   "INJECTED_KERNELS_DEPRECATED"
37581	//   "MISSING_TYPE_DEPENDENCY"
37582	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37583	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37584	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37585	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37586	//   "NEXT_HOP_NOT_RUNNING"
37587	//   "NOT_CRITICAL_ERROR"
37588	//   "NO_RESULTS_ON_PAGE"
37589	//   "REQUIRED_TOS_AGREEMENT"
37590	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37591	//   "RESOURCE_NOT_DELETED"
37592	//   "SCHEMA_VALIDATION_IGNORED"
37593	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37594	//   "UNDECLARED_PROPERTIES"
37595	//   "UNREACHABLE"
37596	Code string `json:"code,omitempty"`
37597
37598	// Data: [Output Only] Metadata about this warning in key: value format.
37599	// For example:
37600	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37601	Data []*TargetHttpsProxyAggregatedListWarningData `json:"data,omitempty"`
37602
37603	// Message: [Output Only] A human-readable description of the warning
37604	// code.
37605	Message string `json:"message,omitempty"`
37606
37607	// ForceSendFields is a list of field names (e.g. "Code") to
37608	// unconditionally include in API requests. By default, fields with
37609	// empty values are omitted from API requests. However, any non-pointer,
37610	// non-interface field appearing in ForceSendFields will be sent to the
37611	// server regardless of whether the field is empty or not. This may be
37612	// used to include empty fields in Patch requests.
37613	ForceSendFields []string `json:"-"`
37614
37615	// NullFields is a list of field names (e.g. "Code") to include in API
37616	// requests with the JSON null value. By default, fields with empty
37617	// values are omitted from API requests. However, any field with an
37618	// empty value appearing in NullFields will be sent to the server as
37619	// null. It is an error if a field in this list has a non-empty value.
37620	// This may be used to include null fields in Patch requests.
37621	NullFields []string `json:"-"`
37622}
37623
37624func (s *TargetHttpsProxyAggregatedListWarning) MarshalJSON() ([]byte, error) {
37625	type NoMethod TargetHttpsProxyAggregatedListWarning
37626	raw := NoMethod(*s)
37627	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37628}
37629
37630type TargetHttpsProxyAggregatedListWarningData struct {
37631	// Key: [Output Only] A key that provides more detail on the warning
37632	// being returned. For example, for warnings where there are no results
37633	// in a list request for a particular zone, this key might be scope and
37634	// the key value might be the zone name. Other examples might be a key
37635	// indicating a deprecated resource and a suggested replacement, or a
37636	// warning about invalid network settings (for example, if an instance
37637	// attempts to perform IP forwarding but is not enabled for IP
37638	// forwarding).
37639	Key string `json:"key,omitempty"`
37640
37641	// Value: [Output Only] A warning data value corresponding to the key.
37642	Value string `json:"value,omitempty"`
37643
37644	// ForceSendFields is a list of field names (e.g. "Key") to
37645	// unconditionally include in API requests. By default, fields with
37646	// empty values are omitted from API requests. However, any non-pointer,
37647	// non-interface field appearing in ForceSendFields will be sent to the
37648	// server regardless of whether the field is empty or not. This may be
37649	// used to include empty fields in Patch requests.
37650	ForceSendFields []string `json:"-"`
37651
37652	// NullFields is a list of field names (e.g. "Key") to include in API
37653	// requests with the JSON null value. By default, fields with empty
37654	// values are omitted from API requests. However, any field with an
37655	// empty value appearing in NullFields will be sent to the server as
37656	// null. It is an error if a field in this list has a non-empty value.
37657	// This may be used to include null fields in Patch requests.
37658	NullFields []string `json:"-"`
37659}
37660
37661func (s *TargetHttpsProxyAggregatedListWarningData) MarshalJSON() ([]byte, error) {
37662	type NoMethod TargetHttpsProxyAggregatedListWarningData
37663	raw := NoMethod(*s)
37664	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37665}
37666
37667// TargetHttpsProxyList: Contains a list of TargetHttpsProxy resources.
37668type TargetHttpsProxyList struct {
37669	// Id: [Output Only] Unique identifier for the resource; defined by the
37670	// server.
37671	Id string `json:"id,omitempty"`
37672
37673	// Items: A list of TargetHttpsProxy resources.
37674	Items []*TargetHttpsProxy `json:"items,omitempty"`
37675
37676	// Kind: Type of resource. Always compute#targetHttpsProxyList for lists
37677	// of target HTTPS proxies.
37678	Kind string `json:"kind,omitempty"`
37679
37680	// NextPageToken: [Output Only] This token allows you to get the next
37681	// page of results for list requests. If the number of results is larger
37682	// than maxResults, use the nextPageToken as a value for the query
37683	// parameter pageToken in the next list request. Subsequent list
37684	// requests will have their own nextPageToken to continue paging through
37685	// the results.
37686	NextPageToken string `json:"nextPageToken,omitempty"`
37687
37688	// SelfLink: [Output Only] Server-defined URL for this resource.
37689	SelfLink string `json:"selfLink,omitempty"`
37690
37691	// Warning: [Output Only] Informational warning message.
37692	Warning *TargetHttpsProxyListWarning `json:"warning,omitempty"`
37693
37694	// ServerResponse contains the HTTP response code and headers from the
37695	// server.
37696	googleapi.ServerResponse `json:"-"`
37697
37698	// ForceSendFields is a list of field names (e.g. "Id") to
37699	// unconditionally include in API requests. By default, fields with
37700	// empty values are omitted from API requests. However, any non-pointer,
37701	// non-interface field appearing in ForceSendFields will be sent to the
37702	// server regardless of whether the field is empty or not. This may be
37703	// used to include empty fields in Patch requests.
37704	ForceSendFields []string `json:"-"`
37705
37706	// NullFields is a list of field names (e.g. "Id") to include in API
37707	// requests with the JSON null value. By default, fields with empty
37708	// values are omitted from API requests. However, any field with an
37709	// empty value appearing in NullFields will be sent to the server as
37710	// null. It is an error if a field in this list has a non-empty value.
37711	// This may be used to include null fields in Patch requests.
37712	NullFields []string `json:"-"`
37713}
37714
37715func (s *TargetHttpsProxyList) MarshalJSON() ([]byte, error) {
37716	type NoMethod TargetHttpsProxyList
37717	raw := NoMethod(*s)
37718	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37719}
37720
37721// TargetHttpsProxyListWarning: [Output Only] Informational warning
37722// message.
37723type TargetHttpsProxyListWarning struct {
37724	// Code: [Output Only] A warning code, if applicable. For example,
37725	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37726	// the response.
37727	//
37728	// Possible values:
37729	//   "CLEANUP_FAILED"
37730	//   "DEPRECATED_RESOURCE_USED"
37731	//   "DEPRECATED_TYPE_USED"
37732	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37733	//   "EXPERIMENTAL_TYPE_USED"
37734	//   "EXTERNAL_API_WARNING"
37735	//   "FIELD_VALUE_OVERRIDEN"
37736	//   "INJECTED_KERNELS_DEPRECATED"
37737	//   "MISSING_TYPE_DEPENDENCY"
37738	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37739	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37740	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37741	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37742	//   "NEXT_HOP_NOT_RUNNING"
37743	//   "NOT_CRITICAL_ERROR"
37744	//   "NO_RESULTS_ON_PAGE"
37745	//   "REQUIRED_TOS_AGREEMENT"
37746	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37747	//   "RESOURCE_NOT_DELETED"
37748	//   "SCHEMA_VALIDATION_IGNORED"
37749	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37750	//   "UNDECLARED_PROPERTIES"
37751	//   "UNREACHABLE"
37752	Code string `json:"code,omitempty"`
37753
37754	// Data: [Output Only] Metadata about this warning in key: value format.
37755	// For example:
37756	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37757	Data []*TargetHttpsProxyListWarningData `json:"data,omitempty"`
37758
37759	// Message: [Output Only] A human-readable description of the warning
37760	// code.
37761	Message string `json:"message,omitempty"`
37762
37763	// ForceSendFields is a list of field names (e.g. "Code") to
37764	// unconditionally include in API requests. By default, fields with
37765	// empty values are omitted from API requests. However, any non-pointer,
37766	// non-interface field appearing in ForceSendFields will be sent to the
37767	// server regardless of whether the field is empty or not. This may be
37768	// used to include empty fields in Patch requests.
37769	ForceSendFields []string `json:"-"`
37770
37771	// NullFields is a list of field names (e.g. "Code") to include in API
37772	// requests with the JSON null value. By default, fields with empty
37773	// values are omitted from API requests. However, any field with an
37774	// empty value appearing in NullFields will be sent to the server as
37775	// null. It is an error if a field in this list has a non-empty value.
37776	// This may be used to include null fields in Patch requests.
37777	NullFields []string `json:"-"`
37778}
37779
37780func (s *TargetHttpsProxyListWarning) MarshalJSON() ([]byte, error) {
37781	type NoMethod TargetHttpsProxyListWarning
37782	raw := NoMethod(*s)
37783	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37784}
37785
37786type TargetHttpsProxyListWarningData struct {
37787	// Key: [Output Only] A key that provides more detail on the warning
37788	// being returned. For example, for warnings where there are no results
37789	// in a list request for a particular zone, this key might be scope and
37790	// the key value might be the zone name. Other examples might be a key
37791	// indicating a deprecated resource and a suggested replacement, or a
37792	// warning about invalid network settings (for example, if an instance
37793	// attempts to perform IP forwarding but is not enabled for IP
37794	// forwarding).
37795	Key string `json:"key,omitempty"`
37796
37797	// Value: [Output Only] A warning data value corresponding to the key.
37798	Value string `json:"value,omitempty"`
37799
37800	// ForceSendFields is a list of field names (e.g. "Key") to
37801	// unconditionally include in API requests. By default, fields with
37802	// empty values are omitted from API requests. However, any non-pointer,
37803	// non-interface field appearing in ForceSendFields will be sent to the
37804	// server regardless of whether the field is empty or not. This may be
37805	// used to include empty fields in Patch requests.
37806	ForceSendFields []string `json:"-"`
37807
37808	// NullFields is a list of field names (e.g. "Key") to include in API
37809	// requests with the JSON null value. By default, fields with empty
37810	// values are omitted from API requests. However, any field with an
37811	// empty value appearing in NullFields will be sent to the server as
37812	// null. It is an error if a field in this list has a non-empty value.
37813	// This may be used to include null fields in Patch requests.
37814	NullFields []string `json:"-"`
37815}
37816
37817func (s *TargetHttpsProxyListWarningData) MarshalJSON() ([]byte, error) {
37818	type NoMethod TargetHttpsProxyListWarningData
37819	raw := NoMethod(*s)
37820	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37821}
37822
37823// TargetInstance: Represents a Target Instance resource.
37824//
37825// You can use a target instance to handle traffic for one or more
37826// forwarding rules, which is ideal for forwarding protocol traffic that
37827// is managed by a single source. For example, ESP, AH, TCP, or UDP. For
37828// more information, read Target instances. (== resource_for
37829// {$api_version}.targetInstances ==)
37830type TargetInstance struct {
37831	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
37832	// format.
37833	CreationTimestamp string `json:"creationTimestamp,omitempty"`
37834
37835	// Description: An optional description of this resource. Provide this
37836	// property when you create the resource.
37837	Description string `json:"description,omitempty"`
37838
37839	// Id: [Output Only] The unique identifier for the resource. This
37840	// identifier is defined by the server.
37841	Id uint64 `json:"id,omitempty,string"`
37842
37843	// Instance: A URL to the virtual machine instance that handles traffic
37844	// for this target instance. When creating a target instance, you can
37845	// provide the fully-qualified URL or a valid partial URL to the desired
37846	// virtual machine. For example, the following are all valid URLs:
37847	// -
37848	// https://www.googleapis.com/compute/v1/projects/project/zones/zone/instances/instance
37849	// - projects/project/zones/zone/instances/instance
37850	// - zones/zone/instances/instance
37851	Instance string `json:"instance,omitempty"`
37852
37853	// Kind: [Output Only] The type of the resource. Always
37854	// compute#targetInstance for target instances.
37855	Kind string `json:"kind,omitempty"`
37856
37857	// Name: Name of the resource. Provided by the client when the resource
37858	// is created. The name must be 1-63 characters long, and comply with
37859	// RFC1035. Specifically, the name must be 1-63 characters long and
37860	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
37861	// the first character must be a lowercase letter, and all following
37862	// characters must be a dash, lowercase letter, or digit, except the
37863	// last character, which cannot be a dash.
37864	Name string `json:"name,omitempty"`
37865
37866	// NatPolicy: NAT option controlling how IPs are NAT'ed to the instance.
37867	// Currently only NO_NAT (default value) is supported.
37868	//
37869	// Possible values:
37870	//   "NO_NAT"
37871	NatPolicy string `json:"natPolicy,omitempty"`
37872
37873	// SelfLink: [Output Only] Server-defined URL for the resource.
37874	SelfLink string `json:"selfLink,omitempty"`
37875
37876	// Zone: [Output Only] URL of the zone where the target instance
37877	// resides. You must specify this field as part of the HTTP request URL.
37878	// It is not settable as a field in the request body.
37879	Zone string `json:"zone,omitempty"`
37880
37881	// ServerResponse contains the HTTP response code and headers from the
37882	// server.
37883	googleapi.ServerResponse `json:"-"`
37884
37885	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
37886	// to unconditionally include in API requests. By default, fields with
37887	// empty values are omitted from API requests. However, any non-pointer,
37888	// non-interface field appearing in ForceSendFields will be sent to the
37889	// server regardless of whether the field is empty or not. This may be
37890	// used to include empty fields in Patch requests.
37891	ForceSendFields []string `json:"-"`
37892
37893	// NullFields is a list of field names (e.g. "CreationTimestamp") to
37894	// include in API requests with the JSON null value. By default, fields
37895	// with empty values are omitted from API requests. However, any field
37896	// with an empty value appearing in NullFields will be sent to the
37897	// server as null. It is an error if a field in this list has a
37898	// non-empty value. This may be used to include null fields in Patch
37899	// requests.
37900	NullFields []string `json:"-"`
37901}
37902
37903func (s *TargetInstance) MarshalJSON() ([]byte, error) {
37904	type NoMethod TargetInstance
37905	raw := NoMethod(*s)
37906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37907}
37908
37909type TargetInstanceAggregatedList struct {
37910	// Id: [Output Only] Unique identifier for the resource; defined by the
37911	// server.
37912	Id string `json:"id,omitempty"`
37913
37914	// Items: A list of TargetInstance resources.
37915	Items map[string]TargetInstancesScopedList `json:"items,omitempty"`
37916
37917	// Kind: Type of resource.
37918	Kind string `json:"kind,omitempty"`
37919
37920	// NextPageToken: [Output Only] This token allows you to get the next
37921	// page of results for list requests. If the number of results is larger
37922	// than maxResults, use the nextPageToken as a value for the query
37923	// parameter pageToken in the next list request. Subsequent list
37924	// requests will have their own nextPageToken to continue paging through
37925	// the results.
37926	NextPageToken string `json:"nextPageToken,omitempty"`
37927
37928	// SelfLink: [Output Only] Server-defined URL for this resource.
37929	SelfLink string `json:"selfLink,omitempty"`
37930
37931	// Warning: [Output Only] Informational warning message.
37932	Warning *TargetInstanceAggregatedListWarning `json:"warning,omitempty"`
37933
37934	// ServerResponse contains the HTTP response code and headers from the
37935	// server.
37936	googleapi.ServerResponse `json:"-"`
37937
37938	// ForceSendFields is a list of field names (e.g. "Id") to
37939	// unconditionally include in API requests. By default, fields with
37940	// empty values are omitted from API requests. However, any non-pointer,
37941	// non-interface field appearing in ForceSendFields will be sent to the
37942	// server regardless of whether the field is empty or not. This may be
37943	// used to include empty fields in Patch requests.
37944	ForceSendFields []string `json:"-"`
37945
37946	// NullFields is a list of field names (e.g. "Id") to include in API
37947	// requests with the JSON null value. By default, fields with empty
37948	// values are omitted from API requests. However, any field with an
37949	// empty value appearing in NullFields will be sent to the server as
37950	// null. It is an error if a field in this list has a non-empty value.
37951	// This may be used to include null fields in Patch requests.
37952	NullFields []string `json:"-"`
37953}
37954
37955func (s *TargetInstanceAggregatedList) MarshalJSON() ([]byte, error) {
37956	type NoMethod TargetInstanceAggregatedList
37957	raw := NoMethod(*s)
37958	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
37959}
37960
37961// TargetInstanceAggregatedListWarning: [Output Only] Informational
37962// warning message.
37963type TargetInstanceAggregatedListWarning struct {
37964	// Code: [Output Only] A warning code, if applicable. For example,
37965	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
37966	// the response.
37967	//
37968	// Possible values:
37969	//   "CLEANUP_FAILED"
37970	//   "DEPRECATED_RESOURCE_USED"
37971	//   "DEPRECATED_TYPE_USED"
37972	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
37973	//   "EXPERIMENTAL_TYPE_USED"
37974	//   "EXTERNAL_API_WARNING"
37975	//   "FIELD_VALUE_OVERRIDEN"
37976	//   "INJECTED_KERNELS_DEPRECATED"
37977	//   "MISSING_TYPE_DEPENDENCY"
37978	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
37979	//   "NEXT_HOP_CANNOT_IP_FORWARD"
37980	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
37981	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
37982	//   "NEXT_HOP_NOT_RUNNING"
37983	//   "NOT_CRITICAL_ERROR"
37984	//   "NO_RESULTS_ON_PAGE"
37985	//   "REQUIRED_TOS_AGREEMENT"
37986	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
37987	//   "RESOURCE_NOT_DELETED"
37988	//   "SCHEMA_VALIDATION_IGNORED"
37989	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
37990	//   "UNDECLARED_PROPERTIES"
37991	//   "UNREACHABLE"
37992	Code string `json:"code,omitempty"`
37993
37994	// Data: [Output Only] Metadata about this warning in key: value format.
37995	// For example:
37996	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
37997	Data []*TargetInstanceAggregatedListWarningData `json:"data,omitempty"`
37998
37999	// Message: [Output Only] A human-readable description of the warning
38000	// code.
38001	Message string `json:"message,omitempty"`
38002
38003	// ForceSendFields is a list of field names (e.g. "Code") to
38004	// unconditionally include in API requests. By default, fields with
38005	// empty values are omitted from API requests. However, any non-pointer,
38006	// non-interface field appearing in ForceSendFields will be sent to the
38007	// server regardless of whether the field is empty or not. This may be
38008	// used to include empty fields in Patch requests.
38009	ForceSendFields []string `json:"-"`
38010
38011	// NullFields is a list of field names (e.g. "Code") to include in API
38012	// requests with the JSON null value. By default, fields with empty
38013	// values are omitted from API requests. However, any field with an
38014	// empty value appearing in NullFields will be sent to the server as
38015	// null. It is an error if a field in this list has a non-empty value.
38016	// This may be used to include null fields in Patch requests.
38017	NullFields []string `json:"-"`
38018}
38019
38020func (s *TargetInstanceAggregatedListWarning) MarshalJSON() ([]byte, error) {
38021	type NoMethod TargetInstanceAggregatedListWarning
38022	raw := NoMethod(*s)
38023	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38024}
38025
38026type TargetInstanceAggregatedListWarningData struct {
38027	// Key: [Output Only] A key that provides more detail on the warning
38028	// being returned. For example, for warnings where there are no results
38029	// in a list request for a particular zone, this key might be scope and
38030	// the key value might be the zone name. Other examples might be a key
38031	// indicating a deprecated resource and a suggested replacement, or a
38032	// warning about invalid network settings (for example, if an instance
38033	// attempts to perform IP forwarding but is not enabled for IP
38034	// forwarding).
38035	Key string `json:"key,omitempty"`
38036
38037	// Value: [Output Only] A warning data value corresponding to the key.
38038	Value string `json:"value,omitempty"`
38039
38040	// ForceSendFields is a list of field names (e.g. "Key") to
38041	// unconditionally include in API requests. By default, fields with
38042	// empty values are omitted from API requests. However, any non-pointer,
38043	// non-interface field appearing in ForceSendFields will be sent to the
38044	// server regardless of whether the field is empty or not. This may be
38045	// used to include empty fields in Patch requests.
38046	ForceSendFields []string `json:"-"`
38047
38048	// NullFields is a list of field names (e.g. "Key") to include in API
38049	// requests with the JSON null value. By default, fields with empty
38050	// values are omitted from API requests. However, any field with an
38051	// empty value appearing in NullFields will be sent to the server as
38052	// null. It is an error if a field in this list has a non-empty value.
38053	// This may be used to include null fields in Patch requests.
38054	NullFields []string `json:"-"`
38055}
38056
38057func (s *TargetInstanceAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38058	type NoMethod TargetInstanceAggregatedListWarningData
38059	raw := NoMethod(*s)
38060	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38061}
38062
38063// TargetInstanceList: Contains a list of TargetInstance resources.
38064type TargetInstanceList struct {
38065	// Id: [Output Only] Unique identifier for the resource; defined by the
38066	// server.
38067	Id string `json:"id,omitempty"`
38068
38069	// Items: A list of TargetInstance resources.
38070	Items []*TargetInstance `json:"items,omitempty"`
38071
38072	// Kind: Type of resource.
38073	Kind string `json:"kind,omitempty"`
38074
38075	// NextPageToken: [Output Only] This token allows you to get the next
38076	// page of results for list requests. If the number of results is larger
38077	// than maxResults, use the nextPageToken as a value for the query
38078	// parameter pageToken in the next list request. Subsequent list
38079	// requests will have their own nextPageToken to continue paging through
38080	// the results.
38081	NextPageToken string `json:"nextPageToken,omitempty"`
38082
38083	// SelfLink: [Output Only] Server-defined URL for this resource.
38084	SelfLink string `json:"selfLink,omitempty"`
38085
38086	// Warning: [Output Only] Informational warning message.
38087	Warning *TargetInstanceListWarning `json:"warning,omitempty"`
38088
38089	// ServerResponse contains the HTTP response code and headers from the
38090	// server.
38091	googleapi.ServerResponse `json:"-"`
38092
38093	// ForceSendFields is a list of field names (e.g. "Id") to
38094	// unconditionally include in API requests. By default, fields with
38095	// empty values are omitted from API requests. However, any non-pointer,
38096	// non-interface field appearing in ForceSendFields will be sent to the
38097	// server regardless of whether the field is empty or not. This may be
38098	// used to include empty fields in Patch requests.
38099	ForceSendFields []string `json:"-"`
38100
38101	// NullFields is a list of field names (e.g. "Id") to include in API
38102	// requests with the JSON null value. By default, fields with empty
38103	// values are omitted from API requests. However, any field with an
38104	// empty value appearing in NullFields will be sent to the server as
38105	// null. It is an error if a field in this list has a non-empty value.
38106	// This may be used to include null fields in Patch requests.
38107	NullFields []string `json:"-"`
38108}
38109
38110func (s *TargetInstanceList) MarshalJSON() ([]byte, error) {
38111	type NoMethod TargetInstanceList
38112	raw := NoMethod(*s)
38113	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38114}
38115
38116// TargetInstanceListWarning: [Output Only] Informational warning
38117// message.
38118type TargetInstanceListWarning struct {
38119	// Code: [Output Only] A warning code, if applicable. For example,
38120	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38121	// the response.
38122	//
38123	// Possible values:
38124	//   "CLEANUP_FAILED"
38125	//   "DEPRECATED_RESOURCE_USED"
38126	//   "DEPRECATED_TYPE_USED"
38127	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38128	//   "EXPERIMENTAL_TYPE_USED"
38129	//   "EXTERNAL_API_WARNING"
38130	//   "FIELD_VALUE_OVERRIDEN"
38131	//   "INJECTED_KERNELS_DEPRECATED"
38132	//   "MISSING_TYPE_DEPENDENCY"
38133	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38134	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38135	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38136	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38137	//   "NEXT_HOP_NOT_RUNNING"
38138	//   "NOT_CRITICAL_ERROR"
38139	//   "NO_RESULTS_ON_PAGE"
38140	//   "REQUIRED_TOS_AGREEMENT"
38141	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38142	//   "RESOURCE_NOT_DELETED"
38143	//   "SCHEMA_VALIDATION_IGNORED"
38144	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38145	//   "UNDECLARED_PROPERTIES"
38146	//   "UNREACHABLE"
38147	Code string `json:"code,omitempty"`
38148
38149	// Data: [Output Only] Metadata about this warning in key: value format.
38150	// For example:
38151	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38152	Data []*TargetInstanceListWarningData `json:"data,omitempty"`
38153
38154	// Message: [Output Only] A human-readable description of the warning
38155	// code.
38156	Message string `json:"message,omitempty"`
38157
38158	// ForceSendFields is a list of field names (e.g. "Code") to
38159	// unconditionally include in API requests. By default, fields with
38160	// empty values are omitted from API requests. However, any non-pointer,
38161	// non-interface field appearing in ForceSendFields will be sent to the
38162	// server regardless of whether the field is empty or not. This may be
38163	// used to include empty fields in Patch requests.
38164	ForceSendFields []string `json:"-"`
38165
38166	// NullFields is a list of field names (e.g. "Code") to include in API
38167	// requests with the JSON null value. By default, fields with empty
38168	// values are omitted from API requests. However, any field with an
38169	// empty value appearing in NullFields will be sent to the server as
38170	// null. It is an error if a field in this list has a non-empty value.
38171	// This may be used to include null fields in Patch requests.
38172	NullFields []string `json:"-"`
38173}
38174
38175func (s *TargetInstanceListWarning) MarshalJSON() ([]byte, error) {
38176	type NoMethod TargetInstanceListWarning
38177	raw := NoMethod(*s)
38178	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38179}
38180
38181type TargetInstanceListWarningData struct {
38182	// Key: [Output Only] A key that provides more detail on the warning
38183	// being returned. For example, for warnings where there are no results
38184	// in a list request for a particular zone, this key might be scope and
38185	// the key value might be the zone name. Other examples might be a key
38186	// indicating a deprecated resource and a suggested replacement, or a
38187	// warning about invalid network settings (for example, if an instance
38188	// attempts to perform IP forwarding but is not enabled for IP
38189	// forwarding).
38190	Key string `json:"key,omitempty"`
38191
38192	// Value: [Output Only] A warning data value corresponding to the key.
38193	Value string `json:"value,omitempty"`
38194
38195	// ForceSendFields is a list of field names (e.g. "Key") to
38196	// unconditionally include in API requests. By default, fields with
38197	// empty values are omitted from API requests. However, any non-pointer,
38198	// non-interface field appearing in ForceSendFields will be sent to the
38199	// server regardless of whether the field is empty or not. This may be
38200	// used to include empty fields in Patch requests.
38201	ForceSendFields []string `json:"-"`
38202
38203	// NullFields is a list of field names (e.g. "Key") to include in API
38204	// requests with the JSON null value. By default, fields with empty
38205	// values are omitted from API requests. However, any field with an
38206	// empty value appearing in NullFields will be sent to the server as
38207	// null. It is an error if a field in this list has a non-empty value.
38208	// This may be used to include null fields in Patch requests.
38209	NullFields []string `json:"-"`
38210}
38211
38212func (s *TargetInstanceListWarningData) MarshalJSON() ([]byte, error) {
38213	type NoMethod TargetInstanceListWarningData
38214	raw := NoMethod(*s)
38215	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38216}
38217
38218type TargetInstancesScopedList struct {
38219	// TargetInstances: A list of target instances contained in this scope.
38220	TargetInstances []*TargetInstance `json:"targetInstances,omitempty"`
38221
38222	// Warning: Informational warning which replaces the list of addresses
38223	// when the list is empty.
38224	Warning *TargetInstancesScopedListWarning `json:"warning,omitempty"`
38225
38226	// ForceSendFields is a list of field names (e.g. "TargetInstances") to
38227	// unconditionally include in API requests. By default, fields with
38228	// empty values are omitted from API requests. However, any non-pointer,
38229	// non-interface field appearing in ForceSendFields will be sent to the
38230	// server regardless of whether the field is empty or not. This may be
38231	// used to include empty fields in Patch requests.
38232	ForceSendFields []string `json:"-"`
38233
38234	// NullFields is a list of field names (e.g. "TargetInstances") to
38235	// include in API requests with the JSON null value. By default, fields
38236	// with empty values are omitted from API requests. However, any field
38237	// with an empty value appearing in NullFields will be sent to the
38238	// server as null. It is an error if a field in this list has a
38239	// non-empty value. This may be used to include null fields in Patch
38240	// requests.
38241	NullFields []string `json:"-"`
38242}
38243
38244func (s *TargetInstancesScopedList) MarshalJSON() ([]byte, error) {
38245	type NoMethod TargetInstancesScopedList
38246	raw := NoMethod(*s)
38247	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38248}
38249
38250// TargetInstancesScopedListWarning: Informational warning which
38251// replaces the list of addresses when the list is empty.
38252type TargetInstancesScopedListWarning struct {
38253	// Code: [Output Only] A warning code, if applicable. For example,
38254	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38255	// the response.
38256	//
38257	// Possible values:
38258	//   "CLEANUP_FAILED"
38259	//   "DEPRECATED_RESOURCE_USED"
38260	//   "DEPRECATED_TYPE_USED"
38261	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38262	//   "EXPERIMENTAL_TYPE_USED"
38263	//   "EXTERNAL_API_WARNING"
38264	//   "FIELD_VALUE_OVERRIDEN"
38265	//   "INJECTED_KERNELS_DEPRECATED"
38266	//   "MISSING_TYPE_DEPENDENCY"
38267	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38268	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38269	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38270	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38271	//   "NEXT_HOP_NOT_RUNNING"
38272	//   "NOT_CRITICAL_ERROR"
38273	//   "NO_RESULTS_ON_PAGE"
38274	//   "REQUIRED_TOS_AGREEMENT"
38275	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38276	//   "RESOURCE_NOT_DELETED"
38277	//   "SCHEMA_VALIDATION_IGNORED"
38278	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38279	//   "UNDECLARED_PROPERTIES"
38280	//   "UNREACHABLE"
38281	Code string `json:"code,omitempty"`
38282
38283	// Data: [Output Only] Metadata about this warning in key: value format.
38284	// For example:
38285	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38286	Data []*TargetInstancesScopedListWarningData `json:"data,omitempty"`
38287
38288	// Message: [Output Only] A human-readable description of the warning
38289	// code.
38290	Message string `json:"message,omitempty"`
38291
38292	// ForceSendFields is a list of field names (e.g. "Code") to
38293	// unconditionally include in API requests. By default, fields with
38294	// empty values are omitted from API requests. However, any non-pointer,
38295	// non-interface field appearing in ForceSendFields will be sent to the
38296	// server regardless of whether the field is empty or not. This may be
38297	// used to include empty fields in Patch requests.
38298	ForceSendFields []string `json:"-"`
38299
38300	// NullFields is a list of field names (e.g. "Code") to include in API
38301	// requests with the JSON null value. By default, fields with empty
38302	// values are omitted from API requests. However, any field with an
38303	// empty value appearing in NullFields will be sent to the server as
38304	// null. It is an error if a field in this list has a non-empty value.
38305	// This may be used to include null fields in Patch requests.
38306	NullFields []string `json:"-"`
38307}
38308
38309func (s *TargetInstancesScopedListWarning) MarshalJSON() ([]byte, error) {
38310	type NoMethod TargetInstancesScopedListWarning
38311	raw := NoMethod(*s)
38312	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38313}
38314
38315type TargetInstancesScopedListWarningData struct {
38316	// Key: [Output Only] A key that provides more detail on the warning
38317	// being returned. For example, for warnings where there are no results
38318	// in a list request for a particular zone, this key might be scope and
38319	// the key value might be the zone name. Other examples might be a key
38320	// indicating a deprecated resource and a suggested replacement, or a
38321	// warning about invalid network settings (for example, if an instance
38322	// attempts to perform IP forwarding but is not enabled for IP
38323	// forwarding).
38324	Key string `json:"key,omitempty"`
38325
38326	// Value: [Output Only] A warning data value corresponding to the key.
38327	Value string `json:"value,omitempty"`
38328
38329	// ForceSendFields is a list of field names (e.g. "Key") to
38330	// unconditionally include in API requests. By default, fields with
38331	// empty values are omitted from API requests. However, any non-pointer,
38332	// non-interface field appearing in ForceSendFields will be sent to the
38333	// server regardless of whether the field is empty or not. This may be
38334	// used to include empty fields in Patch requests.
38335	ForceSendFields []string `json:"-"`
38336
38337	// NullFields is a list of field names (e.g. "Key") to include in API
38338	// requests with the JSON null value. By default, fields with empty
38339	// values are omitted from API requests. However, any field with an
38340	// empty value appearing in NullFields will be sent to the server as
38341	// null. It is an error if a field in this list has a non-empty value.
38342	// This may be used to include null fields in Patch requests.
38343	NullFields []string `json:"-"`
38344}
38345
38346func (s *TargetInstancesScopedListWarningData) MarshalJSON() ([]byte, error) {
38347	type NoMethod TargetInstancesScopedListWarningData
38348	raw := NoMethod(*s)
38349	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38350}
38351
38352// TargetPool: Represents a Target Pool resource.
38353//
38354// Target pools are used for network TCP/UDP load balancing. A target
38355// pool references member instances, an associated legacy
38356// HttpHealthCheck resource, and, optionally, a backup target pool. For
38357// more information, read Using target pools. (== resource_for
38358// {$api_version}.targetPools ==)
38359type TargetPool struct {
38360	// BackupPool: This field is applicable only when the containing target
38361	// pool is serving a forwarding rule as the primary pool, and its
38362	// failoverRatio field is properly set to a value between [0,
38363	// 1].
38364	//
38365	// backupPool and failoverRatio together define the fallback behavior of
38366	// the primary target pool: if the ratio of the healthy instances in the
38367	// primary pool is at or below failoverRatio, traffic arriving at the
38368	// load-balanced IP will be directed to the backup pool.
38369	//
38370	// In case where failoverRatio and backupPool are not set, or all the
38371	// instances in the backup pool are unhealthy, the traffic will be
38372	// directed back to the primary pool in the "force" mode, where traffic
38373	// will be spread to the healthy instances with the best effort, or to
38374	// all instances when no instance is healthy.
38375	BackupPool string `json:"backupPool,omitempty"`
38376
38377	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
38378	// format.
38379	CreationTimestamp string `json:"creationTimestamp,omitempty"`
38380
38381	// Description: An optional description of this resource. Provide this
38382	// property when you create the resource.
38383	Description string `json:"description,omitempty"`
38384
38385	// FailoverRatio: This field is applicable only when the containing
38386	// target pool is serving a forwarding rule as the primary pool (i.e.,
38387	// not as a backup pool to some other target pool). The value of the
38388	// field must be in [0, 1].
38389	//
38390	// If set, backupPool must also be set. They together define the
38391	// fallback behavior of the primary target pool: if the ratio of the
38392	// healthy instances in the primary pool is at or below this number,
38393	// traffic arriving at the load-balanced IP will be directed to the
38394	// backup pool.
38395	//
38396	// In case where failoverRatio is not set or all the instances in the
38397	// backup pool are unhealthy, the traffic will be directed back to the
38398	// primary pool in the "force" mode, where traffic will be spread to the
38399	// healthy instances with the best effort, or to all instances when no
38400	// instance is healthy.
38401	FailoverRatio float64 `json:"failoverRatio,omitempty"`
38402
38403	// HealthChecks: The URL of the HttpHealthCheck resource. A member
38404	// instance in this pool is considered healthy if and only if the health
38405	// checks pass. An empty list means all member instances will be
38406	// considered healthy at all times. Only HttpHealthChecks are supported.
38407	// Only one health check may be specified.
38408	HealthChecks []string `json:"healthChecks,omitempty"`
38409
38410	// Id: [Output Only] The unique identifier for the resource. This
38411	// identifier is defined by the server.
38412	Id uint64 `json:"id,omitempty,string"`
38413
38414	// Instances: A list of resource URLs to the virtual machine instances
38415	// serving this pool. They must live in zones contained in the same
38416	// region as this pool.
38417	Instances []string `json:"instances,omitempty"`
38418
38419	// Kind: [Output Only] Type of the resource. Always compute#targetPool
38420	// for target pools.
38421	Kind string `json:"kind,omitempty"`
38422
38423	// Name: Name of the resource. Provided by the client when the resource
38424	// is created. The name must be 1-63 characters long, and comply with
38425	// RFC1035. Specifically, the name must be 1-63 characters long and
38426	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
38427	// the first character must be a lowercase letter, and all following
38428	// characters must be a dash, lowercase letter, or digit, except the
38429	// last character, which cannot be a dash.
38430	Name string `json:"name,omitempty"`
38431
38432	// Region: [Output Only] URL of the region where the target pool
38433	// resides.
38434	Region string `json:"region,omitempty"`
38435
38436	// SelfLink: [Output Only] Server-defined URL for the resource.
38437	SelfLink string `json:"selfLink,omitempty"`
38438
38439	// SessionAffinity: Session affinity option, must be one of the
38440	// following values:
38441	// NONE: Connections from the same client IP may go to any instance in
38442	// the pool.
38443	// CLIENT_IP: Connections from the same client IP will go to the same
38444	// instance in the pool while that instance remains
38445	// healthy.
38446	// CLIENT_IP_PROTO: Connections from the same client IP with the same IP
38447	// protocol will go to the same instance in the pool while that instance
38448	// remains healthy.
38449	//
38450	// Possible values:
38451	//   "CLIENT_IP"
38452	//   "CLIENT_IP_PORT_PROTO"
38453	//   "CLIENT_IP_PROTO"
38454	//   "GENERATED_COOKIE"
38455	//   "HEADER_FIELD"
38456	//   "HTTP_COOKIE"
38457	//   "NONE"
38458	SessionAffinity string `json:"sessionAffinity,omitempty"`
38459
38460	// ServerResponse contains the HTTP response code and headers from the
38461	// server.
38462	googleapi.ServerResponse `json:"-"`
38463
38464	// ForceSendFields is a list of field names (e.g. "BackupPool") to
38465	// unconditionally include in API requests. By default, fields with
38466	// empty values are omitted from API requests. However, any non-pointer,
38467	// non-interface field appearing in ForceSendFields will be sent to the
38468	// server regardless of whether the field is empty or not. This may be
38469	// used to include empty fields in Patch requests.
38470	ForceSendFields []string `json:"-"`
38471
38472	// NullFields is a list of field names (e.g. "BackupPool") to include in
38473	// API requests with the JSON null value. By default, fields with empty
38474	// values are omitted from API requests. However, any field with an
38475	// empty value appearing in NullFields will be sent to the server as
38476	// null. It is an error if a field in this list has a non-empty value.
38477	// This may be used to include null fields in Patch requests.
38478	NullFields []string `json:"-"`
38479}
38480
38481func (s *TargetPool) MarshalJSON() ([]byte, error) {
38482	type NoMethod TargetPool
38483	raw := NoMethod(*s)
38484	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38485}
38486
38487func (s *TargetPool) UnmarshalJSON(data []byte) error {
38488	type NoMethod TargetPool
38489	var s1 struct {
38490		FailoverRatio gensupport.JSONFloat64 `json:"failoverRatio"`
38491		*NoMethod
38492	}
38493	s1.NoMethod = (*NoMethod)(s)
38494	if err := json.Unmarshal(data, &s1); err != nil {
38495		return err
38496	}
38497	s.FailoverRatio = float64(s1.FailoverRatio)
38498	return nil
38499}
38500
38501type TargetPoolAggregatedList struct {
38502	// Id: [Output Only] Unique identifier for the resource; defined by the
38503	// server.
38504	Id string `json:"id,omitempty"`
38505
38506	// Items: A list of TargetPool resources.
38507	Items map[string]TargetPoolsScopedList `json:"items,omitempty"`
38508
38509	// Kind: [Output Only] Type of resource. Always
38510	// compute#targetPoolAggregatedList for aggregated lists of target
38511	// pools.
38512	Kind string `json:"kind,omitempty"`
38513
38514	// NextPageToken: [Output Only] This token allows you to get the next
38515	// page of results for list requests. If the number of results is larger
38516	// than maxResults, use the nextPageToken as a value for the query
38517	// parameter pageToken in the next list request. Subsequent list
38518	// requests will have their own nextPageToken to continue paging through
38519	// the results.
38520	NextPageToken string `json:"nextPageToken,omitempty"`
38521
38522	// SelfLink: [Output Only] Server-defined URL for this resource.
38523	SelfLink string `json:"selfLink,omitempty"`
38524
38525	// Warning: [Output Only] Informational warning message.
38526	Warning *TargetPoolAggregatedListWarning `json:"warning,omitempty"`
38527
38528	// ServerResponse contains the HTTP response code and headers from the
38529	// server.
38530	googleapi.ServerResponse `json:"-"`
38531
38532	// ForceSendFields is a list of field names (e.g. "Id") to
38533	// unconditionally include in API requests. By default, fields with
38534	// empty values are omitted from API requests. However, any non-pointer,
38535	// non-interface field appearing in ForceSendFields will be sent to the
38536	// server regardless of whether the field is empty or not. This may be
38537	// used to include empty fields in Patch requests.
38538	ForceSendFields []string `json:"-"`
38539
38540	// NullFields is a list of field names (e.g. "Id") to include in API
38541	// requests with the JSON null value. By default, fields with empty
38542	// values are omitted from API requests. However, any field with an
38543	// empty value appearing in NullFields will be sent to the server as
38544	// null. It is an error if a field in this list has a non-empty value.
38545	// This may be used to include null fields in Patch requests.
38546	NullFields []string `json:"-"`
38547}
38548
38549func (s *TargetPoolAggregatedList) MarshalJSON() ([]byte, error) {
38550	type NoMethod TargetPoolAggregatedList
38551	raw := NoMethod(*s)
38552	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38553}
38554
38555// TargetPoolAggregatedListWarning: [Output Only] Informational warning
38556// message.
38557type TargetPoolAggregatedListWarning struct {
38558	// Code: [Output Only] A warning code, if applicable. For example,
38559	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38560	// the response.
38561	//
38562	// Possible values:
38563	//   "CLEANUP_FAILED"
38564	//   "DEPRECATED_RESOURCE_USED"
38565	//   "DEPRECATED_TYPE_USED"
38566	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38567	//   "EXPERIMENTAL_TYPE_USED"
38568	//   "EXTERNAL_API_WARNING"
38569	//   "FIELD_VALUE_OVERRIDEN"
38570	//   "INJECTED_KERNELS_DEPRECATED"
38571	//   "MISSING_TYPE_DEPENDENCY"
38572	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38573	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38574	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38575	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38576	//   "NEXT_HOP_NOT_RUNNING"
38577	//   "NOT_CRITICAL_ERROR"
38578	//   "NO_RESULTS_ON_PAGE"
38579	//   "REQUIRED_TOS_AGREEMENT"
38580	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38581	//   "RESOURCE_NOT_DELETED"
38582	//   "SCHEMA_VALIDATION_IGNORED"
38583	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38584	//   "UNDECLARED_PROPERTIES"
38585	//   "UNREACHABLE"
38586	Code string `json:"code,omitempty"`
38587
38588	// Data: [Output Only] Metadata about this warning in key: value format.
38589	// For example:
38590	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38591	Data []*TargetPoolAggregatedListWarningData `json:"data,omitempty"`
38592
38593	// Message: [Output Only] A human-readable description of the warning
38594	// code.
38595	Message string `json:"message,omitempty"`
38596
38597	// ForceSendFields is a list of field names (e.g. "Code") to
38598	// unconditionally include in API requests. By default, fields with
38599	// empty values are omitted from API requests. However, any non-pointer,
38600	// non-interface field appearing in ForceSendFields will be sent to the
38601	// server regardless of whether the field is empty or not. This may be
38602	// used to include empty fields in Patch requests.
38603	ForceSendFields []string `json:"-"`
38604
38605	// NullFields is a list of field names (e.g. "Code") to include in API
38606	// requests with the JSON null value. By default, fields with empty
38607	// values are omitted from API requests. However, any field with an
38608	// empty value appearing in NullFields will be sent to the server as
38609	// null. It is an error if a field in this list has a non-empty value.
38610	// This may be used to include null fields in Patch requests.
38611	NullFields []string `json:"-"`
38612}
38613
38614func (s *TargetPoolAggregatedListWarning) MarshalJSON() ([]byte, error) {
38615	type NoMethod TargetPoolAggregatedListWarning
38616	raw := NoMethod(*s)
38617	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38618}
38619
38620type TargetPoolAggregatedListWarningData struct {
38621	// Key: [Output Only] A key that provides more detail on the warning
38622	// being returned. For example, for warnings where there are no results
38623	// in a list request for a particular zone, this key might be scope and
38624	// the key value might be the zone name. Other examples might be a key
38625	// indicating a deprecated resource and a suggested replacement, or a
38626	// warning about invalid network settings (for example, if an instance
38627	// attempts to perform IP forwarding but is not enabled for IP
38628	// forwarding).
38629	Key string `json:"key,omitempty"`
38630
38631	// Value: [Output Only] A warning data value corresponding to the key.
38632	Value string `json:"value,omitempty"`
38633
38634	// ForceSendFields is a list of field names (e.g. "Key") to
38635	// unconditionally include in API requests. By default, fields with
38636	// empty values are omitted from API requests. However, any non-pointer,
38637	// non-interface field appearing in ForceSendFields will be sent to the
38638	// server regardless of whether the field is empty or not. This may be
38639	// used to include empty fields in Patch requests.
38640	ForceSendFields []string `json:"-"`
38641
38642	// NullFields is a list of field names (e.g. "Key") to include in API
38643	// requests with the JSON null value. By default, fields with empty
38644	// values are omitted from API requests. However, any field with an
38645	// empty value appearing in NullFields will be sent to the server as
38646	// null. It is an error if a field in this list has a non-empty value.
38647	// This may be used to include null fields in Patch requests.
38648	NullFields []string `json:"-"`
38649}
38650
38651func (s *TargetPoolAggregatedListWarningData) MarshalJSON() ([]byte, error) {
38652	type NoMethod TargetPoolAggregatedListWarningData
38653	raw := NoMethod(*s)
38654	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38655}
38656
38657type TargetPoolInstanceHealth struct {
38658	HealthStatus []*HealthStatus `json:"healthStatus,omitempty"`
38659
38660	// Kind: [Output Only] Type of resource. Always
38661	// compute#targetPoolInstanceHealth when checking the health of an
38662	// instance.
38663	Kind string `json:"kind,omitempty"`
38664
38665	// ServerResponse contains the HTTP response code and headers from the
38666	// server.
38667	googleapi.ServerResponse `json:"-"`
38668
38669	// ForceSendFields is a list of field names (e.g. "HealthStatus") to
38670	// unconditionally include in API requests. By default, fields with
38671	// empty values are omitted from API requests. However, any non-pointer,
38672	// non-interface field appearing in ForceSendFields will be sent to the
38673	// server regardless of whether the field is empty or not. This may be
38674	// used to include empty fields in Patch requests.
38675	ForceSendFields []string `json:"-"`
38676
38677	// NullFields is a list of field names (e.g. "HealthStatus") to include
38678	// in API requests with the JSON null value. By default, fields with
38679	// empty values are omitted from API requests. However, any field with
38680	// an empty value appearing in NullFields will be sent to the server as
38681	// null. It is an error if a field in this list has a non-empty value.
38682	// This may be used to include null fields in Patch requests.
38683	NullFields []string `json:"-"`
38684}
38685
38686func (s *TargetPoolInstanceHealth) MarshalJSON() ([]byte, error) {
38687	type NoMethod TargetPoolInstanceHealth
38688	raw := NoMethod(*s)
38689	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38690}
38691
38692// TargetPoolList: Contains a list of TargetPool resources.
38693type TargetPoolList struct {
38694	// Id: [Output Only] Unique identifier for the resource; defined by the
38695	// server.
38696	Id string `json:"id,omitempty"`
38697
38698	// Items: A list of TargetPool resources.
38699	Items []*TargetPool `json:"items,omitempty"`
38700
38701	// Kind: [Output Only] Type of resource. Always compute#targetPoolList
38702	// for lists of target pools.
38703	Kind string `json:"kind,omitempty"`
38704
38705	// NextPageToken: [Output Only] This token allows you to get the next
38706	// page of results for list requests. If the number of results is larger
38707	// than maxResults, use the nextPageToken as a value for the query
38708	// parameter pageToken in the next list request. Subsequent list
38709	// requests will have their own nextPageToken to continue paging through
38710	// the results.
38711	NextPageToken string `json:"nextPageToken,omitempty"`
38712
38713	// SelfLink: [Output Only] Server-defined URL for this resource.
38714	SelfLink string `json:"selfLink,omitempty"`
38715
38716	// Warning: [Output Only] Informational warning message.
38717	Warning *TargetPoolListWarning `json:"warning,omitempty"`
38718
38719	// ServerResponse contains the HTTP response code and headers from the
38720	// server.
38721	googleapi.ServerResponse `json:"-"`
38722
38723	// ForceSendFields is a list of field names (e.g. "Id") to
38724	// unconditionally include in API requests. By default, fields with
38725	// empty values are omitted from API requests. However, any non-pointer,
38726	// non-interface field appearing in ForceSendFields will be sent to the
38727	// server regardless of whether the field is empty or not. This may be
38728	// used to include empty fields in Patch requests.
38729	ForceSendFields []string `json:"-"`
38730
38731	// NullFields is a list of field names (e.g. "Id") to include in API
38732	// requests with the JSON null value. By default, fields with empty
38733	// values are omitted from API requests. However, any field with an
38734	// empty value appearing in NullFields will be sent to the server as
38735	// null. It is an error if a field in this list has a non-empty value.
38736	// This may be used to include null fields in Patch requests.
38737	NullFields []string `json:"-"`
38738}
38739
38740func (s *TargetPoolList) MarshalJSON() ([]byte, error) {
38741	type NoMethod TargetPoolList
38742	raw := NoMethod(*s)
38743	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38744}
38745
38746// TargetPoolListWarning: [Output Only] Informational warning message.
38747type TargetPoolListWarning struct {
38748	// Code: [Output Only] A warning code, if applicable. For example,
38749	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
38750	// the response.
38751	//
38752	// Possible values:
38753	//   "CLEANUP_FAILED"
38754	//   "DEPRECATED_RESOURCE_USED"
38755	//   "DEPRECATED_TYPE_USED"
38756	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
38757	//   "EXPERIMENTAL_TYPE_USED"
38758	//   "EXTERNAL_API_WARNING"
38759	//   "FIELD_VALUE_OVERRIDEN"
38760	//   "INJECTED_KERNELS_DEPRECATED"
38761	//   "MISSING_TYPE_DEPENDENCY"
38762	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
38763	//   "NEXT_HOP_CANNOT_IP_FORWARD"
38764	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
38765	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
38766	//   "NEXT_HOP_NOT_RUNNING"
38767	//   "NOT_CRITICAL_ERROR"
38768	//   "NO_RESULTS_ON_PAGE"
38769	//   "REQUIRED_TOS_AGREEMENT"
38770	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
38771	//   "RESOURCE_NOT_DELETED"
38772	//   "SCHEMA_VALIDATION_IGNORED"
38773	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
38774	//   "UNDECLARED_PROPERTIES"
38775	//   "UNREACHABLE"
38776	Code string `json:"code,omitempty"`
38777
38778	// Data: [Output Only] Metadata about this warning in key: value format.
38779	// For example:
38780	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
38781	Data []*TargetPoolListWarningData `json:"data,omitempty"`
38782
38783	// Message: [Output Only] A human-readable description of the warning
38784	// code.
38785	Message string `json:"message,omitempty"`
38786
38787	// ForceSendFields is a list of field names (e.g. "Code") to
38788	// unconditionally include in API requests. By default, fields with
38789	// empty values are omitted from API requests. However, any non-pointer,
38790	// non-interface field appearing in ForceSendFields will be sent to the
38791	// server regardless of whether the field is empty or not. This may be
38792	// used to include empty fields in Patch requests.
38793	ForceSendFields []string `json:"-"`
38794
38795	// NullFields is a list of field names (e.g. "Code") to include in API
38796	// requests with the JSON null value. By default, fields with empty
38797	// values are omitted from API requests. However, any field with an
38798	// empty value appearing in NullFields will be sent to the server as
38799	// null. It is an error if a field in this list has a non-empty value.
38800	// This may be used to include null fields in Patch requests.
38801	NullFields []string `json:"-"`
38802}
38803
38804func (s *TargetPoolListWarning) MarshalJSON() ([]byte, error) {
38805	type NoMethod TargetPoolListWarning
38806	raw := NoMethod(*s)
38807	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38808}
38809
38810type TargetPoolListWarningData struct {
38811	// Key: [Output Only] A key that provides more detail on the warning
38812	// being returned. For example, for warnings where there are no results
38813	// in a list request for a particular zone, this key might be scope and
38814	// the key value might be the zone name. Other examples might be a key
38815	// indicating a deprecated resource and a suggested replacement, or a
38816	// warning about invalid network settings (for example, if an instance
38817	// attempts to perform IP forwarding but is not enabled for IP
38818	// forwarding).
38819	Key string `json:"key,omitempty"`
38820
38821	// Value: [Output Only] A warning data value corresponding to the key.
38822	Value string `json:"value,omitempty"`
38823
38824	// ForceSendFields is a list of field names (e.g. "Key") to
38825	// unconditionally include in API requests. By default, fields with
38826	// empty values are omitted from API requests. However, any non-pointer,
38827	// non-interface field appearing in ForceSendFields will be sent to the
38828	// server regardless of whether the field is empty or not. This may be
38829	// used to include empty fields in Patch requests.
38830	ForceSendFields []string `json:"-"`
38831
38832	// NullFields is a list of field names (e.g. "Key") to include in API
38833	// requests with the JSON null value. By default, fields with empty
38834	// values are omitted from API requests. However, any field with an
38835	// empty value appearing in NullFields will be sent to the server as
38836	// null. It is an error if a field in this list has a non-empty value.
38837	// This may be used to include null fields in Patch requests.
38838	NullFields []string `json:"-"`
38839}
38840
38841func (s *TargetPoolListWarningData) MarshalJSON() ([]byte, error) {
38842	type NoMethod TargetPoolListWarningData
38843	raw := NoMethod(*s)
38844	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38845}
38846
38847type TargetPoolsAddHealthCheckRequest struct {
38848	// HealthChecks: The HttpHealthCheck to add to the target pool.
38849	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
38850
38851	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
38852	// unconditionally include in API requests. By default, fields with
38853	// empty values are omitted from API requests. However, any non-pointer,
38854	// non-interface field appearing in ForceSendFields will be sent to the
38855	// server regardless of whether the field is empty or not. This may be
38856	// used to include empty fields in Patch requests.
38857	ForceSendFields []string `json:"-"`
38858
38859	// NullFields is a list of field names (e.g. "HealthChecks") to include
38860	// in API requests with the JSON null value. By default, fields with
38861	// empty values are omitted from API requests. However, any field with
38862	// an empty value appearing in NullFields will be sent to the server as
38863	// null. It is an error if a field in this list has a non-empty value.
38864	// This may be used to include null fields in Patch requests.
38865	NullFields []string `json:"-"`
38866}
38867
38868func (s *TargetPoolsAddHealthCheckRequest) MarshalJSON() ([]byte, error) {
38869	type NoMethod TargetPoolsAddHealthCheckRequest
38870	raw := NoMethod(*s)
38871	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38872}
38873
38874type TargetPoolsAddInstanceRequest struct {
38875	// Instances: A full or partial URL to an instance to add to this target
38876	// pool. This can be a full or partial URL. For example, the following
38877	// are valid URLs:
38878	// -
38879	// https://www.googleapis.com/compute/v1/projects/project-id/zones/zone/instances/instance-name
38880	// - projects/project-id/zones/zone/instances/instance-name
38881	// - zones/zone/instances/instance-name
38882	Instances []*InstanceReference `json:"instances,omitempty"`
38883
38884	// ForceSendFields is a list of field names (e.g. "Instances") to
38885	// unconditionally include in API requests. By default, fields with
38886	// empty values are omitted from API requests. However, any non-pointer,
38887	// non-interface field appearing in ForceSendFields will be sent to the
38888	// server regardless of whether the field is empty or not. This may be
38889	// used to include empty fields in Patch requests.
38890	ForceSendFields []string `json:"-"`
38891
38892	// NullFields is a list of field names (e.g. "Instances") to include in
38893	// API requests with the JSON null value. By default, fields with empty
38894	// values are omitted from API requests. However, any field with an
38895	// empty value appearing in NullFields will be sent to the server as
38896	// null. It is an error if a field in this list has a non-empty value.
38897	// This may be used to include null fields in Patch requests.
38898	NullFields []string `json:"-"`
38899}
38900
38901func (s *TargetPoolsAddInstanceRequest) MarshalJSON() ([]byte, error) {
38902	type NoMethod TargetPoolsAddInstanceRequest
38903	raw := NoMethod(*s)
38904	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38905}
38906
38907type TargetPoolsRemoveHealthCheckRequest struct {
38908	// HealthChecks: Health check URL to be removed. This can be a full or
38909	// valid partial URL. For example, the following are valid URLs:
38910	// -
38911	// https://www.googleapis.com/compute/beta/projects/project/global/httpHealthChecks/health-check
38912	// - projects/project/global/httpHealthChecks/health-check
38913	// - global/httpHealthChecks/health-check
38914	HealthChecks []*HealthCheckReference `json:"healthChecks,omitempty"`
38915
38916	// ForceSendFields is a list of field names (e.g. "HealthChecks") to
38917	// unconditionally include in API requests. By default, fields with
38918	// empty values are omitted from API requests. However, any non-pointer,
38919	// non-interface field appearing in ForceSendFields will be sent to the
38920	// server regardless of whether the field is empty or not. This may be
38921	// used to include empty fields in Patch requests.
38922	ForceSendFields []string `json:"-"`
38923
38924	// NullFields is a list of field names (e.g. "HealthChecks") to include
38925	// in API requests with the JSON null value. By default, fields with
38926	// empty values are omitted from API requests. However, any field with
38927	// an empty value appearing in NullFields will be sent to the server as
38928	// null. It is an error if a field in this list has a non-empty value.
38929	// This may be used to include null fields in Patch requests.
38930	NullFields []string `json:"-"`
38931}
38932
38933func (s *TargetPoolsRemoveHealthCheckRequest) MarshalJSON() ([]byte, error) {
38934	type NoMethod TargetPoolsRemoveHealthCheckRequest
38935	raw := NoMethod(*s)
38936	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38937}
38938
38939type TargetPoolsRemoveInstanceRequest struct {
38940	// Instances: URLs of the instances to be removed from target pool.
38941	Instances []*InstanceReference `json:"instances,omitempty"`
38942
38943	// ForceSendFields is a list of field names (e.g. "Instances") to
38944	// unconditionally include in API requests. By default, fields with
38945	// empty values are omitted from API requests. However, any non-pointer,
38946	// non-interface field appearing in ForceSendFields will be sent to the
38947	// server regardless of whether the field is empty or not. This may be
38948	// used to include empty fields in Patch requests.
38949	ForceSendFields []string `json:"-"`
38950
38951	// NullFields is a list of field names (e.g. "Instances") to include in
38952	// API requests with the JSON null value. By default, fields with empty
38953	// values are omitted from API requests. However, any field with an
38954	// empty value appearing in NullFields will be sent to the server as
38955	// null. It is an error if a field in this list has a non-empty value.
38956	// This may be used to include null fields in Patch requests.
38957	NullFields []string `json:"-"`
38958}
38959
38960func (s *TargetPoolsRemoveInstanceRequest) MarshalJSON() ([]byte, error) {
38961	type NoMethod TargetPoolsRemoveInstanceRequest
38962	raw := NoMethod(*s)
38963	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38964}
38965
38966type TargetPoolsScopedList struct {
38967	// TargetPools: A list of target pools contained in this scope.
38968	TargetPools []*TargetPool `json:"targetPools,omitempty"`
38969
38970	// Warning: Informational warning which replaces the list of addresses
38971	// when the list is empty.
38972	Warning *TargetPoolsScopedListWarning `json:"warning,omitempty"`
38973
38974	// ForceSendFields is a list of field names (e.g. "TargetPools") to
38975	// unconditionally include in API requests. By default, fields with
38976	// empty values are omitted from API requests. However, any non-pointer,
38977	// non-interface field appearing in ForceSendFields will be sent to the
38978	// server regardless of whether the field is empty or not. This may be
38979	// used to include empty fields in Patch requests.
38980	ForceSendFields []string `json:"-"`
38981
38982	// NullFields is a list of field names (e.g. "TargetPools") to include
38983	// in API requests with the JSON null value. By default, fields with
38984	// empty values are omitted from API requests. However, any field with
38985	// an empty value appearing in NullFields will be sent to the server as
38986	// null. It is an error if a field in this list has a non-empty value.
38987	// This may be used to include null fields in Patch requests.
38988	NullFields []string `json:"-"`
38989}
38990
38991func (s *TargetPoolsScopedList) MarshalJSON() ([]byte, error) {
38992	type NoMethod TargetPoolsScopedList
38993	raw := NoMethod(*s)
38994	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
38995}
38996
38997// TargetPoolsScopedListWarning: Informational warning which replaces
38998// the list of addresses when the list is empty.
38999type TargetPoolsScopedListWarning struct {
39000	// Code: [Output Only] A warning code, if applicable. For example,
39001	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39002	// the response.
39003	//
39004	// Possible values:
39005	//   "CLEANUP_FAILED"
39006	//   "DEPRECATED_RESOURCE_USED"
39007	//   "DEPRECATED_TYPE_USED"
39008	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39009	//   "EXPERIMENTAL_TYPE_USED"
39010	//   "EXTERNAL_API_WARNING"
39011	//   "FIELD_VALUE_OVERRIDEN"
39012	//   "INJECTED_KERNELS_DEPRECATED"
39013	//   "MISSING_TYPE_DEPENDENCY"
39014	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39015	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39016	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39017	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39018	//   "NEXT_HOP_NOT_RUNNING"
39019	//   "NOT_CRITICAL_ERROR"
39020	//   "NO_RESULTS_ON_PAGE"
39021	//   "REQUIRED_TOS_AGREEMENT"
39022	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39023	//   "RESOURCE_NOT_DELETED"
39024	//   "SCHEMA_VALIDATION_IGNORED"
39025	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39026	//   "UNDECLARED_PROPERTIES"
39027	//   "UNREACHABLE"
39028	Code string `json:"code,omitempty"`
39029
39030	// Data: [Output Only] Metadata about this warning in key: value format.
39031	// For example:
39032	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39033	Data []*TargetPoolsScopedListWarningData `json:"data,omitempty"`
39034
39035	// Message: [Output Only] A human-readable description of the warning
39036	// code.
39037	Message string `json:"message,omitempty"`
39038
39039	// ForceSendFields is a list of field names (e.g. "Code") to
39040	// unconditionally include in API requests. By default, fields with
39041	// empty values are omitted from API requests. However, any non-pointer,
39042	// non-interface field appearing in ForceSendFields will be sent to the
39043	// server regardless of whether the field is empty or not. This may be
39044	// used to include empty fields in Patch requests.
39045	ForceSendFields []string `json:"-"`
39046
39047	// NullFields is a list of field names (e.g. "Code") to include in API
39048	// requests with the JSON null value. By default, fields with empty
39049	// values are omitted from API requests. However, any field with an
39050	// empty value appearing in NullFields will be sent to the server as
39051	// null. It is an error if a field in this list has a non-empty value.
39052	// This may be used to include null fields in Patch requests.
39053	NullFields []string `json:"-"`
39054}
39055
39056func (s *TargetPoolsScopedListWarning) MarshalJSON() ([]byte, error) {
39057	type NoMethod TargetPoolsScopedListWarning
39058	raw := NoMethod(*s)
39059	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39060}
39061
39062type TargetPoolsScopedListWarningData struct {
39063	// Key: [Output Only] A key that provides more detail on the warning
39064	// being returned. For example, for warnings where there are no results
39065	// in a list request for a particular zone, this key might be scope and
39066	// the key value might be the zone name. Other examples might be a key
39067	// indicating a deprecated resource and a suggested replacement, or a
39068	// warning about invalid network settings (for example, if an instance
39069	// attempts to perform IP forwarding but is not enabled for IP
39070	// forwarding).
39071	Key string `json:"key,omitempty"`
39072
39073	// Value: [Output Only] A warning data value corresponding to the key.
39074	Value string `json:"value,omitempty"`
39075
39076	// ForceSendFields is a list of field names (e.g. "Key") to
39077	// unconditionally include in API requests. By default, fields with
39078	// empty values are omitted from API requests. However, any non-pointer,
39079	// non-interface field appearing in ForceSendFields will be sent to the
39080	// server regardless of whether the field is empty or not. This may be
39081	// used to include empty fields in Patch requests.
39082	ForceSendFields []string `json:"-"`
39083
39084	// NullFields is a list of field names (e.g. "Key") to include in API
39085	// requests with the JSON null value. By default, fields with empty
39086	// values are omitted from API requests. However, any field with an
39087	// empty value appearing in NullFields will be sent to the server as
39088	// null. It is an error if a field in this list has a non-empty value.
39089	// This may be used to include null fields in Patch requests.
39090	NullFields []string `json:"-"`
39091}
39092
39093func (s *TargetPoolsScopedListWarningData) MarshalJSON() ([]byte, error) {
39094	type NoMethod TargetPoolsScopedListWarningData
39095	raw := NoMethod(*s)
39096	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39097}
39098
39099type TargetReference struct {
39100	Target string `json:"target,omitempty"`
39101
39102	// ForceSendFields is a list of field names (e.g. "Target") to
39103	// unconditionally include in API requests. By default, fields with
39104	// empty values are omitted from API requests. However, any non-pointer,
39105	// non-interface field appearing in ForceSendFields will be sent to the
39106	// server regardless of whether the field is empty or not. This may be
39107	// used to include empty fields in Patch requests.
39108	ForceSendFields []string `json:"-"`
39109
39110	// NullFields is a list of field names (e.g. "Target") to include in API
39111	// requests with the JSON null value. By default, fields with empty
39112	// values are omitted from API requests. However, any field with an
39113	// empty value appearing in NullFields will be sent to the server as
39114	// null. It is an error if a field in this list has a non-empty value.
39115	// This may be used to include null fields in Patch requests.
39116	NullFields []string `json:"-"`
39117}
39118
39119func (s *TargetReference) MarshalJSON() ([]byte, error) {
39120	type NoMethod TargetReference
39121	raw := NoMethod(*s)
39122	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39123}
39124
39125type TargetSslProxiesSetBackendServiceRequest struct {
39126	// Service: The URL of the new BackendService resource for the
39127	// targetSslProxy.
39128	Service string `json:"service,omitempty"`
39129
39130	// ForceSendFields is a list of field names (e.g. "Service") to
39131	// unconditionally include in API requests. By default, fields with
39132	// empty values are omitted from API requests. However, any non-pointer,
39133	// non-interface field appearing in ForceSendFields will be sent to the
39134	// server regardless of whether the field is empty or not. This may be
39135	// used to include empty fields in Patch requests.
39136	ForceSendFields []string `json:"-"`
39137
39138	// NullFields is a list of field names (e.g. "Service") to include in
39139	// API requests with the JSON null value. By default, fields with empty
39140	// values are omitted from API requests. However, any field with an
39141	// empty value appearing in NullFields will be sent to the server as
39142	// null. It is an error if a field in this list has a non-empty value.
39143	// This may be used to include null fields in Patch requests.
39144	NullFields []string `json:"-"`
39145}
39146
39147func (s *TargetSslProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
39148	type NoMethod TargetSslProxiesSetBackendServiceRequest
39149	raw := NoMethod(*s)
39150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39151}
39152
39153type TargetSslProxiesSetProxyHeaderRequest struct {
39154	// ProxyHeader: The new type of proxy header to append before sending
39155	// data to the backend. NONE or PROXY_V1 are allowed.
39156	//
39157	// Possible values:
39158	//   "NONE"
39159	//   "PROXY_V1"
39160	ProxyHeader string `json:"proxyHeader,omitempty"`
39161
39162	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
39163	// unconditionally include in API requests. By default, fields with
39164	// empty values are omitted from API requests. However, any non-pointer,
39165	// non-interface field appearing in ForceSendFields will be sent to the
39166	// server regardless of whether the field is empty or not. This may be
39167	// used to include empty fields in Patch requests.
39168	ForceSendFields []string `json:"-"`
39169
39170	// NullFields is a list of field names (e.g. "ProxyHeader") to include
39171	// in API requests with the JSON null value. By default, fields with
39172	// empty values are omitted from API requests. However, any field with
39173	// an empty value appearing in NullFields will be sent to the server as
39174	// null. It is an error if a field in this list has a non-empty value.
39175	// This may be used to include null fields in Patch requests.
39176	NullFields []string `json:"-"`
39177}
39178
39179func (s *TargetSslProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
39180	type NoMethod TargetSslProxiesSetProxyHeaderRequest
39181	raw := NoMethod(*s)
39182	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39183}
39184
39185type TargetSslProxiesSetSslCertificatesRequest struct {
39186	// SslCertificates: New set of URLs to SslCertificate resources to
39187	// associate with this TargetSslProxy. Currently exactly one ssl
39188	// certificate must be specified.
39189	SslCertificates []string `json:"sslCertificates,omitempty"`
39190
39191	// ForceSendFields is a list of field names (e.g. "SslCertificates") to
39192	// unconditionally include in API requests. By default, fields with
39193	// empty values are omitted from API requests. However, any non-pointer,
39194	// non-interface field appearing in ForceSendFields will be sent to the
39195	// server regardless of whether the field is empty or not. This may be
39196	// used to include empty fields in Patch requests.
39197	ForceSendFields []string `json:"-"`
39198
39199	// NullFields is a list of field names (e.g. "SslCertificates") to
39200	// include in API requests with the JSON null value. By default, fields
39201	// with empty values are omitted from API requests. However, any field
39202	// with an empty value appearing in NullFields will be sent to the
39203	// server as null. It is an error if a field in this list has a
39204	// non-empty value. This may be used to include null fields in Patch
39205	// requests.
39206	NullFields []string `json:"-"`
39207}
39208
39209func (s *TargetSslProxiesSetSslCertificatesRequest) MarshalJSON() ([]byte, error) {
39210	type NoMethod TargetSslProxiesSetSslCertificatesRequest
39211	raw := NoMethod(*s)
39212	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39213}
39214
39215// TargetSslProxy: Represents a Target SSL Proxy resource.
39216//
39217// A target SSL proxy is a component of a SSL Proxy load balancer.
39218// Global forwarding rules reference a target SSL proxy, and the target
39219// proxy then references an external backend service. For more
39220// information, read Using Target Proxies. (== resource_for
39221// {$api_version}.targetSslProxies ==)
39222type TargetSslProxy struct {
39223	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39224	// format.
39225	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39226
39227	// Description: An optional description of this resource. Provide this
39228	// property when you create the resource.
39229	Description string `json:"description,omitempty"`
39230
39231	// Id: [Output Only] The unique identifier for the resource. This
39232	// identifier is defined by the server.
39233	Id uint64 `json:"id,omitempty,string"`
39234
39235	// Kind: [Output Only] Type of the resource. Always
39236	// compute#targetSslProxy for target SSL proxies.
39237	Kind string `json:"kind,omitempty"`
39238
39239	// Name: Name of the resource. Provided by the client when the resource
39240	// is created. The name must be 1-63 characters long, and comply with
39241	// RFC1035. Specifically, the name must be 1-63 characters long and
39242	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39243	// the first character must be a lowercase letter, and all following
39244	// characters must be a dash, lowercase letter, or digit, except the
39245	// last character, which cannot be a dash.
39246	Name string `json:"name,omitempty"`
39247
39248	// ProxyHeader: Specifies the type of proxy header to append before
39249	// sending data to the backend, either NONE or PROXY_V1. The default is
39250	// NONE.
39251	//
39252	// Possible values:
39253	//   "NONE"
39254	//   "PROXY_V1"
39255	ProxyHeader string `json:"proxyHeader,omitempty"`
39256
39257	// SelfLink: [Output Only] Server-defined URL for the resource.
39258	SelfLink string `json:"selfLink,omitempty"`
39259
39260	// Service: URL to the BackendService resource.
39261	Service string `json:"service,omitempty"`
39262
39263	// SslCertificates: URLs to SslCertificate resources that are used to
39264	// authenticate connections to Backends. At least one SSL certificate
39265	// must be specified. Currently, you may specify up to 15 SSL
39266	// certificates.
39267	SslCertificates []string `json:"sslCertificates,omitempty"`
39268
39269	// SslPolicy: URL of SslPolicy resource that will be associated with the
39270	// TargetSslProxy resource. If not set, the TargetSslProxy resource will
39271	// not have any SSL policy configured.
39272	SslPolicy string `json:"sslPolicy,omitempty"`
39273
39274	// ServerResponse contains the HTTP response code and headers from the
39275	// server.
39276	googleapi.ServerResponse `json:"-"`
39277
39278	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
39279	// to unconditionally include in API requests. By default, fields with
39280	// empty values are omitted from API requests. However, any non-pointer,
39281	// non-interface field appearing in ForceSendFields will be sent to the
39282	// server regardless of whether the field is empty or not. This may be
39283	// used to include empty fields in Patch requests.
39284	ForceSendFields []string `json:"-"`
39285
39286	// NullFields is a list of field names (e.g. "CreationTimestamp") to
39287	// include in API requests with the JSON null value. By default, fields
39288	// with empty values are omitted from API requests. However, any field
39289	// with an empty value appearing in NullFields will be sent to the
39290	// server as null. It is an error if a field in this list has a
39291	// non-empty value. This may be used to include null fields in Patch
39292	// requests.
39293	NullFields []string `json:"-"`
39294}
39295
39296func (s *TargetSslProxy) MarshalJSON() ([]byte, error) {
39297	type NoMethod TargetSslProxy
39298	raw := NoMethod(*s)
39299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39300}
39301
39302// TargetSslProxyList: Contains a list of TargetSslProxy resources.
39303type TargetSslProxyList struct {
39304	// Id: [Output Only] Unique identifier for the resource; defined by the
39305	// server.
39306	Id string `json:"id,omitempty"`
39307
39308	// Items: A list of TargetSslProxy resources.
39309	Items []*TargetSslProxy `json:"items,omitempty"`
39310
39311	// Kind: Type of resource.
39312	Kind string `json:"kind,omitempty"`
39313
39314	// NextPageToken: [Output Only] This token allows you to get the next
39315	// page of results for list requests. If the number of results is larger
39316	// than maxResults, use the nextPageToken as a value for the query
39317	// parameter pageToken in the next list request. Subsequent list
39318	// requests will have their own nextPageToken to continue paging through
39319	// the results.
39320	NextPageToken string `json:"nextPageToken,omitempty"`
39321
39322	// SelfLink: [Output Only] Server-defined URL for this resource.
39323	SelfLink string `json:"selfLink,omitempty"`
39324
39325	// Warning: [Output Only] Informational warning message.
39326	Warning *TargetSslProxyListWarning `json:"warning,omitempty"`
39327
39328	// ServerResponse contains the HTTP response code and headers from the
39329	// server.
39330	googleapi.ServerResponse `json:"-"`
39331
39332	// ForceSendFields is a list of field names (e.g. "Id") to
39333	// unconditionally include in API requests. By default, fields with
39334	// empty values are omitted from API requests. However, any non-pointer,
39335	// non-interface field appearing in ForceSendFields will be sent to the
39336	// server regardless of whether the field is empty or not. This may be
39337	// used to include empty fields in Patch requests.
39338	ForceSendFields []string `json:"-"`
39339
39340	// NullFields is a list of field names (e.g. "Id") to include in API
39341	// requests with the JSON null value. By default, fields with empty
39342	// values are omitted from API requests. However, any field with an
39343	// empty value appearing in NullFields will be sent to the server as
39344	// null. It is an error if a field in this list has a non-empty value.
39345	// This may be used to include null fields in Patch requests.
39346	NullFields []string `json:"-"`
39347}
39348
39349func (s *TargetSslProxyList) MarshalJSON() ([]byte, error) {
39350	type NoMethod TargetSslProxyList
39351	raw := NoMethod(*s)
39352	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39353}
39354
39355// TargetSslProxyListWarning: [Output Only] Informational warning
39356// message.
39357type TargetSslProxyListWarning struct {
39358	// Code: [Output Only] A warning code, if applicable. For example,
39359	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39360	// the response.
39361	//
39362	// Possible values:
39363	//   "CLEANUP_FAILED"
39364	//   "DEPRECATED_RESOURCE_USED"
39365	//   "DEPRECATED_TYPE_USED"
39366	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39367	//   "EXPERIMENTAL_TYPE_USED"
39368	//   "EXTERNAL_API_WARNING"
39369	//   "FIELD_VALUE_OVERRIDEN"
39370	//   "INJECTED_KERNELS_DEPRECATED"
39371	//   "MISSING_TYPE_DEPENDENCY"
39372	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39373	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39374	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39375	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39376	//   "NEXT_HOP_NOT_RUNNING"
39377	//   "NOT_CRITICAL_ERROR"
39378	//   "NO_RESULTS_ON_PAGE"
39379	//   "REQUIRED_TOS_AGREEMENT"
39380	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39381	//   "RESOURCE_NOT_DELETED"
39382	//   "SCHEMA_VALIDATION_IGNORED"
39383	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39384	//   "UNDECLARED_PROPERTIES"
39385	//   "UNREACHABLE"
39386	Code string `json:"code,omitempty"`
39387
39388	// Data: [Output Only] Metadata about this warning in key: value format.
39389	// For example:
39390	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39391	Data []*TargetSslProxyListWarningData `json:"data,omitempty"`
39392
39393	// Message: [Output Only] A human-readable description of the warning
39394	// code.
39395	Message string `json:"message,omitempty"`
39396
39397	// ForceSendFields is a list of field names (e.g. "Code") to
39398	// unconditionally include in API requests. By default, fields with
39399	// empty values are omitted from API requests. However, any non-pointer,
39400	// non-interface field appearing in ForceSendFields will be sent to the
39401	// server regardless of whether the field is empty or not. This may be
39402	// used to include empty fields in Patch requests.
39403	ForceSendFields []string `json:"-"`
39404
39405	// NullFields is a list of field names (e.g. "Code") to include in API
39406	// requests with the JSON null value. By default, fields with empty
39407	// values are omitted from API requests. However, any field with an
39408	// empty value appearing in NullFields will be sent to the server as
39409	// null. It is an error if a field in this list has a non-empty value.
39410	// This may be used to include null fields in Patch requests.
39411	NullFields []string `json:"-"`
39412}
39413
39414func (s *TargetSslProxyListWarning) MarshalJSON() ([]byte, error) {
39415	type NoMethod TargetSslProxyListWarning
39416	raw := NoMethod(*s)
39417	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39418}
39419
39420type TargetSslProxyListWarningData struct {
39421	// Key: [Output Only] A key that provides more detail on the warning
39422	// being returned. For example, for warnings where there are no results
39423	// in a list request for a particular zone, this key might be scope and
39424	// the key value might be the zone name. Other examples might be a key
39425	// indicating a deprecated resource and a suggested replacement, or a
39426	// warning about invalid network settings (for example, if an instance
39427	// attempts to perform IP forwarding but is not enabled for IP
39428	// forwarding).
39429	Key string `json:"key,omitempty"`
39430
39431	// Value: [Output Only] A warning data value corresponding to the key.
39432	Value string `json:"value,omitempty"`
39433
39434	// ForceSendFields is a list of field names (e.g. "Key") to
39435	// unconditionally include in API requests. By default, fields with
39436	// empty values are omitted from API requests. However, any non-pointer,
39437	// non-interface field appearing in ForceSendFields will be sent to the
39438	// server regardless of whether the field is empty or not. This may be
39439	// used to include empty fields in Patch requests.
39440	ForceSendFields []string `json:"-"`
39441
39442	// NullFields is a list of field names (e.g. "Key") to include in API
39443	// requests with the JSON null value. By default, fields with empty
39444	// values are omitted from API requests. However, any field with an
39445	// empty value appearing in NullFields will be sent to the server as
39446	// null. It is an error if a field in this list has a non-empty value.
39447	// This may be used to include null fields in Patch requests.
39448	NullFields []string `json:"-"`
39449}
39450
39451func (s *TargetSslProxyListWarningData) MarshalJSON() ([]byte, error) {
39452	type NoMethod TargetSslProxyListWarningData
39453	raw := NoMethod(*s)
39454	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39455}
39456
39457type TargetTcpProxiesSetBackendServiceRequest struct {
39458	// Service: The URL of the new BackendService resource for the
39459	// targetTcpProxy.
39460	Service string `json:"service,omitempty"`
39461
39462	// ForceSendFields is a list of field names (e.g. "Service") to
39463	// unconditionally include in API requests. By default, fields with
39464	// empty values are omitted from API requests. However, any non-pointer,
39465	// non-interface field appearing in ForceSendFields will be sent to the
39466	// server regardless of whether the field is empty or not. This may be
39467	// used to include empty fields in Patch requests.
39468	ForceSendFields []string `json:"-"`
39469
39470	// NullFields is a list of field names (e.g. "Service") to include in
39471	// API requests with the JSON null value. By default, fields with empty
39472	// values are omitted from API requests. However, any field with an
39473	// empty value appearing in NullFields will be sent to the server as
39474	// null. It is an error if a field in this list has a non-empty value.
39475	// This may be used to include null fields in Patch requests.
39476	NullFields []string `json:"-"`
39477}
39478
39479func (s *TargetTcpProxiesSetBackendServiceRequest) MarshalJSON() ([]byte, error) {
39480	type NoMethod TargetTcpProxiesSetBackendServiceRequest
39481	raw := NoMethod(*s)
39482	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39483}
39484
39485type TargetTcpProxiesSetProxyHeaderRequest struct {
39486	// ProxyHeader: The new type of proxy header to append before sending
39487	// data to the backend. NONE or PROXY_V1 are allowed.
39488	//
39489	// Possible values:
39490	//   "NONE"
39491	//   "PROXY_V1"
39492	ProxyHeader string `json:"proxyHeader,omitempty"`
39493
39494	// ForceSendFields is a list of field names (e.g. "ProxyHeader") to
39495	// unconditionally include in API requests. By default, fields with
39496	// empty values are omitted from API requests. However, any non-pointer,
39497	// non-interface field appearing in ForceSendFields will be sent to the
39498	// server regardless of whether the field is empty or not. This may be
39499	// used to include empty fields in Patch requests.
39500	ForceSendFields []string `json:"-"`
39501
39502	// NullFields is a list of field names (e.g. "ProxyHeader") to include
39503	// in API requests with the JSON null value. By default, fields with
39504	// empty values are omitted from API requests. However, any field with
39505	// an empty value appearing in NullFields will be sent to the server as
39506	// null. It is an error if a field in this list has a non-empty value.
39507	// This may be used to include null fields in Patch requests.
39508	NullFields []string `json:"-"`
39509}
39510
39511func (s *TargetTcpProxiesSetProxyHeaderRequest) MarshalJSON() ([]byte, error) {
39512	type NoMethod TargetTcpProxiesSetProxyHeaderRequest
39513	raw := NoMethod(*s)
39514	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39515}
39516
39517// TargetTcpProxy: Represents a Target TCP Proxy resource.
39518//
39519// A target TCP proxy is a component of a TCP Proxy load balancer.
39520// Global forwarding rules reference target TCP proxy, and the target
39521// proxy then references an external backend service. For more
39522// information, read TCP Proxy Load Balancing Concepts. (== resource_for
39523// {$api_version}.targetTcpProxies ==)
39524type TargetTcpProxy struct {
39525	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39526	// format.
39527	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39528
39529	// Description: An optional description of this resource. Provide this
39530	// property when you create the resource.
39531	Description string `json:"description,omitempty"`
39532
39533	// Id: [Output Only] The unique identifier for the resource. This
39534	// identifier is defined by the server.
39535	Id uint64 `json:"id,omitempty,string"`
39536
39537	// Kind: [Output Only] Type of the resource. Always
39538	// compute#targetTcpProxy for target TCP proxies.
39539	Kind string `json:"kind,omitempty"`
39540
39541	// Name: Name of the resource. Provided by the client when the resource
39542	// is created. The name must be 1-63 characters long, and comply with
39543	// RFC1035. Specifically, the name must be 1-63 characters long and
39544	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39545	// the first character must be a lowercase letter, and all following
39546	// characters must be a dash, lowercase letter, or digit, except the
39547	// last character, which cannot be a dash.
39548	Name string `json:"name,omitempty"`
39549
39550	// ProxyHeader: Specifies the type of proxy header to append before
39551	// sending data to the backend, either NONE or PROXY_V1. The default is
39552	// NONE.
39553	//
39554	// Possible values:
39555	//   "NONE"
39556	//   "PROXY_V1"
39557	ProxyHeader string `json:"proxyHeader,omitempty"`
39558
39559	// SelfLink: [Output Only] Server-defined URL for the resource.
39560	SelfLink string `json:"selfLink,omitempty"`
39561
39562	// Service: URL to the BackendService resource.
39563	Service string `json:"service,omitempty"`
39564
39565	// ServerResponse contains the HTTP response code and headers from the
39566	// server.
39567	googleapi.ServerResponse `json:"-"`
39568
39569	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
39570	// to unconditionally include in API requests. By default, fields with
39571	// empty values are omitted from API requests. However, any non-pointer,
39572	// non-interface field appearing in ForceSendFields will be sent to the
39573	// server regardless of whether the field is empty or not. This may be
39574	// used to include empty fields in Patch requests.
39575	ForceSendFields []string `json:"-"`
39576
39577	// NullFields is a list of field names (e.g. "CreationTimestamp") to
39578	// include in API requests with the JSON null value. By default, fields
39579	// with empty values are omitted from API requests. However, any field
39580	// with an empty value appearing in NullFields will be sent to the
39581	// server as null. It is an error if a field in this list has a
39582	// non-empty value. This may be used to include null fields in Patch
39583	// requests.
39584	NullFields []string `json:"-"`
39585}
39586
39587func (s *TargetTcpProxy) MarshalJSON() ([]byte, error) {
39588	type NoMethod TargetTcpProxy
39589	raw := NoMethod(*s)
39590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39591}
39592
39593// TargetTcpProxyList: Contains a list of TargetTcpProxy resources.
39594type TargetTcpProxyList struct {
39595	// Id: [Output Only] Unique identifier for the resource; defined by the
39596	// server.
39597	Id string `json:"id,omitempty"`
39598
39599	// Items: A list of TargetTcpProxy resources.
39600	Items []*TargetTcpProxy `json:"items,omitempty"`
39601
39602	// Kind: Type of resource.
39603	Kind string `json:"kind,omitempty"`
39604
39605	// NextPageToken: [Output Only] This token allows you to get the next
39606	// page of results for list requests. If the number of results is larger
39607	// than maxResults, use the nextPageToken as a value for the query
39608	// parameter pageToken in the next list request. Subsequent list
39609	// requests will have their own nextPageToken to continue paging through
39610	// the results.
39611	NextPageToken string `json:"nextPageToken,omitempty"`
39612
39613	// SelfLink: [Output Only] Server-defined URL for this resource.
39614	SelfLink string `json:"selfLink,omitempty"`
39615
39616	// Warning: [Output Only] Informational warning message.
39617	Warning *TargetTcpProxyListWarning `json:"warning,omitempty"`
39618
39619	// ServerResponse contains the HTTP response code and headers from the
39620	// server.
39621	googleapi.ServerResponse `json:"-"`
39622
39623	// ForceSendFields is a list of field names (e.g. "Id") to
39624	// unconditionally include in API requests. By default, fields with
39625	// empty values are omitted from API requests. However, any non-pointer,
39626	// non-interface field appearing in ForceSendFields will be sent to the
39627	// server regardless of whether the field is empty or not. This may be
39628	// used to include empty fields in Patch requests.
39629	ForceSendFields []string `json:"-"`
39630
39631	// NullFields is a list of field names (e.g. "Id") to include in API
39632	// requests with the JSON null value. By default, fields with empty
39633	// values are omitted from API requests. However, any field with an
39634	// empty value appearing in NullFields will be sent to the server as
39635	// null. It is an error if a field in this list has a non-empty value.
39636	// This may be used to include null fields in Patch requests.
39637	NullFields []string `json:"-"`
39638}
39639
39640func (s *TargetTcpProxyList) MarshalJSON() ([]byte, error) {
39641	type NoMethod TargetTcpProxyList
39642	raw := NoMethod(*s)
39643	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39644}
39645
39646// TargetTcpProxyListWarning: [Output Only] Informational warning
39647// message.
39648type TargetTcpProxyListWarning struct {
39649	// Code: [Output Only] A warning code, if applicable. For example,
39650	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39651	// the response.
39652	//
39653	// Possible values:
39654	//   "CLEANUP_FAILED"
39655	//   "DEPRECATED_RESOURCE_USED"
39656	//   "DEPRECATED_TYPE_USED"
39657	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39658	//   "EXPERIMENTAL_TYPE_USED"
39659	//   "EXTERNAL_API_WARNING"
39660	//   "FIELD_VALUE_OVERRIDEN"
39661	//   "INJECTED_KERNELS_DEPRECATED"
39662	//   "MISSING_TYPE_DEPENDENCY"
39663	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39664	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39665	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39666	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39667	//   "NEXT_HOP_NOT_RUNNING"
39668	//   "NOT_CRITICAL_ERROR"
39669	//   "NO_RESULTS_ON_PAGE"
39670	//   "REQUIRED_TOS_AGREEMENT"
39671	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39672	//   "RESOURCE_NOT_DELETED"
39673	//   "SCHEMA_VALIDATION_IGNORED"
39674	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39675	//   "UNDECLARED_PROPERTIES"
39676	//   "UNREACHABLE"
39677	Code string `json:"code,omitempty"`
39678
39679	// Data: [Output Only] Metadata about this warning in key: value format.
39680	// For example:
39681	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39682	Data []*TargetTcpProxyListWarningData `json:"data,omitempty"`
39683
39684	// Message: [Output Only] A human-readable description of the warning
39685	// code.
39686	Message string `json:"message,omitempty"`
39687
39688	// ForceSendFields is a list of field names (e.g. "Code") to
39689	// unconditionally include in API requests. By default, fields with
39690	// empty values are omitted from API requests. However, any non-pointer,
39691	// non-interface field appearing in ForceSendFields will be sent to the
39692	// server regardless of whether the field is empty or not. This may be
39693	// used to include empty fields in Patch requests.
39694	ForceSendFields []string `json:"-"`
39695
39696	// NullFields is a list of field names (e.g. "Code") to include in API
39697	// requests with the JSON null value. By default, fields with empty
39698	// values are omitted from API requests. However, any field with an
39699	// empty value appearing in NullFields will be sent to the server as
39700	// null. It is an error if a field in this list has a non-empty value.
39701	// This may be used to include null fields in Patch requests.
39702	NullFields []string `json:"-"`
39703}
39704
39705func (s *TargetTcpProxyListWarning) MarshalJSON() ([]byte, error) {
39706	type NoMethod TargetTcpProxyListWarning
39707	raw := NoMethod(*s)
39708	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39709}
39710
39711type TargetTcpProxyListWarningData struct {
39712	// Key: [Output Only] A key that provides more detail on the warning
39713	// being returned. For example, for warnings where there are no results
39714	// in a list request for a particular zone, this key might be scope and
39715	// the key value might be the zone name. Other examples might be a key
39716	// indicating a deprecated resource and a suggested replacement, or a
39717	// warning about invalid network settings (for example, if an instance
39718	// attempts to perform IP forwarding but is not enabled for IP
39719	// forwarding).
39720	Key string `json:"key,omitempty"`
39721
39722	// Value: [Output Only] A warning data value corresponding to the key.
39723	Value string `json:"value,omitempty"`
39724
39725	// ForceSendFields is a list of field names (e.g. "Key") to
39726	// unconditionally include in API requests. By default, fields with
39727	// empty values are omitted from API requests. However, any non-pointer,
39728	// non-interface field appearing in ForceSendFields will be sent to the
39729	// server regardless of whether the field is empty or not. This may be
39730	// used to include empty fields in Patch requests.
39731	ForceSendFields []string `json:"-"`
39732
39733	// NullFields is a list of field names (e.g. "Key") to include in API
39734	// requests with the JSON null value. By default, fields with empty
39735	// values are omitted from API requests. However, any field with an
39736	// empty value appearing in NullFields will be sent to the server as
39737	// null. It is an error if a field in this list has a non-empty value.
39738	// This may be used to include null fields in Patch requests.
39739	NullFields []string `json:"-"`
39740}
39741
39742func (s *TargetTcpProxyListWarningData) MarshalJSON() ([]byte, error) {
39743	type NoMethod TargetTcpProxyListWarningData
39744	raw := NoMethod(*s)
39745	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39746}
39747
39748// TargetVpnGateway: Represents a Target VPN Gateway resource.
39749//
39750// The target VPN gateway resource represents a Classic Cloud VPN
39751// gateway. For more information, read the the Cloud VPN Overview. (==
39752// resource_for {$api_version}.targetVpnGateways ==)
39753type TargetVpnGateway struct {
39754	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
39755	// format.
39756	CreationTimestamp string `json:"creationTimestamp,omitempty"`
39757
39758	// Description: An optional description of this resource. Provide this
39759	// property when you create the resource.
39760	Description string `json:"description,omitempty"`
39761
39762	// ForwardingRules: [Output Only] A list of URLs to the ForwardingRule
39763	// resources. ForwardingRules are created using
39764	// compute.forwardingRules.insert and associated with a VPN gateway.
39765	ForwardingRules []string `json:"forwardingRules,omitempty"`
39766
39767	// Id: [Output Only] The unique identifier for the resource. This
39768	// identifier is defined by the server.
39769	Id uint64 `json:"id,omitempty,string"`
39770
39771	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
39772	// for target VPN gateways.
39773	Kind string `json:"kind,omitempty"`
39774
39775	// LabelFingerprint: A fingerprint for the labels being applied to this
39776	// TargetVpnGateway, which is essentially a hash of the labels set used
39777	// for optimistic locking. The fingerprint is initially generated by
39778	// Compute Engine and changes after every request to modify or update
39779	// labels. You must always provide an up-to-date fingerprint hash in
39780	// order to update or change labels, otherwise the request will fail
39781	// with error 412 conditionNotMet.
39782	//
39783	// To see the latest fingerprint, make a get() request to retrieve a
39784	// TargetVpnGateway.
39785	LabelFingerprint string `json:"labelFingerprint,omitempty"`
39786
39787	// Labels: Labels to apply to this TargetVpnGateway resource. These can
39788	// be later modified by the setLabels method. Each label key/value must
39789	// comply with RFC1035. Label values may be empty.
39790	Labels map[string]string `json:"labels,omitempty"`
39791
39792	// Name: Name of the resource. Provided by the client when the resource
39793	// is created. The name must be 1-63 characters long, and comply with
39794	// RFC1035. Specifically, the name must be 1-63 characters long and
39795	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
39796	// the first character must be a lowercase letter, and all following
39797	// characters must be a dash, lowercase letter, or digit, except the
39798	// last character, which cannot be a dash.
39799	Name string `json:"name,omitempty"`
39800
39801	// Network: URL of the network to which this VPN gateway is attached.
39802	// Provided by the client when the VPN gateway is created.
39803	Network string `json:"network,omitempty"`
39804
39805	// Region: [Output Only] URL of the region where the target VPN gateway
39806	// resides. You must specify this field as part of the HTTP request URL.
39807	// It is not settable as a field in the request body.
39808	Region string `json:"region,omitempty"`
39809
39810	// SelfLink: [Output Only] Server-defined URL for the resource.
39811	SelfLink string `json:"selfLink,omitempty"`
39812
39813	// Status: [Output Only] The status of the VPN gateway, which can be one
39814	// of the following: CREATING, READY, FAILED, or DELETING.
39815	//
39816	// Possible values:
39817	//   "CREATING"
39818	//   "DELETING"
39819	//   "FAILED"
39820	//   "READY"
39821	Status string `json:"status,omitempty"`
39822
39823	// Tunnels: [Output Only] A list of URLs to VpnTunnel resources.
39824	// VpnTunnels are created using the compute.vpntunnels.insert method and
39825	// associated with a VPN gateway.
39826	Tunnels []string `json:"tunnels,omitempty"`
39827
39828	// ServerResponse contains the HTTP response code and headers from the
39829	// server.
39830	googleapi.ServerResponse `json:"-"`
39831
39832	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
39833	// to unconditionally include in API requests. By default, fields with
39834	// empty values are omitted from API requests. However, any non-pointer,
39835	// non-interface field appearing in ForceSendFields will be sent to the
39836	// server regardless of whether the field is empty or not. This may be
39837	// used to include empty fields in Patch requests.
39838	ForceSendFields []string `json:"-"`
39839
39840	// NullFields is a list of field names (e.g. "CreationTimestamp") to
39841	// include in API requests with the JSON null value. By default, fields
39842	// with empty values are omitted from API requests. However, any field
39843	// with an empty value appearing in NullFields will be sent to the
39844	// server as null. It is an error if a field in this list has a
39845	// non-empty value. This may be used to include null fields in Patch
39846	// requests.
39847	NullFields []string `json:"-"`
39848}
39849
39850func (s *TargetVpnGateway) MarshalJSON() ([]byte, error) {
39851	type NoMethod TargetVpnGateway
39852	raw := NoMethod(*s)
39853	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39854}
39855
39856type TargetVpnGatewayAggregatedList struct {
39857	// Id: [Output Only] Unique identifier for the resource; defined by the
39858	// server.
39859	Id string `json:"id,omitempty"`
39860
39861	// Items: A list of TargetVpnGateway resources.
39862	Items map[string]TargetVpnGatewaysScopedList `json:"items,omitempty"`
39863
39864	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
39865	// for target VPN gateways.
39866	Kind string `json:"kind,omitempty"`
39867
39868	// NextPageToken: [Output Only] This token allows you to get the next
39869	// page of results for list requests. If the number of results is larger
39870	// than maxResults, use the nextPageToken as a value for the query
39871	// parameter pageToken in the next list request. Subsequent list
39872	// requests will have their own nextPageToken to continue paging through
39873	// the results.
39874	NextPageToken string `json:"nextPageToken,omitempty"`
39875
39876	// SelfLink: [Output Only] Server-defined URL for this resource.
39877	SelfLink string `json:"selfLink,omitempty"`
39878
39879	// Warning: [Output Only] Informational warning message.
39880	Warning *TargetVpnGatewayAggregatedListWarning `json:"warning,omitempty"`
39881
39882	// ServerResponse contains the HTTP response code and headers from the
39883	// server.
39884	googleapi.ServerResponse `json:"-"`
39885
39886	// ForceSendFields is a list of field names (e.g. "Id") to
39887	// unconditionally include in API requests. By default, fields with
39888	// empty values are omitted from API requests. However, any non-pointer,
39889	// non-interface field appearing in ForceSendFields will be sent to the
39890	// server regardless of whether the field is empty or not. This may be
39891	// used to include empty fields in Patch requests.
39892	ForceSendFields []string `json:"-"`
39893
39894	// NullFields is a list of field names (e.g. "Id") to include in API
39895	// requests with the JSON null value. By default, fields with empty
39896	// values are omitted from API requests. However, any field with an
39897	// empty value appearing in NullFields will be sent to the server as
39898	// null. It is an error if a field in this list has a non-empty value.
39899	// This may be used to include null fields in Patch requests.
39900	NullFields []string `json:"-"`
39901}
39902
39903func (s *TargetVpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
39904	type NoMethod TargetVpnGatewayAggregatedList
39905	raw := NoMethod(*s)
39906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39907}
39908
39909// TargetVpnGatewayAggregatedListWarning: [Output Only] Informational
39910// warning message.
39911type TargetVpnGatewayAggregatedListWarning struct {
39912	// Code: [Output Only] A warning code, if applicable. For example,
39913	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
39914	// the response.
39915	//
39916	// Possible values:
39917	//   "CLEANUP_FAILED"
39918	//   "DEPRECATED_RESOURCE_USED"
39919	//   "DEPRECATED_TYPE_USED"
39920	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
39921	//   "EXPERIMENTAL_TYPE_USED"
39922	//   "EXTERNAL_API_WARNING"
39923	//   "FIELD_VALUE_OVERRIDEN"
39924	//   "INJECTED_KERNELS_DEPRECATED"
39925	//   "MISSING_TYPE_DEPENDENCY"
39926	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
39927	//   "NEXT_HOP_CANNOT_IP_FORWARD"
39928	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
39929	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
39930	//   "NEXT_HOP_NOT_RUNNING"
39931	//   "NOT_CRITICAL_ERROR"
39932	//   "NO_RESULTS_ON_PAGE"
39933	//   "REQUIRED_TOS_AGREEMENT"
39934	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
39935	//   "RESOURCE_NOT_DELETED"
39936	//   "SCHEMA_VALIDATION_IGNORED"
39937	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
39938	//   "UNDECLARED_PROPERTIES"
39939	//   "UNREACHABLE"
39940	Code string `json:"code,omitempty"`
39941
39942	// Data: [Output Only] Metadata about this warning in key: value format.
39943	// For example:
39944	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
39945	Data []*TargetVpnGatewayAggregatedListWarningData `json:"data,omitempty"`
39946
39947	// Message: [Output Only] A human-readable description of the warning
39948	// code.
39949	Message string `json:"message,omitempty"`
39950
39951	// ForceSendFields is a list of field names (e.g. "Code") to
39952	// unconditionally include in API requests. By default, fields with
39953	// empty values are omitted from API requests. However, any non-pointer,
39954	// non-interface field appearing in ForceSendFields will be sent to the
39955	// server regardless of whether the field is empty or not. This may be
39956	// used to include empty fields in Patch requests.
39957	ForceSendFields []string `json:"-"`
39958
39959	// NullFields is a list of field names (e.g. "Code") to include in API
39960	// requests with the JSON null value. By default, fields with empty
39961	// values are omitted from API requests. However, any field with an
39962	// empty value appearing in NullFields will be sent to the server as
39963	// null. It is an error if a field in this list has a non-empty value.
39964	// This may be used to include null fields in Patch requests.
39965	NullFields []string `json:"-"`
39966}
39967
39968func (s *TargetVpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
39969	type NoMethod TargetVpnGatewayAggregatedListWarning
39970	raw := NoMethod(*s)
39971	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
39972}
39973
39974type TargetVpnGatewayAggregatedListWarningData struct {
39975	// Key: [Output Only] A key that provides more detail on the warning
39976	// being returned. For example, for warnings where there are no results
39977	// in a list request for a particular zone, this key might be scope and
39978	// the key value might be the zone name. Other examples might be a key
39979	// indicating a deprecated resource and a suggested replacement, or a
39980	// warning about invalid network settings (for example, if an instance
39981	// attempts to perform IP forwarding but is not enabled for IP
39982	// forwarding).
39983	Key string `json:"key,omitempty"`
39984
39985	// Value: [Output Only] A warning data value corresponding to the key.
39986	Value string `json:"value,omitempty"`
39987
39988	// ForceSendFields is a list of field names (e.g. "Key") to
39989	// unconditionally include in API requests. By default, fields with
39990	// empty values are omitted from API requests. However, any non-pointer,
39991	// non-interface field appearing in ForceSendFields will be sent to the
39992	// server regardless of whether the field is empty or not. This may be
39993	// used to include empty fields in Patch requests.
39994	ForceSendFields []string `json:"-"`
39995
39996	// NullFields is a list of field names (e.g. "Key") to include in API
39997	// requests with the JSON null value. By default, fields with empty
39998	// values are omitted from API requests. However, any field with an
39999	// empty value appearing in NullFields will be sent to the server as
40000	// null. It is an error if a field in this list has a non-empty value.
40001	// This may be used to include null fields in Patch requests.
40002	NullFields []string `json:"-"`
40003}
40004
40005func (s *TargetVpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40006	type NoMethod TargetVpnGatewayAggregatedListWarningData
40007	raw := NoMethod(*s)
40008	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40009}
40010
40011// TargetVpnGatewayList: Contains a list of TargetVpnGateway resources.
40012type TargetVpnGatewayList struct {
40013	// Id: [Output Only] Unique identifier for the resource; defined by the
40014	// server.
40015	Id string `json:"id,omitempty"`
40016
40017	// Items: A list of TargetVpnGateway resources.
40018	Items []*TargetVpnGateway `json:"items,omitempty"`
40019
40020	// Kind: [Output Only] Type of resource. Always compute#targetVpnGateway
40021	// for target VPN gateways.
40022	Kind string `json:"kind,omitempty"`
40023
40024	// NextPageToken: [Output Only] This token allows you to get the next
40025	// page of results for list requests. If the number of results is larger
40026	// than maxResults, use the nextPageToken as a value for the query
40027	// parameter pageToken in the next list request. Subsequent list
40028	// requests will have their own nextPageToken to continue paging through
40029	// the results.
40030	NextPageToken string `json:"nextPageToken,omitempty"`
40031
40032	// SelfLink: [Output Only] Server-defined URL for this resource.
40033	SelfLink string `json:"selfLink,omitempty"`
40034
40035	// Warning: [Output Only] Informational warning message.
40036	Warning *TargetVpnGatewayListWarning `json:"warning,omitempty"`
40037
40038	// ServerResponse contains the HTTP response code and headers from the
40039	// server.
40040	googleapi.ServerResponse `json:"-"`
40041
40042	// ForceSendFields is a list of field names (e.g. "Id") to
40043	// unconditionally include in API requests. By default, fields with
40044	// empty values are omitted from API requests. However, any non-pointer,
40045	// non-interface field appearing in ForceSendFields will be sent to the
40046	// server regardless of whether the field is empty or not. This may be
40047	// used to include empty fields in Patch requests.
40048	ForceSendFields []string `json:"-"`
40049
40050	// NullFields is a list of field names (e.g. "Id") to include in API
40051	// requests with the JSON null value. By default, fields with empty
40052	// values are omitted from API requests. However, any field with an
40053	// empty value appearing in NullFields will be sent to the server as
40054	// null. It is an error if a field in this list has a non-empty value.
40055	// This may be used to include null fields in Patch requests.
40056	NullFields []string `json:"-"`
40057}
40058
40059func (s *TargetVpnGatewayList) MarshalJSON() ([]byte, error) {
40060	type NoMethod TargetVpnGatewayList
40061	raw := NoMethod(*s)
40062	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40063}
40064
40065// TargetVpnGatewayListWarning: [Output Only] Informational warning
40066// message.
40067type TargetVpnGatewayListWarning struct {
40068	// Code: [Output Only] A warning code, if applicable. For example,
40069	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40070	// the response.
40071	//
40072	// Possible values:
40073	//   "CLEANUP_FAILED"
40074	//   "DEPRECATED_RESOURCE_USED"
40075	//   "DEPRECATED_TYPE_USED"
40076	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40077	//   "EXPERIMENTAL_TYPE_USED"
40078	//   "EXTERNAL_API_WARNING"
40079	//   "FIELD_VALUE_OVERRIDEN"
40080	//   "INJECTED_KERNELS_DEPRECATED"
40081	//   "MISSING_TYPE_DEPENDENCY"
40082	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40083	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40084	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40085	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40086	//   "NEXT_HOP_NOT_RUNNING"
40087	//   "NOT_CRITICAL_ERROR"
40088	//   "NO_RESULTS_ON_PAGE"
40089	//   "REQUIRED_TOS_AGREEMENT"
40090	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40091	//   "RESOURCE_NOT_DELETED"
40092	//   "SCHEMA_VALIDATION_IGNORED"
40093	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40094	//   "UNDECLARED_PROPERTIES"
40095	//   "UNREACHABLE"
40096	Code string `json:"code,omitempty"`
40097
40098	// Data: [Output Only] Metadata about this warning in key: value format.
40099	// For example:
40100	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40101	Data []*TargetVpnGatewayListWarningData `json:"data,omitempty"`
40102
40103	// Message: [Output Only] A human-readable description of the warning
40104	// code.
40105	Message string `json:"message,omitempty"`
40106
40107	// ForceSendFields is a list of field names (e.g. "Code") to
40108	// unconditionally include in API requests. By default, fields with
40109	// empty values are omitted from API requests. However, any non-pointer,
40110	// non-interface field appearing in ForceSendFields will be sent to the
40111	// server regardless of whether the field is empty or not. This may be
40112	// used to include empty fields in Patch requests.
40113	ForceSendFields []string `json:"-"`
40114
40115	// NullFields is a list of field names (e.g. "Code") to include in API
40116	// requests with the JSON null value. By default, fields with empty
40117	// values are omitted from API requests. However, any field with an
40118	// empty value appearing in NullFields will be sent to the server as
40119	// null. It is an error if a field in this list has a non-empty value.
40120	// This may be used to include null fields in Patch requests.
40121	NullFields []string `json:"-"`
40122}
40123
40124func (s *TargetVpnGatewayListWarning) MarshalJSON() ([]byte, error) {
40125	type NoMethod TargetVpnGatewayListWarning
40126	raw := NoMethod(*s)
40127	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40128}
40129
40130type TargetVpnGatewayListWarningData struct {
40131	// Key: [Output Only] A key that provides more detail on the warning
40132	// being returned. For example, for warnings where there are no results
40133	// in a list request for a particular zone, this key might be scope and
40134	// the key value might be the zone name. Other examples might be a key
40135	// indicating a deprecated resource and a suggested replacement, or a
40136	// warning about invalid network settings (for example, if an instance
40137	// attempts to perform IP forwarding but is not enabled for IP
40138	// forwarding).
40139	Key string `json:"key,omitempty"`
40140
40141	// Value: [Output Only] A warning data value corresponding to the key.
40142	Value string `json:"value,omitempty"`
40143
40144	// ForceSendFields is a list of field names (e.g. "Key") to
40145	// unconditionally include in API requests. By default, fields with
40146	// empty values are omitted from API requests. However, any non-pointer,
40147	// non-interface field appearing in ForceSendFields will be sent to the
40148	// server regardless of whether the field is empty or not. This may be
40149	// used to include empty fields in Patch requests.
40150	ForceSendFields []string `json:"-"`
40151
40152	// NullFields is a list of field names (e.g. "Key") to include in API
40153	// requests with the JSON null value. By default, fields with empty
40154	// values are omitted from API requests. However, any field with an
40155	// empty value appearing in NullFields will be sent to the server as
40156	// null. It is an error if a field in this list has a non-empty value.
40157	// This may be used to include null fields in Patch requests.
40158	NullFields []string `json:"-"`
40159}
40160
40161func (s *TargetVpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
40162	type NoMethod TargetVpnGatewayListWarningData
40163	raw := NoMethod(*s)
40164	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40165}
40166
40167type TargetVpnGatewaysScopedList struct {
40168	// TargetVpnGateways: [Output Only] A list of target VPN gateways
40169	// contained in this scope.
40170	TargetVpnGateways []*TargetVpnGateway `json:"targetVpnGateways,omitempty"`
40171
40172	// Warning: [Output Only] Informational warning which replaces the list
40173	// of addresses when the list is empty.
40174	Warning *TargetVpnGatewaysScopedListWarning `json:"warning,omitempty"`
40175
40176	// ForceSendFields is a list of field names (e.g. "TargetVpnGateways")
40177	// to unconditionally include in API requests. By default, fields with
40178	// empty values are omitted from API requests. However, any non-pointer,
40179	// non-interface field appearing in ForceSendFields will be sent to the
40180	// server regardless of whether the field is empty or not. This may be
40181	// used to include empty fields in Patch requests.
40182	ForceSendFields []string `json:"-"`
40183
40184	// NullFields is a list of field names (e.g. "TargetVpnGateways") to
40185	// include in API requests with the JSON null value. By default, fields
40186	// with empty values are omitted from API requests. However, any field
40187	// with an empty value appearing in NullFields will be sent to the
40188	// server as null. It is an error if a field in this list has a
40189	// non-empty value. This may be used to include null fields in Patch
40190	// requests.
40191	NullFields []string `json:"-"`
40192}
40193
40194func (s *TargetVpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
40195	type NoMethod TargetVpnGatewaysScopedList
40196	raw := NoMethod(*s)
40197	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40198}
40199
40200// TargetVpnGatewaysScopedListWarning: [Output Only] Informational
40201// warning which replaces the list of addresses when the list is empty.
40202type TargetVpnGatewaysScopedListWarning struct {
40203	// Code: [Output Only] A warning code, if applicable. For example,
40204	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40205	// the response.
40206	//
40207	// Possible values:
40208	//   "CLEANUP_FAILED"
40209	//   "DEPRECATED_RESOURCE_USED"
40210	//   "DEPRECATED_TYPE_USED"
40211	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40212	//   "EXPERIMENTAL_TYPE_USED"
40213	//   "EXTERNAL_API_WARNING"
40214	//   "FIELD_VALUE_OVERRIDEN"
40215	//   "INJECTED_KERNELS_DEPRECATED"
40216	//   "MISSING_TYPE_DEPENDENCY"
40217	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40218	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40219	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40220	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40221	//   "NEXT_HOP_NOT_RUNNING"
40222	//   "NOT_CRITICAL_ERROR"
40223	//   "NO_RESULTS_ON_PAGE"
40224	//   "REQUIRED_TOS_AGREEMENT"
40225	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40226	//   "RESOURCE_NOT_DELETED"
40227	//   "SCHEMA_VALIDATION_IGNORED"
40228	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40229	//   "UNDECLARED_PROPERTIES"
40230	//   "UNREACHABLE"
40231	Code string `json:"code,omitempty"`
40232
40233	// Data: [Output Only] Metadata about this warning in key: value format.
40234	// For example:
40235	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40236	Data []*TargetVpnGatewaysScopedListWarningData `json:"data,omitempty"`
40237
40238	// Message: [Output Only] A human-readable description of the warning
40239	// code.
40240	Message string `json:"message,omitempty"`
40241
40242	// ForceSendFields is a list of field names (e.g. "Code") to
40243	// unconditionally include in API requests. By default, fields with
40244	// empty values are omitted from API requests. However, any non-pointer,
40245	// non-interface field appearing in ForceSendFields will be sent to the
40246	// server regardless of whether the field is empty or not. This may be
40247	// used to include empty fields in Patch requests.
40248	ForceSendFields []string `json:"-"`
40249
40250	// NullFields is a list of field names (e.g. "Code") to include in API
40251	// requests with the JSON null value. By default, fields with empty
40252	// values are omitted from API requests. However, any field with an
40253	// empty value appearing in NullFields will be sent to the server as
40254	// null. It is an error if a field in this list has a non-empty value.
40255	// This may be used to include null fields in Patch requests.
40256	NullFields []string `json:"-"`
40257}
40258
40259func (s *TargetVpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
40260	type NoMethod TargetVpnGatewaysScopedListWarning
40261	raw := NoMethod(*s)
40262	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40263}
40264
40265type TargetVpnGatewaysScopedListWarningData struct {
40266	// Key: [Output Only] A key that provides more detail on the warning
40267	// being returned. For example, for warnings where there are no results
40268	// in a list request for a particular zone, this key might be scope and
40269	// the key value might be the zone name. Other examples might be a key
40270	// indicating a deprecated resource and a suggested replacement, or a
40271	// warning about invalid network settings (for example, if an instance
40272	// attempts to perform IP forwarding but is not enabled for IP
40273	// forwarding).
40274	Key string `json:"key,omitempty"`
40275
40276	// Value: [Output Only] A warning data value corresponding to the key.
40277	Value string `json:"value,omitempty"`
40278
40279	// ForceSendFields is a list of field names (e.g. "Key") to
40280	// unconditionally include in API requests. By default, fields with
40281	// empty values are omitted from API requests. However, any non-pointer,
40282	// non-interface field appearing in ForceSendFields will be sent to the
40283	// server regardless of whether the field is empty or not. This may be
40284	// used to include empty fields in Patch requests.
40285	ForceSendFields []string `json:"-"`
40286
40287	// NullFields is a list of field names (e.g. "Key") to include in API
40288	// requests with the JSON null value. By default, fields with empty
40289	// values are omitted from API requests. However, any field with an
40290	// empty value appearing in NullFields will be sent to the server as
40291	// null. It is an error if a field in this list has a non-empty value.
40292	// This may be used to include null fields in Patch requests.
40293	NullFields []string `json:"-"`
40294}
40295
40296func (s *TargetVpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
40297	type NoMethod TargetVpnGatewaysScopedListWarningData
40298	raw := NoMethod(*s)
40299	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40300}
40301
40302type TestFailure struct {
40303	ActualService string `json:"actualService,omitempty"`
40304
40305	ExpectedService string `json:"expectedService,omitempty"`
40306
40307	Host string `json:"host,omitempty"`
40308
40309	Path string `json:"path,omitempty"`
40310
40311	// ForceSendFields is a list of field names (e.g. "ActualService") to
40312	// unconditionally include in API requests. By default, fields with
40313	// empty values are omitted from API requests. However, any non-pointer,
40314	// non-interface field appearing in ForceSendFields will be sent to the
40315	// server regardless of whether the field is empty or not. This may be
40316	// used to include empty fields in Patch requests.
40317	ForceSendFields []string `json:"-"`
40318
40319	// NullFields is a list of field names (e.g. "ActualService") to include
40320	// in API requests with the JSON null value. By default, fields with
40321	// empty values are omitted from API requests. However, any field with
40322	// an empty value appearing in NullFields will be sent to the server as
40323	// null. It is an error if a field in this list has a non-empty value.
40324	// This may be used to include null fields in Patch requests.
40325	NullFields []string `json:"-"`
40326}
40327
40328func (s *TestFailure) MarshalJSON() ([]byte, error) {
40329	type NoMethod TestFailure
40330	raw := NoMethod(*s)
40331	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40332}
40333
40334type TestPermissionsRequest struct {
40335	// Permissions: The set of permissions to check for the 'resource'.
40336	// Permissions with wildcards (such as '*' or 'storage.*') are not
40337	// allowed.
40338	Permissions []string `json:"permissions,omitempty"`
40339
40340	// ForceSendFields is a list of field names (e.g. "Permissions") to
40341	// unconditionally include in API requests. By default, fields with
40342	// empty values are omitted from API requests. However, any non-pointer,
40343	// non-interface field appearing in ForceSendFields will be sent to the
40344	// server regardless of whether the field is empty or not. This may be
40345	// used to include empty fields in Patch requests.
40346	ForceSendFields []string `json:"-"`
40347
40348	// NullFields is a list of field names (e.g. "Permissions") to include
40349	// in API requests with the JSON null value. By default, fields with
40350	// empty values are omitted from API requests. However, any field with
40351	// an empty value appearing in NullFields will be sent to the server as
40352	// null. It is an error if a field in this list has a non-empty value.
40353	// This may be used to include null fields in Patch requests.
40354	NullFields []string `json:"-"`
40355}
40356
40357func (s *TestPermissionsRequest) MarshalJSON() ([]byte, error) {
40358	type NoMethod TestPermissionsRequest
40359	raw := NoMethod(*s)
40360	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40361}
40362
40363type TestPermissionsResponse struct {
40364	// Permissions: A subset of `TestPermissionsRequest.permissions` that
40365	// the caller is allowed.
40366	Permissions []string `json:"permissions,omitempty"`
40367
40368	// ServerResponse contains the HTTP response code and headers from the
40369	// server.
40370	googleapi.ServerResponse `json:"-"`
40371
40372	// ForceSendFields is a list of field names (e.g. "Permissions") to
40373	// unconditionally include in API requests. By default, fields with
40374	// empty values are omitted from API requests. However, any non-pointer,
40375	// non-interface field appearing in ForceSendFields will be sent to the
40376	// server regardless of whether the field is empty or not. This may be
40377	// used to include empty fields in Patch requests.
40378	ForceSendFields []string `json:"-"`
40379
40380	// NullFields is a list of field names (e.g. "Permissions") to include
40381	// in API requests with the JSON null value. By default, fields with
40382	// empty values are omitted from API requests. However, any field with
40383	// an empty value appearing in NullFields will be sent to the server as
40384	// null. It is an error if a field in this list has a non-empty value.
40385	// This may be used to include null fields in Patch requests.
40386	NullFields []string `json:"-"`
40387}
40388
40389func (s *TestPermissionsResponse) MarshalJSON() ([]byte, error) {
40390	type NoMethod TestPermissionsResponse
40391	raw := NoMethod(*s)
40392	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40393}
40394
40395// UrlMap: Represents a URL Map resource.
40396//
40397// Google Compute Engine has two URL Map resources:
40398//
40399// * [Global](/compute/docs/reference/rest/latest/urlMaps) *
40400// [Regional](/compute/docs/reference/rest/latest/regionUrlMaps)
40401//
40402// A URL map resource is a component of certain types of GCP load
40403// balancers and Traffic Director.
40404//
40405// * urlMaps are used by external HTTP(S) load balancers and Traffic
40406// Director. * regionUrlMaps are used by internal HTTP(S) load
40407// balancers.
40408//
40409// This resource defines mappings from host names and URL paths to
40410// either a backend service or a backend bucket.
40411//
40412// To use the global urlMaps resource, the backend service must have a
40413// loadBalancingScheme of either EXTERNAL or INTERNAL_SELF_MANAGED. To
40414// use the regionUrlMaps resource, the backend service must have a
40415// loadBalancingScheme of INTERNAL_MANAGED. For more information, read
40416// URL Map Concepts.
40417type UrlMap struct {
40418	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
40419	// format.
40420	CreationTimestamp string `json:"creationTimestamp,omitempty"`
40421
40422	// DefaultRouteAction: defaultRouteAction takes effect when none of the
40423	// hostRules match. The load balancer performs advanced routing actions
40424	// like URL rewrites, header transformations, etc. prior to forwarding
40425	// the request to the selected backend. If defaultRouteAction specifies
40426	// any weightedBackendServices, defaultService must not be set.
40427	// Conversely if defaultService is set, defaultRouteAction cannot
40428	// contain any  weightedBackendServices.
40429	// Only one of defaultRouteAction or defaultUrlRedirect must be set.
40430	DefaultRouteAction *HttpRouteAction `json:"defaultRouteAction,omitempty"`
40431
40432	// DefaultService: The full or partial URL of the defaultService
40433	// resource to which traffic is directed if none of the hostRules match.
40434	// If defaultRouteAction is additionally specified, advanced routing
40435	// actions like URL Rewrites, etc. take effect prior to sending the
40436	// request to the backend. However, if defaultService is specified,
40437	// defaultRouteAction cannot contain any weightedBackendServices.
40438	// Conversely, if routeAction specifies any weightedBackendServices,
40439	// service must not be specified.
40440	// Only one of defaultService, defaultUrlRedirect  or
40441	// defaultRouteAction.weightedBackendService must be set.
40442	DefaultService string `json:"defaultService,omitempty"`
40443
40444	// DefaultUrlRedirect: When none of the specified hostRules match, the
40445	// request is redirected to a URL specified by defaultUrlRedirect.
40446	// If defaultUrlRedirect is specified, defaultService or
40447	// defaultRouteAction must not be set.
40448	DefaultUrlRedirect *HttpRedirectAction `json:"defaultUrlRedirect,omitempty"`
40449
40450	// Description: An optional description of this resource. Provide this
40451	// property when you create the resource.
40452	Description string `json:"description,omitempty"`
40453
40454	// Fingerprint: Fingerprint of this resource. A hash of the contents
40455	// stored in this object. This field is used in optimistic locking. This
40456	// field will be ignored when inserting a UrlMap. An up-to-date
40457	// fingerprint must be provided in order to update the UrlMap, otherwise
40458	// the request will fail with error 412 conditionNotMet.
40459	//
40460	// To see the latest fingerprint, make a get() request to retrieve a
40461	// UrlMap.
40462	Fingerprint string `json:"fingerprint,omitempty"`
40463
40464	// HeaderAction: Specifies changes to request and response headers that
40465	// need to take effect for the selected backendService.
40466	// The headerAction specified here take effect after headerAction
40467	// specified under pathMatcher.
40468	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
40469
40470	// HostRules: The list of HostRules to use against the URL.
40471	HostRules []*HostRule `json:"hostRules,omitempty"`
40472
40473	// Id: [Output Only] The unique identifier for the resource. This
40474	// identifier is defined by the server.
40475	Id uint64 `json:"id,omitempty,string"`
40476
40477	// Kind: [Output Only] Type of the resource. Always compute#urlMaps for
40478	// url maps.
40479	Kind string `json:"kind,omitempty"`
40480
40481	// Name: Name of the resource. Provided by the client when the resource
40482	// is created. The name must be 1-63 characters long, and comply with
40483	// RFC1035. Specifically, the name must be 1-63 characters long and
40484	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
40485	// the first character must be a lowercase letter, and all following
40486	// characters must be a dash, lowercase letter, or digit, except the
40487	// last character, which cannot be a dash.
40488	Name string `json:"name,omitempty"`
40489
40490	// PathMatchers: The list of named PathMatchers to use against the URL.
40491	PathMatchers []*PathMatcher `json:"pathMatchers,omitempty"`
40492
40493	// Region: [Output Only] URL of the region where the regional URL map
40494	// resides. This field is not applicable to global URL maps. You must
40495	// specify this field as part of the HTTP request URL. It is not
40496	// settable as a field in the request body.
40497	Region string `json:"region,omitempty"`
40498
40499	// SelfLink: [Output Only] Server-defined URL for the resource.
40500	SelfLink string `json:"selfLink,omitempty"`
40501
40502	// Tests: The list of expected URL mapping tests. Request to update this
40503	// UrlMap will succeed only if all of the test cases pass. You can
40504	// specify a maximum of 100 tests per UrlMap.
40505	Tests []*UrlMapTest `json:"tests,omitempty"`
40506
40507	// ServerResponse contains the HTTP response code and headers from the
40508	// server.
40509	googleapi.ServerResponse `json:"-"`
40510
40511	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
40512	// to unconditionally include in API requests. By default, fields with
40513	// empty values are omitted from API requests. However, any non-pointer,
40514	// non-interface field appearing in ForceSendFields will be sent to the
40515	// server regardless of whether the field is empty or not. This may be
40516	// used to include empty fields in Patch requests.
40517	ForceSendFields []string `json:"-"`
40518
40519	// NullFields is a list of field names (e.g. "CreationTimestamp") to
40520	// include in API requests with the JSON null value. By default, fields
40521	// with empty values are omitted from API requests. However, any field
40522	// with an empty value appearing in NullFields will be sent to the
40523	// server as null. It is an error if a field in this list has a
40524	// non-empty value. This may be used to include null fields in Patch
40525	// requests.
40526	NullFields []string `json:"-"`
40527}
40528
40529func (s *UrlMap) MarshalJSON() ([]byte, error) {
40530	type NoMethod UrlMap
40531	raw := NoMethod(*s)
40532	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40533}
40534
40535// UrlMapList: Contains a list of UrlMap resources.
40536type UrlMapList struct {
40537	// Id: [Output Only] Unique identifier for the resource; defined by the
40538	// server.
40539	Id string `json:"id,omitempty"`
40540
40541	// Items: A list of UrlMap resources.
40542	Items []*UrlMap `json:"items,omitempty"`
40543
40544	// Kind: Type of resource.
40545	Kind string `json:"kind,omitempty"`
40546
40547	// NextPageToken: [Output Only] This token allows you to get the next
40548	// page of results for list requests. If the number of results is larger
40549	// than maxResults, use the nextPageToken as a value for the query
40550	// parameter pageToken in the next list request. Subsequent list
40551	// requests will have their own nextPageToken to continue paging through
40552	// the results.
40553	NextPageToken string `json:"nextPageToken,omitempty"`
40554
40555	// SelfLink: [Output Only] Server-defined URL for this resource.
40556	SelfLink string `json:"selfLink,omitempty"`
40557
40558	// Warning: [Output Only] Informational warning message.
40559	Warning *UrlMapListWarning `json:"warning,omitempty"`
40560
40561	// ServerResponse contains the HTTP response code and headers from the
40562	// server.
40563	googleapi.ServerResponse `json:"-"`
40564
40565	// ForceSendFields is a list of field names (e.g. "Id") to
40566	// unconditionally include in API requests. By default, fields with
40567	// empty values are omitted from API requests. However, any non-pointer,
40568	// non-interface field appearing in ForceSendFields will be sent to the
40569	// server regardless of whether the field is empty or not. This may be
40570	// used to include empty fields in Patch requests.
40571	ForceSendFields []string `json:"-"`
40572
40573	// NullFields is a list of field names (e.g. "Id") to include in API
40574	// requests with the JSON null value. By default, fields with empty
40575	// values are omitted from API requests. However, any field with an
40576	// empty value appearing in NullFields will be sent to the server as
40577	// null. It is an error if a field in this list has a non-empty value.
40578	// This may be used to include null fields in Patch requests.
40579	NullFields []string `json:"-"`
40580}
40581
40582func (s *UrlMapList) MarshalJSON() ([]byte, error) {
40583	type NoMethod UrlMapList
40584	raw := NoMethod(*s)
40585	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40586}
40587
40588// UrlMapListWarning: [Output Only] Informational warning message.
40589type UrlMapListWarning struct {
40590	// Code: [Output Only] A warning code, if applicable. For example,
40591	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40592	// the response.
40593	//
40594	// Possible values:
40595	//   "CLEANUP_FAILED"
40596	//   "DEPRECATED_RESOURCE_USED"
40597	//   "DEPRECATED_TYPE_USED"
40598	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40599	//   "EXPERIMENTAL_TYPE_USED"
40600	//   "EXTERNAL_API_WARNING"
40601	//   "FIELD_VALUE_OVERRIDEN"
40602	//   "INJECTED_KERNELS_DEPRECATED"
40603	//   "MISSING_TYPE_DEPENDENCY"
40604	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40605	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40606	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40607	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40608	//   "NEXT_HOP_NOT_RUNNING"
40609	//   "NOT_CRITICAL_ERROR"
40610	//   "NO_RESULTS_ON_PAGE"
40611	//   "REQUIRED_TOS_AGREEMENT"
40612	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40613	//   "RESOURCE_NOT_DELETED"
40614	//   "SCHEMA_VALIDATION_IGNORED"
40615	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40616	//   "UNDECLARED_PROPERTIES"
40617	//   "UNREACHABLE"
40618	Code string `json:"code,omitempty"`
40619
40620	// Data: [Output Only] Metadata about this warning in key: value format.
40621	// For example:
40622	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40623	Data []*UrlMapListWarningData `json:"data,omitempty"`
40624
40625	// Message: [Output Only] A human-readable description of the warning
40626	// code.
40627	Message string `json:"message,omitempty"`
40628
40629	// ForceSendFields is a list of field names (e.g. "Code") to
40630	// unconditionally include in API requests. By default, fields with
40631	// empty values are omitted from API requests. However, any non-pointer,
40632	// non-interface field appearing in ForceSendFields will be sent to the
40633	// server regardless of whether the field is empty or not. This may be
40634	// used to include empty fields in Patch requests.
40635	ForceSendFields []string `json:"-"`
40636
40637	// NullFields is a list of field names (e.g. "Code") to include in API
40638	// requests with the JSON null value. By default, fields with empty
40639	// values are omitted from API requests. However, any field with an
40640	// empty value appearing in NullFields will be sent to the server as
40641	// null. It is an error if a field in this list has a non-empty value.
40642	// This may be used to include null fields in Patch requests.
40643	NullFields []string `json:"-"`
40644}
40645
40646func (s *UrlMapListWarning) MarshalJSON() ([]byte, error) {
40647	type NoMethod UrlMapListWarning
40648	raw := NoMethod(*s)
40649	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40650}
40651
40652type UrlMapListWarningData struct {
40653	// Key: [Output Only] A key that provides more detail on the warning
40654	// being returned. For example, for warnings where there are no results
40655	// in a list request for a particular zone, this key might be scope and
40656	// the key value might be the zone name. Other examples might be a key
40657	// indicating a deprecated resource and a suggested replacement, or a
40658	// warning about invalid network settings (for example, if an instance
40659	// attempts to perform IP forwarding but is not enabled for IP
40660	// forwarding).
40661	Key string `json:"key,omitempty"`
40662
40663	// Value: [Output Only] A warning data value corresponding to the key.
40664	Value string `json:"value,omitempty"`
40665
40666	// ForceSendFields is a list of field names (e.g. "Key") to
40667	// unconditionally include in API requests. By default, fields with
40668	// empty values are omitted from API requests. However, any non-pointer,
40669	// non-interface field appearing in ForceSendFields will be sent to the
40670	// server regardless of whether the field is empty or not. This may be
40671	// used to include empty fields in Patch requests.
40672	ForceSendFields []string `json:"-"`
40673
40674	// NullFields is a list of field names (e.g. "Key") to include in API
40675	// requests with the JSON null value. By default, fields with empty
40676	// values are omitted from API requests. However, any field with an
40677	// empty value appearing in NullFields will be sent to the server as
40678	// null. It is an error if a field in this list has a non-empty value.
40679	// This may be used to include null fields in Patch requests.
40680	NullFields []string `json:"-"`
40681}
40682
40683func (s *UrlMapListWarningData) MarshalJSON() ([]byte, error) {
40684	type NoMethod UrlMapListWarningData
40685	raw := NoMethod(*s)
40686	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40687}
40688
40689type UrlMapReference struct {
40690	UrlMap string `json:"urlMap,omitempty"`
40691
40692	// ForceSendFields is a list of field names (e.g. "UrlMap") to
40693	// unconditionally include in API requests. By default, fields with
40694	// empty values are omitted from API requests. However, any non-pointer,
40695	// non-interface field appearing in ForceSendFields will be sent to the
40696	// server regardless of whether the field is empty or not. This may be
40697	// used to include empty fields in Patch requests.
40698	ForceSendFields []string `json:"-"`
40699
40700	// NullFields is a list of field names (e.g. "UrlMap") to include in API
40701	// requests with the JSON null value. By default, fields with empty
40702	// values are omitted from API requests. However, any field with an
40703	// empty value appearing in NullFields will be sent to the server as
40704	// null. It is an error if a field in this list has a non-empty value.
40705	// This may be used to include null fields in Patch requests.
40706	NullFields []string `json:"-"`
40707}
40708
40709func (s *UrlMapReference) MarshalJSON() ([]byte, error) {
40710	type NoMethod UrlMapReference
40711	raw := NoMethod(*s)
40712	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40713}
40714
40715// UrlMapTest: Message for the expected URL mappings.
40716type UrlMapTest struct {
40717	// Description: Description of this test case.
40718	Description string `json:"description,omitempty"`
40719
40720	// Host: Host portion of the URL.
40721	Host string `json:"host,omitempty"`
40722
40723	// Path: Path portion of the URL.
40724	Path string `json:"path,omitempty"`
40725
40726	// Service: Expected BackendService resource the given URL should be
40727	// mapped to.
40728	Service string `json:"service,omitempty"`
40729
40730	// ForceSendFields is a list of field names (e.g. "Description") to
40731	// unconditionally include in API requests. By default, fields with
40732	// empty values are omitted from API requests. However, any non-pointer,
40733	// non-interface field appearing in ForceSendFields will be sent to the
40734	// server regardless of whether the field is empty or not. This may be
40735	// used to include empty fields in Patch requests.
40736	ForceSendFields []string `json:"-"`
40737
40738	// NullFields is a list of field names (e.g. "Description") to include
40739	// in API requests with the JSON null value. By default, fields with
40740	// empty values are omitted from API requests. However, any field with
40741	// an empty value appearing in NullFields will be sent to the server as
40742	// null. It is an error if a field in this list has a non-empty value.
40743	// This may be used to include null fields in Patch requests.
40744	NullFields []string `json:"-"`
40745}
40746
40747func (s *UrlMapTest) MarshalJSON() ([]byte, error) {
40748	type NoMethod UrlMapTest
40749	raw := NoMethod(*s)
40750	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40751}
40752
40753// UrlMapValidationResult: Message representing the validation result
40754// for a UrlMap.
40755type UrlMapValidationResult struct {
40756	LoadErrors []string `json:"loadErrors,omitempty"`
40757
40758	// LoadSucceeded: Whether the given UrlMap can be successfully loaded.
40759	// If false, 'loadErrors' indicates the reasons.
40760	LoadSucceeded bool `json:"loadSucceeded,omitempty"`
40761
40762	TestFailures []*TestFailure `json:"testFailures,omitempty"`
40763
40764	// TestPassed: If successfully loaded, this field indicates whether the
40765	// test passed. If false, 'testFailures's indicate the reason of
40766	// failure.
40767	TestPassed bool `json:"testPassed,omitempty"`
40768
40769	// ForceSendFields is a list of field names (e.g. "LoadErrors") to
40770	// unconditionally include in API requests. By default, fields with
40771	// empty values are omitted from API requests. However, any non-pointer,
40772	// non-interface field appearing in ForceSendFields will be sent to the
40773	// server regardless of whether the field is empty or not. This may be
40774	// used to include empty fields in Patch requests.
40775	ForceSendFields []string `json:"-"`
40776
40777	// NullFields is a list of field names (e.g. "LoadErrors") to include in
40778	// API requests with the JSON null value. By default, fields with empty
40779	// values are omitted from API requests. However, any field with an
40780	// empty value appearing in NullFields will be sent to the server as
40781	// null. It is an error if a field in this list has a non-empty value.
40782	// This may be used to include null fields in Patch requests.
40783	NullFields []string `json:"-"`
40784}
40785
40786func (s *UrlMapValidationResult) MarshalJSON() ([]byte, error) {
40787	type NoMethod UrlMapValidationResult
40788	raw := NoMethod(*s)
40789	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40790}
40791
40792type UrlMapsAggregatedList struct {
40793	// Id: [Output Only] Unique identifier for the resource; defined by the
40794	// server.
40795	Id string `json:"id,omitempty"`
40796
40797	// Items: A list of UrlMapsScopedList resources.
40798	Items map[string]UrlMapsScopedList `json:"items,omitempty"`
40799
40800	// Kind: Type of resource.
40801	Kind string `json:"kind,omitempty"`
40802
40803	// NextPageToken: [Output Only] This token allows you to get the next
40804	// page of results for list requests. If the number of results is larger
40805	// than maxResults, use the nextPageToken as a value for the query
40806	// parameter pageToken in the next list request. Subsequent list
40807	// requests will have their own nextPageToken to continue paging through
40808	// the results.
40809	NextPageToken string `json:"nextPageToken,omitempty"`
40810
40811	// SelfLink: [Output Only] Server-defined URL for this resource.
40812	SelfLink string `json:"selfLink,omitempty"`
40813
40814	// Warning: [Output Only] Informational warning message.
40815	Warning *UrlMapsAggregatedListWarning `json:"warning,omitempty"`
40816
40817	// ServerResponse contains the HTTP response code and headers from the
40818	// server.
40819	googleapi.ServerResponse `json:"-"`
40820
40821	// ForceSendFields is a list of field names (e.g. "Id") to
40822	// unconditionally include in API requests. By default, fields with
40823	// empty values are omitted from API requests. However, any non-pointer,
40824	// non-interface field appearing in ForceSendFields will be sent to the
40825	// server regardless of whether the field is empty or not. This may be
40826	// used to include empty fields in Patch requests.
40827	ForceSendFields []string `json:"-"`
40828
40829	// NullFields is a list of field names (e.g. "Id") to include in API
40830	// requests with the JSON null value. By default, fields with empty
40831	// values are omitted from API requests. However, any field with an
40832	// empty value appearing in NullFields will be sent to the server as
40833	// null. It is an error if a field in this list has a non-empty value.
40834	// This may be used to include null fields in Patch requests.
40835	NullFields []string `json:"-"`
40836}
40837
40838func (s *UrlMapsAggregatedList) MarshalJSON() ([]byte, error) {
40839	type NoMethod UrlMapsAggregatedList
40840	raw := NoMethod(*s)
40841	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40842}
40843
40844// UrlMapsAggregatedListWarning: [Output Only] Informational warning
40845// message.
40846type UrlMapsAggregatedListWarning struct {
40847	// Code: [Output Only] A warning code, if applicable. For example,
40848	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40849	// the response.
40850	//
40851	// Possible values:
40852	//   "CLEANUP_FAILED"
40853	//   "DEPRECATED_RESOURCE_USED"
40854	//   "DEPRECATED_TYPE_USED"
40855	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40856	//   "EXPERIMENTAL_TYPE_USED"
40857	//   "EXTERNAL_API_WARNING"
40858	//   "FIELD_VALUE_OVERRIDEN"
40859	//   "INJECTED_KERNELS_DEPRECATED"
40860	//   "MISSING_TYPE_DEPENDENCY"
40861	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40862	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40863	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40864	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40865	//   "NEXT_HOP_NOT_RUNNING"
40866	//   "NOT_CRITICAL_ERROR"
40867	//   "NO_RESULTS_ON_PAGE"
40868	//   "REQUIRED_TOS_AGREEMENT"
40869	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
40870	//   "RESOURCE_NOT_DELETED"
40871	//   "SCHEMA_VALIDATION_IGNORED"
40872	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
40873	//   "UNDECLARED_PROPERTIES"
40874	//   "UNREACHABLE"
40875	Code string `json:"code,omitempty"`
40876
40877	// Data: [Output Only] Metadata about this warning in key: value format.
40878	// For example:
40879	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
40880	Data []*UrlMapsAggregatedListWarningData `json:"data,omitempty"`
40881
40882	// Message: [Output Only] A human-readable description of the warning
40883	// code.
40884	Message string `json:"message,omitempty"`
40885
40886	// ForceSendFields is a list of field names (e.g. "Code") to
40887	// unconditionally include in API requests. By default, fields with
40888	// empty values are omitted from API requests. However, any non-pointer,
40889	// non-interface field appearing in ForceSendFields will be sent to the
40890	// server regardless of whether the field is empty or not. This may be
40891	// used to include empty fields in Patch requests.
40892	ForceSendFields []string `json:"-"`
40893
40894	// NullFields is a list of field names (e.g. "Code") to include in API
40895	// requests with the JSON null value. By default, fields with empty
40896	// values are omitted from API requests. However, any field with an
40897	// empty value appearing in NullFields will be sent to the server as
40898	// null. It is an error if a field in this list has a non-empty value.
40899	// This may be used to include null fields in Patch requests.
40900	NullFields []string `json:"-"`
40901}
40902
40903func (s *UrlMapsAggregatedListWarning) MarshalJSON() ([]byte, error) {
40904	type NoMethod UrlMapsAggregatedListWarning
40905	raw := NoMethod(*s)
40906	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40907}
40908
40909type UrlMapsAggregatedListWarningData struct {
40910	// Key: [Output Only] A key that provides more detail on the warning
40911	// being returned. For example, for warnings where there are no results
40912	// in a list request for a particular zone, this key might be scope and
40913	// the key value might be the zone name. Other examples might be a key
40914	// indicating a deprecated resource and a suggested replacement, or a
40915	// warning about invalid network settings (for example, if an instance
40916	// attempts to perform IP forwarding but is not enabled for IP
40917	// forwarding).
40918	Key string `json:"key,omitempty"`
40919
40920	// Value: [Output Only] A warning data value corresponding to the key.
40921	Value string `json:"value,omitempty"`
40922
40923	// ForceSendFields is a list of field names (e.g. "Key") to
40924	// unconditionally include in API requests. By default, fields with
40925	// empty values are omitted from API requests. However, any non-pointer,
40926	// non-interface field appearing in ForceSendFields will be sent to the
40927	// server regardless of whether the field is empty or not. This may be
40928	// used to include empty fields in Patch requests.
40929	ForceSendFields []string `json:"-"`
40930
40931	// NullFields is a list of field names (e.g. "Key") to include in API
40932	// requests with the JSON null value. By default, fields with empty
40933	// values are omitted from API requests. However, any field with an
40934	// empty value appearing in NullFields will be sent to the server as
40935	// null. It is an error if a field in this list has a non-empty value.
40936	// This may be used to include null fields in Patch requests.
40937	NullFields []string `json:"-"`
40938}
40939
40940func (s *UrlMapsAggregatedListWarningData) MarshalJSON() ([]byte, error) {
40941	type NoMethod UrlMapsAggregatedListWarningData
40942	raw := NoMethod(*s)
40943	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40944}
40945
40946type UrlMapsScopedList struct {
40947	// UrlMaps: A list of UrlMaps contained in this scope.
40948	UrlMaps []*UrlMap `json:"urlMaps,omitempty"`
40949
40950	// Warning: Informational warning which replaces the list of backend
40951	// services when the list is empty.
40952	Warning *UrlMapsScopedListWarning `json:"warning,omitempty"`
40953
40954	// ForceSendFields is a list of field names (e.g. "UrlMaps") to
40955	// unconditionally include in API requests. By default, fields with
40956	// empty values are omitted from API requests. However, any non-pointer,
40957	// non-interface field appearing in ForceSendFields will be sent to the
40958	// server regardless of whether the field is empty or not. This may be
40959	// used to include empty fields in Patch requests.
40960	ForceSendFields []string `json:"-"`
40961
40962	// NullFields is a list of field names (e.g. "UrlMaps") to include in
40963	// API requests with the JSON null value. By default, fields with empty
40964	// values are omitted from API requests. However, any field with an
40965	// empty value appearing in NullFields will be sent to the server as
40966	// null. It is an error if a field in this list has a non-empty value.
40967	// This may be used to include null fields in Patch requests.
40968	NullFields []string `json:"-"`
40969}
40970
40971func (s *UrlMapsScopedList) MarshalJSON() ([]byte, error) {
40972	type NoMethod UrlMapsScopedList
40973	raw := NoMethod(*s)
40974	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
40975}
40976
40977// UrlMapsScopedListWarning: Informational warning which replaces the
40978// list of backend services when the list is empty.
40979type UrlMapsScopedListWarning struct {
40980	// Code: [Output Only] A warning code, if applicable. For example,
40981	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
40982	// the response.
40983	//
40984	// Possible values:
40985	//   "CLEANUP_FAILED"
40986	//   "DEPRECATED_RESOURCE_USED"
40987	//   "DEPRECATED_TYPE_USED"
40988	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
40989	//   "EXPERIMENTAL_TYPE_USED"
40990	//   "EXTERNAL_API_WARNING"
40991	//   "FIELD_VALUE_OVERRIDEN"
40992	//   "INJECTED_KERNELS_DEPRECATED"
40993	//   "MISSING_TYPE_DEPENDENCY"
40994	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
40995	//   "NEXT_HOP_CANNOT_IP_FORWARD"
40996	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
40997	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
40998	//   "NEXT_HOP_NOT_RUNNING"
40999	//   "NOT_CRITICAL_ERROR"
41000	//   "NO_RESULTS_ON_PAGE"
41001	//   "REQUIRED_TOS_AGREEMENT"
41002	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41003	//   "RESOURCE_NOT_DELETED"
41004	//   "SCHEMA_VALIDATION_IGNORED"
41005	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41006	//   "UNDECLARED_PROPERTIES"
41007	//   "UNREACHABLE"
41008	Code string `json:"code,omitempty"`
41009
41010	// Data: [Output Only] Metadata about this warning in key: value format.
41011	// For example:
41012	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41013	Data []*UrlMapsScopedListWarningData `json:"data,omitempty"`
41014
41015	// Message: [Output Only] A human-readable description of the warning
41016	// code.
41017	Message string `json:"message,omitempty"`
41018
41019	// ForceSendFields is a list of field names (e.g. "Code") to
41020	// unconditionally include in API requests. By default, fields with
41021	// empty values are omitted from API requests. However, any non-pointer,
41022	// non-interface field appearing in ForceSendFields will be sent to the
41023	// server regardless of whether the field is empty or not. This may be
41024	// used to include empty fields in Patch requests.
41025	ForceSendFields []string `json:"-"`
41026
41027	// NullFields is a list of field names (e.g. "Code") to include in API
41028	// requests with the JSON null value. By default, fields with empty
41029	// values are omitted from API requests. However, any field with an
41030	// empty value appearing in NullFields will be sent to the server as
41031	// null. It is an error if a field in this list has a non-empty value.
41032	// This may be used to include null fields in Patch requests.
41033	NullFields []string `json:"-"`
41034}
41035
41036func (s *UrlMapsScopedListWarning) MarshalJSON() ([]byte, error) {
41037	type NoMethod UrlMapsScopedListWarning
41038	raw := NoMethod(*s)
41039	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41040}
41041
41042type UrlMapsScopedListWarningData struct {
41043	// Key: [Output Only] A key that provides more detail on the warning
41044	// being returned. For example, for warnings where there are no results
41045	// in a list request for a particular zone, this key might be scope and
41046	// the key value might be the zone name. Other examples might be a key
41047	// indicating a deprecated resource and a suggested replacement, or a
41048	// warning about invalid network settings (for example, if an instance
41049	// attempts to perform IP forwarding but is not enabled for IP
41050	// forwarding).
41051	Key string `json:"key,omitempty"`
41052
41053	// Value: [Output Only] A warning data value corresponding to the key.
41054	Value string `json:"value,omitempty"`
41055
41056	// ForceSendFields is a list of field names (e.g. "Key") to
41057	// unconditionally include in API requests. By default, fields with
41058	// empty values are omitted from API requests. However, any non-pointer,
41059	// non-interface field appearing in ForceSendFields will be sent to the
41060	// server regardless of whether the field is empty or not. This may be
41061	// used to include empty fields in Patch requests.
41062	ForceSendFields []string `json:"-"`
41063
41064	// NullFields is a list of field names (e.g. "Key") to include in API
41065	// requests with the JSON null value. By default, fields with empty
41066	// values are omitted from API requests. However, any field with an
41067	// empty value appearing in NullFields will be sent to the server as
41068	// null. It is an error if a field in this list has a non-empty value.
41069	// This may be used to include null fields in Patch requests.
41070	NullFields []string `json:"-"`
41071}
41072
41073func (s *UrlMapsScopedListWarningData) MarshalJSON() ([]byte, error) {
41074	type NoMethod UrlMapsScopedListWarningData
41075	raw := NoMethod(*s)
41076	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41077}
41078
41079type UrlMapsValidateRequest struct {
41080	// Resource: Content of the UrlMap to be validated.
41081	Resource *UrlMap `json:"resource,omitempty"`
41082
41083	// ForceSendFields is a list of field names (e.g. "Resource") to
41084	// unconditionally include in API requests. By default, fields with
41085	// empty values are omitted from API requests. However, any non-pointer,
41086	// non-interface field appearing in ForceSendFields will be sent to the
41087	// server regardless of whether the field is empty or not. This may be
41088	// used to include empty fields in Patch requests.
41089	ForceSendFields []string `json:"-"`
41090
41091	// NullFields is a list of field names (e.g. "Resource") to include in
41092	// API requests with the JSON null value. By default, fields with empty
41093	// values are omitted from API requests. However, any field with an
41094	// empty value appearing in NullFields will be sent to the server as
41095	// null. It is an error if a field in this list has a non-empty value.
41096	// This may be used to include null fields in Patch requests.
41097	NullFields []string `json:"-"`
41098}
41099
41100func (s *UrlMapsValidateRequest) MarshalJSON() ([]byte, error) {
41101	type NoMethod UrlMapsValidateRequest
41102	raw := NoMethod(*s)
41103	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41104}
41105
41106type UrlMapsValidateResponse struct {
41107	Result *UrlMapValidationResult `json:"result,omitempty"`
41108
41109	// ServerResponse contains the HTTP response code and headers from the
41110	// server.
41111	googleapi.ServerResponse `json:"-"`
41112
41113	// ForceSendFields is a list of field names (e.g. "Result") to
41114	// unconditionally include in API requests. By default, fields with
41115	// empty values are omitted from API requests. However, any non-pointer,
41116	// non-interface field appearing in ForceSendFields will be sent to the
41117	// server regardless of whether the field is empty or not. This may be
41118	// used to include empty fields in Patch requests.
41119	ForceSendFields []string `json:"-"`
41120
41121	// NullFields is a list of field names (e.g. "Result") to include in API
41122	// requests with the JSON null value. By default, fields with empty
41123	// values are omitted from API requests. However, any field with an
41124	// empty value appearing in NullFields will be sent to the server as
41125	// null. It is an error if a field in this list has a non-empty value.
41126	// This may be used to include null fields in Patch requests.
41127	NullFields []string `json:"-"`
41128}
41129
41130func (s *UrlMapsValidateResponse) MarshalJSON() ([]byte, error) {
41131	type NoMethod UrlMapsValidateResponse
41132	raw := NoMethod(*s)
41133	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41134}
41135
41136// UrlRewrite: The spec for modifying the path before sending the
41137// request to the matched backend service.
41138type UrlRewrite struct {
41139	// HostRewrite: Prior to forwarding the request to the selected service,
41140	// the request's host header is replaced with contents of
41141	// hostRewrite.
41142	// The value must be between 1 and 255 characters.
41143	HostRewrite string `json:"hostRewrite,omitempty"`
41144
41145	// PathPrefixRewrite: Prior to forwarding the request to the selected
41146	// backend service, the matching portion of the request's path is
41147	// replaced by pathPrefixRewrite.
41148	// The value must be between 1 and 1024 characters.
41149	PathPrefixRewrite string `json:"pathPrefixRewrite,omitempty"`
41150
41151	// ForceSendFields is a list of field names (e.g. "HostRewrite") to
41152	// unconditionally include in API requests. By default, fields with
41153	// empty values are omitted from API requests. However, any non-pointer,
41154	// non-interface field appearing in ForceSendFields will be sent to the
41155	// server regardless of whether the field is empty or not. This may be
41156	// used to include empty fields in Patch requests.
41157	ForceSendFields []string `json:"-"`
41158
41159	// NullFields is a list of field names (e.g. "HostRewrite") to include
41160	// in API requests with the JSON null value. By default, fields with
41161	// empty values are omitted from API requests. However, any field with
41162	// an empty value appearing in NullFields will be sent to the server as
41163	// null. It is an error if a field in this list has a non-empty value.
41164	// This may be used to include null fields in Patch requests.
41165	NullFields []string `json:"-"`
41166}
41167
41168func (s *UrlRewrite) MarshalJSON() ([]byte, error) {
41169	type NoMethod UrlRewrite
41170	raw := NoMethod(*s)
41171	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41172}
41173
41174// UsableSubnetwork: Subnetwork which the current user has
41175// compute.subnetworks.use permission on.
41176type UsableSubnetwork struct {
41177	// IpCidrRange: The range of internal addresses that are owned by this
41178	// subnetwork.
41179	IpCidrRange string `json:"ipCidrRange,omitempty"`
41180
41181	// Network: Network URL.
41182	Network string `json:"network,omitempty"`
41183
41184	// SecondaryIpRanges: Secondary IP ranges.
41185	SecondaryIpRanges []*UsableSubnetworkSecondaryRange `json:"secondaryIpRanges,omitempty"`
41186
41187	// Subnetwork: Subnetwork URL.
41188	Subnetwork string `json:"subnetwork,omitempty"`
41189
41190	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
41191	// unconditionally include in API requests. By default, fields with
41192	// empty values are omitted from API requests. However, any non-pointer,
41193	// non-interface field appearing in ForceSendFields will be sent to the
41194	// server regardless of whether the field is empty or not. This may be
41195	// used to include empty fields in Patch requests.
41196	ForceSendFields []string `json:"-"`
41197
41198	// NullFields is a list of field names (e.g. "IpCidrRange") to include
41199	// in API requests with the JSON null value. By default, fields with
41200	// empty values are omitted from API requests. However, any field with
41201	// an empty value appearing in NullFields will be sent to the server as
41202	// null. It is an error if a field in this list has a non-empty value.
41203	// This may be used to include null fields in Patch requests.
41204	NullFields []string `json:"-"`
41205}
41206
41207func (s *UsableSubnetwork) MarshalJSON() ([]byte, error) {
41208	type NoMethod UsableSubnetwork
41209	raw := NoMethod(*s)
41210	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41211}
41212
41213// UsableSubnetworkSecondaryRange: Secondary IP range of a usable
41214// subnetwork.
41215type UsableSubnetworkSecondaryRange struct {
41216	// IpCidrRange: The range of IP addresses belonging to this subnetwork
41217	// secondary range.
41218	IpCidrRange string `json:"ipCidrRange,omitempty"`
41219
41220	// RangeName: The name associated with this subnetwork secondary range,
41221	// used when adding an alias IP range to a VM instance. The name must be
41222	// 1-63 characters long, and comply with RFC1035. The name must be
41223	// unique within the subnetwork.
41224	RangeName string `json:"rangeName,omitempty"`
41225
41226	// ForceSendFields is a list of field names (e.g. "IpCidrRange") to
41227	// unconditionally include in API requests. By default, fields with
41228	// empty values are omitted from API requests. However, any non-pointer,
41229	// non-interface field appearing in ForceSendFields will be sent to the
41230	// server regardless of whether the field is empty or not. This may be
41231	// used to include empty fields in Patch requests.
41232	ForceSendFields []string `json:"-"`
41233
41234	// NullFields is a list of field names (e.g. "IpCidrRange") to include
41235	// in API requests with the JSON null value. By default, fields with
41236	// empty values are omitted from API requests. However, any field with
41237	// an empty value appearing in NullFields will be sent to the server as
41238	// null. It is an error if a field in this list has a non-empty value.
41239	// This may be used to include null fields in Patch requests.
41240	NullFields []string `json:"-"`
41241}
41242
41243func (s *UsableSubnetworkSecondaryRange) MarshalJSON() ([]byte, error) {
41244	type NoMethod UsableSubnetworkSecondaryRange
41245	raw := NoMethod(*s)
41246	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41247}
41248
41249type UsableSubnetworksAggregatedList struct {
41250	// Id: [Output Only] The unique identifier for the resource. This
41251	// identifier is defined by the server.
41252	Id string `json:"id,omitempty"`
41253
41254	// Items: [Output] A list of usable subnetwork URLs.
41255	Items []*UsableSubnetwork `json:"items,omitempty"`
41256
41257	// Kind: [Output Only] Type of resource. Always
41258	// compute#usableSubnetworksAggregatedList for aggregated lists of
41259	// usable subnetworks.
41260	Kind string `json:"kind,omitempty"`
41261
41262	// NextPageToken: [Output Only] This token allows you to get the next
41263	// page of results for list requests. If the number of results is larger
41264	// than maxResults, use the nextPageToken as a value for the query
41265	// parameter pageToken in the next list request. Subsequent list
41266	// requests will have their own nextPageToken to continue paging through
41267	// the results.
41268	NextPageToken string `json:"nextPageToken,omitempty"`
41269
41270	// SelfLink: [Output Only] Server-defined URL for this resource.
41271	SelfLink string `json:"selfLink,omitempty"`
41272
41273	// Warning: [Output Only] Informational warning message.
41274	Warning *UsableSubnetworksAggregatedListWarning `json:"warning,omitempty"`
41275
41276	// ServerResponse contains the HTTP response code and headers from the
41277	// server.
41278	googleapi.ServerResponse `json:"-"`
41279
41280	// ForceSendFields is a list of field names (e.g. "Id") to
41281	// unconditionally include in API requests. By default, fields with
41282	// empty values are omitted from API requests. However, any non-pointer,
41283	// non-interface field appearing in ForceSendFields will be sent to the
41284	// server regardless of whether the field is empty or not. This may be
41285	// used to include empty fields in Patch requests.
41286	ForceSendFields []string `json:"-"`
41287
41288	// NullFields is a list of field names (e.g. "Id") to include in API
41289	// requests with the JSON null value. By default, fields with empty
41290	// values are omitted from API requests. However, any field with an
41291	// empty value appearing in NullFields will be sent to the server as
41292	// null. It is an error if a field in this list has a non-empty value.
41293	// This may be used to include null fields in Patch requests.
41294	NullFields []string `json:"-"`
41295}
41296
41297func (s *UsableSubnetworksAggregatedList) MarshalJSON() ([]byte, error) {
41298	type NoMethod UsableSubnetworksAggregatedList
41299	raw := NoMethod(*s)
41300	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41301}
41302
41303// UsableSubnetworksAggregatedListWarning: [Output Only] Informational
41304// warning message.
41305type UsableSubnetworksAggregatedListWarning struct {
41306	// Code: [Output Only] A warning code, if applicable. For example,
41307	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41308	// the response.
41309	//
41310	// Possible values:
41311	//   "CLEANUP_FAILED"
41312	//   "DEPRECATED_RESOURCE_USED"
41313	//   "DEPRECATED_TYPE_USED"
41314	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41315	//   "EXPERIMENTAL_TYPE_USED"
41316	//   "EXTERNAL_API_WARNING"
41317	//   "FIELD_VALUE_OVERRIDEN"
41318	//   "INJECTED_KERNELS_DEPRECATED"
41319	//   "MISSING_TYPE_DEPENDENCY"
41320	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41321	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41322	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41323	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41324	//   "NEXT_HOP_NOT_RUNNING"
41325	//   "NOT_CRITICAL_ERROR"
41326	//   "NO_RESULTS_ON_PAGE"
41327	//   "REQUIRED_TOS_AGREEMENT"
41328	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41329	//   "RESOURCE_NOT_DELETED"
41330	//   "SCHEMA_VALIDATION_IGNORED"
41331	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41332	//   "UNDECLARED_PROPERTIES"
41333	//   "UNREACHABLE"
41334	Code string `json:"code,omitempty"`
41335
41336	// Data: [Output Only] Metadata about this warning in key: value format.
41337	// For example:
41338	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41339	Data []*UsableSubnetworksAggregatedListWarningData `json:"data,omitempty"`
41340
41341	// Message: [Output Only] A human-readable description of the warning
41342	// code.
41343	Message string `json:"message,omitempty"`
41344
41345	// ForceSendFields is a list of field names (e.g. "Code") to
41346	// unconditionally include in API requests. By default, fields with
41347	// empty values are omitted from API requests. However, any non-pointer,
41348	// non-interface field appearing in ForceSendFields will be sent to the
41349	// server regardless of whether the field is empty or not. This may be
41350	// used to include empty fields in Patch requests.
41351	ForceSendFields []string `json:"-"`
41352
41353	// NullFields is a list of field names (e.g. "Code") to include in API
41354	// requests with the JSON null value. By default, fields with empty
41355	// values are omitted from API requests. However, any field with an
41356	// empty value appearing in NullFields will be sent to the server as
41357	// null. It is an error if a field in this list has a non-empty value.
41358	// This may be used to include null fields in Patch requests.
41359	NullFields []string `json:"-"`
41360}
41361
41362func (s *UsableSubnetworksAggregatedListWarning) MarshalJSON() ([]byte, error) {
41363	type NoMethod UsableSubnetworksAggregatedListWarning
41364	raw := NoMethod(*s)
41365	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41366}
41367
41368type UsableSubnetworksAggregatedListWarningData struct {
41369	// Key: [Output Only] A key that provides more detail on the warning
41370	// being returned. For example, for warnings where there are no results
41371	// in a list request for a particular zone, this key might be scope and
41372	// the key value might be the zone name. Other examples might be a key
41373	// indicating a deprecated resource and a suggested replacement, or a
41374	// warning about invalid network settings (for example, if an instance
41375	// attempts to perform IP forwarding but is not enabled for IP
41376	// forwarding).
41377	Key string `json:"key,omitempty"`
41378
41379	// Value: [Output Only] A warning data value corresponding to the key.
41380	Value string `json:"value,omitempty"`
41381
41382	// ForceSendFields is a list of field names (e.g. "Key") to
41383	// unconditionally include in API requests. By default, fields with
41384	// empty values are omitted from API requests. However, any non-pointer,
41385	// non-interface field appearing in ForceSendFields will be sent to the
41386	// server regardless of whether the field is empty or not. This may be
41387	// used to include empty fields in Patch requests.
41388	ForceSendFields []string `json:"-"`
41389
41390	// NullFields is a list of field names (e.g. "Key") to include in API
41391	// requests with the JSON null value. By default, fields with empty
41392	// values are omitted from API requests. However, any field with an
41393	// empty value appearing in NullFields will be sent to the server as
41394	// null. It is an error if a field in this list has a non-empty value.
41395	// This may be used to include null fields in Patch requests.
41396	NullFields []string `json:"-"`
41397}
41398
41399func (s *UsableSubnetworksAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41400	type NoMethod UsableSubnetworksAggregatedListWarningData
41401	raw := NoMethod(*s)
41402	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41403}
41404
41405// UsageExportLocation: The location in Cloud Storage and naming method
41406// of the daily usage report. Contains bucket_name and report_name
41407// prefix.
41408type UsageExportLocation struct {
41409	// BucketName: The name of an existing bucket in Cloud Storage where the
41410	// usage report object is stored. The Google Service Account is granted
41411	// write access to this bucket. This can either be the bucket name by
41412	// itself, such as example-bucket, or the bucket name with gs:// or
41413	// https://storage.googleapis.com/ in front of it, such as
41414	// gs://example-bucket.
41415	BucketName string `json:"bucketName,omitempty"`
41416
41417	// ReportNamePrefix: An optional prefix for the name of the usage report
41418	// object stored in bucketName. If not supplied, defaults to usage. The
41419	// report is stored as a CSV file named
41420	// report_name_prefix_gce_YYYYMMDD.csv where YYYYMMDD is the day of the
41421	// usage according to Pacific Time. If you supply a prefix, it should
41422	// conform to Cloud Storage object naming conventions.
41423	ReportNamePrefix string `json:"reportNamePrefix,omitempty"`
41424
41425	// ForceSendFields is a list of field names (e.g. "BucketName") to
41426	// unconditionally include in API requests. By default, fields with
41427	// empty values are omitted from API requests. However, any non-pointer,
41428	// non-interface field appearing in ForceSendFields will be sent to the
41429	// server regardless of whether the field is empty or not. This may be
41430	// used to include empty fields in Patch requests.
41431	ForceSendFields []string `json:"-"`
41432
41433	// NullFields is a list of field names (e.g. "BucketName") to include in
41434	// API requests with the JSON null value. By default, fields with empty
41435	// values are omitted from API requests. However, any field with an
41436	// empty value appearing in NullFields will be sent to the server as
41437	// null. It is an error if a field in this list has a non-empty value.
41438	// This may be used to include null fields in Patch requests.
41439	NullFields []string `json:"-"`
41440}
41441
41442func (s *UsageExportLocation) MarshalJSON() ([]byte, error) {
41443	type NoMethod UsageExportLocation
41444	raw := NoMethod(*s)
41445	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41446}
41447
41448// VmEndpointNatMappings: Contain information of Nat mapping for a VM
41449// endpoint (i.e., NIC).
41450type VmEndpointNatMappings struct {
41451	// InstanceName: Name of the VM instance which the endpoint belongs to
41452	InstanceName string `json:"instanceName,omitempty"`
41453
41454	InterfaceNatMappings []*VmEndpointNatMappingsInterfaceNatMappings `json:"interfaceNatMappings,omitempty"`
41455
41456	// ForceSendFields is a list of field names (e.g. "InstanceName") to
41457	// unconditionally include in API requests. By default, fields with
41458	// empty values are omitted from API requests. However, any non-pointer,
41459	// non-interface field appearing in ForceSendFields will be sent to the
41460	// server regardless of whether the field is empty or not. This may be
41461	// used to include empty fields in Patch requests.
41462	ForceSendFields []string `json:"-"`
41463
41464	// NullFields is a list of field names (e.g. "InstanceName") to include
41465	// in API requests with the JSON null value. By default, fields with
41466	// empty values are omitted from API requests. However, any field with
41467	// an empty value appearing in NullFields will be sent to the server as
41468	// null. It is an error if a field in this list has a non-empty value.
41469	// This may be used to include null fields in Patch requests.
41470	NullFields []string `json:"-"`
41471}
41472
41473func (s *VmEndpointNatMappings) MarshalJSON() ([]byte, error) {
41474	type NoMethod VmEndpointNatMappings
41475	raw := NoMethod(*s)
41476	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41477}
41478
41479// VmEndpointNatMappingsInterfaceNatMappings: Contain information of Nat
41480// mapping for an interface of this endpoint.
41481type VmEndpointNatMappingsInterfaceNatMappings struct {
41482	// DrainNatIpPortRanges: List of all drain IP:port-range mappings
41483	// assigned to this interface. These ranges are inclusive, that is, both
41484	// the first and the last ports can be used for NAT. Example:
41485	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
41486	DrainNatIpPortRanges []string `json:"drainNatIpPortRanges,omitempty"`
41487
41488	// NatIpPortRanges: A list of all IP:port-range mappings assigned to
41489	// this interface. These ranges are inclusive, that is, both the first
41490	// and the last ports can be used for NAT. Example:
41491	// ["2.2.2.2:12345-12355", "1.1.1.1:2234-2234"].
41492	NatIpPortRanges []string `json:"natIpPortRanges,omitempty"`
41493
41494	// NumTotalDrainNatPorts: Total number of drain ports across all NAT IPs
41495	// allocated to this interface. It equals to the aggregated port number
41496	// in the field drain_nat_ip_port_ranges.
41497	NumTotalDrainNatPorts int64 `json:"numTotalDrainNatPorts,omitempty"`
41498
41499	// NumTotalNatPorts: Total number of ports across all NAT IPs allocated
41500	// to this interface. It equals to the aggregated port number in the
41501	// field nat_ip_port_ranges.
41502	NumTotalNatPorts int64 `json:"numTotalNatPorts,omitempty"`
41503
41504	// SourceAliasIpRange: Alias IP range for this interface endpoint. It
41505	// will be a private (RFC 1918) IP range. Examples: "10.33.4.55/32", or
41506	// "192.168.5.0/24".
41507	SourceAliasIpRange string `json:"sourceAliasIpRange,omitempty"`
41508
41509	// SourceVirtualIp: Primary IP of the VM for this NIC.
41510	SourceVirtualIp string `json:"sourceVirtualIp,omitempty"`
41511
41512	// ForceSendFields is a list of field names (e.g.
41513	// "DrainNatIpPortRanges") to unconditionally include in API requests.
41514	// By default, fields with empty values are omitted from API requests.
41515	// However, any non-pointer, non-interface field appearing in
41516	// ForceSendFields will be sent to the server regardless of whether the
41517	// field is empty or not. This may be used to include empty fields in
41518	// Patch requests.
41519	ForceSendFields []string `json:"-"`
41520
41521	// NullFields is a list of field names (e.g. "DrainNatIpPortRanges") to
41522	// include in API requests with the JSON null value. By default, fields
41523	// with empty values are omitted from API requests. However, any field
41524	// with an empty value appearing in NullFields will be sent to the
41525	// server as null. It is an error if a field in this list has a
41526	// non-empty value. This may be used to include null fields in Patch
41527	// requests.
41528	NullFields []string `json:"-"`
41529}
41530
41531func (s *VmEndpointNatMappingsInterfaceNatMappings) MarshalJSON() ([]byte, error) {
41532	type NoMethod VmEndpointNatMappingsInterfaceNatMappings
41533	raw := NoMethod(*s)
41534	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41535}
41536
41537// VmEndpointNatMappingsList: Contains a list of VmEndpointNatMappings.
41538type VmEndpointNatMappingsList struct {
41539	// Id: [Output Only] The unique identifier for the resource. This
41540	// identifier is defined by the server.
41541	Id string `json:"id,omitempty"`
41542
41543	// Kind: [Output Only] Type of resource. Always
41544	// compute#vmEndpointNatMappingsList for lists of Nat mappings of VM
41545	// endpoints.
41546	Kind string `json:"kind,omitempty"`
41547
41548	// NextPageToken: [Output Only] This token allows you to get the next
41549	// page of results for list requests. If the number of results is larger
41550	// than maxResults, use the nextPageToken as a value for the query
41551	// parameter pageToken in the next list request. Subsequent list
41552	// requests will have their own nextPageToken to continue paging through
41553	// the results.
41554	NextPageToken string `json:"nextPageToken,omitempty"`
41555
41556	// Result: [Output Only] A list of Nat mapping information of VM
41557	// endpoints.
41558	Result []*VmEndpointNatMappings `json:"result,omitempty"`
41559
41560	// SelfLink: [Output Only] Server-defined URL for this resource.
41561	SelfLink string `json:"selfLink,omitempty"`
41562
41563	// Warning: [Output Only] Informational warning message.
41564	Warning *VmEndpointNatMappingsListWarning `json:"warning,omitempty"`
41565
41566	// ServerResponse contains the HTTP response code and headers from the
41567	// server.
41568	googleapi.ServerResponse `json:"-"`
41569
41570	// ForceSendFields is a list of field names (e.g. "Id") to
41571	// unconditionally include in API requests. By default, fields with
41572	// empty values are omitted from API requests. However, any non-pointer,
41573	// non-interface field appearing in ForceSendFields will be sent to the
41574	// server regardless of whether the field is empty or not. This may be
41575	// used to include empty fields in Patch requests.
41576	ForceSendFields []string `json:"-"`
41577
41578	// NullFields is a list of field names (e.g. "Id") to include in API
41579	// requests with the JSON null value. By default, fields with empty
41580	// values are omitted from API requests. However, any field with an
41581	// empty value appearing in NullFields will be sent to the server as
41582	// null. It is an error if a field in this list has a non-empty value.
41583	// This may be used to include null fields in Patch requests.
41584	NullFields []string `json:"-"`
41585}
41586
41587func (s *VmEndpointNatMappingsList) MarshalJSON() ([]byte, error) {
41588	type NoMethod VmEndpointNatMappingsList
41589	raw := NoMethod(*s)
41590	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41591}
41592
41593// VmEndpointNatMappingsListWarning: [Output Only] Informational warning
41594// message.
41595type VmEndpointNatMappingsListWarning struct {
41596	// Code: [Output Only] A warning code, if applicable. For example,
41597	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41598	// the response.
41599	//
41600	// Possible values:
41601	//   "CLEANUP_FAILED"
41602	//   "DEPRECATED_RESOURCE_USED"
41603	//   "DEPRECATED_TYPE_USED"
41604	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41605	//   "EXPERIMENTAL_TYPE_USED"
41606	//   "EXTERNAL_API_WARNING"
41607	//   "FIELD_VALUE_OVERRIDEN"
41608	//   "INJECTED_KERNELS_DEPRECATED"
41609	//   "MISSING_TYPE_DEPENDENCY"
41610	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41611	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41612	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41613	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41614	//   "NEXT_HOP_NOT_RUNNING"
41615	//   "NOT_CRITICAL_ERROR"
41616	//   "NO_RESULTS_ON_PAGE"
41617	//   "REQUIRED_TOS_AGREEMENT"
41618	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41619	//   "RESOURCE_NOT_DELETED"
41620	//   "SCHEMA_VALIDATION_IGNORED"
41621	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41622	//   "UNDECLARED_PROPERTIES"
41623	//   "UNREACHABLE"
41624	Code string `json:"code,omitempty"`
41625
41626	// Data: [Output Only] Metadata about this warning in key: value format.
41627	// For example:
41628	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41629	Data []*VmEndpointNatMappingsListWarningData `json:"data,omitempty"`
41630
41631	// Message: [Output Only] A human-readable description of the warning
41632	// code.
41633	Message string `json:"message,omitempty"`
41634
41635	// ForceSendFields is a list of field names (e.g. "Code") to
41636	// unconditionally include in API requests. By default, fields with
41637	// empty values are omitted from API requests. However, any non-pointer,
41638	// non-interface field appearing in ForceSendFields will be sent to the
41639	// server regardless of whether the field is empty or not. This may be
41640	// used to include empty fields in Patch requests.
41641	ForceSendFields []string `json:"-"`
41642
41643	// NullFields is a list of field names (e.g. "Code") to include in API
41644	// requests with the JSON null value. By default, fields with empty
41645	// values are omitted from API requests. However, any field with an
41646	// empty value appearing in NullFields will be sent to the server as
41647	// null. It is an error if a field in this list has a non-empty value.
41648	// This may be used to include null fields in Patch requests.
41649	NullFields []string `json:"-"`
41650}
41651
41652func (s *VmEndpointNatMappingsListWarning) MarshalJSON() ([]byte, error) {
41653	type NoMethod VmEndpointNatMappingsListWarning
41654	raw := NoMethod(*s)
41655	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41656}
41657
41658type VmEndpointNatMappingsListWarningData struct {
41659	// Key: [Output Only] A key that provides more detail on the warning
41660	// being returned. For example, for warnings where there are no results
41661	// in a list request for a particular zone, this key might be scope and
41662	// the key value might be the zone name. Other examples might be a key
41663	// indicating a deprecated resource and a suggested replacement, or a
41664	// warning about invalid network settings (for example, if an instance
41665	// attempts to perform IP forwarding but is not enabled for IP
41666	// forwarding).
41667	Key string `json:"key,omitempty"`
41668
41669	// Value: [Output Only] A warning data value corresponding to the key.
41670	Value string `json:"value,omitempty"`
41671
41672	// ForceSendFields is a list of field names (e.g. "Key") to
41673	// unconditionally include in API requests. By default, fields with
41674	// empty values are omitted from API requests. However, any non-pointer,
41675	// non-interface field appearing in ForceSendFields will be sent to the
41676	// server regardless of whether the field is empty or not. This may be
41677	// used to include empty fields in Patch requests.
41678	ForceSendFields []string `json:"-"`
41679
41680	// NullFields is a list of field names (e.g. "Key") to include in API
41681	// requests with the JSON null value. By default, fields with empty
41682	// values are omitted from API requests. However, any field with an
41683	// empty value appearing in NullFields will be sent to the server as
41684	// null. It is an error if a field in this list has a non-empty value.
41685	// This may be used to include null fields in Patch requests.
41686	NullFields []string `json:"-"`
41687}
41688
41689func (s *VmEndpointNatMappingsListWarningData) MarshalJSON() ([]byte, error) {
41690	type NoMethod VmEndpointNatMappingsListWarningData
41691	raw := NoMethod(*s)
41692	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41693}
41694
41695// VpnGateway: Represents a VPN gateway resource. Next ID: 13
41696type VpnGateway struct {
41697	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
41698	// format.
41699	CreationTimestamp string `json:"creationTimestamp,omitempty"`
41700
41701	// Description: An optional description of this resource. Provide this
41702	// property when you create the resource.
41703	Description string `json:"description,omitempty"`
41704
41705	// Id: [Output Only] The unique identifier for the resource. This
41706	// identifier is defined by the server.
41707	Id uint64 `json:"id,omitempty,string"`
41708
41709	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
41710	// VPN gateways.
41711	Kind string `json:"kind,omitempty"`
41712
41713	// LabelFingerprint: A fingerprint for the labels being applied to this
41714	// VpnGateway, which is essentially a hash of the labels set used for
41715	// optimistic locking. The fingerprint is initially generated by Compute
41716	// Engine and changes after every request to modify or update labels.
41717	// You must always provide an up-to-date fingerprint hash in order to
41718	// update or change labels, otherwise the request will fail with error
41719	// 412 conditionNotMet.
41720	//
41721	// To see the latest fingerprint, make a get() request to retrieve an
41722	// VpnGateway.
41723	LabelFingerprint string `json:"labelFingerprint,omitempty"`
41724
41725	// Labels: Labels to apply to this VpnGateway resource. These can be
41726	// later modified by the setLabels method. Each label key/value must
41727	// comply with RFC1035. Label values may be empty.
41728	Labels map[string]string `json:"labels,omitempty"`
41729
41730	// Name: Name of the resource. Provided by the client when the resource
41731	// is created. The name must be 1-63 characters long, and comply with
41732	// RFC1035. Specifically, the name must be 1-63 characters long and
41733	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
41734	// the first character must be a lowercase letter, and all following
41735	// characters must be a dash, lowercase letter, or digit, except the
41736	// last character, which cannot be a dash.
41737	Name string `json:"name,omitempty"`
41738
41739	// Network: URL of the network to which this VPN gateway is attached.
41740	// Provided by the client when the VPN gateway is created.
41741	Network string `json:"network,omitempty"`
41742
41743	// Region: [Output Only] URL of the region where the VPN gateway
41744	// resides.
41745	Region string `json:"region,omitempty"`
41746
41747	// SelfLink: [Output Only] Server-defined URL for the resource.
41748	SelfLink string `json:"selfLink,omitempty"`
41749
41750	// VpnInterfaces: [Output Only] A list of interfaces on this VPN
41751	// gateway.
41752	VpnInterfaces []*VpnGatewayVpnGatewayInterface `json:"vpnInterfaces,omitempty"`
41753
41754	// ServerResponse contains the HTTP response code and headers from the
41755	// server.
41756	googleapi.ServerResponse `json:"-"`
41757
41758	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
41759	// to unconditionally include in API requests. By default, fields with
41760	// empty values are omitted from API requests. However, any non-pointer,
41761	// non-interface field appearing in ForceSendFields will be sent to the
41762	// server regardless of whether the field is empty or not. This may be
41763	// used to include empty fields in Patch requests.
41764	ForceSendFields []string `json:"-"`
41765
41766	// NullFields is a list of field names (e.g. "CreationTimestamp") to
41767	// include in API requests with the JSON null value. By default, fields
41768	// with empty values are omitted from API requests. However, any field
41769	// with an empty value appearing in NullFields will be sent to the
41770	// server as null. It is an error if a field in this list has a
41771	// non-empty value. This may be used to include null fields in Patch
41772	// requests.
41773	NullFields []string `json:"-"`
41774}
41775
41776func (s *VpnGateway) MarshalJSON() ([]byte, error) {
41777	type NoMethod VpnGateway
41778	raw := NoMethod(*s)
41779	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41780}
41781
41782type VpnGatewayAggregatedList struct {
41783	// Id: [Output Only] Unique identifier for the resource; defined by the
41784	// server.
41785	Id string `json:"id,omitempty"`
41786
41787	// Items: A list of VpnGateway resources.
41788	Items map[string]VpnGatewaysScopedList `json:"items,omitempty"`
41789
41790	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
41791	// VPN gateways.
41792	Kind string `json:"kind,omitempty"`
41793
41794	// NextPageToken: [Output Only] This token allows you to get the next
41795	// page of results for list requests. If the number of results is larger
41796	// than maxResults, use the nextPageToken as a value for the query
41797	// parameter pageToken in the next list request. Subsequent list
41798	// requests will have their own nextPageToken to continue paging through
41799	// the results.
41800	NextPageToken string `json:"nextPageToken,omitempty"`
41801
41802	// SelfLink: [Output Only] Server-defined URL for this resource.
41803	SelfLink string `json:"selfLink,omitempty"`
41804
41805	// Warning: [Output Only] Informational warning message.
41806	Warning *VpnGatewayAggregatedListWarning `json:"warning,omitempty"`
41807
41808	// ServerResponse contains the HTTP response code and headers from the
41809	// server.
41810	googleapi.ServerResponse `json:"-"`
41811
41812	// ForceSendFields is a list of field names (e.g. "Id") to
41813	// unconditionally include in API requests. By default, fields with
41814	// empty values are omitted from API requests. However, any non-pointer,
41815	// non-interface field appearing in ForceSendFields will be sent to the
41816	// server regardless of whether the field is empty or not. This may be
41817	// used to include empty fields in Patch requests.
41818	ForceSendFields []string `json:"-"`
41819
41820	// NullFields is a list of field names (e.g. "Id") to include in API
41821	// requests with the JSON null value. By default, fields with empty
41822	// values are omitted from API requests. However, any field with an
41823	// empty value appearing in NullFields will be sent to the server as
41824	// null. It is an error if a field in this list has a non-empty value.
41825	// This may be used to include null fields in Patch requests.
41826	NullFields []string `json:"-"`
41827}
41828
41829func (s *VpnGatewayAggregatedList) MarshalJSON() ([]byte, error) {
41830	type NoMethod VpnGatewayAggregatedList
41831	raw := NoMethod(*s)
41832	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41833}
41834
41835// VpnGatewayAggregatedListWarning: [Output Only] Informational warning
41836// message.
41837type VpnGatewayAggregatedListWarning struct {
41838	// Code: [Output Only] A warning code, if applicable. For example,
41839	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41840	// the response.
41841	//
41842	// Possible values:
41843	//   "CLEANUP_FAILED"
41844	//   "DEPRECATED_RESOURCE_USED"
41845	//   "DEPRECATED_TYPE_USED"
41846	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
41847	//   "EXPERIMENTAL_TYPE_USED"
41848	//   "EXTERNAL_API_WARNING"
41849	//   "FIELD_VALUE_OVERRIDEN"
41850	//   "INJECTED_KERNELS_DEPRECATED"
41851	//   "MISSING_TYPE_DEPENDENCY"
41852	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
41853	//   "NEXT_HOP_CANNOT_IP_FORWARD"
41854	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
41855	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
41856	//   "NEXT_HOP_NOT_RUNNING"
41857	//   "NOT_CRITICAL_ERROR"
41858	//   "NO_RESULTS_ON_PAGE"
41859	//   "REQUIRED_TOS_AGREEMENT"
41860	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
41861	//   "RESOURCE_NOT_DELETED"
41862	//   "SCHEMA_VALIDATION_IGNORED"
41863	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
41864	//   "UNDECLARED_PROPERTIES"
41865	//   "UNREACHABLE"
41866	Code string `json:"code,omitempty"`
41867
41868	// Data: [Output Only] Metadata about this warning in key: value format.
41869	// For example:
41870	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
41871	Data []*VpnGatewayAggregatedListWarningData `json:"data,omitempty"`
41872
41873	// Message: [Output Only] A human-readable description of the warning
41874	// code.
41875	Message string `json:"message,omitempty"`
41876
41877	// ForceSendFields is a list of field names (e.g. "Code") to
41878	// unconditionally include in API requests. By default, fields with
41879	// empty values are omitted from API requests. However, any non-pointer,
41880	// non-interface field appearing in ForceSendFields will be sent to the
41881	// server regardless of whether the field is empty or not. This may be
41882	// used to include empty fields in Patch requests.
41883	ForceSendFields []string `json:"-"`
41884
41885	// NullFields is a list of field names (e.g. "Code") to include in API
41886	// requests with the JSON null value. By default, fields with empty
41887	// values are omitted from API requests. However, any field with an
41888	// empty value appearing in NullFields will be sent to the server as
41889	// null. It is an error if a field in this list has a non-empty value.
41890	// This may be used to include null fields in Patch requests.
41891	NullFields []string `json:"-"`
41892}
41893
41894func (s *VpnGatewayAggregatedListWarning) MarshalJSON() ([]byte, error) {
41895	type NoMethod VpnGatewayAggregatedListWarning
41896	raw := NoMethod(*s)
41897	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41898}
41899
41900type VpnGatewayAggregatedListWarningData struct {
41901	// Key: [Output Only] A key that provides more detail on the warning
41902	// being returned. For example, for warnings where there are no results
41903	// in a list request for a particular zone, this key might be scope and
41904	// the key value might be the zone name. Other examples might be a key
41905	// indicating a deprecated resource and a suggested replacement, or a
41906	// warning about invalid network settings (for example, if an instance
41907	// attempts to perform IP forwarding but is not enabled for IP
41908	// forwarding).
41909	Key string `json:"key,omitempty"`
41910
41911	// Value: [Output Only] A warning data value corresponding to the key.
41912	Value string `json:"value,omitempty"`
41913
41914	// ForceSendFields is a list of field names (e.g. "Key") to
41915	// unconditionally include in API requests. By default, fields with
41916	// empty values are omitted from API requests. However, any non-pointer,
41917	// non-interface field appearing in ForceSendFields will be sent to the
41918	// server regardless of whether the field is empty or not. This may be
41919	// used to include empty fields in Patch requests.
41920	ForceSendFields []string `json:"-"`
41921
41922	// NullFields is a list of field names (e.g. "Key") to include in API
41923	// requests with the JSON null value. By default, fields with empty
41924	// values are omitted from API requests. However, any field with an
41925	// empty value appearing in NullFields will be sent to the server as
41926	// null. It is an error if a field in this list has a non-empty value.
41927	// This may be used to include null fields in Patch requests.
41928	NullFields []string `json:"-"`
41929}
41930
41931func (s *VpnGatewayAggregatedListWarningData) MarshalJSON() ([]byte, error) {
41932	type NoMethod VpnGatewayAggregatedListWarningData
41933	raw := NoMethod(*s)
41934	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41935}
41936
41937// VpnGatewayList: Contains a list of VpnGateway resources.
41938type VpnGatewayList struct {
41939	// Id: [Output Only] Unique identifier for the resource; defined by the
41940	// server.
41941	Id string `json:"id,omitempty"`
41942
41943	// Items: A list of VpnGateway resources.
41944	Items []*VpnGateway `json:"items,omitempty"`
41945
41946	// Kind: [Output Only] Type of resource. Always compute#vpnGateway for
41947	// VPN gateways.
41948	Kind string `json:"kind,omitempty"`
41949
41950	// NextPageToken: [Output Only] This token allows you to get the next
41951	// page of results for list requests. If the number of results is larger
41952	// than maxResults, use the nextPageToken as a value for the query
41953	// parameter pageToken in the next list request. Subsequent list
41954	// requests will have their own nextPageToken to continue paging through
41955	// the results.
41956	NextPageToken string `json:"nextPageToken,omitempty"`
41957
41958	// SelfLink: [Output Only] Server-defined URL for this resource.
41959	SelfLink string `json:"selfLink,omitempty"`
41960
41961	// Warning: [Output Only] Informational warning message.
41962	Warning *VpnGatewayListWarning `json:"warning,omitempty"`
41963
41964	// ServerResponse contains the HTTP response code and headers from the
41965	// server.
41966	googleapi.ServerResponse `json:"-"`
41967
41968	// ForceSendFields is a list of field names (e.g. "Id") to
41969	// unconditionally include in API requests. By default, fields with
41970	// empty values are omitted from API requests. However, any non-pointer,
41971	// non-interface field appearing in ForceSendFields will be sent to the
41972	// server regardless of whether the field is empty or not. This may be
41973	// used to include empty fields in Patch requests.
41974	ForceSendFields []string `json:"-"`
41975
41976	// NullFields is a list of field names (e.g. "Id") to include in API
41977	// requests with the JSON null value. By default, fields with empty
41978	// values are omitted from API requests. However, any field with an
41979	// empty value appearing in NullFields will be sent to the server as
41980	// null. It is an error if a field in this list has a non-empty value.
41981	// This may be used to include null fields in Patch requests.
41982	NullFields []string `json:"-"`
41983}
41984
41985func (s *VpnGatewayList) MarshalJSON() ([]byte, error) {
41986	type NoMethod VpnGatewayList
41987	raw := NoMethod(*s)
41988	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
41989}
41990
41991// VpnGatewayListWarning: [Output Only] Informational warning message.
41992type VpnGatewayListWarning struct {
41993	// Code: [Output Only] A warning code, if applicable. For example,
41994	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
41995	// the response.
41996	//
41997	// Possible values:
41998	//   "CLEANUP_FAILED"
41999	//   "DEPRECATED_RESOURCE_USED"
42000	//   "DEPRECATED_TYPE_USED"
42001	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42002	//   "EXPERIMENTAL_TYPE_USED"
42003	//   "EXTERNAL_API_WARNING"
42004	//   "FIELD_VALUE_OVERRIDEN"
42005	//   "INJECTED_KERNELS_DEPRECATED"
42006	//   "MISSING_TYPE_DEPENDENCY"
42007	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42008	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42009	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42010	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42011	//   "NEXT_HOP_NOT_RUNNING"
42012	//   "NOT_CRITICAL_ERROR"
42013	//   "NO_RESULTS_ON_PAGE"
42014	//   "REQUIRED_TOS_AGREEMENT"
42015	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42016	//   "RESOURCE_NOT_DELETED"
42017	//   "SCHEMA_VALIDATION_IGNORED"
42018	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42019	//   "UNDECLARED_PROPERTIES"
42020	//   "UNREACHABLE"
42021	Code string `json:"code,omitempty"`
42022
42023	// Data: [Output Only] Metadata about this warning in key: value format.
42024	// For example:
42025	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42026	Data []*VpnGatewayListWarningData `json:"data,omitempty"`
42027
42028	// Message: [Output Only] A human-readable description of the warning
42029	// code.
42030	Message string `json:"message,omitempty"`
42031
42032	// ForceSendFields is a list of field names (e.g. "Code") to
42033	// unconditionally include in API requests. By default, fields with
42034	// empty values are omitted from API requests. However, any non-pointer,
42035	// non-interface field appearing in ForceSendFields will be sent to the
42036	// server regardless of whether the field is empty or not. This may be
42037	// used to include empty fields in Patch requests.
42038	ForceSendFields []string `json:"-"`
42039
42040	// NullFields is a list of field names (e.g. "Code") to include in API
42041	// requests with the JSON null value. By default, fields with empty
42042	// values are omitted from API requests. However, any field with an
42043	// empty value appearing in NullFields will be sent to the server as
42044	// null. It is an error if a field in this list has a non-empty value.
42045	// This may be used to include null fields in Patch requests.
42046	NullFields []string `json:"-"`
42047}
42048
42049func (s *VpnGatewayListWarning) MarshalJSON() ([]byte, error) {
42050	type NoMethod VpnGatewayListWarning
42051	raw := NoMethod(*s)
42052	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42053}
42054
42055type VpnGatewayListWarningData struct {
42056	// Key: [Output Only] A key that provides more detail on the warning
42057	// being returned. For example, for warnings where there are no results
42058	// in a list request for a particular zone, this key might be scope and
42059	// the key value might be the zone name. Other examples might be a key
42060	// indicating a deprecated resource and a suggested replacement, or a
42061	// warning about invalid network settings (for example, if an instance
42062	// attempts to perform IP forwarding but is not enabled for IP
42063	// forwarding).
42064	Key string `json:"key,omitempty"`
42065
42066	// Value: [Output Only] A warning data value corresponding to the key.
42067	Value string `json:"value,omitempty"`
42068
42069	// ForceSendFields is a list of field names (e.g. "Key") to
42070	// unconditionally include in API requests. By default, fields with
42071	// empty values are omitted from API requests. However, any non-pointer,
42072	// non-interface field appearing in ForceSendFields will be sent to the
42073	// server regardless of whether the field is empty or not. This may be
42074	// used to include empty fields in Patch requests.
42075	ForceSendFields []string `json:"-"`
42076
42077	// NullFields is a list of field names (e.g. "Key") to include in API
42078	// requests with the JSON null value. By default, fields with empty
42079	// values are omitted from API requests. However, any field with an
42080	// empty value appearing in NullFields will be sent to the server as
42081	// null. It is an error if a field in this list has a non-empty value.
42082	// This may be used to include null fields in Patch requests.
42083	NullFields []string `json:"-"`
42084}
42085
42086func (s *VpnGatewayListWarningData) MarshalJSON() ([]byte, error) {
42087	type NoMethod VpnGatewayListWarningData
42088	raw := NoMethod(*s)
42089	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42090}
42091
42092type VpnGatewayStatus struct {
42093	// VpnConnections: List of VPN connection for this VpnGateway.
42094	VpnConnections []*VpnGatewayStatusVpnConnection `json:"vpnConnections,omitempty"`
42095
42096	// ForceSendFields is a list of field names (e.g. "VpnConnections") to
42097	// unconditionally include in API requests. By default, fields with
42098	// empty values are omitted from API requests. However, any non-pointer,
42099	// non-interface field appearing in ForceSendFields will be sent to the
42100	// server regardless of whether the field is empty or not. This may be
42101	// used to include empty fields in Patch requests.
42102	ForceSendFields []string `json:"-"`
42103
42104	// NullFields is a list of field names (e.g. "VpnConnections") to
42105	// include in API requests with the JSON null value. By default, fields
42106	// with empty values are omitted from API requests. However, any field
42107	// with an empty value appearing in NullFields will be sent to the
42108	// server as null. It is an error if a field in this list has a
42109	// non-empty value. This may be used to include null fields in Patch
42110	// requests.
42111	NullFields []string `json:"-"`
42112}
42113
42114func (s *VpnGatewayStatus) MarshalJSON() ([]byte, error) {
42115	type NoMethod VpnGatewayStatus
42116	raw := NoMethod(*s)
42117	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42118}
42119
42120// VpnGatewayStatusHighAvailabilityRequirementState: Describes the high
42121// availability requirement state for the VPN connection between this
42122// Cloud VPN gateway and a peer gateway.
42123type VpnGatewayStatusHighAvailabilityRequirementState struct {
42124	// State: Indicates the high availability requirement state for the VPN
42125	// connection. Valid values are CONNECTION_REDUNDANCY_MET,
42126	// CONNECTION_REDUNDANCY_NOT_MET.
42127	//
42128	// Possible values:
42129	//   "CONNECTION_REDUNDANCY_MET"
42130	//   "CONNECTION_REDUNDANCY_NOT_MET"
42131	State string `json:"state,omitempty"`
42132
42133	// UnsatisfiedReason: Indicates the reason why the VPN connection does
42134	// not meet the high availability redundancy criteria/requirement. Valid
42135	// values is INCOMPLETE_TUNNELS_COVERAGE.
42136	//
42137	// Possible values:
42138	//   "INCOMPLETE_TUNNELS_COVERAGE"
42139	UnsatisfiedReason string `json:"unsatisfiedReason,omitempty"`
42140
42141	// ForceSendFields is a list of field names (e.g. "State") to
42142	// unconditionally include in API requests. By default, fields with
42143	// empty values are omitted from API requests. However, any non-pointer,
42144	// non-interface field appearing in ForceSendFields will be sent to the
42145	// server regardless of whether the field is empty or not. This may be
42146	// used to include empty fields in Patch requests.
42147	ForceSendFields []string `json:"-"`
42148
42149	// NullFields is a list of field names (e.g. "State") to include in API
42150	// requests with the JSON null value. By default, fields with empty
42151	// values are omitted from API requests. However, any field with an
42152	// empty value appearing in NullFields will be sent to the server as
42153	// null. It is an error if a field in this list has a non-empty value.
42154	// This may be used to include null fields in Patch requests.
42155	NullFields []string `json:"-"`
42156}
42157
42158func (s *VpnGatewayStatusHighAvailabilityRequirementState) MarshalJSON() ([]byte, error) {
42159	type NoMethod VpnGatewayStatusHighAvailabilityRequirementState
42160	raw := NoMethod(*s)
42161	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42162}
42163
42164// VpnGatewayStatusTunnel: Contains some information about a VPN tunnel.
42165type VpnGatewayStatusTunnel struct {
42166	// LocalGatewayInterface: The VPN gateway interface this VPN tunnel is
42167	// associated with.
42168	LocalGatewayInterface int64 `json:"localGatewayInterface,omitempty"`
42169
42170	// PeerGatewayInterface: The peer gateway interface this VPN tunnel is
42171	// connected to, the peer gateway could either be an external VPN
42172	// gateway or GCP VPN gateway.
42173	PeerGatewayInterface int64 `json:"peerGatewayInterface,omitempty"`
42174
42175	// TunnelUrl: URL reference to the VPN tunnel.
42176	TunnelUrl string `json:"tunnelUrl,omitempty"`
42177
42178	// ForceSendFields is a list of field names (e.g.
42179	// "LocalGatewayInterface") to unconditionally include in API requests.
42180	// By default, fields with empty values are omitted from API requests.
42181	// However, any non-pointer, non-interface field appearing in
42182	// ForceSendFields will be sent to the server regardless of whether the
42183	// field is empty or not. This may be used to include empty fields in
42184	// Patch requests.
42185	ForceSendFields []string `json:"-"`
42186
42187	// NullFields is a list of field names (e.g. "LocalGatewayInterface") to
42188	// include in API requests with the JSON null value. By default, fields
42189	// with empty values are omitted from API requests. However, any field
42190	// with an empty value appearing in NullFields will be sent to the
42191	// server as null. It is an error if a field in this list has a
42192	// non-empty value. This may be used to include null fields in Patch
42193	// requests.
42194	NullFields []string `json:"-"`
42195}
42196
42197func (s *VpnGatewayStatusTunnel) MarshalJSON() ([]byte, error) {
42198	type NoMethod VpnGatewayStatusTunnel
42199	raw := NoMethod(*s)
42200	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42201}
42202
42203// VpnGatewayStatusVpnConnection: A VPN connection contains all VPN
42204// tunnels connected from this VpnGateway to the same peer gateway. The
42205// peer gateway could either be a external VPN gateway or GCP VPN
42206// gateway.
42207type VpnGatewayStatusVpnConnection struct {
42208	// PeerExternalGateway: URL reference to the peer external VPN gateways
42209	// to which the VPN tunnels in this VPN connection are connected. This
42210	// field is mutually exclusive with peer_gcp_gateway.
42211	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
42212
42213	// PeerGcpGateway: URL reference to the peer side VPN gateways to which
42214	// the VPN tunnels in this VPN connection are connected. This field is
42215	// mutually exclusive with peer_gcp_gateway.
42216	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
42217
42218	// State: HighAvailabilityRequirementState for the VPN connection.
42219	State *VpnGatewayStatusHighAvailabilityRequirementState `json:"state,omitempty"`
42220
42221	// Tunnels: List of VPN tunnels that are in this VPN connection.
42222	Tunnels []*VpnGatewayStatusTunnel `json:"tunnels,omitempty"`
42223
42224	// ForceSendFields is a list of field names (e.g. "PeerExternalGateway")
42225	// to unconditionally include in API requests. By default, fields with
42226	// empty values are omitted from API requests. However, any non-pointer,
42227	// non-interface field appearing in ForceSendFields will be sent to the
42228	// server regardless of whether the field is empty or not. This may be
42229	// used to include empty fields in Patch requests.
42230	ForceSendFields []string `json:"-"`
42231
42232	// NullFields is a list of field names (e.g. "PeerExternalGateway") to
42233	// include in API requests with the JSON null value. By default, fields
42234	// with empty values are omitted from API requests. However, any field
42235	// with an empty value appearing in NullFields will be sent to the
42236	// server as null. It is an error if a field in this list has a
42237	// non-empty value. This may be used to include null fields in Patch
42238	// requests.
42239	NullFields []string `json:"-"`
42240}
42241
42242func (s *VpnGatewayStatusVpnConnection) MarshalJSON() ([]byte, error) {
42243	type NoMethod VpnGatewayStatusVpnConnection
42244	raw := NoMethod(*s)
42245	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42246}
42247
42248// VpnGatewayVpnGatewayInterface: A VPN gateway interface.
42249type VpnGatewayVpnGatewayInterface struct {
42250	// Id: The numeric ID of this VPN gateway interface.
42251	Id int64 `json:"id,omitempty"`
42252
42253	// IpAddress: The external IP address for this VPN gateway interface.
42254	IpAddress string `json:"ipAddress,omitempty"`
42255
42256	// ForceSendFields is a list of field names (e.g. "Id") to
42257	// unconditionally include in API requests. By default, fields with
42258	// empty values are omitted from API requests. However, any non-pointer,
42259	// non-interface field appearing in ForceSendFields will be sent to the
42260	// server regardless of whether the field is empty or not. This may be
42261	// used to include empty fields in Patch requests.
42262	ForceSendFields []string `json:"-"`
42263
42264	// NullFields is a list of field names (e.g. "Id") to include in API
42265	// requests with the JSON null value. By default, fields with empty
42266	// values are omitted from API requests. However, any field with an
42267	// empty value appearing in NullFields will be sent to the server as
42268	// null. It is an error if a field in this list has a non-empty value.
42269	// This may be used to include null fields in Patch requests.
42270	NullFields []string `json:"-"`
42271}
42272
42273func (s *VpnGatewayVpnGatewayInterface) MarshalJSON() ([]byte, error) {
42274	type NoMethod VpnGatewayVpnGatewayInterface
42275	raw := NoMethod(*s)
42276	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42277}
42278
42279type VpnGatewaysGetStatusResponse struct {
42280	Result *VpnGatewayStatus `json:"result,omitempty"`
42281
42282	// ServerResponse contains the HTTP response code and headers from the
42283	// server.
42284	googleapi.ServerResponse `json:"-"`
42285
42286	// ForceSendFields is a list of field names (e.g. "Result") to
42287	// unconditionally include in API requests. By default, fields with
42288	// empty values are omitted from API requests. However, any non-pointer,
42289	// non-interface field appearing in ForceSendFields will be sent to the
42290	// server regardless of whether the field is empty or not. This may be
42291	// used to include empty fields in Patch requests.
42292	ForceSendFields []string `json:"-"`
42293
42294	// NullFields is a list of field names (e.g. "Result") to include in API
42295	// requests with the JSON null value. By default, fields with empty
42296	// values are omitted from API requests. However, any field with an
42297	// empty value appearing in NullFields will be sent to the server as
42298	// null. It is an error if a field in this list has a non-empty value.
42299	// This may be used to include null fields in Patch requests.
42300	NullFields []string `json:"-"`
42301}
42302
42303func (s *VpnGatewaysGetStatusResponse) MarshalJSON() ([]byte, error) {
42304	type NoMethod VpnGatewaysGetStatusResponse
42305	raw := NoMethod(*s)
42306	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42307}
42308
42309type VpnGatewaysScopedList struct {
42310	// VpnGateways: [Output Only] A list of VPN gateways contained in this
42311	// scope.
42312	VpnGateways []*VpnGateway `json:"vpnGateways,omitempty"`
42313
42314	// Warning: [Output Only] Informational warning which replaces the list
42315	// of addresses when the list is empty.
42316	Warning *VpnGatewaysScopedListWarning `json:"warning,omitempty"`
42317
42318	// ForceSendFields is a list of field names (e.g. "VpnGateways") to
42319	// unconditionally include in API requests. By default, fields with
42320	// empty values are omitted from API requests. However, any non-pointer,
42321	// non-interface field appearing in ForceSendFields will be sent to the
42322	// server regardless of whether the field is empty or not. This may be
42323	// used to include empty fields in Patch requests.
42324	ForceSendFields []string `json:"-"`
42325
42326	// NullFields is a list of field names (e.g. "VpnGateways") to include
42327	// in API requests with the JSON null value. By default, fields with
42328	// empty values are omitted from API requests. However, any field with
42329	// an empty value appearing in NullFields will be sent to the server as
42330	// null. It is an error if a field in this list has a non-empty value.
42331	// This may be used to include null fields in Patch requests.
42332	NullFields []string `json:"-"`
42333}
42334
42335func (s *VpnGatewaysScopedList) MarshalJSON() ([]byte, error) {
42336	type NoMethod VpnGatewaysScopedList
42337	raw := NoMethod(*s)
42338	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42339}
42340
42341// VpnGatewaysScopedListWarning: [Output Only] Informational warning
42342// which replaces the list of addresses when the list is empty.
42343type VpnGatewaysScopedListWarning struct {
42344	// Code: [Output Only] A warning code, if applicable. For example,
42345	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42346	// the response.
42347	//
42348	// Possible values:
42349	//   "CLEANUP_FAILED"
42350	//   "DEPRECATED_RESOURCE_USED"
42351	//   "DEPRECATED_TYPE_USED"
42352	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42353	//   "EXPERIMENTAL_TYPE_USED"
42354	//   "EXTERNAL_API_WARNING"
42355	//   "FIELD_VALUE_OVERRIDEN"
42356	//   "INJECTED_KERNELS_DEPRECATED"
42357	//   "MISSING_TYPE_DEPENDENCY"
42358	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42359	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42360	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42361	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42362	//   "NEXT_HOP_NOT_RUNNING"
42363	//   "NOT_CRITICAL_ERROR"
42364	//   "NO_RESULTS_ON_PAGE"
42365	//   "REQUIRED_TOS_AGREEMENT"
42366	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42367	//   "RESOURCE_NOT_DELETED"
42368	//   "SCHEMA_VALIDATION_IGNORED"
42369	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42370	//   "UNDECLARED_PROPERTIES"
42371	//   "UNREACHABLE"
42372	Code string `json:"code,omitempty"`
42373
42374	// Data: [Output Only] Metadata about this warning in key: value format.
42375	// For example:
42376	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42377	Data []*VpnGatewaysScopedListWarningData `json:"data,omitempty"`
42378
42379	// Message: [Output Only] A human-readable description of the warning
42380	// code.
42381	Message string `json:"message,omitempty"`
42382
42383	// ForceSendFields is a list of field names (e.g. "Code") to
42384	// unconditionally include in API requests. By default, fields with
42385	// empty values are omitted from API requests. However, any non-pointer,
42386	// non-interface field appearing in ForceSendFields will be sent to the
42387	// server regardless of whether the field is empty or not. This may be
42388	// used to include empty fields in Patch requests.
42389	ForceSendFields []string `json:"-"`
42390
42391	// NullFields is a list of field names (e.g. "Code") to include in API
42392	// requests with the JSON null value. By default, fields with empty
42393	// values are omitted from API requests. However, any field with an
42394	// empty value appearing in NullFields will be sent to the server as
42395	// null. It is an error if a field in this list has a non-empty value.
42396	// This may be used to include null fields in Patch requests.
42397	NullFields []string `json:"-"`
42398}
42399
42400func (s *VpnGatewaysScopedListWarning) MarshalJSON() ([]byte, error) {
42401	type NoMethod VpnGatewaysScopedListWarning
42402	raw := NoMethod(*s)
42403	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42404}
42405
42406type VpnGatewaysScopedListWarningData struct {
42407	// Key: [Output Only] A key that provides more detail on the warning
42408	// being returned. For example, for warnings where there are no results
42409	// in a list request for a particular zone, this key might be scope and
42410	// the key value might be the zone name. Other examples might be a key
42411	// indicating a deprecated resource and a suggested replacement, or a
42412	// warning about invalid network settings (for example, if an instance
42413	// attempts to perform IP forwarding but is not enabled for IP
42414	// forwarding).
42415	Key string `json:"key,omitempty"`
42416
42417	// Value: [Output Only] A warning data value corresponding to the key.
42418	Value string `json:"value,omitempty"`
42419
42420	// ForceSendFields is a list of field names (e.g. "Key") to
42421	// unconditionally include in API requests. By default, fields with
42422	// empty values are omitted from API requests. However, any non-pointer,
42423	// non-interface field appearing in ForceSendFields will be sent to the
42424	// server regardless of whether the field is empty or not. This may be
42425	// used to include empty fields in Patch requests.
42426	ForceSendFields []string `json:"-"`
42427
42428	// NullFields is a list of field names (e.g. "Key") to include in API
42429	// requests with the JSON null value. By default, fields with empty
42430	// values are omitted from API requests. However, any field with an
42431	// empty value appearing in NullFields will be sent to the server as
42432	// null. It is an error if a field in this list has a non-empty value.
42433	// This may be used to include null fields in Patch requests.
42434	NullFields []string `json:"-"`
42435}
42436
42437func (s *VpnGatewaysScopedListWarningData) MarshalJSON() ([]byte, error) {
42438	type NoMethod VpnGatewaysScopedListWarningData
42439	raw := NoMethod(*s)
42440	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42441}
42442
42443// VpnTunnel: Represents a Cloud VPN Tunnel resource.
42444//
42445// For more information about VPN, read the the Cloud VPN Overview. (==
42446// resource_for {$api_version}.vpnTunnels ==)
42447type VpnTunnel struct {
42448	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
42449	// format.
42450	CreationTimestamp string `json:"creationTimestamp,omitempty"`
42451
42452	// Description: An optional description of this resource. Provide this
42453	// property when you create the resource.
42454	Description string `json:"description,omitempty"`
42455
42456	// DetailedStatus: [Output Only] Detailed status message for the VPN
42457	// tunnel.
42458	DetailedStatus string `json:"detailedStatus,omitempty"`
42459
42460	// Id: [Output Only] The unique identifier for the resource. This
42461	// identifier is defined by the server.
42462	Id uint64 `json:"id,omitempty,string"`
42463
42464	// IkeVersion: IKE protocol version to use when establishing the VPN
42465	// tunnel with the peer VPN gateway. Acceptable IKE versions are 1 or 2.
42466	// The default version is 2.
42467	IkeVersion int64 `json:"ikeVersion,omitempty"`
42468
42469	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
42470	// VPN tunnels.
42471	Kind string `json:"kind,omitempty"`
42472
42473	// LabelFingerprint: A fingerprint for the labels being applied to this
42474	// VpnTunnel, which is essentially a hash of the labels set used for
42475	// optimistic locking. The fingerprint is initially generated by Compute
42476	// Engine and changes after every request to modify or update labels.
42477	// You must always provide an up-to-date fingerprint hash in order to
42478	// update or change labels, otherwise the request will fail with error
42479	// 412 conditionNotMet.
42480	//
42481	// To see the latest fingerprint, make a get() request to retrieve a
42482	// VpnTunnel.
42483	LabelFingerprint string `json:"labelFingerprint,omitempty"`
42484
42485	// Labels: Labels to apply to this VpnTunnel. These can be later
42486	// modified by the setLabels method. Each label key/value pair must
42487	// comply with RFC1035. Label values may be empty.
42488	Labels map[string]string `json:"labels,omitempty"`
42489
42490	// LocalTrafficSelector: Local traffic selector to use when establishing
42491	// the VPN tunnel with the peer VPN gateway. The value should be a CIDR
42492	// formatted string, for example: 192.168.0.0/16. The ranges must be
42493	// disjoint. Only IPv4 is supported.
42494	LocalTrafficSelector []string `json:"localTrafficSelector,omitempty"`
42495
42496	// Name: Name of the resource. Provided by the client when the resource
42497	// is created. The name must be 1-63 characters long, and comply with
42498	// RFC1035. Specifically, the name must be 1-63 characters long and
42499	// match the regular expression `[a-z]([-a-z0-9]*[a-z0-9])?` which means
42500	// the first character must be a lowercase letter, and all following
42501	// characters must be a dash, lowercase letter, or digit, except the
42502	// last character, which cannot be a dash.
42503	Name string `json:"name,omitempty"`
42504
42505	// PeerExternalGateway: URL of the peer side external VPN gateway to
42506	// which this VPN tunnel is connected. Provided by the client when the
42507	// VPN tunnel is created. This field is exclusive with the field
42508	// peerGcpGateway.
42509	PeerExternalGateway string `json:"peerExternalGateway,omitempty"`
42510
42511	// PeerExternalGatewayInterface: The interface ID of the external VPN
42512	// gateway to which this VPN tunnel is connected. Provided by the client
42513	// when the VPN tunnel is created.
42514	PeerExternalGatewayInterface int64 `json:"peerExternalGatewayInterface,omitempty"`
42515
42516	// PeerGcpGateway: URL of the peer side HA GCP VPN gateway to which this
42517	// VPN tunnel is connected. Provided by the client when the VPN tunnel
42518	// is created. This field can be used when creating highly available VPN
42519	// from VPC network to VPC network, the field is exclusive with the
42520	// field peerExternalGateway. If provided, the VPN tunnel will
42521	// automatically use the same vpnGatewayInterface ID in the peer GCP VPN
42522	// gateway.
42523	PeerGcpGateway string `json:"peerGcpGateway,omitempty"`
42524
42525	// PeerIp: IP address of the peer VPN gateway. Only IPv4 is supported.
42526	PeerIp string `json:"peerIp,omitempty"`
42527
42528	// Region: [Output Only] URL of the region where the VPN tunnel resides.
42529	// You must specify this field as part of the HTTP request URL. It is
42530	// not settable as a field in the request body.
42531	Region string `json:"region,omitempty"`
42532
42533	// RemoteTrafficSelector: Remote traffic selectors to use when
42534	// establishing the VPN tunnel with the peer VPN gateway. The value
42535	// should be a CIDR formatted string, for example: 192.168.0.0/16. The
42536	// ranges should be disjoint. Only IPv4 is supported.
42537	RemoteTrafficSelector []string `json:"remoteTrafficSelector,omitempty"`
42538
42539	// Router: URL of the router resource to be used for dynamic routing.
42540	Router string `json:"router,omitempty"`
42541
42542	// SelfLink: [Output Only] Server-defined URL for the resource.
42543	SelfLink string `json:"selfLink,omitempty"`
42544
42545	// SharedSecret: Shared secret used to set the secure session between
42546	// the Cloud VPN gateway and the peer VPN gateway.
42547	SharedSecret string `json:"sharedSecret,omitempty"`
42548
42549	// SharedSecretHash: Hash of the shared secret.
42550	SharedSecretHash string `json:"sharedSecretHash,omitempty"`
42551
42552	// Status: [Output Only] The status of the VPN tunnel, which can be one
42553	// of the following:
42554	// - PROVISIONING: Resource is being allocated for the VPN tunnel.
42555	// - WAITING_FOR_FULL_CONFIG: Waiting to receive all VPN-related configs
42556	// from the user. Network, TargetVpnGateway, VpnTunnel, ForwardingRule,
42557	// and Route resources are needed to setup the VPN tunnel.
42558	// - FIRST_HANDSHAKE: Successful first handshake with the peer VPN.
42559	// - ESTABLISHED: Secure session is successfully established with the
42560	// peer VPN.
42561	// - NETWORK_ERROR: Deprecated, replaced by NO_INCOMING_PACKETS
42562	// - AUTHORIZATION_ERROR: Auth error (for example, bad shared secret).
42563	//
42564	// - NEGOTIATION_FAILURE: Handshake failed.
42565	// - DEPROVISIONING: Resources are being deallocated for the VPN tunnel.
42566	//
42567	// - FAILED: Tunnel creation has failed and the tunnel is not ready to
42568	// be used.
42569	// - NO_INCOMING_PACKETS: No incoming packets from peer.
42570	// - REJECTED: Tunnel configuration was rejected, can be result of being
42571	// blacklisted.
42572	// - ALLOCATING_RESOURCES: Cloud VPN is in the process of allocating all
42573	// required resources.
42574	// - STOPPED: Tunnel is stopped due to its Forwarding Rules being
42575	// deleted for Classic VPN tunnels or the project is in frozen state.
42576	// - PEER_IDENTITY_MISMATCH: Peer identity does not match peer IP,
42577	// probably behind NAT.
42578	// - TS_NARROWING_NOT_ALLOWED: Traffic selector narrowing not allowed
42579	// for an HA-VPN tunnel.
42580	//
42581	// Possible values:
42582	//   "ALLOCATING_RESOURCES"
42583	//   "AUTHORIZATION_ERROR"
42584	//   "DEPROVISIONING"
42585	//   "ESTABLISHED"
42586	//   "FAILED"
42587	//   "FIRST_HANDSHAKE"
42588	//   "NEGOTIATION_FAILURE"
42589	//   "NETWORK_ERROR"
42590	//   "NO_INCOMING_PACKETS"
42591	//   "PROVISIONING"
42592	//   "REJECTED"
42593	//   "STOPPED"
42594	//   "WAITING_FOR_FULL_CONFIG"
42595	Status string `json:"status,omitempty"`
42596
42597	// TargetVpnGateway: URL of the Target VPN gateway with which this VPN
42598	// tunnel is associated. Provided by the client when the VPN tunnel is
42599	// created.
42600	TargetVpnGateway string `json:"targetVpnGateway,omitempty"`
42601
42602	// VpnGateway: URL of the VPN gateway with which this VPN tunnel is
42603	// associated. Provided by the client when the VPN tunnel is created.
42604	// This must be used (instead of target_vpn_gateway) if a High
42605	// Availability VPN gateway resource is created.
42606	VpnGateway string `json:"vpnGateway,omitempty"`
42607
42608	// VpnGatewayInterface: The interface ID of the VPN gateway with which
42609	// this VPN tunnel is associated.
42610	VpnGatewayInterface int64 `json:"vpnGatewayInterface,omitempty"`
42611
42612	// ServerResponse contains the HTTP response code and headers from the
42613	// server.
42614	googleapi.ServerResponse `json:"-"`
42615
42616	// ForceSendFields is a list of field names (e.g. "CreationTimestamp")
42617	// to unconditionally include in API requests. By default, fields with
42618	// empty values are omitted from API requests. However, any non-pointer,
42619	// non-interface field appearing in ForceSendFields will be sent to the
42620	// server regardless of whether the field is empty or not. This may be
42621	// used to include empty fields in Patch requests.
42622	ForceSendFields []string `json:"-"`
42623
42624	// NullFields is a list of field names (e.g. "CreationTimestamp") to
42625	// include in API requests with the JSON null value. By default, fields
42626	// with empty values are omitted from API requests. However, any field
42627	// with an empty value appearing in NullFields will be sent to the
42628	// server as null. It is an error if a field in this list has a
42629	// non-empty value. This may be used to include null fields in Patch
42630	// requests.
42631	NullFields []string `json:"-"`
42632}
42633
42634func (s *VpnTunnel) MarshalJSON() ([]byte, error) {
42635	type NoMethod VpnTunnel
42636	raw := NoMethod(*s)
42637	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42638}
42639
42640type VpnTunnelAggregatedList struct {
42641	// Id: [Output Only] Unique identifier for the resource; defined by the
42642	// server.
42643	Id string `json:"id,omitempty"`
42644
42645	// Items: A list of VpnTunnelsScopedList resources.
42646	Items map[string]VpnTunnelsScopedList `json:"items,omitempty"`
42647
42648	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
42649	// VPN tunnels.
42650	Kind string `json:"kind,omitempty"`
42651
42652	// NextPageToken: [Output Only] This token allows you to get the next
42653	// page of results for list requests. If the number of results is larger
42654	// than maxResults, use the nextPageToken as a value for the query
42655	// parameter pageToken in the next list request. Subsequent list
42656	// requests will have their own nextPageToken to continue paging through
42657	// the results.
42658	NextPageToken string `json:"nextPageToken,omitempty"`
42659
42660	// SelfLink: [Output Only] Server-defined URL for this resource.
42661	SelfLink string `json:"selfLink,omitempty"`
42662
42663	// Warning: [Output Only] Informational warning message.
42664	Warning *VpnTunnelAggregatedListWarning `json:"warning,omitempty"`
42665
42666	// ServerResponse contains the HTTP response code and headers from the
42667	// server.
42668	googleapi.ServerResponse `json:"-"`
42669
42670	// ForceSendFields is a list of field names (e.g. "Id") to
42671	// unconditionally include in API requests. By default, fields with
42672	// empty values are omitted from API requests. However, any non-pointer,
42673	// non-interface field appearing in ForceSendFields will be sent to the
42674	// server regardless of whether the field is empty or not. This may be
42675	// used to include empty fields in Patch requests.
42676	ForceSendFields []string `json:"-"`
42677
42678	// NullFields is a list of field names (e.g. "Id") to include in API
42679	// requests with the JSON null value. By default, fields with empty
42680	// values are omitted from API requests. However, any field with an
42681	// empty value appearing in NullFields will be sent to the server as
42682	// null. It is an error if a field in this list has a non-empty value.
42683	// This may be used to include null fields in Patch requests.
42684	NullFields []string `json:"-"`
42685}
42686
42687func (s *VpnTunnelAggregatedList) MarshalJSON() ([]byte, error) {
42688	type NoMethod VpnTunnelAggregatedList
42689	raw := NoMethod(*s)
42690	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42691}
42692
42693// VpnTunnelAggregatedListWarning: [Output Only] Informational warning
42694// message.
42695type VpnTunnelAggregatedListWarning struct {
42696	// Code: [Output Only] A warning code, if applicable. For example,
42697	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42698	// the response.
42699	//
42700	// Possible values:
42701	//   "CLEANUP_FAILED"
42702	//   "DEPRECATED_RESOURCE_USED"
42703	//   "DEPRECATED_TYPE_USED"
42704	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42705	//   "EXPERIMENTAL_TYPE_USED"
42706	//   "EXTERNAL_API_WARNING"
42707	//   "FIELD_VALUE_OVERRIDEN"
42708	//   "INJECTED_KERNELS_DEPRECATED"
42709	//   "MISSING_TYPE_DEPENDENCY"
42710	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42711	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42712	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42713	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42714	//   "NEXT_HOP_NOT_RUNNING"
42715	//   "NOT_CRITICAL_ERROR"
42716	//   "NO_RESULTS_ON_PAGE"
42717	//   "REQUIRED_TOS_AGREEMENT"
42718	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42719	//   "RESOURCE_NOT_DELETED"
42720	//   "SCHEMA_VALIDATION_IGNORED"
42721	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42722	//   "UNDECLARED_PROPERTIES"
42723	//   "UNREACHABLE"
42724	Code string `json:"code,omitempty"`
42725
42726	// Data: [Output Only] Metadata about this warning in key: value format.
42727	// For example:
42728	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42729	Data []*VpnTunnelAggregatedListWarningData `json:"data,omitempty"`
42730
42731	// Message: [Output Only] A human-readable description of the warning
42732	// code.
42733	Message string `json:"message,omitempty"`
42734
42735	// ForceSendFields is a list of field names (e.g. "Code") to
42736	// unconditionally include in API requests. By default, fields with
42737	// empty values are omitted from API requests. However, any non-pointer,
42738	// non-interface field appearing in ForceSendFields will be sent to the
42739	// server regardless of whether the field is empty or not. This may be
42740	// used to include empty fields in Patch requests.
42741	ForceSendFields []string `json:"-"`
42742
42743	// NullFields is a list of field names (e.g. "Code") to include in API
42744	// requests with the JSON null value. By default, fields with empty
42745	// values are omitted from API requests. However, any field with an
42746	// empty value appearing in NullFields will be sent to the server as
42747	// null. It is an error if a field in this list has a non-empty value.
42748	// This may be used to include null fields in Patch requests.
42749	NullFields []string `json:"-"`
42750}
42751
42752func (s *VpnTunnelAggregatedListWarning) MarshalJSON() ([]byte, error) {
42753	type NoMethod VpnTunnelAggregatedListWarning
42754	raw := NoMethod(*s)
42755	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42756}
42757
42758type VpnTunnelAggregatedListWarningData struct {
42759	// Key: [Output Only] A key that provides more detail on the warning
42760	// being returned. For example, for warnings where there are no results
42761	// in a list request for a particular zone, this key might be scope and
42762	// the key value might be the zone name. Other examples might be a key
42763	// indicating a deprecated resource and a suggested replacement, or a
42764	// warning about invalid network settings (for example, if an instance
42765	// attempts to perform IP forwarding but is not enabled for IP
42766	// forwarding).
42767	Key string `json:"key,omitempty"`
42768
42769	// Value: [Output Only] A warning data value corresponding to the key.
42770	Value string `json:"value,omitempty"`
42771
42772	// ForceSendFields is a list of field names (e.g. "Key") to
42773	// unconditionally include in API requests. By default, fields with
42774	// empty values are omitted from API requests. However, any non-pointer,
42775	// non-interface field appearing in ForceSendFields will be sent to the
42776	// server regardless of whether the field is empty or not. This may be
42777	// used to include empty fields in Patch requests.
42778	ForceSendFields []string `json:"-"`
42779
42780	// NullFields is a list of field names (e.g. "Key") to include in API
42781	// requests with the JSON null value. By default, fields with empty
42782	// values are omitted from API requests. However, any field with an
42783	// empty value appearing in NullFields will be sent to the server as
42784	// null. It is an error if a field in this list has a non-empty value.
42785	// This may be used to include null fields in Patch requests.
42786	NullFields []string `json:"-"`
42787}
42788
42789func (s *VpnTunnelAggregatedListWarningData) MarshalJSON() ([]byte, error) {
42790	type NoMethod VpnTunnelAggregatedListWarningData
42791	raw := NoMethod(*s)
42792	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42793}
42794
42795// VpnTunnelList: Contains a list of VpnTunnel resources.
42796type VpnTunnelList struct {
42797	// Id: [Output Only] Unique identifier for the resource; defined by the
42798	// server.
42799	Id string `json:"id,omitempty"`
42800
42801	// Items: A list of VpnTunnel resources.
42802	Items []*VpnTunnel `json:"items,omitempty"`
42803
42804	// Kind: [Output Only] Type of resource. Always compute#vpnTunnel for
42805	// VPN tunnels.
42806	Kind string `json:"kind,omitempty"`
42807
42808	// NextPageToken: [Output Only] This token allows you to get the next
42809	// page of results for list requests. If the number of results is larger
42810	// than maxResults, use the nextPageToken as a value for the query
42811	// parameter pageToken in the next list request. Subsequent list
42812	// requests will have their own nextPageToken to continue paging through
42813	// the results.
42814	NextPageToken string `json:"nextPageToken,omitempty"`
42815
42816	// SelfLink: [Output Only] Server-defined URL for this resource.
42817	SelfLink string `json:"selfLink,omitempty"`
42818
42819	// Warning: [Output Only] Informational warning message.
42820	Warning *VpnTunnelListWarning `json:"warning,omitempty"`
42821
42822	// ServerResponse contains the HTTP response code and headers from the
42823	// server.
42824	googleapi.ServerResponse `json:"-"`
42825
42826	// ForceSendFields is a list of field names (e.g. "Id") to
42827	// unconditionally include in API requests. By default, fields with
42828	// empty values are omitted from API requests. However, any non-pointer,
42829	// non-interface field appearing in ForceSendFields will be sent to the
42830	// server regardless of whether the field is empty or not. This may be
42831	// used to include empty fields in Patch requests.
42832	ForceSendFields []string `json:"-"`
42833
42834	// NullFields is a list of field names (e.g. "Id") to include in API
42835	// requests with the JSON null value. By default, fields with empty
42836	// values are omitted from API requests. However, any field with an
42837	// empty value appearing in NullFields will be sent to the server as
42838	// null. It is an error if a field in this list has a non-empty value.
42839	// This may be used to include null fields in Patch requests.
42840	NullFields []string `json:"-"`
42841}
42842
42843func (s *VpnTunnelList) MarshalJSON() ([]byte, error) {
42844	type NoMethod VpnTunnelList
42845	raw := NoMethod(*s)
42846	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42847}
42848
42849// VpnTunnelListWarning: [Output Only] Informational warning message.
42850type VpnTunnelListWarning struct {
42851	// Code: [Output Only] A warning code, if applicable. For example,
42852	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42853	// the response.
42854	//
42855	// Possible values:
42856	//   "CLEANUP_FAILED"
42857	//   "DEPRECATED_RESOURCE_USED"
42858	//   "DEPRECATED_TYPE_USED"
42859	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42860	//   "EXPERIMENTAL_TYPE_USED"
42861	//   "EXTERNAL_API_WARNING"
42862	//   "FIELD_VALUE_OVERRIDEN"
42863	//   "INJECTED_KERNELS_DEPRECATED"
42864	//   "MISSING_TYPE_DEPENDENCY"
42865	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42866	//   "NEXT_HOP_CANNOT_IP_FORWARD"
42867	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
42868	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
42869	//   "NEXT_HOP_NOT_RUNNING"
42870	//   "NOT_CRITICAL_ERROR"
42871	//   "NO_RESULTS_ON_PAGE"
42872	//   "REQUIRED_TOS_AGREEMENT"
42873	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
42874	//   "RESOURCE_NOT_DELETED"
42875	//   "SCHEMA_VALIDATION_IGNORED"
42876	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
42877	//   "UNDECLARED_PROPERTIES"
42878	//   "UNREACHABLE"
42879	Code string `json:"code,omitempty"`
42880
42881	// Data: [Output Only] Metadata about this warning in key: value format.
42882	// For example:
42883	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
42884	Data []*VpnTunnelListWarningData `json:"data,omitempty"`
42885
42886	// Message: [Output Only] A human-readable description of the warning
42887	// code.
42888	Message string `json:"message,omitempty"`
42889
42890	// ForceSendFields is a list of field names (e.g. "Code") to
42891	// unconditionally include in API requests. By default, fields with
42892	// empty values are omitted from API requests. However, any non-pointer,
42893	// non-interface field appearing in ForceSendFields will be sent to the
42894	// server regardless of whether the field is empty or not. This may be
42895	// used to include empty fields in Patch requests.
42896	ForceSendFields []string `json:"-"`
42897
42898	// NullFields is a list of field names (e.g. "Code") to include in API
42899	// requests with the JSON null value. By default, fields with empty
42900	// values are omitted from API requests. However, any field with an
42901	// empty value appearing in NullFields will be sent to the server as
42902	// null. It is an error if a field in this list has a non-empty value.
42903	// This may be used to include null fields in Patch requests.
42904	NullFields []string `json:"-"`
42905}
42906
42907func (s *VpnTunnelListWarning) MarshalJSON() ([]byte, error) {
42908	type NoMethod VpnTunnelListWarning
42909	raw := NoMethod(*s)
42910	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42911}
42912
42913type VpnTunnelListWarningData struct {
42914	// Key: [Output Only] A key that provides more detail on the warning
42915	// being returned. For example, for warnings where there are no results
42916	// in a list request for a particular zone, this key might be scope and
42917	// the key value might be the zone name. Other examples might be a key
42918	// indicating a deprecated resource and a suggested replacement, or a
42919	// warning about invalid network settings (for example, if an instance
42920	// attempts to perform IP forwarding but is not enabled for IP
42921	// forwarding).
42922	Key string `json:"key,omitempty"`
42923
42924	// Value: [Output Only] A warning data value corresponding to the key.
42925	Value string `json:"value,omitempty"`
42926
42927	// ForceSendFields is a list of field names (e.g. "Key") to
42928	// unconditionally include in API requests. By default, fields with
42929	// empty values are omitted from API requests. However, any non-pointer,
42930	// non-interface field appearing in ForceSendFields will be sent to the
42931	// server regardless of whether the field is empty or not. This may be
42932	// used to include empty fields in Patch requests.
42933	ForceSendFields []string `json:"-"`
42934
42935	// NullFields is a list of field names (e.g. "Key") to include in API
42936	// requests with the JSON null value. By default, fields with empty
42937	// values are omitted from API requests. However, any field with an
42938	// empty value appearing in NullFields will be sent to the server as
42939	// null. It is an error if a field in this list has a non-empty value.
42940	// This may be used to include null fields in Patch requests.
42941	NullFields []string `json:"-"`
42942}
42943
42944func (s *VpnTunnelListWarningData) MarshalJSON() ([]byte, error) {
42945	type NoMethod VpnTunnelListWarningData
42946	raw := NoMethod(*s)
42947	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42948}
42949
42950type VpnTunnelsScopedList struct {
42951	// VpnTunnels: A list of VPN tunnels contained in this scope.
42952	VpnTunnels []*VpnTunnel `json:"vpnTunnels,omitempty"`
42953
42954	// Warning: Informational warning which replaces the list of addresses
42955	// when the list is empty.
42956	Warning *VpnTunnelsScopedListWarning `json:"warning,omitempty"`
42957
42958	// ForceSendFields is a list of field names (e.g. "VpnTunnels") to
42959	// unconditionally include in API requests. By default, fields with
42960	// empty values are omitted from API requests. However, any non-pointer,
42961	// non-interface field appearing in ForceSendFields will be sent to the
42962	// server regardless of whether the field is empty or not. This may be
42963	// used to include empty fields in Patch requests.
42964	ForceSendFields []string `json:"-"`
42965
42966	// NullFields is a list of field names (e.g. "VpnTunnels") to include in
42967	// API requests with the JSON null value. By default, fields with empty
42968	// values are omitted from API requests. However, any field with an
42969	// empty value appearing in NullFields will be sent to the server as
42970	// null. It is an error if a field in this list has a non-empty value.
42971	// This may be used to include null fields in Patch requests.
42972	NullFields []string `json:"-"`
42973}
42974
42975func (s *VpnTunnelsScopedList) MarshalJSON() ([]byte, error) {
42976	type NoMethod VpnTunnelsScopedList
42977	raw := NoMethod(*s)
42978	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
42979}
42980
42981// VpnTunnelsScopedListWarning: Informational warning which replaces the
42982// list of addresses when the list is empty.
42983type VpnTunnelsScopedListWarning struct {
42984	// Code: [Output Only] A warning code, if applicable. For example,
42985	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
42986	// the response.
42987	//
42988	// Possible values:
42989	//   "CLEANUP_FAILED"
42990	//   "DEPRECATED_RESOURCE_USED"
42991	//   "DEPRECATED_TYPE_USED"
42992	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
42993	//   "EXPERIMENTAL_TYPE_USED"
42994	//   "EXTERNAL_API_WARNING"
42995	//   "FIELD_VALUE_OVERRIDEN"
42996	//   "INJECTED_KERNELS_DEPRECATED"
42997	//   "MISSING_TYPE_DEPENDENCY"
42998	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
42999	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43000	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43001	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43002	//   "NEXT_HOP_NOT_RUNNING"
43003	//   "NOT_CRITICAL_ERROR"
43004	//   "NO_RESULTS_ON_PAGE"
43005	//   "REQUIRED_TOS_AGREEMENT"
43006	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43007	//   "RESOURCE_NOT_DELETED"
43008	//   "SCHEMA_VALIDATION_IGNORED"
43009	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43010	//   "UNDECLARED_PROPERTIES"
43011	//   "UNREACHABLE"
43012	Code string `json:"code,omitempty"`
43013
43014	// Data: [Output Only] Metadata about this warning in key: value format.
43015	// For example:
43016	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43017	Data []*VpnTunnelsScopedListWarningData `json:"data,omitempty"`
43018
43019	// Message: [Output Only] A human-readable description of the warning
43020	// code.
43021	Message string `json:"message,omitempty"`
43022
43023	// ForceSendFields is a list of field names (e.g. "Code") to
43024	// unconditionally include in API requests. By default, fields with
43025	// empty values are omitted from API requests. However, any non-pointer,
43026	// non-interface field appearing in ForceSendFields will be sent to the
43027	// server regardless of whether the field is empty or not. This may be
43028	// used to include empty fields in Patch requests.
43029	ForceSendFields []string `json:"-"`
43030
43031	// NullFields is a list of field names (e.g. "Code") to include in API
43032	// requests with the JSON null value. By default, fields with empty
43033	// values are omitted from API requests. However, any field with an
43034	// empty value appearing in NullFields will be sent to the server as
43035	// null. It is an error if a field in this list has a non-empty value.
43036	// This may be used to include null fields in Patch requests.
43037	NullFields []string `json:"-"`
43038}
43039
43040func (s *VpnTunnelsScopedListWarning) MarshalJSON() ([]byte, error) {
43041	type NoMethod VpnTunnelsScopedListWarning
43042	raw := NoMethod(*s)
43043	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43044}
43045
43046type VpnTunnelsScopedListWarningData struct {
43047	// Key: [Output Only] A key that provides more detail on the warning
43048	// being returned. For example, for warnings where there are no results
43049	// in a list request for a particular zone, this key might be scope and
43050	// the key value might be the zone name. Other examples might be a key
43051	// indicating a deprecated resource and a suggested replacement, or a
43052	// warning about invalid network settings (for example, if an instance
43053	// attempts to perform IP forwarding but is not enabled for IP
43054	// forwarding).
43055	Key string `json:"key,omitempty"`
43056
43057	// Value: [Output Only] A warning data value corresponding to the key.
43058	Value string `json:"value,omitempty"`
43059
43060	// ForceSendFields is a list of field names (e.g. "Key") to
43061	// unconditionally include in API requests. By default, fields with
43062	// empty values are omitted from API requests. However, any non-pointer,
43063	// non-interface field appearing in ForceSendFields will be sent to the
43064	// server regardless of whether the field is empty or not. This may be
43065	// used to include empty fields in Patch requests.
43066	ForceSendFields []string `json:"-"`
43067
43068	// NullFields is a list of field names (e.g. "Key") to include in API
43069	// requests with the JSON null value. By default, fields with empty
43070	// values are omitted from API requests. However, any field with an
43071	// empty value appearing in NullFields will be sent to the server as
43072	// null. It is an error if a field in this list has a non-empty value.
43073	// This may be used to include null fields in Patch requests.
43074	NullFields []string `json:"-"`
43075}
43076
43077func (s *VpnTunnelsScopedListWarningData) MarshalJSON() ([]byte, error) {
43078	type NoMethod VpnTunnelsScopedListWarningData
43079	raw := NoMethod(*s)
43080	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43081}
43082
43083type WafExpressionSet struct {
43084	// Aliases: A list of alternate IDs. The format should be: - E.g.
43085	// XSS-stable Generic suffix like "stable" is particularly useful if a
43086	// policy likes to avail newer set of expressions without having to
43087	// change the policy. A given alias name can't be used for more than one
43088	// entity set.
43089	Aliases []string `json:"aliases,omitempty"`
43090
43091	// Expressions: List of available expressions.
43092	Expressions []*WafExpressionSetExpression `json:"expressions,omitempty"`
43093
43094	// Id: Google specified expression set ID. The format should be: - E.g.
43095	// XSS-20170329
43096	Id string `json:"id,omitempty"`
43097
43098	// ForceSendFields is a list of field names (e.g. "Aliases") to
43099	// unconditionally include in API requests. By default, fields with
43100	// empty values are omitted from API requests. However, any non-pointer,
43101	// non-interface field appearing in ForceSendFields will be sent to the
43102	// server regardless of whether the field is empty or not. This may be
43103	// used to include empty fields in Patch requests.
43104	ForceSendFields []string `json:"-"`
43105
43106	// NullFields is a list of field names (e.g. "Aliases") to include in
43107	// API requests with the JSON null value. By default, fields with empty
43108	// values are omitted from API requests. However, any field with an
43109	// empty value appearing in NullFields will be sent to the server as
43110	// null. It is an error if a field in this list has a non-empty value.
43111	// This may be used to include null fields in Patch requests.
43112	NullFields []string `json:"-"`
43113}
43114
43115func (s *WafExpressionSet) MarshalJSON() ([]byte, error) {
43116	type NoMethod WafExpressionSet
43117	raw := NoMethod(*s)
43118	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43119}
43120
43121type WafExpressionSetExpression struct {
43122	// Id: Expression ID should uniquely identify the origin of the
43123	// expression. E.g. owasp-crs-v020901-id973337 identifies Owasp core
43124	// rule set version 2.9.1 rule id 973337. The ID could be used to
43125	// determine the individual attack definition that has been detected. It
43126	// could also be used to exclude it from the policy in case of false
43127	// positive.
43128	Id string `json:"id,omitempty"`
43129
43130	// ForceSendFields is a list of field names (e.g. "Id") to
43131	// unconditionally include in API requests. By default, fields with
43132	// empty values are omitted from API requests. However, any non-pointer,
43133	// non-interface field appearing in ForceSendFields will be sent to the
43134	// server regardless of whether the field is empty or not. This may be
43135	// used to include empty fields in Patch requests.
43136	ForceSendFields []string `json:"-"`
43137
43138	// NullFields is a list of field names (e.g. "Id") to include in API
43139	// requests with the JSON null value. By default, fields with empty
43140	// values are omitted from API requests. However, any field with an
43141	// empty value appearing in NullFields will be sent to the server as
43142	// null. It is an error if a field in this list has a non-empty value.
43143	// This may be used to include null fields in Patch requests.
43144	NullFields []string `json:"-"`
43145}
43146
43147func (s *WafExpressionSetExpression) MarshalJSON() ([]byte, error) {
43148	type NoMethod WafExpressionSetExpression
43149	raw := NoMethod(*s)
43150	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43151}
43152
43153// WeightedBackendService: In contrast to a single BackendService in
43154// HttpRouteAction to which all matching traffic is directed to,
43155// WeightedBackendService allows traffic to be split across multiple
43156// BackendServices. The volume of traffic for each BackendService is
43157// proportional to the weight specified in each WeightedBackendService
43158type WeightedBackendService struct {
43159	// BackendService: The full or partial URL to the default BackendService
43160	// resource. Before forwarding the request to backendService, the
43161	// loadbalancer applies any relevant headerActions specified as part of
43162	// this backendServiceWeight.
43163	BackendService string `json:"backendService,omitempty"`
43164
43165	// HeaderAction: Specifies changes to request and response headers that
43166	// need to take effect for the selected backendService.
43167	// headerAction specified here take effect before headerAction in the
43168	// enclosing HttpRouteRule, PathMatcher and UrlMap.
43169	HeaderAction *HttpHeaderAction `json:"headerAction,omitempty"`
43170
43171	// Weight: Specifies the fraction of traffic sent to backendService,
43172	// computed as weight / (sum of all weightedBackendService weights in
43173	// routeAction) .
43174	// The selection of a backend service is determined only for new
43175	// traffic. Once a user's request has been directed to a backendService,
43176	// subsequent requests will be sent to the same backendService as
43177	// determined by the BackendService's session affinity policy.
43178	// The value must be between 0 and 1000
43179	Weight int64 `json:"weight,omitempty"`
43180
43181	// ForceSendFields is a list of field names (e.g. "BackendService") to
43182	// unconditionally include in API requests. By default, fields with
43183	// empty values are omitted from API requests. However, any non-pointer,
43184	// non-interface field appearing in ForceSendFields will be sent to the
43185	// server regardless of whether the field is empty or not. This may be
43186	// used to include empty fields in Patch requests.
43187	ForceSendFields []string `json:"-"`
43188
43189	// NullFields is a list of field names (e.g. "BackendService") to
43190	// include in API requests with the JSON null value. By default, fields
43191	// with empty values are omitted from API requests. However, any field
43192	// with an empty value appearing in NullFields will be sent to the
43193	// server as null. It is an error if a field in this list has a
43194	// non-empty value. This may be used to include null fields in Patch
43195	// requests.
43196	NullFields []string `json:"-"`
43197}
43198
43199func (s *WeightedBackendService) MarshalJSON() ([]byte, error) {
43200	type NoMethod WeightedBackendService
43201	raw := NoMethod(*s)
43202	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43203}
43204
43205type XpnHostList struct {
43206	// Id: [Output Only] Unique identifier for the resource; defined by the
43207	// server.
43208	Id string `json:"id,omitempty"`
43209
43210	// Items: [Output Only] A list of shared VPC host project URLs.
43211	Items []*Project `json:"items,omitempty"`
43212
43213	// Kind: [Output Only] Type of resource. Always compute#xpnHostList for
43214	// lists of shared VPC hosts.
43215	Kind string `json:"kind,omitempty"`
43216
43217	// NextPageToken: [Output Only] This token allows you to get the next
43218	// page of results for list requests. If the number of results is larger
43219	// than maxResults, use the nextPageToken as a value for the query
43220	// parameter pageToken in the next list request. Subsequent list
43221	// requests will have their own nextPageToken to continue paging through
43222	// the results.
43223	NextPageToken string `json:"nextPageToken,omitempty"`
43224
43225	// SelfLink: [Output Only] Server-defined URL for this resource.
43226	SelfLink string `json:"selfLink,omitempty"`
43227
43228	// Warning: [Output Only] Informational warning message.
43229	Warning *XpnHostListWarning `json:"warning,omitempty"`
43230
43231	// ServerResponse contains the HTTP response code and headers from the
43232	// server.
43233	googleapi.ServerResponse `json:"-"`
43234
43235	// ForceSendFields is a list of field names (e.g. "Id") to
43236	// unconditionally include in API requests. By default, fields with
43237	// empty values are omitted from API requests. However, any non-pointer,
43238	// non-interface field appearing in ForceSendFields will be sent to the
43239	// server regardless of whether the field is empty or not. This may be
43240	// used to include empty fields in Patch requests.
43241	ForceSendFields []string `json:"-"`
43242
43243	// NullFields is a list of field names (e.g. "Id") to include in API
43244	// requests with the JSON null value. By default, fields with empty
43245	// values are omitted from API requests. However, any field with an
43246	// empty value appearing in NullFields will be sent to the server as
43247	// null. It is an error if a field in this list has a non-empty value.
43248	// This may be used to include null fields in Patch requests.
43249	NullFields []string `json:"-"`
43250}
43251
43252func (s *XpnHostList) MarshalJSON() ([]byte, error) {
43253	type NoMethod XpnHostList
43254	raw := NoMethod(*s)
43255	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43256}
43257
43258// XpnHostListWarning: [Output Only] Informational warning message.
43259type XpnHostListWarning struct {
43260	// Code: [Output Only] A warning code, if applicable. For example,
43261	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43262	// the response.
43263	//
43264	// Possible values:
43265	//   "CLEANUP_FAILED"
43266	//   "DEPRECATED_RESOURCE_USED"
43267	//   "DEPRECATED_TYPE_USED"
43268	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43269	//   "EXPERIMENTAL_TYPE_USED"
43270	//   "EXTERNAL_API_WARNING"
43271	//   "FIELD_VALUE_OVERRIDEN"
43272	//   "INJECTED_KERNELS_DEPRECATED"
43273	//   "MISSING_TYPE_DEPENDENCY"
43274	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43275	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43276	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43277	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43278	//   "NEXT_HOP_NOT_RUNNING"
43279	//   "NOT_CRITICAL_ERROR"
43280	//   "NO_RESULTS_ON_PAGE"
43281	//   "REQUIRED_TOS_AGREEMENT"
43282	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43283	//   "RESOURCE_NOT_DELETED"
43284	//   "SCHEMA_VALIDATION_IGNORED"
43285	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43286	//   "UNDECLARED_PROPERTIES"
43287	//   "UNREACHABLE"
43288	Code string `json:"code,omitempty"`
43289
43290	// Data: [Output Only] Metadata about this warning in key: value format.
43291	// For example:
43292	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43293	Data []*XpnHostListWarningData `json:"data,omitempty"`
43294
43295	// Message: [Output Only] A human-readable description of the warning
43296	// code.
43297	Message string `json:"message,omitempty"`
43298
43299	// ForceSendFields is a list of field names (e.g. "Code") to
43300	// unconditionally include in API requests. By default, fields with
43301	// empty values are omitted from API requests. However, any non-pointer,
43302	// non-interface field appearing in ForceSendFields will be sent to the
43303	// server regardless of whether the field is empty or not. This may be
43304	// used to include empty fields in Patch requests.
43305	ForceSendFields []string `json:"-"`
43306
43307	// NullFields is a list of field names (e.g. "Code") to include in API
43308	// requests with the JSON null value. By default, fields with empty
43309	// values are omitted from API requests. However, any field with an
43310	// empty value appearing in NullFields will be sent to the server as
43311	// null. It is an error if a field in this list has a non-empty value.
43312	// This may be used to include null fields in Patch requests.
43313	NullFields []string `json:"-"`
43314}
43315
43316func (s *XpnHostListWarning) MarshalJSON() ([]byte, error) {
43317	type NoMethod XpnHostListWarning
43318	raw := NoMethod(*s)
43319	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43320}
43321
43322type XpnHostListWarningData struct {
43323	// Key: [Output Only] A key that provides more detail on the warning
43324	// being returned. For example, for warnings where there are no results
43325	// in a list request for a particular zone, this key might be scope and
43326	// the key value might be the zone name. Other examples might be a key
43327	// indicating a deprecated resource and a suggested replacement, or a
43328	// warning about invalid network settings (for example, if an instance
43329	// attempts to perform IP forwarding but is not enabled for IP
43330	// forwarding).
43331	Key string `json:"key,omitempty"`
43332
43333	// Value: [Output Only] A warning data value corresponding to the key.
43334	Value string `json:"value,omitempty"`
43335
43336	// ForceSendFields is a list of field names (e.g. "Key") to
43337	// unconditionally include in API requests. By default, fields with
43338	// empty values are omitted from API requests. However, any non-pointer,
43339	// non-interface field appearing in ForceSendFields will be sent to the
43340	// server regardless of whether the field is empty or not. This may be
43341	// used to include empty fields in Patch requests.
43342	ForceSendFields []string `json:"-"`
43343
43344	// NullFields is a list of field names (e.g. "Key") to include in API
43345	// requests with the JSON null value. By default, fields with empty
43346	// values are omitted from API requests. However, any field with an
43347	// empty value appearing in NullFields will be sent to the server as
43348	// null. It is an error if a field in this list has a non-empty value.
43349	// This may be used to include null fields in Patch requests.
43350	NullFields []string `json:"-"`
43351}
43352
43353func (s *XpnHostListWarningData) MarshalJSON() ([]byte, error) {
43354	type NoMethod XpnHostListWarningData
43355	raw := NoMethod(*s)
43356	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43357}
43358
43359// XpnResourceId: Service resource (a.k.a service project) ID.
43360type XpnResourceId struct {
43361	// Id: The ID of the service resource. In the case of projects, this
43362	// field supports project id (e.g., my-project-123) and project number
43363	// (e.g. 12345678).
43364	Id string `json:"id,omitempty"`
43365
43366	// Type: The type of the service resource.
43367	//
43368	// Possible values:
43369	//   "PROJECT"
43370	//   "XPN_RESOURCE_TYPE_UNSPECIFIED"
43371	Type string `json:"type,omitempty"`
43372
43373	// ForceSendFields is a list of field names (e.g. "Id") to
43374	// unconditionally include in API requests. By default, fields with
43375	// empty values are omitted from API requests. However, any non-pointer,
43376	// non-interface field appearing in ForceSendFields will be sent to the
43377	// server regardless of whether the field is empty or not. This may be
43378	// used to include empty fields in Patch requests.
43379	ForceSendFields []string `json:"-"`
43380
43381	// NullFields is a list of field names (e.g. "Id") to include in API
43382	// requests with the JSON null value. By default, fields with empty
43383	// values are omitted from API requests. However, any field with an
43384	// empty value appearing in NullFields will be sent to the server as
43385	// null. It is an error if a field in this list has a non-empty value.
43386	// This may be used to include null fields in Patch requests.
43387	NullFields []string `json:"-"`
43388}
43389
43390func (s *XpnResourceId) MarshalJSON() ([]byte, error) {
43391	type NoMethod XpnResourceId
43392	raw := NoMethod(*s)
43393	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43394}
43395
43396// Zone: Represents a Zone resource.
43397//
43398// A zone is a deployment area. These deployment areas are subsets of a
43399// region. For example the zone us-east1-a is located in the us-east1
43400// region. For more information, read Regions and Zones. (==
43401// resource_for {$api_version}.zones ==)
43402type Zone struct {
43403	// AvailableCpuPlatforms: [Output Only] Available cpu/platform
43404	// selections for the zone.
43405	AvailableCpuPlatforms []string `json:"availableCpuPlatforms,omitempty"`
43406
43407	// CreationTimestamp: [Output Only] Creation timestamp in RFC3339 text
43408	// format.
43409	CreationTimestamp string `json:"creationTimestamp,omitempty"`
43410
43411	// Deprecated: [Output Only] The deprecation status associated with this
43412	// zone.
43413	Deprecated *DeprecationStatus `json:"deprecated,omitempty"`
43414
43415	// Description: [Output Only] Textual description of the resource.
43416	Description string `json:"description,omitempty"`
43417
43418	// Id: [Output Only] The unique identifier for the resource. This
43419	// identifier is defined by the server.
43420	Id uint64 `json:"id,omitempty,string"`
43421
43422	// Kind: [Output Only] Type of the resource. Always compute#zone for
43423	// zones.
43424	Kind string `json:"kind,omitempty"`
43425
43426	// Name: [Output Only] Name of the resource.
43427	Name string `json:"name,omitempty"`
43428
43429	// Region: [Output Only] Full URL reference to the region which hosts
43430	// the zone.
43431	Region string `json:"region,omitempty"`
43432
43433	// SelfLink: [Output Only] Server-defined URL for the resource.
43434	SelfLink string `json:"selfLink,omitempty"`
43435
43436	// Status: [Output Only] Status of the zone, either UP or DOWN.
43437	//
43438	// Possible values:
43439	//   "DOWN"
43440	//   "UP"
43441	Status string `json:"status,omitempty"`
43442
43443	// ServerResponse contains the HTTP response code and headers from the
43444	// server.
43445	googleapi.ServerResponse `json:"-"`
43446
43447	// ForceSendFields is a list of field names (e.g.
43448	// "AvailableCpuPlatforms") to unconditionally include in API requests.
43449	// By default, fields with empty values are omitted from API requests.
43450	// However, any non-pointer, non-interface field appearing in
43451	// ForceSendFields will be sent to the server regardless of whether the
43452	// field is empty or not. This may be used to include empty fields in
43453	// Patch requests.
43454	ForceSendFields []string `json:"-"`
43455
43456	// NullFields is a list of field names (e.g. "AvailableCpuPlatforms") to
43457	// include in API requests with the JSON null value. By default, fields
43458	// with empty values are omitted from API requests. However, any field
43459	// with an empty value appearing in NullFields will be sent to the
43460	// server as null. It is an error if a field in this list has a
43461	// non-empty value. This may be used to include null fields in Patch
43462	// requests.
43463	NullFields []string `json:"-"`
43464}
43465
43466func (s *Zone) MarshalJSON() ([]byte, error) {
43467	type NoMethod Zone
43468	raw := NoMethod(*s)
43469	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43470}
43471
43472// ZoneList: Contains a list of zone resources.
43473type ZoneList struct {
43474	// Id: [Output Only] Unique identifier for the resource; defined by the
43475	// server.
43476	Id string `json:"id,omitempty"`
43477
43478	// Items: A list of Zone resources.
43479	Items []*Zone `json:"items,omitempty"`
43480
43481	// Kind: Type of resource.
43482	Kind string `json:"kind,omitempty"`
43483
43484	// NextPageToken: [Output Only] This token allows you to get the next
43485	// page of results for list requests. If the number of results is larger
43486	// than maxResults, use the nextPageToken as a value for the query
43487	// parameter pageToken in the next list request. Subsequent list
43488	// requests will have their own nextPageToken to continue paging through
43489	// the results.
43490	NextPageToken string `json:"nextPageToken,omitempty"`
43491
43492	// SelfLink: [Output Only] Server-defined URL for this resource.
43493	SelfLink string `json:"selfLink,omitempty"`
43494
43495	// Warning: [Output Only] Informational warning message.
43496	Warning *ZoneListWarning `json:"warning,omitempty"`
43497
43498	// ServerResponse contains the HTTP response code and headers from the
43499	// server.
43500	googleapi.ServerResponse `json:"-"`
43501
43502	// ForceSendFields is a list of field names (e.g. "Id") to
43503	// unconditionally include in API requests. By default, fields with
43504	// empty values are omitted from API requests. However, any non-pointer,
43505	// non-interface field appearing in ForceSendFields will be sent to the
43506	// server regardless of whether the field is empty or not. This may be
43507	// used to include empty fields in Patch requests.
43508	ForceSendFields []string `json:"-"`
43509
43510	// NullFields is a list of field names (e.g. "Id") to include in API
43511	// requests with the JSON null value. By default, fields with empty
43512	// values are omitted from API requests. However, any field with an
43513	// empty value appearing in NullFields will be sent to the server as
43514	// null. It is an error if a field in this list has a non-empty value.
43515	// This may be used to include null fields in Patch requests.
43516	NullFields []string `json:"-"`
43517}
43518
43519func (s *ZoneList) MarshalJSON() ([]byte, error) {
43520	type NoMethod ZoneList
43521	raw := NoMethod(*s)
43522	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43523}
43524
43525// ZoneListWarning: [Output Only] Informational warning message.
43526type ZoneListWarning struct {
43527	// Code: [Output Only] A warning code, if applicable. For example,
43528	// Compute Engine returns NO_RESULTS_ON_PAGE if there are no results in
43529	// the response.
43530	//
43531	// Possible values:
43532	//   "CLEANUP_FAILED"
43533	//   "DEPRECATED_RESOURCE_USED"
43534	//   "DEPRECATED_TYPE_USED"
43535	//   "DISK_SIZE_LARGER_THAN_IMAGE_SIZE"
43536	//   "EXPERIMENTAL_TYPE_USED"
43537	//   "EXTERNAL_API_WARNING"
43538	//   "FIELD_VALUE_OVERRIDEN"
43539	//   "INJECTED_KERNELS_DEPRECATED"
43540	//   "MISSING_TYPE_DEPENDENCY"
43541	//   "NEXT_HOP_ADDRESS_NOT_ASSIGNED"
43542	//   "NEXT_HOP_CANNOT_IP_FORWARD"
43543	//   "NEXT_HOP_INSTANCE_NOT_FOUND"
43544	//   "NEXT_HOP_INSTANCE_NOT_ON_NETWORK"
43545	//   "NEXT_HOP_NOT_RUNNING"
43546	//   "NOT_CRITICAL_ERROR"
43547	//   "NO_RESULTS_ON_PAGE"
43548	//   "REQUIRED_TOS_AGREEMENT"
43549	//   "RESOURCE_IN_USE_BY_OTHER_RESOURCE_WARNING"
43550	//   "RESOURCE_NOT_DELETED"
43551	//   "SCHEMA_VALIDATION_IGNORED"
43552	//   "SINGLE_INSTANCE_PROPERTY_TEMPLATE"
43553	//   "UNDECLARED_PROPERTIES"
43554	//   "UNREACHABLE"
43555	Code string `json:"code,omitempty"`
43556
43557	// Data: [Output Only] Metadata about this warning in key: value format.
43558	// For example:
43559	// "data": [ { "key": "scope", "value": "zones/us-east1-d" }
43560	Data []*ZoneListWarningData `json:"data,omitempty"`
43561
43562	// Message: [Output Only] A human-readable description of the warning
43563	// code.
43564	Message string `json:"message,omitempty"`
43565
43566	// ForceSendFields is a list of field names (e.g. "Code") to
43567	// unconditionally include in API requests. By default, fields with
43568	// empty values are omitted from API requests. However, any non-pointer,
43569	// non-interface field appearing in ForceSendFields will be sent to the
43570	// server regardless of whether the field is empty or not. This may be
43571	// used to include empty fields in Patch requests.
43572	ForceSendFields []string `json:"-"`
43573
43574	// NullFields is a list of field names (e.g. "Code") to include in API
43575	// requests with the JSON null value. By default, fields with empty
43576	// values are omitted from API requests. However, any field with an
43577	// empty value appearing in NullFields will be sent to the server as
43578	// null. It is an error if a field in this list has a non-empty value.
43579	// This may be used to include null fields in Patch requests.
43580	NullFields []string `json:"-"`
43581}
43582
43583func (s *ZoneListWarning) MarshalJSON() ([]byte, error) {
43584	type NoMethod ZoneListWarning
43585	raw := NoMethod(*s)
43586	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43587}
43588
43589type ZoneListWarningData struct {
43590	// Key: [Output Only] A key that provides more detail on the warning
43591	// being returned. For example, for warnings where there are no results
43592	// in a list request for a particular zone, this key might be scope and
43593	// the key value might be the zone name. Other examples might be a key
43594	// indicating a deprecated resource and a suggested replacement, or a
43595	// warning about invalid network settings (for example, if an instance
43596	// attempts to perform IP forwarding but is not enabled for IP
43597	// forwarding).
43598	Key string `json:"key,omitempty"`
43599
43600	// Value: [Output Only] A warning data value corresponding to the key.
43601	Value string `json:"value,omitempty"`
43602
43603	// ForceSendFields is a list of field names (e.g. "Key") to
43604	// unconditionally include in API requests. By default, fields with
43605	// empty values are omitted from API requests. However, any non-pointer,
43606	// non-interface field appearing in ForceSendFields will be sent to the
43607	// server regardless of whether the field is empty or not. This may be
43608	// used to include empty fields in Patch requests.
43609	ForceSendFields []string `json:"-"`
43610
43611	// NullFields is a list of field names (e.g. "Key") to include in API
43612	// requests with the JSON null value. By default, fields with empty
43613	// values are omitted from API requests. However, any field with an
43614	// empty value appearing in NullFields will be sent to the server as
43615	// null. It is an error if a field in this list has a non-empty value.
43616	// This may be used to include null fields in Patch requests.
43617	NullFields []string `json:"-"`
43618}
43619
43620func (s *ZoneListWarningData) MarshalJSON() ([]byte, error) {
43621	type NoMethod ZoneListWarningData
43622	raw := NoMethod(*s)
43623	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43624}
43625
43626type ZoneSetLabelsRequest struct {
43627	// LabelFingerprint: The fingerprint of the previous set of labels for
43628	// this resource, used to detect conflicts. The fingerprint is initially
43629	// generated by Compute Engine and changes after every request to modify
43630	// or update labels. You must always provide an up-to-date fingerprint
43631	// hash in order to update or change labels. Make a get() request to the
43632	// resource to get the latest fingerprint.
43633	LabelFingerprint string `json:"labelFingerprint,omitempty"`
43634
43635	// Labels: The labels to set for this resource.
43636	Labels map[string]string `json:"labels,omitempty"`
43637
43638	// ForceSendFields is a list of field names (e.g. "LabelFingerprint") to
43639	// unconditionally include in API requests. By default, fields with
43640	// empty values are omitted from API requests. However, any non-pointer,
43641	// non-interface field appearing in ForceSendFields will be sent to the
43642	// server regardless of whether the field is empty or not. This may be
43643	// used to include empty fields in Patch requests.
43644	ForceSendFields []string `json:"-"`
43645
43646	// NullFields is a list of field names (e.g. "LabelFingerprint") to
43647	// include in API requests with the JSON null value. By default, fields
43648	// with empty values are omitted from API requests. However, any field
43649	// with an empty value appearing in NullFields will be sent to the
43650	// server as null. It is an error if a field in this list has a
43651	// non-empty value. This may be used to include null fields in Patch
43652	// requests.
43653	NullFields []string `json:"-"`
43654}
43655
43656func (s *ZoneSetLabelsRequest) MarshalJSON() ([]byte, error) {
43657	type NoMethod ZoneSetLabelsRequest
43658	raw := NoMethod(*s)
43659	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43660}
43661
43662type ZoneSetPolicyRequest struct {
43663	// Bindings: Flatten Policy to create a backwacd compatible wire-format.
43664	// Deprecated. Use 'policy' to specify bindings.
43665	Bindings []*Binding `json:"bindings,omitempty"`
43666
43667	// Etag: Flatten Policy to create a backward compatible wire-format.
43668	// Deprecated. Use 'policy' to specify the etag.
43669	Etag string `json:"etag,omitempty"`
43670
43671	// Policy: REQUIRED: The complete policy to be applied to the
43672	// 'resource'. The size of the policy is limited to a few 10s of KB. An
43673	// empty policy is in general a valid policy but certain services (like
43674	// Projects) might reject them.
43675	Policy *Policy `json:"policy,omitempty"`
43676
43677	// ForceSendFields is a list of field names (e.g. "Bindings") to
43678	// unconditionally include in API requests. By default, fields with
43679	// empty values are omitted from API requests. However, any non-pointer,
43680	// non-interface field appearing in ForceSendFields will be sent to the
43681	// server regardless of whether the field is empty or not. This may be
43682	// used to include empty fields in Patch requests.
43683	ForceSendFields []string `json:"-"`
43684
43685	// NullFields is a list of field names (e.g. "Bindings") to include in
43686	// API requests with the JSON null value. By default, fields with empty
43687	// values are omitted from API requests. However, any field with an
43688	// empty value appearing in NullFields will be sent to the server as
43689	// null. It is an error if a field in this list has a non-empty value.
43690	// This may be used to include null fields in Patch requests.
43691	NullFields []string `json:"-"`
43692}
43693
43694func (s *ZoneSetPolicyRequest) MarshalJSON() ([]byte, error) {
43695	type NoMethod ZoneSetPolicyRequest
43696	raw := NoMethod(*s)
43697	return gensupport.MarshalJSON(raw, s.ForceSendFields, s.NullFields)
43698}
43699
43700// method id "compute.acceleratorTypes.aggregatedList":
43701
43702type AcceleratorTypesAggregatedListCall struct {
43703	s            *Service
43704	project      string
43705	urlParams_   gensupport.URLParams
43706	ifNoneMatch_ string
43707	ctx_         context.Context
43708	header_      http.Header
43709}
43710
43711// AggregatedList: Retrieves an aggregated list of accelerator types.
43712func (r *AcceleratorTypesService) AggregatedList(project string) *AcceleratorTypesAggregatedListCall {
43713	c := &AcceleratorTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43714	c.project = project
43715	return c
43716}
43717
43718// Filter sets the optional parameter "filter": A filter expression that
43719// filters resources listed in the response. The expression must specify
43720// the field name, a comparison operator, and the value that you want to
43721// use for filtering. The value must be a string, a number, or a
43722// boolean. The comparison operator must be either =, !=, >, or <.
43723//
43724// For example, if you are filtering Compute Engine instances, you can
43725// exclude instances named example-instance by specifying name !=
43726// example-instance.
43727//
43728// You can also filter nested fields. For example, you could specify
43729// scheduling.automaticRestart = false to include instances only if they
43730// are not scheduled for automatic restarts. You can use filtering on
43731// nested fields to filter based on resource labels.
43732//
43733// To filter on multiple expressions, provide each separate expression
43734// within parentheses. For example, (scheduling.automaticRestart = true)
43735// (cpuPlatform = "Intel Skylake"). By default, each expression is an
43736// AND expression. However, you can include AND and OR expressions
43737// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
43738// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
43739// true).
43740func (c *AcceleratorTypesAggregatedListCall) Filter(filter string) *AcceleratorTypesAggregatedListCall {
43741	c.urlParams_.Set("filter", filter)
43742	return c
43743}
43744
43745// IncludeAllScopes sets the optional parameter "includeAllScopes":
43746// Indicates whether every visible scope for each scope type (zone,
43747// region, global) should be included in the response. For new resource
43748// types added after this field, the flag has no effect as new resource
43749// types will always include every visible scope for each scope type in
43750// response. For resource types which predate this field, if this flag
43751// is omitted or false, only scopes of the scope types where the
43752// resource type is expected to be found will be included.
43753func (c *AcceleratorTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AcceleratorTypesAggregatedListCall {
43754	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
43755	return c
43756}
43757
43758// MaxResults sets the optional parameter "maxResults": The maximum
43759// number of results per page that should be returned. If the number of
43760// available results is larger than maxResults, Compute Engine returns a
43761// nextPageToken that can be used to get the next page of results in
43762// subsequent list requests. Acceptable values are 0 to 500, inclusive.
43763// (Default: 500)
43764func (c *AcceleratorTypesAggregatedListCall) MaxResults(maxResults int64) *AcceleratorTypesAggregatedListCall {
43765	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
43766	return c
43767}
43768
43769// OrderBy sets the optional parameter "orderBy": Sorts list results by
43770// a certain order. By default, results are returned in alphanumerical
43771// order based on the resource name.
43772//
43773// You can also sort results in descending order based on the creation
43774// timestamp using orderBy="creationTimestamp desc". This sorts results
43775// based on the creationTimestamp field in reverse chronological order
43776// (newest result first). Use this to sort resources like operations so
43777// that the newest operation is returned first.
43778//
43779// Currently, only sorting by name or creationTimestamp desc is
43780// supported.
43781func (c *AcceleratorTypesAggregatedListCall) OrderBy(orderBy string) *AcceleratorTypesAggregatedListCall {
43782	c.urlParams_.Set("orderBy", orderBy)
43783	return c
43784}
43785
43786// PageToken sets the optional parameter "pageToken": Specifies a page
43787// token to use. Set pageToken to the nextPageToken returned by a
43788// previous list request to get the next page of results.
43789func (c *AcceleratorTypesAggregatedListCall) PageToken(pageToken string) *AcceleratorTypesAggregatedListCall {
43790	c.urlParams_.Set("pageToken", pageToken)
43791	return c
43792}
43793
43794// Fields allows partial responses to be retrieved. See
43795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43796// for more information.
43797func (c *AcceleratorTypesAggregatedListCall) Fields(s ...googleapi.Field) *AcceleratorTypesAggregatedListCall {
43798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43799	return c
43800}
43801
43802// IfNoneMatch sets the optional parameter which makes the operation
43803// fail if the object's ETag matches the given value. This is useful for
43804// getting updates only after the object has changed since the last
43805// request. Use googleapi.IsNotModified to check whether the response
43806// error from Do is the result of In-None-Match.
43807func (c *AcceleratorTypesAggregatedListCall) IfNoneMatch(entityTag string) *AcceleratorTypesAggregatedListCall {
43808	c.ifNoneMatch_ = entityTag
43809	return c
43810}
43811
43812// Context sets the context to be used in this call's Do method. Any
43813// pending HTTP request will be aborted if the provided context is
43814// canceled.
43815func (c *AcceleratorTypesAggregatedListCall) Context(ctx context.Context) *AcceleratorTypesAggregatedListCall {
43816	c.ctx_ = ctx
43817	return c
43818}
43819
43820// Header returns an http.Header that can be modified by the caller to
43821// add HTTP headers to the request.
43822func (c *AcceleratorTypesAggregatedListCall) Header() http.Header {
43823	if c.header_ == nil {
43824		c.header_ = make(http.Header)
43825	}
43826	return c.header_
43827}
43828
43829func (c *AcceleratorTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
43830	reqHeaders := make(http.Header)
43831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
43832	for k, v := range c.header_ {
43833		reqHeaders[k] = v
43834	}
43835	reqHeaders.Set("User-Agent", c.s.userAgent())
43836	if c.ifNoneMatch_ != "" {
43837		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
43838	}
43839	var body io.Reader = nil
43840	c.urlParams_.Set("alt", alt)
43841	c.urlParams_.Set("prettyPrint", "false")
43842	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/acceleratorTypes")
43843	urls += "?" + c.urlParams_.Encode()
43844	req, err := http.NewRequest("GET", urls, body)
43845	if err != nil {
43846		return nil, err
43847	}
43848	req.Header = reqHeaders
43849	googleapi.Expand(req.URL, map[string]string{
43850		"project": c.project,
43851	})
43852	return gensupport.SendRequest(c.ctx_, c.s.client, req)
43853}
43854
43855// Do executes the "compute.acceleratorTypes.aggregatedList" call.
43856// Exactly one of *AcceleratorTypeAggregatedList or error will be
43857// non-nil. Any non-2xx status code is an error. Response headers are in
43858// either *AcceleratorTypeAggregatedList.ServerResponse.Header or (if a
43859// response was returned at all) in error.(*googleapi.Error).Header. Use
43860// googleapi.IsNotModified to check whether the returned error was
43861// because http.StatusNotModified was returned.
43862func (c *AcceleratorTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeAggregatedList, error) {
43863	gensupport.SetOptions(c.urlParams_, opts...)
43864	res, err := c.doRequest("json")
43865	if res != nil && res.StatusCode == http.StatusNotModified {
43866		if res.Body != nil {
43867			res.Body.Close()
43868		}
43869		return nil, &googleapi.Error{
43870			Code:   res.StatusCode,
43871			Header: res.Header,
43872		}
43873	}
43874	if err != nil {
43875		return nil, err
43876	}
43877	defer googleapi.CloseBody(res)
43878	if err := googleapi.CheckResponse(res); err != nil {
43879		return nil, err
43880	}
43881	ret := &AcceleratorTypeAggregatedList{
43882		ServerResponse: googleapi.ServerResponse{
43883			Header:         res.Header,
43884			HTTPStatusCode: res.StatusCode,
43885		},
43886	}
43887	target := &ret
43888	if err := gensupport.DecodeResponse(target, res); err != nil {
43889		return nil, err
43890	}
43891	return ret, nil
43892	// {
43893	//   "description": "Retrieves an aggregated list of accelerator types.",
43894	//   "httpMethod": "GET",
43895	//   "id": "compute.acceleratorTypes.aggregatedList",
43896	//   "parameterOrder": [
43897	//     "project"
43898	//   ],
43899	//   "parameters": {
43900	//     "filter": {
43901	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
43902	//       "location": "query",
43903	//       "type": "string"
43904	//     },
43905	//     "includeAllScopes": {
43906	//       "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.",
43907	//       "location": "query",
43908	//       "type": "boolean"
43909	//     },
43910	//     "maxResults": {
43911	//       "default": "500",
43912	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
43913	//       "format": "uint32",
43914	//       "location": "query",
43915	//       "minimum": "0",
43916	//       "type": "integer"
43917	//     },
43918	//     "orderBy": {
43919	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
43920	//       "location": "query",
43921	//       "type": "string"
43922	//     },
43923	//     "pageToken": {
43924	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
43925	//       "location": "query",
43926	//       "type": "string"
43927	//     },
43928	//     "project": {
43929	//       "description": "Project ID for this request.",
43930	//       "location": "path",
43931	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
43932	//       "required": true,
43933	//       "type": "string"
43934	//     }
43935	//   },
43936	//   "path": "{project}/aggregated/acceleratorTypes",
43937	//   "response": {
43938	//     "$ref": "AcceleratorTypeAggregatedList"
43939	//   },
43940	//   "scopes": [
43941	//     "https://www.googleapis.com/auth/cloud-platform",
43942	//     "https://www.googleapis.com/auth/compute",
43943	//     "https://www.googleapis.com/auth/compute.readonly"
43944	//   ]
43945	// }
43946
43947}
43948
43949// Pages invokes f for each page of results.
43950// A non-nil error returned from f will halt the iteration.
43951// The provided context supersedes any context provided to the Context method.
43952func (c *AcceleratorTypesAggregatedListCall) Pages(ctx context.Context, f func(*AcceleratorTypeAggregatedList) error) error {
43953	c.ctx_ = ctx
43954	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
43955	for {
43956		x, err := c.Do()
43957		if err != nil {
43958			return err
43959		}
43960		if err := f(x); err != nil {
43961			return err
43962		}
43963		if x.NextPageToken == "" {
43964			return nil
43965		}
43966		c.PageToken(x.NextPageToken)
43967	}
43968}
43969
43970// method id "compute.acceleratorTypes.get":
43971
43972type AcceleratorTypesGetCall struct {
43973	s               *Service
43974	project         string
43975	zone            string
43976	acceleratorType string
43977	urlParams_      gensupport.URLParams
43978	ifNoneMatch_    string
43979	ctx_            context.Context
43980	header_         http.Header
43981}
43982
43983// Get: Returns the specified accelerator type.
43984func (r *AcceleratorTypesService) Get(project string, zone string, acceleratorType string) *AcceleratorTypesGetCall {
43985	c := &AcceleratorTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
43986	c.project = project
43987	c.zone = zone
43988	c.acceleratorType = acceleratorType
43989	return c
43990}
43991
43992// Fields allows partial responses to be retrieved. See
43993// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
43994// for more information.
43995func (c *AcceleratorTypesGetCall) Fields(s ...googleapi.Field) *AcceleratorTypesGetCall {
43996	c.urlParams_.Set("fields", googleapi.CombineFields(s))
43997	return c
43998}
43999
44000// IfNoneMatch sets the optional parameter which makes the operation
44001// fail if the object's ETag matches the given value. This is useful for
44002// getting updates only after the object has changed since the last
44003// request. Use googleapi.IsNotModified to check whether the response
44004// error from Do is the result of In-None-Match.
44005func (c *AcceleratorTypesGetCall) IfNoneMatch(entityTag string) *AcceleratorTypesGetCall {
44006	c.ifNoneMatch_ = entityTag
44007	return c
44008}
44009
44010// Context sets the context to be used in this call's Do method. Any
44011// pending HTTP request will be aborted if the provided context is
44012// canceled.
44013func (c *AcceleratorTypesGetCall) Context(ctx context.Context) *AcceleratorTypesGetCall {
44014	c.ctx_ = ctx
44015	return c
44016}
44017
44018// Header returns an http.Header that can be modified by the caller to
44019// add HTTP headers to the request.
44020func (c *AcceleratorTypesGetCall) Header() http.Header {
44021	if c.header_ == nil {
44022		c.header_ = make(http.Header)
44023	}
44024	return c.header_
44025}
44026
44027func (c *AcceleratorTypesGetCall) doRequest(alt string) (*http.Response, error) {
44028	reqHeaders := make(http.Header)
44029	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
44030	for k, v := range c.header_ {
44031		reqHeaders[k] = v
44032	}
44033	reqHeaders.Set("User-Agent", c.s.userAgent())
44034	if c.ifNoneMatch_ != "" {
44035		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44036	}
44037	var body io.Reader = nil
44038	c.urlParams_.Set("alt", alt)
44039	c.urlParams_.Set("prettyPrint", "false")
44040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}")
44041	urls += "?" + c.urlParams_.Encode()
44042	req, err := http.NewRequest("GET", urls, body)
44043	if err != nil {
44044		return nil, err
44045	}
44046	req.Header = reqHeaders
44047	googleapi.Expand(req.URL, map[string]string{
44048		"project":         c.project,
44049		"zone":            c.zone,
44050		"acceleratorType": c.acceleratorType,
44051	})
44052	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44053}
44054
44055// Do executes the "compute.acceleratorTypes.get" call.
44056// Exactly one of *AcceleratorType or error will be non-nil. Any non-2xx
44057// status code is an error. Response headers are in either
44058// *AcceleratorType.ServerResponse.Header or (if a response was returned
44059// at all) in error.(*googleapi.Error).Header. Use
44060// googleapi.IsNotModified to check whether the returned error was
44061// because http.StatusNotModified was returned.
44062func (c *AcceleratorTypesGetCall) Do(opts ...googleapi.CallOption) (*AcceleratorType, error) {
44063	gensupport.SetOptions(c.urlParams_, opts...)
44064	res, err := c.doRequest("json")
44065	if res != nil && res.StatusCode == http.StatusNotModified {
44066		if res.Body != nil {
44067			res.Body.Close()
44068		}
44069		return nil, &googleapi.Error{
44070			Code:   res.StatusCode,
44071			Header: res.Header,
44072		}
44073	}
44074	if err != nil {
44075		return nil, err
44076	}
44077	defer googleapi.CloseBody(res)
44078	if err := googleapi.CheckResponse(res); err != nil {
44079		return nil, err
44080	}
44081	ret := &AcceleratorType{
44082		ServerResponse: googleapi.ServerResponse{
44083			Header:         res.Header,
44084			HTTPStatusCode: res.StatusCode,
44085		},
44086	}
44087	target := &ret
44088	if err := gensupport.DecodeResponse(target, res); err != nil {
44089		return nil, err
44090	}
44091	return ret, nil
44092	// {
44093	//   "description": "Returns the specified accelerator type.",
44094	//   "httpMethod": "GET",
44095	//   "id": "compute.acceleratorTypes.get",
44096	//   "parameterOrder": [
44097	//     "project",
44098	//     "zone",
44099	//     "acceleratorType"
44100	//   ],
44101	//   "parameters": {
44102	//     "acceleratorType": {
44103	//       "description": "Name of the accelerator type to return.",
44104	//       "location": "path",
44105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
44106	//       "required": true,
44107	//       "type": "string"
44108	//     },
44109	//     "project": {
44110	//       "description": "Project ID for this request.",
44111	//       "location": "path",
44112	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44113	//       "required": true,
44114	//       "type": "string"
44115	//     },
44116	//     "zone": {
44117	//       "description": "The name of the zone for this request.",
44118	//       "location": "path",
44119	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
44120	//       "required": true,
44121	//       "type": "string"
44122	//     }
44123	//   },
44124	//   "path": "{project}/zones/{zone}/acceleratorTypes/{acceleratorType}",
44125	//   "response": {
44126	//     "$ref": "AcceleratorType"
44127	//   },
44128	//   "scopes": [
44129	//     "https://www.googleapis.com/auth/cloud-platform",
44130	//     "https://www.googleapis.com/auth/compute",
44131	//     "https://www.googleapis.com/auth/compute.readonly"
44132	//   ]
44133	// }
44134
44135}
44136
44137// method id "compute.acceleratorTypes.list":
44138
44139type AcceleratorTypesListCall struct {
44140	s            *Service
44141	project      string
44142	zone         string
44143	urlParams_   gensupport.URLParams
44144	ifNoneMatch_ string
44145	ctx_         context.Context
44146	header_      http.Header
44147}
44148
44149// List: Retrieves a list of accelerator types available to the
44150// specified project.
44151func (r *AcceleratorTypesService) List(project string, zone string) *AcceleratorTypesListCall {
44152	c := &AcceleratorTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44153	c.project = project
44154	c.zone = zone
44155	return c
44156}
44157
44158// Filter sets the optional parameter "filter": A filter expression that
44159// filters resources listed in the response. The expression must specify
44160// the field name, a comparison operator, and the value that you want to
44161// use for filtering. The value must be a string, a number, or a
44162// boolean. The comparison operator must be either =, !=, >, or <.
44163//
44164// For example, if you are filtering Compute Engine instances, you can
44165// exclude instances named example-instance by specifying name !=
44166// example-instance.
44167//
44168// You can also filter nested fields. For example, you could specify
44169// scheduling.automaticRestart = false to include instances only if they
44170// are not scheduled for automatic restarts. You can use filtering on
44171// nested fields to filter based on resource labels.
44172//
44173// To filter on multiple expressions, provide each separate expression
44174// within parentheses. For example, (scheduling.automaticRestart = true)
44175// (cpuPlatform = "Intel Skylake"). By default, each expression is an
44176// AND expression. However, you can include AND and OR expressions
44177// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
44178// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
44179// true).
44180func (c *AcceleratorTypesListCall) Filter(filter string) *AcceleratorTypesListCall {
44181	c.urlParams_.Set("filter", filter)
44182	return c
44183}
44184
44185// MaxResults sets the optional parameter "maxResults": The maximum
44186// number of results per page that should be returned. If the number of
44187// available results is larger than maxResults, Compute Engine returns a
44188// nextPageToken that can be used to get the next page of results in
44189// subsequent list requests. Acceptable values are 0 to 500, inclusive.
44190// (Default: 500)
44191func (c *AcceleratorTypesListCall) MaxResults(maxResults int64) *AcceleratorTypesListCall {
44192	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
44193	return c
44194}
44195
44196// OrderBy sets the optional parameter "orderBy": Sorts list results by
44197// a certain order. By default, results are returned in alphanumerical
44198// order based on the resource name.
44199//
44200// You can also sort results in descending order based on the creation
44201// timestamp using orderBy="creationTimestamp desc". This sorts results
44202// based on the creationTimestamp field in reverse chronological order
44203// (newest result first). Use this to sort resources like operations so
44204// that the newest operation is returned first.
44205//
44206// Currently, only sorting by name or creationTimestamp desc is
44207// supported.
44208func (c *AcceleratorTypesListCall) OrderBy(orderBy string) *AcceleratorTypesListCall {
44209	c.urlParams_.Set("orderBy", orderBy)
44210	return c
44211}
44212
44213// PageToken sets the optional parameter "pageToken": Specifies a page
44214// token to use. Set pageToken to the nextPageToken returned by a
44215// previous list request to get the next page of results.
44216func (c *AcceleratorTypesListCall) PageToken(pageToken string) *AcceleratorTypesListCall {
44217	c.urlParams_.Set("pageToken", pageToken)
44218	return c
44219}
44220
44221// Fields allows partial responses to be retrieved. See
44222// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44223// for more information.
44224func (c *AcceleratorTypesListCall) Fields(s ...googleapi.Field) *AcceleratorTypesListCall {
44225	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44226	return c
44227}
44228
44229// IfNoneMatch sets the optional parameter which makes the operation
44230// fail if the object's ETag matches the given value. This is useful for
44231// getting updates only after the object has changed since the last
44232// request. Use googleapi.IsNotModified to check whether the response
44233// error from Do is the result of In-None-Match.
44234func (c *AcceleratorTypesListCall) IfNoneMatch(entityTag string) *AcceleratorTypesListCall {
44235	c.ifNoneMatch_ = entityTag
44236	return c
44237}
44238
44239// Context sets the context to be used in this call's Do method. Any
44240// pending HTTP request will be aborted if the provided context is
44241// canceled.
44242func (c *AcceleratorTypesListCall) Context(ctx context.Context) *AcceleratorTypesListCall {
44243	c.ctx_ = ctx
44244	return c
44245}
44246
44247// Header returns an http.Header that can be modified by the caller to
44248// add HTTP headers to the request.
44249func (c *AcceleratorTypesListCall) Header() http.Header {
44250	if c.header_ == nil {
44251		c.header_ = make(http.Header)
44252	}
44253	return c.header_
44254}
44255
44256func (c *AcceleratorTypesListCall) doRequest(alt string) (*http.Response, error) {
44257	reqHeaders := make(http.Header)
44258	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
44259	for k, v := range c.header_ {
44260		reqHeaders[k] = v
44261	}
44262	reqHeaders.Set("User-Agent", c.s.userAgent())
44263	if c.ifNoneMatch_ != "" {
44264		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44265	}
44266	var body io.Reader = nil
44267	c.urlParams_.Set("alt", alt)
44268	c.urlParams_.Set("prettyPrint", "false")
44269	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/acceleratorTypes")
44270	urls += "?" + c.urlParams_.Encode()
44271	req, err := http.NewRequest("GET", urls, body)
44272	if err != nil {
44273		return nil, err
44274	}
44275	req.Header = reqHeaders
44276	googleapi.Expand(req.URL, map[string]string{
44277		"project": c.project,
44278		"zone":    c.zone,
44279	})
44280	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44281}
44282
44283// Do executes the "compute.acceleratorTypes.list" call.
44284// Exactly one of *AcceleratorTypeList or error will be non-nil. Any
44285// non-2xx status code is an error. Response headers are in either
44286// *AcceleratorTypeList.ServerResponse.Header or (if a response was
44287// returned at all) in error.(*googleapi.Error).Header. Use
44288// googleapi.IsNotModified to check whether the returned error was
44289// because http.StatusNotModified was returned.
44290func (c *AcceleratorTypesListCall) Do(opts ...googleapi.CallOption) (*AcceleratorTypeList, error) {
44291	gensupport.SetOptions(c.urlParams_, opts...)
44292	res, err := c.doRequest("json")
44293	if res != nil && res.StatusCode == http.StatusNotModified {
44294		if res.Body != nil {
44295			res.Body.Close()
44296		}
44297		return nil, &googleapi.Error{
44298			Code:   res.StatusCode,
44299			Header: res.Header,
44300		}
44301	}
44302	if err != nil {
44303		return nil, err
44304	}
44305	defer googleapi.CloseBody(res)
44306	if err := googleapi.CheckResponse(res); err != nil {
44307		return nil, err
44308	}
44309	ret := &AcceleratorTypeList{
44310		ServerResponse: googleapi.ServerResponse{
44311			Header:         res.Header,
44312			HTTPStatusCode: res.StatusCode,
44313		},
44314	}
44315	target := &ret
44316	if err := gensupport.DecodeResponse(target, res); err != nil {
44317		return nil, err
44318	}
44319	return ret, nil
44320	// {
44321	//   "description": "Retrieves a list of accelerator types available to the specified project.",
44322	//   "httpMethod": "GET",
44323	//   "id": "compute.acceleratorTypes.list",
44324	//   "parameterOrder": [
44325	//     "project",
44326	//     "zone"
44327	//   ],
44328	//   "parameters": {
44329	//     "filter": {
44330	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
44331	//       "location": "query",
44332	//       "type": "string"
44333	//     },
44334	//     "maxResults": {
44335	//       "default": "500",
44336	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
44337	//       "format": "uint32",
44338	//       "location": "query",
44339	//       "minimum": "0",
44340	//       "type": "integer"
44341	//     },
44342	//     "orderBy": {
44343	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
44344	//       "location": "query",
44345	//       "type": "string"
44346	//     },
44347	//     "pageToken": {
44348	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
44349	//       "location": "query",
44350	//       "type": "string"
44351	//     },
44352	//     "project": {
44353	//       "description": "Project ID for this request.",
44354	//       "location": "path",
44355	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44356	//       "required": true,
44357	//       "type": "string"
44358	//     },
44359	//     "zone": {
44360	//       "description": "The name of the zone for this request.",
44361	//       "location": "path",
44362	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
44363	//       "required": true,
44364	//       "type": "string"
44365	//     }
44366	//   },
44367	//   "path": "{project}/zones/{zone}/acceleratorTypes",
44368	//   "response": {
44369	//     "$ref": "AcceleratorTypeList"
44370	//   },
44371	//   "scopes": [
44372	//     "https://www.googleapis.com/auth/cloud-platform",
44373	//     "https://www.googleapis.com/auth/compute",
44374	//     "https://www.googleapis.com/auth/compute.readonly"
44375	//   ]
44376	// }
44377
44378}
44379
44380// Pages invokes f for each page of results.
44381// A non-nil error returned from f will halt the iteration.
44382// The provided context supersedes any context provided to the Context method.
44383func (c *AcceleratorTypesListCall) Pages(ctx context.Context, f func(*AcceleratorTypeList) error) error {
44384	c.ctx_ = ctx
44385	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44386	for {
44387		x, err := c.Do()
44388		if err != nil {
44389			return err
44390		}
44391		if err := f(x); err != nil {
44392			return err
44393		}
44394		if x.NextPageToken == "" {
44395			return nil
44396		}
44397		c.PageToken(x.NextPageToken)
44398	}
44399}
44400
44401// method id "compute.addresses.aggregatedList":
44402
44403type AddressesAggregatedListCall struct {
44404	s            *Service
44405	project      string
44406	urlParams_   gensupport.URLParams
44407	ifNoneMatch_ string
44408	ctx_         context.Context
44409	header_      http.Header
44410}
44411
44412// AggregatedList: Retrieves an aggregated list of addresses.
44413// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/aggregatedList
44414func (r *AddressesService) AggregatedList(project string) *AddressesAggregatedListCall {
44415	c := &AddressesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44416	c.project = project
44417	return c
44418}
44419
44420// Filter sets the optional parameter "filter": A filter expression that
44421// filters resources listed in the response. The expression must specify
44422// the field name, a comparison operator, and the value that you want to
44423// use for filtering. The value must be a string, a number, or a
44424// boolean. The comparison operator must be either =, !=, >, or <.
44425//
44426// For example, if you are filtering Compute Engine instances, you can
44427// exclude instances named example-instance by specifying name !=
44428// example-instance.
44429//
44430// You can also filter nested fields. For example, you could specify
44431// scheduling.automaticRestart = false to include instances only if they
44432// are not scheduled for automatic restarts. You can use filtering on
44433// nested fields to filter based on resource labels.
44434//
44435// To filter on multiple expressions, provide each separate expression
44436// within parentheses. For example, (scheduling.automaticRestart = true)
44437// (cpuPlatform = "Intel Skylake"). By default, each expression is an
44438// AND expression. However, you can include AND and OR expressions
44439// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
44440// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
44441// true).
44442func (c *AddressesAggregatedListCall) Filter(filter string) *AddressesAggregatedListCall {
44443	c.urlParams_.Set("filter", filter)
44444	return c
44445}
44446
44447// IncludeAllScopes sets the optional parameter "includeAllScopes":
44448// Indicates whether every visible scope for each scope type (zone,
44449// region, global) should be included in the response. For new resource
44450// types added after this field, the flag has no effect as new resource
44451// types will always include every visible scope for each scope type in
44452// response. For resource types which predate this field, if this flag
44453// is omitted or false, only scopes of the scope types where the
44454// resource type is expected to be found will be included.
44455func (c *AddressesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AddressesAggregatedListCall {
44456	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
44457	return c
44458}
44459
44460// MaxResults sets the optional parameter "maxResults": The maximum
44461// number of results per page that should be returned. If the number of
44462// available results is larger than maxResults, Compute Engine returns a
44463// nextPageToken that can be used to get the next page of results in
44464// subsequent list requests. Acceptable values are 0 to 500, inclusive.
44465// (Default: 500)
44466func (c *AddressesAggregatedListCall) MaxResults(maxResults int64) *AddressesAggregatedListCall {
44467	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
44468	return c
44469}
44470
44471// OrderBy sets the optional parameter "orderBy": Sorts list results by
44472// a certain order. By default, results are returned in alphanumerical
44473// order based on the resource name.
44474//
44475// You can also sort results in descending order based on the creation
44476// timestamp using orderBy="creationTimestamp desc". This sorts results
44477// based on the creationTimestamp field in reverse chronological order
44478// (newest result first). Use this to sort resources like operations so
44479// that the newest operation is returned first.
44480//
44481// Currently, only sorting by name or creationTimestamp desc is
44482// supported.
44483func (c *AddressesAggregatedListCall) OrderBy(orderBy string) *AddressesAggregatedListCall {
44484	c.urlParams_.Set("orderBy", orderBy)
44485	return c
44486}
44487
44488// PageToken sets the optional parameter "pageToken": Specifies a page
44489// token to use. Set pageToken to the nextPageToken returned by a
44490// previous list request to get the next page of results.
44491func (c *AddressesAggregatedListCall) PageToken(pageToken string) *AddressesAggregatedListCall {
44492	c.urlParams_.Set("pageToken", pageToken)
44493	return c
44494}
44495
44496// Fields allows partial responses to be retrieved. See
44497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44498// for more information.
44499func (c *AddressesAggregatedListCall) Fields(s ...googleapi.Field) *AddressesAggregatedListCall {
44500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44501	return c
44502}
44503
44504// IfNoneMatch sets the optional parameter which makes the operation
44505// fail if the object's ETag matches the given value. This is useful for
44506// getting updates only after the object has changed since the last
44507// request. Use googleapi.IsNotModified to check whether the response
44508// error from Do is the result of In-None-Match.
44509func (c *AddressesAggregatedListCall) IfNoneMatch(entityTag string) *AddressesAggregatedListCall {
44510	c.ifNoneMatch_ = entityTag
44511	return c
44512}
44513
44514// Context sets the context to be used in this call's Do method. Any
44515// pending HTTP request will be aborted if the provided context is
44516// canceled.
44517func (c *AddressesAggregatedListCall) Context(ctx context.Context) *AddressesAggregatedListCall {
44518	c.ctx_ = ctx
44519	return c
44520}
44521
44522// Header returns an http.Header that can be modified by the caller to
44523// add HTTP headers to the request.
44524func (c *AddressesAggregatedListCall) Header() http.Header {
44525	if c.header_ == nil {
44526		c.header_ = make(http.Header)
44527	}
44528	return c.header_
44529}
44530
44531func (c *AddressesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
44532	reqHeaders := make(http.Header)
44533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
44534	for k, v := range c.header_ {
44535		reqHeaders[k] = v
44536	}
44537	reqHeaders.Set("User-Agent", c.s.userAgent())
44538	if c.ifNoneMatch_ != "" {
44539		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44540	}
44541	var body io.Reader = nil
44542	c.urlParams_.Set("alt", alt)
44543	c.urlParams_.Set("prettyPrint", "false")
44544	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/addresses")
44545	urls += "?" + c.urlParams_.Encode()
44546	req, err := http.NewRequest("GET", urls, body)
44547	if err != nil {
44548		return nil, err
44549	}
44550	req.Header = reqHeaders
44551	googleapi.Expand(req.URL, map[string]string{
44552		"project": c.project,
44553	})
44554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44555}
44556
44557// Do executes the "compute.addresses.aggregatedList" call.
44558// Exactly one of *AddressAggregatedList or error will be non-nil. Any
44559// non-2xx status code is an error. Response headers are in either
44560// *AddressAggregatedList.ServerResponse.Header or (if a response was
44561// returned at all) in error.(*googleapi.Error).Header. Use
44562// googleapi.IsNotModified to check whether the returned error was
44563// because http.StatusNotModified was returned.
44564func (c *AddressesAggregatedListCall) Do(opts ...googleapi.CallOption) (*AddressAggregatedList, error) {
44565	gensupport.SetOptions(c.urlParams_, opts...)
44566	res, err := c.doRequest("json")
44567	if res != nil && res.StatusCode == http.StatusNotModified {
44568		if res.Body != nil {
44569			res.Body.Close()
44570		}
44571		return nil, &googleapi.Error{
44572			Code:   res.StatusCode,
44573			Header: res.Header,
44574		}
44575	}
44576	if err != nil {
44577		return nil, err
44578	}
44579	defer googleapi.CloseBody(res)
44580	if err := googleapi.CheckResponse(res); err != nil {
44581		return nil, err
44582	}
44583	ret := &AddressAggregatedList{
44584		ServerResponse: googleapi.ServerResponse{
44585			Header:         res.Header,
44586			HTTPStatusCode: res.StatusCode,
44587		},
44588	}
44589	target := &ret
44590	if err := gensupport.DecodeResponse(target, res); err != nil {
44591		return nil, err
44592	}
44593	return ret, nil
44594	// {
44595	//   "description": "Retrieves an aggregated list of addresses.",
44596	//   "httpMethod": "GET",
44597	//   "id": "compute.addresses.aggregatedList",
44598	//   "parameterOrder": [
44599	//     "project"
44600	//   ],
44601	//   "parameters": {
44602	//     "filter": {
44603	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
44604	//       "location": "query",
44605	//       "type": "string"
44606	//     },
44607	//     "includeAllScopes": {
44608	//       "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.",
44609	//       "location": "query",
44610	//       "type": "boolean"
44611	//     },
44612	//     "maxResults": {
44613	//       "default": "500",
44614	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
44615	//       "format": "uint32",
44616	//       "location": "query",
44617	//       "minimum": "0",
44618	//       "type": "integer"
44619	//     },
44620	//     "orderBy": {
44621	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
44622	//       "location": "query",
44623	//       "type": "string"
44624	//     },
44625	//     "pageToken": {
44626	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
44627	//       "location": "query",
44628	//       "type": "string"
44629	//     },
44630	//     "project": {
44631	//       "description": "Project ID for this request.",
44632	//       "location": "path",
44633	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44634	//       "required": true,
44635	//       "type": "string"
44636	//     }
44637	//   },
44638	//   "path": "{project}/aggregated/addresses",
44639	//   "response": {
44640	//     "$ref": "AddressAggregatedList"
44641	//   },
44642	//   "scopes": [
44643	//     "https://www.googleapis.com/auth/cloud-platform",
44644	//     "https://www.googleapis.com/auth/compute",
44645	//     "https://www.googleapis.com/auth/compute.readonly"
44646	//   ]
44647	// }
44648
44649}
44650
44651// Pages invokes f for each page of results.
44652// A non-nil error returned from f will halt the iteration.
44653// The provided context supersedes any context provided to the Context method.
44654func (c *AddressesAggregatedListCall) Pages(ctx context.Context, f func(*AddressAggregatedList) error) error {
44655	c.ctx_ = ctx
44656	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
44657	for {
44658		x, err := c.Do()
44659		if err != nil {
44660			return err
44661		}
44662		if err := f(x); err != nil {
44663			return err
44664		}
44665		if x.NextPageToken == "" {
44666			return nil
44667		}
44668		c.PageToken(x.NextPageToken)
44669	}
44670}
44671
44672// method id "compute.addresses.delete":
44673
44674type AddressesDeleteCall struct {
44675	s          *Service
44676	project    string
44677	region     string
44678	address    string
44679	urlParams_ gensupport.URLParams
44680	ctx_       context.Context
44681	header_    http.Header
44682}
44683
44684// Delete: Deletes the specified address resource.
44685// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/delete
44686func (r *AddressesService) Delete(project string, region string, address string) *AddressesDeleteCall {
44687	c := &AddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44688	c.project = project
44689	c.region = region
44690	c.address = address
44691	return c
44692}
44693
44694// RequestId sets the optional parameter "requestId": An optional
44695// request ID to identify requests. Specify a unique request ID so that
44696// if you must retry your request, the server will know to ignore the
44697// request if it has already been completed.
44698//
44699// For example, consider a situation where you make an initial request
44700// and the request times out. If you make the request again with the
44701// same request ID, the server can check if original operation with the
44702// same request ID was received, and if so, will ignore the second
44703// request. This prevents clients from accidentally creating duplicate
44704// commitments.
44705//
44706// The request ID must be a valid UUID with the exception that zero UUID
44707// is not supported (00000000-0000-0000-0000-000000000000).
44708func (c *AddressesDeleteCall) RequestId(requestId string) *AddressesDeleteCall {
44709	c.urlParams_.Set("requestId", requestId)
44710	return c
44711}
44712
44713// Fields allows partial responses to be retrieved. See
44714// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44715// for more information.
44716func (c *AddressesDeleteCall) Fields(s ...googleapi.Field) *AddressesDeleteCall {
44717	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44718	return c
44719}
44720
44721// Context sets the context to be used in this call's Do method. Any
44722// pending HTTP request will be aborted if the provided context is
44723// canceled.
44724func (c *AddressesDeleteCall) Context(ctx context.Context) *AddressesDeleteCall {
44725	c.ctx_ = ctx
44726	return c
44727}
44728
44729// Header returns an http.Header that can be modified by the caller to
44730// add HTTP headers to the request.
44731func (c *AddressesDeleteCall) Header() http.Header {
44732	if c.header_ == nil {
44733		c.header_ = make(http.Header)
44734	}
44735	return c.header_
44736}
44737
44738func (c *AddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
44739	reqHeaders := make(http.Header)
44740	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
44741	for k, v := range c.header_ {
44742		reqHeaders[k] = v
44743	}
44744	reqHeaders.Set("User-Agent", c.s.userAgent())
44745	var body io.Reader = nil
44746	c.urlParams_.Set("alt", alt)
44747	c.urlParams_.Set("prettyPrint", "false")
44748	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
44749	urls += "?" + c.urlParams_.Encode()
44750	req, err := http.NewRequest("DELETE", urls, body)
44751	if err != nil {
44752		return nil, err
44753	}
44754	req.Header = reqHeaders
44755	googleapi.Expand(req.URL, map[string]string{
44756		"project": c.project,
44757		"region":  c.region,
44758		"address": c.address,
44759	})
44760	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44761}
44762
44763// Do executes the "compute.addresses.delete" call.
44764// Exactly one of *Operation or error will be non-nil. Any non-2xx
44765// status code is an error. Response headers are in either
44766// *Operation.ServerResponse.Header or (if a response was returned at
44767// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
44768// to check whether the returned error was because
44769// http.StatusNotModified was returned.
44770func (c *AddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
44771	gensupport.SetOptions(c.urlParams_, opts...)
44772	res, err := c.doRequest("json")
44773	if res != nil && res.StatusCode == http.StatusNotModified {
44774		if res.Body != nil {
44775			res.Body.Close()
44776		}
44777		return nil, &googleapi.Error{
44778			Code:   res.StatusCode,
44779			Header: res.Header,
44780		}
44781	}
44782	if err != nil {
44783		return nil, err
44784	}
44785	defer googleapi.CloseBody(res)
44786	if err := googleapi.CheckResponse(res); err != nil {
44787		return nil, err
44788	}
44789	ret := &Operation{
44790		ServerResponse: googleapi.ServerResponse{
44791			Header:         res.Header,
44792			HTTPStatusCode: res.StatusCode,
44793		},
44794	}
44795	target := &ret
44796	if err := gensupport.DecodeResponse(target, res); err != nil {
44797		return nil, err
44798	}
44799	return ret, nil
44800	// {
44801	//   "description": "Deletes the specified address resource.",
44802	//   "httpMethod": "DELETE",
44803	//   "id": "compute.addresses.delete",
44804	//   "parameterOrder": [
44805	//     "project",
44806	//     "region",
44807	//     "address"
44808	//   ],
44809	//   "parameters": {
44810	//     "address": {
44811	//       "description": "Name of the address resource to delete.",
44812	//       "location": "path",
44813	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
44814	//       "required": true,
44815	//       "type": "string"
44816	//     },
44817	//     "project": {
44818	//       "description": "Project ID for this request.",
44819	//       "location": "path",
44820	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44821	//       "required": true,
44822	//       "type": "string"
44823	//     },
44824	//     "region": {
44825	//       "description": "Name of the region for this request.",
44826	//       "location": "path",
44827	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
44828	//       "required": true,
44829	//       "type": "string"
44830	//     },
44831	//     "requestId": {
44832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
44833	//       "location": "query",
44834	//       "type": "string"
44835	//     }
44836	//   },
44837	//   "path": "{project}/regions/{region}/addresses/{address}",
44838	//   "response": {
44839	//     "$ref": "Operation"
44840	//   },
44841	//   "scopes": [
44842	//     "https://www.googleapis.com/auth/cloud-platform",
44843	//     "https://www.googleapis.com/auth/compute"
44844	//   ]
44845	// }
44846
44847}
44848
44849// method id "compute.addresses.get":
44850
44851type AddressesGetCall struct {
44852	s            *Service
44853	project      string
44854	region       string
44855	address      string
44856	urlParams_   gensupport.URLParams
44857	ifNoneMatch_ string
44858	ctx_         context.Context
44859	header_      http.Header
44860}
44861
44862// Get: Returns the specified address resource.
44863// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/get
44864func (r *AddressesService) Get(project string, region string, address string) *AddressesGetCall {
44865	c := &AddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
44866	c.project = project
44867	c.region = region
44868	c.address = address
44869	return c
44870}
44871
44872// Fields allows partial responses to be retrieved. See
44873// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
44874// for more information.
44875func (c *AddressesGetCall) Fields(s ...googleapi.Field) *AddressesGetCall {
44876	c.urlParams_.Set("fields", googleapi.CombineFields(s))
44877	return c
44878}
44879
44880// IfNoneMatch sets the optional parameter which makes the operation
44881// fail if the object's ETag matches the given value. This is useful for
44882// getting updates only after the object has changed since the last
44883// request. Use googleapi.IsNotModified to check whether the response
44884// error from Do is the result of In-None-Match.
44885func (c *AddressesGetCall) IfNoneMatch(entityTag string) *AddressesGetCall {
44886	c.ifNoneMatch_ = entityTag
44887	return c
44888}
44889
44890// Context sets the context to be used in this call's Do method. Any
44891// pending HTTP request will be aborted if the provided context is
44892// canceled.
44893func (c *AddressesGetCall) Context(ctx context.Context) *AddressesGetCall {
44894	c.ctx_ = ctx
44895	return c
44896}
44897
44898// Header returns an http.Header that can be modified by the caller to
44899// add HTTP headers to the request.
44900func (c *AddressesGetCall) Header() http.Header {
44901	if c.header_ == nil {
44902		c.header_ = make(http.Header)
44903	}
44904	return c.header_
44905}
44906
44907func (c *AddressesGetCall) doRequest(alt string) (*http.Response, error) {
44908	reqHeaders := make(http.Header)
44909	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
44910	for k, v := range c.header_ {
44911		reqHeaders[k] = v
44912	}
44913	reqHeaders.Set("User-Agent", c.s.userAgent())
44914	if c.ifNoneMatch_ != "" {
44915		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
44916	}
44917	var body io.Reader = nil
44918	c.urlParams_.Set("alt", alt)
44919	c.urlParams_.Set("prettyPrint", "false")
44920	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{address}")
44921	urls += "?" + c.urlParams_.Encode()
44922	req, err := http.NewRequest("GET", urls, body)
44923	if err != nil {
44924		return nil, err
44925	}
44926	req.Header = reqHeaders
44927	googleapi.Expand(req.URL, map[string]string{
44928		"project": c.project,
44929		"region":  c.region,
44930		"address": c.address,
44931	})
44932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
44933}
44934
44935// Do executes the "compute.addresses.get" call.
44936// Exactly one of *Address or error will be non-nil. Any non-2xx status
44937// code is an error. Response headers are in either
44938// *Address.ServerResponse.Header or (if a response was returned at all)
44939// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
44940// check whether the returned error was because http.StatusNotModified
44941// was returned.
44942func (c *AddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
44943	gensupport.SetOptions(c.urlParams_, opts...)
44944	res, err := c.doRequest("json")
44945	if res != nil && res.StatusCode == http.StatusNotModified {
44946		if res.Body != nil {
44947			res.Body.Close()
44948		}
44949		return nil, &googleapi.Error{
44950			Code:   res.StatusCode,
44951			Header: res.Header,
44952		}
44953	}
44954	if err != nil {
44955		return nil, err
44956	}
44957	defer googleapi.CloseBody(res)
44958	if err := googleapi.CheckResponse(res); err != nil {
44959		return nil, err
44960	}
44961	ret := &Address{
44962		ServerResponse: googleapi.ServerResponse{
44963			Header:         res.Header,
44964			HTTPStatusCode: res.StatusCode,
44965		},
44966	}
44967	target := &ret
44968	if err := gensupport.DecodeResponse(target, res); err != nil {
44969		return nil, err
44970	}
44971	return ret, nil
44972	// {
44973	//   "description": "Returns the specified address resource.",
44974	//   "httpMethod": "GET",
44975	//   "id": "compute.addresses.get",
44976	//   "parameterOrder": [
44977	//     "project",
44978	//     "region",
44979	//     "address"
44980	//   ],
44981	//   "parameters": {
44982	//     "address": {
44983	//       "description": "Name of the address resource to return.",
44984	//       "location": "path",
44985	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
44986	//       "required": true,
44987	//       "type": "string"
44988	//     },
44989	//     "project": {
44990	//       "description": "Project ID for this request.",
44991	//       "location": "path",
44992	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
44993	//       "required": true,
44994	//       "type": "string"
44995	//     },
44996	//     "region": {
44997	//       "description": "Name of the region for this request.",
44998	//       "location": "path",
44999	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45000	//       "required": true,
45001	//       "type": "string"
45002	//     }
45003	//   },
45004	//   "path": "{project}/regions/{region}/addresses/{address}",
45005	//   "response": {
45006	//     "$ref": "Address"
45007	//   },
45008	//   "scopes": [
45009	//     "https://www.googleapis.com/auth/cloud-platform",
45010	//     "https://www.googleapis.com/auth/compute",
45011	//     "https://www.googleapis.com/auth/compute.readonly"
45012	//   ]
45013	// }
45014
45015}
45016
45017// method id "compute.addresses.insert":
45018
45019type AddressesInsertCall struct {
45020	s          *Service
45021	project    string
45022	region     string
45023	address    *Address
45024	urlParams_ gensupport.URLParams
45025	ctx_       context.Context
45026	header_    http.Header
45027}
45028
45029// Insert: Creates an address resource in the specified project by using
45030// the data included in the request.
45031// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/insert
45032func (r *AddressesService) Insert(project string, region string, address *Address) *AddressesInsertCall {
45033	c := &AddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45034	c.project = project
45035	c.region = region
45036	c.address = address
45037	return c
45038}
45039
45040// RequestId sets the optional parameter "requestId": An optional
45041// request ID to identify requests. Specify a unique request ID so that
45042// if you must retry your request, the server will know to ignore the
45043// request if it has already been completed.
45044//
45045// For example, consider a situation where you make an initial request
45046// and the request times out. If you make the request again with the
45047// same request ID, the server can check if original operation with the
45048// same request ID was received, and if so, will ignore the second
45049// request. This prevents clients from accidentally creating duplicate
45050// commitments.
45051//
45052// The request ID must be a valid UUID with the exception that zero UUID
45053// is not supported (00000000-0000-0000-0000-000000000000).
45054func (c *AddressesInsertCall) RequestId(requestId string) *AddressesInsertCall {
45055	c.urlParams_.Set("requestId", requestId)
45056	return c
45057}
45058
45059// Fields allows partial responses to be retrieved. See
45060// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45061// for more information.
45062func (c *AddressesInsertCall) Fields(s ...googleapi.Field) *AddressesInsertCall {
45063	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45064	return c
45065}
45066
45067// Context sets the context to be used in this call's Do method. Any
45068// pending HTTP request will be aborted if the provided context is
45069// canceled.
45070func (c *AddressesInsertCall) Context(ctx context.Context) *AddressesInsertCall {
45071	c.ctx_ = ctx
45072	return c
45073}
45074
45075// Header returns an http.Header that can be modified by the caller to
45076// add HTTP headers to the request.
45077func (c *AddressesInsertCall) Header() http.Header {
45078	if c.header_ == nil {
45079		c.header_ = make(http.Header)
45080	}
45081	return c.header_
45082}
45083
45084func (c *AddressesInsertCall) doRequest(alt string) (*http.Response, error) {
45085	reqHeaders := make(http.Header)
45086	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
45087	for k, v := range c.header_ {
45088		reqHeaders[k] = v
45089	}
45090	reqHeaders.Set("User-Agent", c.s.userAgent())
45091	var body io.Reader = nil
45092	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
45093	if err != nil {
45094		return nil, err
45095	}
45096	reqHeaders.Set("Content-Type", "application/json")
45097	c.urlParams_.Set("alt", alt)
45098	c.urlParams_.Set("prettyPrint", "false")
45099	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
45100	urls += "?" + c.urlParams_.Encode()
45101	req, err := http.NewRequest("POST", urls, body)
45102	if err != nil {
45103		return nil, err
45104	}
45105	req.Header = reqHeaders
45106	googleapi.Expand(req.URL, map[string]string{
45107		"project": c.project,
45108		"region":  c.region,
45109	})
45110	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45111}
45112
45113// Do executes the "compute.addresses.insert" call.
45114// Exactly one of *Operation or error will be non-nil. Any non-2xx
45115// status code is an error. Response headers are in either
45116// *Operation.ServerResponse.Header or (if a response was returned at
45117// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45118// to check whether the returned error was because
45119// http.StatusNotModified was returned.
45120func (c *AddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45121	gensupport.SetOptions(c.urlParams_, opts...)
45122	res, err := c.doRequest("json")
45123	if res != nil && res.StatusCode == http.StatusNotModified {
45124		if res.Body != nil {
45125			res.Body.Close()
45126		}
45127		return nil, &googleapi.Error{
45128			Code:   res.StatusCode,
45129			Header: res.Header,
45130		}
45131	}
45132	if err != nil {
45133		return nil, err
45134	}
45135	defer googleapi.CloseBody(res)
45136	if err := googleapi.CheckResponse(res); err != nil {
45137		return nil, err
45138	}
45139	ret := &Operation{
45140		ServerResponse: googleapi.ServerResponse{
45141			Header:         res.Header,
45142			HTTPStatusCode: res.StatusCode,
45143		},
45144	}
45145	target := &ret
45146	if err := gensupport.DecodeResponse(target, res); err != nil {
45147		return nil, err
45148	}
45149	return ret, nil
45150	// {
45151	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
45152	//   "httpMethod": "POST",
45153	//   "id": "compute.addresses.insert",
45154	//   "parameterOrder": [
45155	//     "project",
45156	//     "region"
45157	//   ],
45158	//   "parameters": {
45159	//     "project": {
45160	//       "description": "Project ID for this request.",
45161	//       "location": "path",
45162	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45163	//       "required": true,
45164	//       "type": "string"
45165	//     },
45166	//     "region": {
45167	//       "description": "Name of the region for this request.",
45168	//       "location": "path",
45169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45170	//       "required": true,
45171	//       "type": "string"
45172	//     },
45173	//     "requestId": {
45174	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45175	//       "location": "query",
45176	//       "type": "string"
45177	//     }
45178	//   },
45179	//   "path": "{project}/regions/{region}/addresses",
45180	//   "request": {
45181	//     "$ref": "Address"
45182	//   },
45183	//   "response": {
45184	//     "$ref": "Operation"
45185	//   },
45186	//   "scopes": [
45187	//     "https://www.googleapis.com/auth/cloud-platform",
45188	//     "https://www.googleapis.com/auth/compute"
45189	//   ]
45190	// }
45191
45192}
45193
45194// method id "compute.addresses.list":
45195
45196type AddressesListCall struct {
45197	s            *Service
45198	project      string
45199	region       string
45200	urlParams_   gensupport.URLParams
45201	ifNoneMatch_ string
45202	ctx_         context.Context
45203	header_      http.Header
45204}
45205
45206// List: Retrieves a list of addresses contained within the specified
45207// region.
45208// For details, see https://cloud.google.com/compute/docs/reference/latest/addresses/list
45209func (r *AddressesService) List(project string, region string) *AddressesListCall {
45210	c := &AddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45211	c.project = project
45212	c.region = region
45213	return c
45214}
45215
45216// Filter sets the optional parameter "filter": A filter expression that
45217// filters resources listed in the response. The expression must specify
45218// the field name, a comparison operator, and the value that you want to
45219// use for filtering. The value must be a string, a number, or a
45220// boolean. The comparison operator must be either =, !=, >, or <.
45221//
45222// For example, if you are filtering Compute Engine instances, you can
45223// exclude instances named example-instance by specifying name !=
45224// example-instance.
45225//
45226// You can also filter nested fields. For example, you could specify
45227// scheduling.automaticRestart = false to include instances only if they
45228// are not scheduled for automatic restarts. You can use filtering on
45229// nested fields to filter based on resource labels.
45230//
45231// To filter on multiple expressions, provide each separate expression
45232// within parentheses. For example, (scheduling.automaticRestart = true)
45233// (cpuPlatform = "Intel Skylake"). By default, each expression is an
45234// AND expression. However, you can include AND and OR expressions
45235// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
45236// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
45237// true).
45238func (c *AddressesListCall) Filter(filter string) *AddressesListCall {
45239	c.urlParams_.Set("filter", filter)
45240	return c
45241}
45242
45243// MaxResults sets the optional parameter "maxResults": The maximum
45244// number of results per page that should be returned. If the number of
45245// available results is larger than maxResults, Compute Engine returns a
45246// nextPageToken that can be used to get the next page of results in
45247// subsequent list requests. Acceptable values are 0 to 500, inclusive.
45248// (Default: 500)
45249func (c *AddressesListCall) MaxResults(maxResults int64) *AddressesListCall {
45250	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45251	return c
45252}
45253
45254// OrderBy sets the optional parameter "orderBy": Sorts list results by
45255// a certain order. By default, results are returned in alphanumerical
45256// order based on the resource name.
45257//
45258// You can also sort results in descending order based on the creation
45259// timestamp using orderBy="creationTimestamp desc". This sorts results
45260// based on the creationTimestamp field in reverse chronological order
45261// (newest result first). Use this to sort resources like operations so
45262// that the newest operation is returned first.
45263//
45264// Currently, only sorting by name or creationTimestamp desc is
45265// supported.
45266func (c *AddressesListCall) OrderBy(orderBy string) *AddressesListCall {
45267	c.urlParams_.Set("orderBy", orderBy)
45268	return c
45269}
45270
45271// PageToken sets the optional parameter "pageToken": Specifies a page
45272// token to use. Set pageToken to the nextPageToken returned by a
45273// previous list request to get the next page of results.
45274func (c *AddressesListCall) PageToken(pageToken string) *AddressesListCall {
45275	c.urlParams_.Set("pageToken", pageToken)
45276	return c
45277}
45278
45279// Fields allows partial responses to be retrieved. See
45280// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45281// for more information.
45282func (c *AddressesListCall) Fields(s ...googleapi.Field) *AddressesListCall {
45283	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45284	return c
45285}
45286
45287// IfNoneMatch sets the optional parameter which makes the operation
45288// fail if the object's ETag matches the given value. This is useful for
45289// getting updates only after the object has changed since the last
45290// request. Use googleapi.IsNotModified to check whether the response
45291// error from Do is the result of In-None-Match.
45292func (c *AddressesListCall) IfNoneMatch(entityTag string) *AddressesListCall {
45293	c.ifNoneMatch_ = entityTag
45294	return c
45295}
45296
45297// Context sets the context to be used in this call's Do method. Any
45298// pending HTTP request will be aborted if the provided context is
45299// canceled.
45300func (c *AddressesListCall) Context(ctx context.Context) *AddressesListCall {
45301	c.ctx_ = ctx
45302	return c
45303}
45304
45305// Header returns an http.Header that can be modified by the caller to
45306// add HTTP headers to the request.
45307func (c *AddressesListCall) Header() http.Header {
45308	if c.header_ == nil {
45309		c.header_ = make(http.Header)
45310	}
45311	return c.header_
45312}
45313
45314func (c *AddressesListCall) doRequest(alt string) (*http.Response, error) {
45315	reqHeaders := make(http.Header)
45316	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
45317	for k, v := range c.header_ {
45318		reqHeaders[k] = v
45319	}
45320	reqHeaders.Set("User-Agent", c.s.userAgent())
45321	if c.ifNoneMatch_ != "" {
45322		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45323	}
45324	var body io.Reader = nil
45325	c.urlParams_.Set("alt", alt)
45326	c.urlParams_.Set("prettyPrint", "false")
45327	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses")
45328	urls += "?" + c.urlParams_.Encode()
45329	req, err := http.NewRequest("GET", urls, body)
45330	if err != nil {
45331		return nil, err
45332	}
45333	req.Header = reqHeaders
45334	googleapi.Expand(req.URL, map[string]string{
45335		"project": c.project,
45336		"region":  c.region,
45337	})
45338	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45339}
45340
45341// Do executes the "compute.addresses.list" call.
45342// Exactly one of *AddressList or error will be non-nil. Any non-2xx
45343// status code is an error. Response headers are in either
45344// *AddressList.ServerResponse.Header or (if a response was returned at
45345// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45346// to check whether the returned error was because
45347// http.StatusNotModified was returned.
45348func (c *AddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
45349	gensupport.SetOptions(c.urlParams_, opts...)
45350	res, err := c.doRequest("json")
45351	if res != nil && res.StatusCode == http.StatusNotModified {
45352		if res.Body != nil {
45353			res.Body.Close()
45354		}
45355		return nil, &googleapi.Error{
45356			Code:   res.StatusCode,
45357			Header: res.Header,
45358		}
45359	}
45360	if err != nil {
45361		return nil, err
45362	}
45363	defer googleapi.CloseBody(res)
45364	if err := googleapi.CheckResponse(res); err != nil {
45365		return nil, err
45366	}
45367	ret := &AddressList{
45368		ServerResponse: googleapi.ServerResponse{
45369			Header:         res.Header,
45370			HTTPStatusCode: res.StatusCode,
45371		},
45372	}
45373	target := &ret
45374	if err := gensupport.DecodeResponse(target, res); err != nil {
45375		return nil, err
45376	}
45377	return ret, nil
45378	// {
45379	//   "description": "Retrieves a list of addresses contained within the specified region.",
45380	//   "httpMethod": "GET",
45381	//   "id": "compute.addresses.list",
45382	//   "parameterOrder": [
45383	//     "project",
45384	//     "region"
45385	//   ],
45386	//   "parameters": {
45387	//     "filter": {
45388	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
45389	//       "location": "query",
45390	//       "type": "string"
45391	//     },
45392	//     "maxResults": {
45393	//       "default": "500",
45394	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
45395	//       "format": "uint32",
45396	//       "location": "query",
45397	//       "minimum": "0",
45398	//       "type": "integer"
45399	//     },
45400	//     "orderBy": {
45401	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
45402	//       "location": "query",
45403	//       "type": "string"
45404	//     },
45405	//     "pageToken": {
45406	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
45407	//       "location": "query",
45408	//       "type": "string"
45409	//     },
45410	//     "project": {
45411	//       "description": "Project ID for this request.",
45412	//       "location": "path",
45413	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45414	//       "required": true,
45415	//       "type": "string"
45416	//     },
45417	//     "region": {
45418	//       "description": "Name of the region for this request.",
45419	//       "location": "path",
45420	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45421	//       "required": true,
45422	//       "type": "string"
45423	//     }
45424	//   },
45425	//   "path": "{project}/regions/{region}/addresses",
45426	//   "response": {
45427	//     "$ref": "AddressList"
45428	//   },
45429	//   "scopes": [
45430	//     "https://www.googleapis.com/auth/cloud-platform",
45431	//     "https://www.googleapis.com/auth/compute",
45432	//     "https://www.googleapis.com/auth/compute.readonly"
45433	//   ]
45434	// }
45435
45436}
45437
45438// Pages invokes f for each page of results.
45439// A non-nil error returned from f will halt the iteration.
45440// The provided context supersedes any context provided to the Context method.
45441func (c *AddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
45442	c.ctx_ = ctx
45443	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
45444	for {
45445		x, err := c.Do()
45446		if err != nil {
45447			return err
45448		}
45449		if err := f(x); err != nil {
45450			return err
45451		}
45452		if x.NextPageToken == "" {
45453			return nil
45454		}
45455		c.PageToken(x.NextPageToken)
45456	}
45457}
45458
45459// method id "compute.addresses.setLabels":
45460
45461type AddressesSetLabelsCall struct {
45462	s                      *Service
45463	project                string
45464	region                 string
45465	resource               string
45466	regionsetlabelsrequest *RegionSetLabelsRequest
45467	urlParams_             gensupport.URLParams
45468	ctx_                   context.Context
45469	header_                http.Header
45470}
45471
45472// SetLabels: Sets the labels on an Address. To learn more about labels,
45473// read the Labeling Resources documentation.
45474func (r *AddressesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *AddressesSetLabelsCall {
45475	c := &AddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45476	c.project = project
45477	c.region = region
45478	c.resource = resource
45479	c.regionsetlabelsrequest = regionsetlabelsrequest
45480	return c
45481}
45482
45483// RequestId sets the optional parameter "requestId": An optional
45484// request ID to identify requests. Specify a unique request ID so that
45485// if you must retry your request, the server will know to ignore the
45486// request if it has already been completed.
45487//
45488// For example, consider a situation where you make an initial request
45489// and the request times out. If you make the request again with the
45490// same request ID, the server can check if original operation with the
45491// same request ID was received, and if so, will ignore the second
45492// request. This prevents clients from accidentally creating duplicate
45493// commitments.
45494//
45495// The request ID must be a valid UUID with the exception that zero UUID
45496// is not supported (00000000-0000-0000-0000-000000000000).
45497func (c *AddressesSetLabelsCall) RequestId(requestId string) *AddressesSetLabelsCall {
45498	c.urlParams_.Set("requestId", requestId)
45499	return c
45500}
45501
45502// Fields allows partial responses to be retrieved. See
45503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45504// for more information.
45505func (c *AddressesSetLabelsCall) Fields(s ...googleapi.Field) *AddressesSetLabelsCall {
45506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45507	return c
45508}
45509
45510// Context sets the context to be used in this call's Do method. Any
45511// pending HTTP request will be aborted if the provided context is
45512// canceled.
45513func (c *AddressesSetLabelsCall) Context(ctx context.Context) *AddressesSetLabelsCall {
45514	c.ctx_ = ctx
45515	return c
45516}
45517
45518// Header returns an http.Header that can be modified by the caller to
45519// add HTTP headers to the request.
45520func (c *AddressesSetLabelsCall) Header() http.Header {
45521	if c.header_ == nil {
45522		c.header_ = make(http.Header)
45523	}
45524	return c.header_
45525}
45526
45527func (c *AddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
45528	reqHeaders := make(http.Header)
45529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
45530	for k, v := range c.header_ {
45531		reqHeaders[k] = v
45532	}
45533	reqHeaders.Set("User-Agent", c.s.userAgent())
45534	var body io.Reader = nil
45535	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
45536	if err != nil {
45537		return nil, err
45538	}
45539	reqHeaders.Set("Content-Type", "application/json")
45540	c.urlParams_.Set("alt", alt)
45541	c.urlParams_.Set("prettyPrint", "false")
45542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/setLabels")
45543	urls += "?" + c.urlParams_.Encode()
45544	req, err := http.NewRequest("POST", urls, body)
45545	if err != nil {
45546		return nil, err
45547	}
45548	req.Header = reqHeaders
45549	googleapi.Expand(req.URL, map[string]string{
45550		"project":  c.project,
45551		"region":   c.region,
45552		"resource": c.resource,
45553	})
45554	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45555}
45556
45557// Do executes the "compute.addresses.setLabels" call.
45558// Exactly one of *Operation or error will be non-nil. Any non-2xx
45559// status code is an error. Response headers are in either
45560// *Operation.ServerResponse.Header or (if a response was returned at
45561// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
45562// to check whether the returned error was because
45563// http.StatusNotModified was returned.
45564func (c *AddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
45565	gensupport.SetOptions(c.urlParams_, opts...)
45566	res, err := c.doRequest("json")
45567	if res != nil && res.StatusCode == http.StatusNotModified {
45568		if res.Body != nil {
45569			res.Body.Close()
45570		}
45571		return nil, &googleapi.Error{
45572			Code:   res.StatusCode,
45573			Header: res.Header,
45574		}
45575	}
45576	if err != nil {
45577		return nil, err
45578	}
45579	defer googleapi.CloseBody(res)
45580	if err := googleapi.CheckResponse(res); err != nil {
45581		return nil, err
45582	}
45583	ret := &Operation{
45584		ServerResponse: googleapi.ServerResponse{
45585			Header:         res.Header,
45586			HTTPStatusCode: res.StatusCode,
45587		},
45588	}
45589	target := &ret
45590	if err := gensupport.DecodeResponse(target, res); err != nil {
45591		return nil, err
45592	}
45593	return ret, nil
45594	// {
45595	//   "description": "Sets the labels on an Address. To learn more about labels, read the Labeling Resources documentation.",
45596	//   "httpMethod": "POST",
45597	//   "id": "compute.addresses.setLabels",
45598	//   "parameterOrder": [
45599	//     "project",
45600	//     "region",
45601	//     "resource"
45602	//   ],
45603	//   "parameters": {
45604	//     "project": {
45605	//       "description": "Project ID for this request.",
45606	//       "location": "path",
45607	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45608	//       "required": true,
45609	//       "type": "string"
45610	//     },
45611	//     "region": {
45612	//       "description": "The region for this request.",
45613	//       "location": "path",
45614	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45615	//       "required": true,
45616	//       "type": "string"
45617	//     },
45618	//     "requestId": {
45619	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
45620	//       "location": "query",
45621	//       "type": "string"
45622	//     },
45623	//     "resource": {
45624	//       "description": "Name or id of the resource for this request.",
45625	//       "location": "path",
45626	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45627	//       "required": true,
45628	//       "type": "string"
45629	//     }
45630	//   },
45631	//   "path": "{project}/regions/{region}/addresses/{resource}/setLabels",
45632	//   "request": {
45633	//     "$ref": "RegionSetLabelsRequest"
45634	//   },
45635	//   "response": {
45636	//     "$ref": "Operation"
45637	//   },
45638	//   "scopes": [
45639	//     "https://www.googleapis.com/auth/cloud-platform",
45640	//     "https://www.googleapis.com/auth/compute"
45641	//   ]
45642	// }
45643
45644}
45645
45646// method id "compute.addresses.testIamPermissions":
45647
45648type AddressesTestIamPermissionsCall struct {
45649	s                      *Service
45650	project                string
45651	region                 string
45652	resource               string
45653	testpermissionsrequest *TestPermissionsRequest
45654	urlParams_             gensupport.URLParams
45655	ctx_                   context.Context
45656	header_                http.Header
45657}
45658
45659// TestIamPermissions: Returns permissions that a caller has on the
45660// specified resource.
45661func (r *AddressesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *AddressesTestIamPermissionsCall {
45662	c := &AddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45663	c.project = project
45664	c.region = region
45665	c.resource = resource
45666	c.testpermissionsrequest = testpermissionsrequest
45667	return c
45668}
45669
45670// Fields allows partial responses to be retrieved. See
45671// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45672// for more information.
45673func (c *AddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *AddressesTestIamPermissionsCall {
45674	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45675	return c
45676}
45677
45678// Context sets the context to be used in this call's Do method. Any
45679// pending HTTP request will be aborted if the provided context is
45680// canceled.
45681func (c *AddressesTestIamPermissionsCall) Context(ctx context.Context) *AddressesTestIamPermissionsCall {
45682	c.ctx_ = ctx
45683	return c
45684}
45685
45686// Header returns an http.Header that can be modified by the caller to
45687// add HTTP headers to the request.
45688func (c *AddressesTestIamPermissionsCall) Header() http.Header {
45689	if c.header_ == nil {
45690		c.header_ = make(http.Header)
45691	}
45692	return c.header_
45693}
45694
45695func (c *AddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
45696	reqHeaders := make(http.Header)
45697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
45698	for k, v := range c.header_ {
45699		reqHeaders[k] = v
45700	}
45701	reqHeaders.Set("User-Agent", c.s.userAgent())
45702	var body io.Reader = nil
45703	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
45704	if err != nil {
45705		return nil, err
45706	}
45707	reqHeaders.Set("Content-Type", "application/json")
45708	c.urlParams_.Set("alt", alt)
45709	c.urlParams_.Set("prettyPrint", "false")
45710	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/addresses/{resource}/testIamPermissions")
45711	urls += "?" + c.urlParams_.Encode()
45712	req, err := http.NewRequest("POST", urls, body)
45713	if err != nil {
45714		return nil, err
45715	}
45716	req.Header = reqHeaders
45717	googleapi.Expand(req.URL, map[string]string{
45718		"project":  c.project,
45719		"region":   c.region,
45720		"resource": c.resource,
45721	})
45722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45723}
45724
45725// Do executes the "compute.addresses.testIamPermissions" call.
45726// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
45727// non-2xx status code is an error. Response headers are in either
45728// *TestPermissionsResponse.ServerResponse.Header or (if a response was
45729// returned at all) in error.(*googleapi.Error).Header. Use
45730// googleapi.IsNotModified to check whether the returned error was
45731// because http.StatusNotModified was returned.
45732func (c *AddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
45733	gensupport.SetOptions(c.urlParams_, opts...)
45734	res, err := c.doRequest("json")
45735	if res != nil && res.StatusCode == http.StatusNotModified {
45736		if res.Body != nil {
45737			res.Body.Close()
45738		}
45739		return nil, &googleapi.Error{
45740			Code:   res.StatusCode,
45741			Header: res.Header,
45742		}
45743	}
45744	if err != nil {
45745		return nil, err
45746	}
45747	defer googleapi.CloseBody(res)
45748	if err := googleapi.CheckResponse(res); err != nil {
45749		return nil, err
45750	}
45751	ret := &TestPermissionsResponse{
45752		ServerResponse: googleapi.ServerResponse{
45753			Header:         res.Header,
45754			HTTPStatusCode: res.StatusCode,
45755		},
45756	}
45757	target := &ret
45758	if err := gensupport.DecodeResponse(target, res); err != nil {
45759		return nil, err
45760	}
45761	return ret, nil
45762	// {
45763	//   "description": "Returns permissions that a caller has on the specified resource.",
45764	//   "httpMethod": "POST",
45765	//   "id": "compute.addresses.testIamPermissions",
45766	//   "parameterOrder": [
45767	//     "project",
45768	//     "region",
45769	//     "resource"
45770	//   ],
45771	//   "parameters": {
45772	//     "project": {
45773	//       "description": "Project ID for this request.",
45774	//       "location": "path",
45775	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
45776	//       "required": true,
45777	//       "type": "string"
45778	//     },
45779	//     "region": {
45780	//       "description": "The name of the region for this request.",
45781	//       "location": "path",
45782	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
45783	//       "required": true,
45784	//       "type": "string"
45785	//     },
45786	//     "resource": {
45787	//       "description": "Name or id of the resource for this request.",
45788	//       "location": "path",
45789	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
45790	//       "required": true,
45791	//       "type": "string"
45792	//     }
45793	//   },
45794	//   "path": "{project}/regions/{region}/addresses/{resource}/testIamPermissions",
45795	//   "request": {
45796	//     "$ref": "TestPermissionsRequest"
45797	//   },
45798	//   "response": {
45799	//     "$ref": "TestPermissionsResponse"
45800	//   },
45801	//   "scopes": [
45802	//     "https://www.googleapis.com/auth/cloud-platform",
45803	//     "https://www.googleapis.com/auth/compute",
45804	//     "https://www.googleapis.com/auth/compute.readonly"
45805	//   ]
45806	// }
45807
45808}
45809
45810// method id "compute.autoscalers.aggregatedList":
45811
45812type AutoscalersAggregatedListCall struct {
45813	s            *Service
45814	project      string
45815	urlParams_   gensupport.URLParams
45816	ifNoneMatch_ string
45817	ctx_         context.Context
45818	header_      http.Header
45819}
45820
45821// AggregatedList: Retrieves an aggregated list of autoscalers.
45822func (r *AutoscalersService) AggregatedList(project string) *AutoscalersAggregatedListCall {
45823	c := &AutoscalersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
45824	c.project = project
45825	return c
45826}
45827
45828// Filter sets the optional parameter "filter": A filter expression that
45829// filters resources listed in the response. The expression must specify
45830// the field name, a comparison operator, and the value that you want to
45831// use for filtering. The value must be a string, a number, or a
45832// boolean. The comparison operator must be either =, !=, >, or <.
45833//
45834// For example, if you are filtering Compute Engine instances, you can
45835// exclude instances named example-instance by specifying name !=
45836// example-instance.
45837//
45838// You can also filter nested fields. For example, you could specify
45839// scheduling.automaticRestart = false to include instances only if they
45840// are not scheduled for automatic restarts. You can use filtering on
45841// nested fields to filter based on resource labels.
45842//
45843// To filter on multiple expressions, provide each separate expression
45844// within parentheses. For example, (scheduling.automaticRestart = true)
45845// (cpuPlatform = "Intel Skylake"). By default, each expression is an
45846// AND expression. However, you can include AND and OR expressions
45847// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
45848// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
45849// true).
45850func (c *AutoscalersAggregatedListCall) Filter(filter string) *AutoscalersAggregatedListCall {
45851	c.urlParams_.Set("filter", filter)
45852	return c
45853}
45854
45855// IncludeAllScopes sets the optional parameter "includeAllScopes":
45856// Indicates whether every visible scope for each scope type (zone,
45857// region, global) should be included in the response. For new resource
45858// types added after this field, the flag has no effect as new resource
45859// types will always include every visible scope for each scope type in
45860// response. For resource types which predate this field, if this flag
45861// is omitted or false, only scopes of the scope types where the
45862// resource type is expected to be found will be included.
45863func (c *AutoscalersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *AutoscalersAggregatedListCall {
45864	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
45865	return c
45866}
45867
45868// MaxResults sets the optional parameter "maxResults": The maximum
45869// number of results per page that should be returned. If the number of
45870// available results is larger than maxResults, Compute Engine returns a
45871// nextPageToken that can be used to get the next page of results in
45872// subsequent list requests. Acceptable values are 0 to 500, inclusive.
45873// (Default: 500)
45874func (c *AutoscalersAggregatedListCall) MaxResults(maxResults int64) *AutoscalersAggregatedListCall {
45875	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
45876	return c
45877}
45878
45879// OrderBy sets the optional parameter "orderBy": Sorts list results by
45880// a certain order. By default, results are returned in alphanumerical
45881// order based on the resource name.
45882//
45883// You can also sort results in descending order based on the creation
45884// timestamp using orderBy="creationTimestamp desc". This sorts results
45885// based on the creationTimestamp field in reverse chronological order
45886// (newest result first). Use this to sort resources like operations so
45887// that the newest operation is returned first.
45888//
45889// Currently, only sorting by name or creationTimestamp desc is
45890// supported.
45891func (c *AutoscalersAggregatedListCall) OrderBy(orderBy string) *AutoscalersAggregatedListCall {
45892	c.urlParams_.Set("orderBy", orderBy)
45893	return c
45894}
45895
45896// PageToken sets the optional parameter "pageToken": Specifies a page
45897// token to use. Set pageToken to the nextPageToken returned by a
45898// previous list request to get the next page of results.
45899func (c *AutoscalersAggregatedListCall) PageToken(pageToken string) *AutoscalersAggregatedListCall {
45900	c.urlParams_.Set("pageToken", pageToken)
45901	return c
45902}
45903
45904// Fields allows partial responses to be retrieved. See
45905// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
45906// for more information.
45907func (c *AutoscalersAggregatedListCall) Fields(s ...googleapi.Field) *AutoscalersAggregatedListCall {
45908	c.urlParams_.Set("fields", googleapi.CombineFields(s))
45909	return c
45910}
45911
45912// IfNoneMatch sets the optional parameter which makes the operation
45913// fail if the object's ETag matches the given value. This is useful for
45914// getting updates only after the object has changed since the last
45915// request. Use googleapi.IsNotModified to check whether the response
45916// error from Do is the result of In-None-Match.
45917func (c *AutoscalersAggregatedListCall) IfNoneMatch(entityTag string) *AutoscalersAggregatedListCall {
45918	c.ifNoneMatch_ = entityTag
45919	return c
45920}
45921
45922// Context sets the context to be used in this call's Do method. Any
45923// pending HTTP request will be aborted if the provided context is
45924// canceled.
45925func (c *AutoscalersAggregatedListCall) Context(ctx context.Context) *AutoscalersAggregatedListCall {
45926	c.ctx_ = ctx
45927	return c
45928}
45929
45930// Header returns an http.Header that can be modified by the caller to
45931// add HTTP headers to the request.
45932func (c *AutoscalersAggregatedListCall) Header() http.Header {
45933	if c.header_ == nil {
45934		c.header_ = make(http.Header)
45935	}
45936	return c.header_
45937}
45938
45939func (c *AutoscalersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
45940	reqHeaders := make(http.Header)
45941	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
45942	for k, v := range c.header_ {
45943		reqHeaders[k] = v
45944	}
45945	reqHeaders.Set("User-Agent", c.s.userAgent())
45946	if c.ifNoneMatch_ != "" {
45947		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
45948	}
45949	var body io.Reader = nil
45950	c.urlParams_.Set("alt", alt)
45951	c.urlParams_.Set("prettyPrint", "false")
45952	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/autoscalers")
45953	urls += "?" + c.urlParams_.Encode()
45954	req, err := http.NewRequest("GET", urls, body)
45955	if err != nil {
45956		return nil, err
45957	}
45958	req.Header = reqHeaders
45959	googleapi.Expand(req.URL, map[string]string{
45960		"project": c.project,
45961	})
45962	return gensupport.SendRequest(c.ctx_, c.s.client, req)
45963}
45964
45965// Do executes the "compute.autoscalers.aggregatedList" call.
45966// Exactly one of *AutoscalerAggregatedList or error will be non-nil.
45967// Any non-2xx status code is an error. Response headers are in either
45968// *AutoscalerAggregatedList.ServerResponse.Header or (if a response was
45969// returned at all) in error.(*googleapi.Error).Header. Use
45970// googleapi.IsNotModified to check whether the returned error was
45971// because http.StatusNotModified was returned.
45972func (c *AutoscalersAggregatedListCall) Do(opts ...googleapi.CallOption) (*AutoscalerAggregatedList, error) {
45973	gensupport.SetOptions(c.urlParams_, opts...)
45974	res, err := c.doRequest("json")
45975	if res != nil && res.StatusCode == http.StatusNotModified {
45976		if res.Body != nil {
45977			res.Body.Close()
45978		}
45979		return nil, &googleapi.Error{
45980			Code:   res.StatusCode,
45981			Header: res.Header,
45982		}
45983	}
45984	if err != nil {
45985		return nil, err
45986	}
45987	defer googleapi.CloseBody(res)
45988	if err := googleapi.CheckResponse(res); err != nil {
45989		return nil, err
45990	}
45991	ret := &AutoscalerAggregatedList{
45992		ServerResponse: googleapi.ServerResponse{
45993			Header:         res.Header,
45994			HTTPStatusCode: res.StatusCode,
45995		},
45996	}
45997	target := &ret
45998	if err := gensupport.DecodeResponse(target, res); err != nil {
45999		return nil, err
46000	}
46001	return ret, nil
46002	// {
46003	//   "description": "Retrieves an aggregated list of autoscalers.",
46004	//   "httpMethod": "GET",
46005	//   "id": "compute.autoscalers.aggregatedList",
46006	//   "parameterOrder": [
46007	//     "project"
46008	//   ],
46009	//   "parameters": {
46010	//     "filter": {
46011	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
46012	//       "location": "query",
46013	//       "type": "string"
46014	//     },
46015	//     "includeAllScopes": {
46016	//       "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.",
46017	//       "location": "query",
46018	//       "type": "boolean"
46019	//     },
46020	//     "maxResults": {
46021	//       "default": "500",
46022	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
46023	//       "format": "uint32",
46024	//       "location": "query",
46025	//       "minimum": "0",
46026	//       "type": "integer"
46027	//     },
46028	//     "orderBy": {
46029	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
46030	//       "location": "query",
46031	//       "type": "string"
46032	//     },
46033	//     "pageToken": {
46034	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
46035	//       "location": "query",
46036	//       "type": "string"
46037	//     },
46038	//     "project": {
46039	//       "description": "Project ID for this request.",
46040	//       "location": "path",
46041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46042	//       "required": true,
46043	//       "type": "string"
46044	//     }
46045	//   },
46046	//   "path": "{project}/aggregated/autoscalers",
46047	//   "response": {
46048	//     "$ref": "AutoscalerAggregatedList"
46049	//   },
46050	//   "scopes": [
46051	//     "https://www.googleapis.com/auth/cloud-platform",
46052	//     "https://www.googleapis.com/auth/compute",
46053	//     "https://www.googleapis.com/auth/compute.readonly"
46054	//   ]
46055	// }
46056
46057}
46058
46059// Pages invokes f for each page of results.
46060// A non-nil error returned from f will halt the iteration.
46061// The provided context supersedes any context provided to the Context method.
46062func (c *AutoscalersAggregatedListCall) Pages(ctx context.Context, f func(*AutoscalerAggregatedList) error) error {
46063	c.ctx_ = ctx
46064	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
46065	for {
46066		x, err := c.Do()
46067		if err != nil {
46068			return err
46069		}
46070		if err := f(x); err != nil {
46071			return err
46072		}
46073		if x.NextPageToken == "" {
46074			return nil
46075		}
46076		c.PageToken(x.NextPageToken)
46077	}
46078}
46079
46080// method id "compute.autoscalers.delete":
46081
46082type AutoscalersDeleteCall struct {
46083	s          *Service
46084	project    string
46085	zone       string
46086	autoscaler string
46087	urlParams_ gensupport.URLParams
46088	ctx_       context.Context
46089	header_    http.Header
46090}
46091
46092// Delete: Deletes the specified autoscaler.
46093func (r *AutoscalersService) Delete(project string, zone string, autoscaler string) *AutoscalersDeleteCall {
46094	c := &AutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46095	c.project = project
46096	c.zone = zone
46097	c.autoscaler = autoscaler
46098	return c
46099}
46100
46101// RequestId sets the optional parameter "requestId": An optional
46102// request ID to identify requests. Specify a unique request ID so that
46103// if you must retry your request, the server will know to ignore the
46104// request if it has already been completed.
46105//
46106// For example, consider a situation where you make an initial request
46107// and the request times out. If you make the request again with the
46108// same request ID, the server can check if original operation with the
46109// same request ID was received, and if so, will ignore the second
46110// request. This prevents clients from accidentally creating duplicate
46111// commitments.
46112//
46113// The request ID must be a valid UUID with the exception that zero UUID
46114// is not supported (00000000-0000-0000-0000-000000000000).
46115func (c *AutoscalersDeleteCall) RequestId(requestId string) *AutoscalersDeleteCall {
46116	c.urlParams_.Set("requestId", requestId)
46117	return c
46118}
46119
46120// Fields allows partial responses to be retrieved. See
46121// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46122// for more information.
46123func (c *AutoscalersDeleteCall) Fields(s ...googleapi.Field) *AutoscalersDeleteCall {
46124	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46125	return c
46126}
46127
46128// Context sets the context to be used in this call's Do method. Any
46129// pending HTTP request will be aborted if the provided context is
46130// canceled.
46131func (c *AutoscalersDeleteCall) Context(ctx context.Context) *AutoscalersDeleteCall {
46132	c.ctx_ = ctx
46133	return c
46134}
46135
46136// Header returns an http.Header that can be modified by the caller to
46137// add HTTP headers to the request.
46138func (c *AutoscalersDeleteCall) Header() http.Header {
46139	if c.header_ == nil {
46140		c.header_ = make(http.Header)
46141	}
46142	return c.header_
46143}
46144
46145func (c *AutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
46146	reqHeaders := make(http.Header)
46147	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
46148	for k, v := range c.header_ {
46149		reqHeaders[k] = v
46150	}
46151	reqHeaders.Set("User-Agent", c.s.userAgent())
46152	var body io.Reader = nil
46153	c.urlParams_.Set("alt", alt)
46154	c.urlParams_.Set("prettyPrint", "false")
46155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
46156	urls += "?" + c.urlParams_.Encode()
46157	req, err := http.NewRequest("DELETE", urls, body)
46158	if err != nil {
46159		return nil, err
46160	}
46161	req.Header = reqHeaders
46162	googleapi.Expand(req.URL, map[string]string{
46163		"project":    c.project,
46164		"zone":       c.zone,
46165		"autoscaler": c.autoscaler,
46166	})
46167	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46168}
46169
46170// Do executes the "compute.autoscalers.delete" call.
46171// Exactly one of *Operation or error will be non-nil. Any non-2xx
46172// status code is an error. Response headers are in either
46173// *Operation.ServerResponse.Header or (if a response was returned at
46174// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46175// to check whether the returned error was because
46176// http.StatusNotModified was returned.
46177func (c *AutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46178	gensupport.SetOptions(c.urlParams_, opts...)
46179	res, err := c.doRequest("json")
46180	if res != nil && res.StatusCode == http.StatusNotModified {
46181		if res.Body != nil {
46182			res.Body.Close()
46183		}
46184		return nil, &googleapi.Error{
46185			Code:   res.StatusCode,
46186			Header: res.Header,
46187		}
46188	}
46189	if err != nil {
46190		return nil, err
46191	}
46192	defer googleapi.CloseBody(res)
46193	if err := googleapi.CheckResponse(res); err != nil {
46194		return nil, err
46195	}
46196	ret := &Operation{
46197		ServerResponse: googleapi.ServerResponse{
46198			Header:         res.Header,
46199			HTTPStatusCode: res.StatusCode,
46200		},
46201	}
46202	target := &ret
46203	if err := gensupport.DecodeResponse(target, res); err != nil {
46204		return nil, err
46205	}
46206	return ret, nil
46207	// {
46208	//   "description": "Deletes the specified autoscaler.",
46209	//   "httpMethod": "DELETE",
46210	//   "id": "compute.autoscalers.delete",
46211	//   "parameterOrder": [
46212	//     "project",
46213	//     "zone",
46214	//     "autoscaler"
46215	//   ],
46216	//   "parameters": {
46217	//     "autoscaler": {
46218	//       "description": "Name of the autoscaler to delete.",
46219	//       "location": "path",
46220	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46221	//       "required": true,
46222	//       "type": "string"
46223	//     },
46224	//     "project": {
46225	//       "description": "Project ID for this request.",
46226	//       "location": "path",
46227	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46228	//       "required": true,
46229	//       "type": "string"
46230	//     },
46231	//     "requestId": {
46232	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46233	//       "location": "query",
46234	//       "type": "string"
46235	//     },
46236	//     "zone": {
46237	//       "description": "Name of the zone for this request.",
46238	//       "location": "path",
46239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46240	//       "required": true,
46241	//       "type": "string"
46242	//     }
46243	//   },
46244	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
46245	//   "response": {
46246	//     "$ref": "Operation"
46247	//   },
46248	//   "scopes": [
46249	//     "https://www.googleapis.com/auth/cloud-platform",
46250	//     "https://www.googleapis.com/auth/compute"
46251	//   ]
46252	// }
46253
46254}
46255
46256// method id "compute.autoscalers.get":
46257
46258type AutoscalersGetCall struct {
46259	s            *Service
46260	project      string
46261	zone         string
46262	autoscaler   string
46263	urlParams_   gensupport.URLParams
46264	ifNoneMatch_ string
46265	ctx_         context.Context
46266	header_      http.Header
46267}
46268
46269// Get: Returns the specified autoscaler resource. Gets a list of
46270// available autoscalers by making a list() request.
46271func (r *AutoscalersService) Get(project string, zone string, autoscaler string) *AutoscalersGetCall {
46272	c := &AutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46273	c.project = project
46274	c.zone = zone
46275	c.autoscaler = autoscaler
46276	return c
46277}
46278
46279// Fields allows partial responses to be retrieved. See
46280// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46281// for more information.
46282func (c *AutoscalersGetCall) Fields(s ...googleapi.Field) *AutoscalersGetCall {
46283	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46284	return c
46285}
46286
46287// IfNoneMatch sets the optional parameter which makes the operation
46288// fail if the object's ETag matches the given value. This is useful for
46289// getting updates only after the object has changed since the last
46290// request. Use googleapi.IsNotModified to check whether the response
46291// error from Do is the result of In-None-Match.
46292func (c *AutoscalersGetCall) IfNoneMatch(entityTag string) *AutoscalersGetCall {
46293	c.ifNoneMatch_ = entityTag
46294	return c
46295}
46296
46297// Context sets the context to be used in this call's Do method. Any
46298// pending HTTP request will be aborted if the provided context is
46299// canceled.
46300func (c *AutoscalersGetCall) Context(ctx context.Context) *AutoscalersGetCall {
46301	c.ctx_ = ctx
46302	return c
46303}
46304
46305// Header returns an http.Header that can be modified by the caller to
46306// add HTTP headers to the request.
46307func (c *AutoscalersGetCall) Header() http.Header {
46308	if c.header_ == nil {
46309		c.header_ = make(http.Header)
46310	}
46311	return c.header_
46312}
46313
46314func (c *AutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
46315	reqHeaders := make(http.Header)
46316	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
46317	for k, v := range c.header_ {
46318		reqHeaders[k] = v
46319	}
46320	reqHeaders.Set("User-Agent", c.s.userAgent())
46321	if c.ifNoneMatch_ != "" {
46322		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46323	}
46324	var body io.Reader = nil
46325	c.urlParams_.Set("alt", alt)
46326	c.urlParams_.Set("prettyPrint", "false")
46327	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{autoscaler}")
46328	urls += "?" + c.urlParams_.Encode()
46329	req, err := http.NewRequest("GET", urls, body)
46330	if err != nil {
46331		return nil, err
46332	}
46333	req.Header = reqHeaders
46334	googleapi.Expand(req.URL, map[string]string{
46335		"project":    c.project,
46336		"zone":       c.zone,
46337		"autoscaler": c.autoscaler,
46338	})
46339	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46340}
46341
46342// Do executes the "compute.autoscalers.get" call.
46343// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
46344// status code is an error. Response headers are in either
46345// *Autoscaler.ServerResponse.Header or (if a response was returned at
46346// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46347// to check whether the returned error was because
46348// http.StatusNotModified was returned.
46349func (c *AutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
46350	gensupport.SetOptions(c.urlParams_, opts...)
46351	res, err := c.doRequest("json")
46352	if res != nil && res.StatusCode == http.StatusNotModified {
46353		if res.Body != nil {
46354			res.Body.Close()
46355		}
46356		return nil, &googleapi.Error{
46357			Code:   res.StatusCode,
46358			Header: res.Header,
46359		}
46360	}
46361	if err != nil {
46362		return nil, err
46363	}
46364	defer googleapi.CloseBody(res)
46365	if err := googleapi.CheckResponse(res); err != nil {
46366		return nil, err
46367	}
46368	ret := &Autoscaler{
46369		ServerResponse: googleapi.ServerResponse{
46370			Header:         res.Header,
46371			HTTPStatusCode: res.StatusCode,
46372		},
46373	}
46374	target := &ret
46375	if err := gensupport.DecodeResponse(target, res); err != nil {
46376		return nil, err
46377	}
46378	return ret, nil
46379	// {
46380	//   "description": "Returns the specified autoscaler resource. Gets a list of available autoscalers by making a list() request.",
46381	//   "httpMethod": "GET",
46382	//   "id": "compute.autoscalers.get",
46383	//   "parameterOrder": [
46384	//     "project",
46385	//     "zone",
46386	//     "autoscaler"
46387	//   ],
46388	//   "parameters": {
46389	//     "autoscaler": {
46390	//       "description": "Name of the autoscaler to return.",
46391	//       "location": "path",
46392	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
46393	//       "required": true,
46394	//       "type": "string"
46395	//     },
46396	//     "project": {
46397	//       "description": "Project ID for this request.",
46398	//       "location": "path",
46399	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46400	//       "required": true,
46401	//       "type": "string"
46402	//     },
46403	//     "zone": {
46404	//       "description": "Name of the zone for this request.",
46405	//       "location": "path",
46406	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46407	//       "required": true,
46408	//       "type": "string"
46409	//     }
46410	//   },
46411	//   "path": "{project}/zones/{zone}/autoscalers/{autoscaler}",
46412	//   "response": {
46413	//     "$ref": "Autoscaler"
46414	//   },
46415	//   "scopes": [
46416	//     "https://www.googleapis.com/auth/cloud-platform",
46417	//     "https://www.googleapis.com/auth/compute",
46418	//     "https://www.googleapis.com/auth/compute.readonly"
46419	//   ]
46420	// }
46421
46422}
46423
46424// method id "compute.autoscalers.insert":
46425
46426type AutoscalersInsertCall struct {
46427	s          *Service
46428	project    string
46429	zone       string
46430	autoscaler *Autoscaler
46431	urlParams_ gensupport.URLParams
46432	ctx_       context.Context
46433	header_    http.Header
46434}
46435
46436// Insert: Creates an autoscaler in the specified project using the data
46437// included in the request.
46438func (r *AutoscalersService) Insert(project string, zone string, autoscaler *Autoscaler) *AutoscalersInsertCall {
46439	c := &AutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46440	c.project = project
46441	c.zone = zone
46442	c.autoscaler = autoscaler
46443	return c
46444}
46445
46446// RequestId sets the optional parameter "requestId": An optional
46447// request ID to identify requests. Specify a unique request ID so that
46448// if you must retry your request, the server will know to ignore the
46449// request if it has already been completed.
46450//
46451// For example, consider a situation where you make an initial request
46452// and the request times out. If you make the request again with the
46453// same request ID, the server can check if original operation with the
46454// same request ID was received, and if so, will ignore the second
46455// request. This prevents clients from accidentally creating duplicate
46456// commitments.
46457//
46458// The request ID must be a valid UUID with the exception that zero UUID
46459// is not supported (00000000-0000-0000-0000-000000000000).
46460func (c *AutoscalersInsertCall) RequestId(requestId string) *AutoscalersInsertCall {
46461	c.urlParams_.Set("requestId", requestId)
46462	return c
46463}
46464
46465// Fields allows partial responses to be retrieved. See
46466// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46467// for more information.
46468func (c *AutoscalersInsertCall) Fields(s ...googleapi.Field) *AutoscalersInsertCall {
46469	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46470	return c
46471}
46472
46473// Context sets the context to be used in this call's Do method. Any
46474// pending HTTP request will be aborted if the provided context is
46475// canceled.
46476func (c *AutoscalersInsertCall) Context(ctx context.Context) *AutoscalersInsertCall {
46477	c.ctx_ = ctx
46478	return c
46479}
46480
46481// Header returns an http.Header that can be modified by the caller to
46482// add HTTP headers to the request.
46483func (c *AutoscalersInsertCall) Header() http.Header {
46484	if c.header_ == nil {
46485		c.header_ = make(http.Header)
46486	}
46487	return c.header_
46488}
46489
46490func (c *AutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
46491	reqHeaders := make(http.Header)
46492	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
46493	for k, v := range c.header_ {
46494		reqHeaders[k] = v
46495	}
46496	reqHeaders.Set("User-Agent", c.s.userAgent())
46497	var body io.Reader = nil
46498	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
46499	if err != nil {
46500		return nil, err
46501	}
46502	reqHeaders.Set("Content-Type", "application/json")
46503	c.urlParams_.Set("alt", alt)
46504	c.urlParams_.Set("prettyPrint", "false")
46505	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
46506	urls += "?" + c.urlParams_.Encode()
46507	req, err := http.NewRequest("POST", urls, body)
46508	if err != nil {
46509		return nil, err
46510	}
46511	req.Header = reqHeaders
46512	googleapi.Expand(req.URL, map[string]string{
46513		"project": c.project,
46514		"zone":    c.zone,
46515	})
46516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46517}
46518
46519// Do executes the "compute.autoscalers.insert" call.
46520// Exactly one of *Operation or error will be non-nil. Any non-2xx
46521// status code is an error. Response headers are in either
46522// *Operation.ServerResponse.Header or (if a response was returned at
46523// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46524// to check whether the returned error was because
46525// http.StatusNotModified was returned.
46526func (c *AutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46527	gensupport.SetOptions(c.urlParams_, opts...)
46528	res, err := c.doRequest("json")
46529	if res != nil && res.StatusCode == http.StatusNotModified {
46530		if res.Body != nil {
46531			res.Body.Close()
46532		}
46533		return nil, &googleapi.Error{
46534			Code:   res.StatusCode,
46535			Header: res.Header,
46536		}
46537	}
46538	if err != nil {
46539		return nil, err
46540	}
46541	defer googleapi.CloseBody(res)
46542	if err := googleapi.CheckResponse(res); err != nil {
46543		return nil, err
46544	}
46545	ret := &Operation{
46546		ServerResponse: googleapi.ServerResponse{
46547			Header:         res.Header,
46548			HTTPStatusCode: res.StatusCode,
46549		},
46550	}
46551	target := &ret
46552	if err := gensupport.DecodeResponse(target, res); err != nil {
46553		return nil, err
46554	}
46555	return ret, nil
46556	// {
46557	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
46558	//   "httpMethod": "POST",
46559	//   "id": "compute.autoscalers.insert",
46560	//   "parameterOrder": [
46561	//     "project",
46562	//     "zone"
46563	//   ],
46564	//   "parameters": {
46565	//     "project": {
46566	//       "description": "Project ID for this request.",
46567	//       "location": "path",
46568	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46569	//       "required": true,
46570	//       "type": "string"
46571	//     },
46572	//     "requestId": {
46573	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
46574	//       "location": "query",
46575	//       "type": "string"
46576	//     },
46577	//     "zone": {
46578	//       "description": "Name of the zone for this request.",
46579	//       "location": "path",
46580	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46581	//       "required": true,
46582	//       "type": "string"
46583	//     }
46584	//   },
46585	//   "path": "{project}/zones/{zone}/autoscalers",
46586	//   "request": {
46587	//     "$ref": "Autoscaler"
46588	//   },
46589	//   "response": {
46590	//     "$ref": "Operation"
46591	//   },
46592	//   "scopes": [
46593	//     "https://www.googleapis.com/auth/cloud-platform",
46594	//     "https://www.googleapis.com/auth/compute"
46595	//   ]
46596	// }
46597
46598}
46599
46600// method id "compute.autoscalers.list":
46601
46602type AutoscalersListCall struct {
46603	s            *Service
46604	project      string
46605	zone         string
46606	urlParams_   gensupport.URLParams
46607	ifNoneMatch_ string
46608	ctx_         context.Context
46609	header_      http.Header
46610}
46611
46612// List: Retrieves a list of autoscalers contained within the specified
46613// zone.
46614func (r *AutoscalersService) List(project string, zone string) *AutoscalersListCall {
46615	c := &AutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46616	c.project = project
46617	c.zone = zone
46618	return c
46619}
46620
46621// Filter sets the optional parameter "filter": A filter expression that
46622// filters resources listed in the response. The expression must specify
46623// the field name, a comparison operator, and the value that you want to
46624// use for filtering. The value must be a string, a number, or a
46625// boolean. The comparison operator must be either =, !=, >, or <.
46626//
46627// For example, if you are filtering Compute Engine instances, you can
46628// exclude instances named example-instance by specifying name !=
46629// example-instance.
46630//
46631// You can also filter nested fields. For example, you could specify
46632// scheduling.automaticRestart = false to include instances only if they
46633// are not scheduled for automatic restarts. You can use filtering on
46634// nested fields to filter based on resource labels.
46635//
46636// To filter on multiple expressions, provide each separate expression
46637// within parentheses. For example, (scheduling.automaticRestart = true)
46638// (cpuPlatform = "Intel Skylake"). By default, each expression is an
46639// AND expression. However, you can include AND and OR expressions
46640// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
46641// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
46642// true).
46643func (c *AutoscalersListCall) Filter(filter string) *AutoscalersListCall {
46644	c.urlParams_.Set("filter", filter)
46645	return c
46646}
46647
46648// MaxResults sets the optional parameter "maxResults": The maximum
46649// number of results per page that should be returned. If the number of
46650// available results is larger than maxResults, Compute Engine returns a
46651// nextPageToken that can be used to get the next page of results in
46652// subsequent list requests. Acceptable values are 0 to 500, inclusive.
46653// (Default: 500)
46654func (c *AutoscalersListCall) MaxResults(maxResults int64) *AutoscalersListCall {
46655	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
46656	return c
46657}
46658
46659// OrderBy sets the optional parameter "orderBy": Sorts list results by
46660// a certain order. By default, results are returned in alphanumerical
46661// order based on the resource name.
46662//
46663// You can also sort results in descending order based on the creation
46664// timestamp using orderBy="creationTimestamp desc". This sorts results
46665// based on the creationTimestamp field in reverse chronological order
46666// (newest result first). Use this to sort resources like operations so
46667// that the newest operation is returned first.
46668//
46669// Currently, only sorting by name or creationTimestamp desc is
46670// supported.
46671func (c *AutoscalersListCall) OrderBy(orderBy string) *AutoscalersListCall {
46672	c.urlParams_.Set("orderBy", orderBy)
46673	return c
46674}
46675
46676// PageToken sets the optional parameter "pageToken": Specifies a page
46677// token to use. Set pageToken to the nextPageToken returned by a
46678// previous list request to get the next page of results.
46679func (c *AutoscalersListCall) PageToken(pageToken string) *AutoscalersListCall {
46680	c.urlParams_.Set("pageToken", pageToken)
46681	return c
46682}
46683
46684// Fields allows partial responses to be retrieved. See
46685// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46686// for more information.
46687func (c *AutoscalersListCall) Fields(s ...googleapi.Field) *AutoscalersListCall {
46688	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46689	return c
46690}
46691
46692// IfNoneMatch sets the optional parameter which makes the operation
46693// fail if the object's ETag matches the given value. This is useful for
46694// getting updates only after the object has changed since the last
46695// request. Use googleapi.IsNotModified to check whether the response
46696// error from Do is the result of In-None-Match.
46697func (c *AutoscalersListCall) IfNoneMatch(entityTag string) *AutoscalersListCall {
46698	c.ifNoneMatch_ = entityTag
46699	return c
46700}
46701
46702// Context sets the context to be used in this call's Do method. Any
46703// pending HTTP request will be aborted if the provided context is
46704// canceled.
46705func (c *AutoscalersListCall) Context(ctx context.Context) *AutoscalersListCall {
46706	c.ctx_ = ctx
46707	return c
46708}
46709
46710// Header returns an http.Header that can be modified by the caller to
46711// add HTTP headers to the request.
46712func (c *AutoscalersListCall) Header() http.Header {
46713	if c.header_ == nil {
46714		c.header_ = make(http.Header)
46715	}
46716	return c.header_
46717}
46718
46719func (c *AutoscalersListCall) doRequest(alt string) (*http.Response, error) {
46720	reqHeaders := make(http.Header)
46721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
46722	for k, v := range c.header_ {
46723		reqHeaders[k] = v
46724	}
46725	reqHeaders.Set("User-Agent", c.s.userAgent())
46726	if c.ifNoneMatch_ != "" {
46727		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
46728	}
46729	var body io.Reader = nil
46730	c.urlParams_.Set("alt", alt)
46731	c.urlParams_.Set("prettyPrint", "false")
46732	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
46733	urls += "?" + c.urlParams_.Encode()
46734	req, err := http.NewRequest("GET", urls, body)
46735	if err != nil {
46736		return nil, err
46737	}
46738	req.Header = reqHeaders
46739	googleapi.Expand(req.URL, map[string]string{
46740		"project": c.project,
46741		"zone":    c.zone,
46742	})
46743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46744}
46745
46746// Do executes the "compute.autoscalers.list" call.
46747// Exactly one of *AutoscalerList or error will be non-nil. Any non-2xx
46748// status code is an error. Response headers are in either
46749// *AutoscalerList.ServerResponse.Header or (if a response was returned
46750// at all) in error.(*googleapi.Error).Header. Use
46751// googleapi.IsNotModified to check whether the returned error was
46752// because http.StatusNotModified was returned.
46753func (c *AutoscalersListCall) Do(opts ...googleapi.CallOption) (*AutoscalerList, error) {
46754	gensupport.SetOptions(c.urlParams_, opts...)
46755	res, err := c.doRequest("json")
46756	if res != nil && res.StatusCode == http.StatusNotModified {
46757		if res.Body != nil {
46758			res.Body.Close()
46759		}
46760		return nil, &googleapi.Error{
46761			Code:   res.StatusCode,
46762			Header: res.Header,
46763		}
46764	}
46765	if err != nil {
46766		return nil, err
46767	}
46768	defer googleapi.CloseBody(res)
46769	if err := googleapi.CheckResponse(res); err != nil {
46770		return nil, err
46771	}
46772	ret := &AutoscalerList{
46773		ServerResponse: googleapi.ServerResponse{
46774			Header:         res.Header,
46775			HTTPStatusCode: res.StatusCode,
46776		},
46777	}
46778	target := &ret
46779	if err := gensupport.DecodeResponse(target, res); err != nil {
46780		return nil, err
46781	}
46782	return ret, nil
46783	// {
46784	//   "description": "Retrieves a list of autoscalers contained within the specified zone.",
46785	//   "httpMethod": "GET",
46786	//   "id": "compute.autoscalers.list",
46787	//   "parameterOrder": [
46788	//     "project",
46789	//     "zone"
46790	//   ],
46791	//   "parameters": {
46792	//     "filter": {
46793	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
46794	//       "location": "query",
46795	//       "type": "string"
46796	//     },
46797	//     "maxResults": {
46798	//       "default": "500",
46799	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
46800	//       "format": "uint32",
46801	//       "location": "query",
46802	//       "minimum": "0",
46803	//       "type": "integer"
46804	//     },
46805	//     "orderBy": {
46806	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
46807	//       "location": "query",
46808	//       "type": "string"
46809	//     },
46810	//     "pageToken": {
46811	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
46812	//       "location": "query",
46813	//       "type": "string"
46814	//     },
46815	//     "project": {
46816	//       "description": "Project ID for this request.",
46817	//       "location": "path",
46818	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
46819	//       "required": true,
46820	//       "type": "string"
46821	//     },
46822	//     "zone": {
46823	//       "description": "Name of the zone for this request.",
46824	//       "location": "path",
46825	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
46826	//       "required": true,
46827	//       "type": "string"
46828	//     }
46829	//   },
46830	//   "path": "{project}/zones/{zone}/autoscalers",
46831	//   "response": {
46832	//     "$ref": "AutoscalerList"
46833	//   },
46834	//   "scopes": [
46835	//     "https://www.googleapis.com/auth/cloud-platform",
46836	//     "https://www.googleapis.com/auth/compute",
46837	//     "https://www.googleapis.com/auth/compute.readonly"
46838	//   ]
46839	// }
46840
46841}
46842
46843// Pages invokes f for each page of results.
46844// A non-nil error returned from f will halt the iteration.
46845// The provided context supersedes any context provided to the Context method.
46846func (c *AutoscalersListCall) Pages(ctx context.Context, f func(*AutoscalerList) error) error {
46847	c.ctx_ = ctx
46848	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
46849	for {
46850		x, err := c.Do()
46851		if err != nil {
46852			return err
46853		}
46854		if err := f(x); err != nil {
46855			return err
46856		}
46857		if x.NextPageToken == "" {
46858			return nil
46859		}
46860		c.PageToken(x.NextPageToken)
46861	}
46862}
46863
46864// method id "compute.autoscalers.patch":
46865
46866type AutoscalersPatchCall struct {
46867	s          *Service
46868	project    string
46869	zone       string
46870	autoscaler *Autoscaler
46871	urlParams_ gensupport.URLParams
46872	ctx_       context.Context
46873	header_    http.Header
46874}
46875
46876// Patch: Updates an autoscaler in the specified project using the data
46877// included in the request. This method supports PATCH semantics and
46878// uses the JSON merge patch format and processing rules.
46879func (r *AutoscalersService) Patch(project string, zone string, autoscaler *Autoscaler) *AutoscalersPatchCall {
46880	c := &AutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
46881	c.project = project
46882	c.zone = zone
46883	c.autoscaler = autoscaler
46884	return c
46885}
46886
46887// Autoscaler sets the optional parameter "autoscaler": Name of the
46888// autoscaler to patch.
46889func (c *AutoscalersPatchCall) Autoscaler(autoscaler string) *AutoscalersPatchCall {
46890	c.urlParams_.Set("autoscaler", autoscaler)
46891	return c
46892}
46893
46894// RequestId sets the optional parameter "requestId": An optional
46895// request ID to identify requests. Specify a unique request ID so that
46896// if you must retry your request, the server will know to ignore the
46897// request if it has already been completed.
46898//
46899// For example, consider a situation where you make an initial request
46900// and the request times out. If you make the request again with the
46901// same request ID, the server can check if original operation with the
46902// same request ID was received, and if so, will ignore the second
46903// request. This prevents clients from accidentally creating duplicate
46904// commitments.
46905//
46906// The request ID must be a valid UUID with the exception that zero UUID
46907// is not supported (00000000-0000-0000-0000-000000000000).
46908func (c *AutoscalersPatchCall) RequestId(requestId string) *AutoscalersPatchCall {
46909	c.urlParams_.Set("requestId", requestId)
46910	return c
46911}
46912
46913// Fields allows partial responses to be retrieved. See
46914// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
46915// for more information.
46916func (c *AutoscalersPatchCall) Fields(s ...googleapi.Field) *AutoscalersPatchCall {
46917	c.urlParams_.Set("fields", googleapi.CombineFields(s))
46918	return c
46919}
46920
46921// Context sets the context to be used in this call's Do method. Any
46922// pending HTTP request will be aborted if the provided context is
46923// canceled.
46924func (c *AutoscalersPatchCall) Context(ctx context.Context) *AutoscalersPatchCall {
46925	c.ctx_ = ctx
46926	return c
46927}
46928
46929// Header returns an http.Header that can be modified by the caller to
46930// add HTTP headers to the request.
46931func (c *AutoscalersPatchCall) Header() http.Header {
46932	if c.header_ == nil {
46933		c.header_ = make(http.Header)
46934	}
46935	return c.header_
46936}
46937
46938func (c *AutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
46939	reqHeaders := make(http.Header)
46940	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
46941	for k, v := range c.header_ {
46942		reqHeaders[k] = v
46943	}
46944	reqHeaders.Set("User-Agent", c.s.userAgent())
46945	var body io.Reader = nil
46946	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
46947	if err != nil {
46948		return nil, err
46949	}
46950	reqHeaders.Set("Content-Type", "application/json")
46951	c.urlParams_.Set("alt", alt)
46952	c.urlParams_.Set("prettyPrint", "false")
46953	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
46954	urls += "?" + c.urlParams_.Encode()
46955	req, err := http.NewRequest("PATCH", urls, body)
46956	if err != nil {
46957		return nil, err
46958	}
46959	req.Header = reqHeaders
46960	googleapi.Expand(req.URL, map[string]string{
46961		"project": c.project,
46962		"zone":    c.zone,
46963	})
46964	return gensupport.SendRequest(c.ctx_, c.s.client, req)
46965}
46966
46967// Do executes the "compute.autoscalers.patch" call.
46968// Exactly one of *Operation or error will be non-nil. Any non-2xx
46969// status code is an error. Response headers are in either
46970// *Operation.ServerResponse.Header or (if a response was returned at
46971// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
46972// to check whether the returned error was because
46973// http.StatusNotModified was returned.
46974func (c *AutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
46975	gensupport.SetOptions(c.urlParams_, opts...)
46976	res, err := c.doRequest("json")
46977	if res != nil && res.StatusCode == http.StatusNotModified {
46978		if res.Body != nil {
46979			res.Body.Close()
46980		}
46981		return nil, &googleapi.Error{
46982			Code:   res.StatusCode,
46983			Header: res.Header,
46984		}
46985	}
46986	if err != nil {
46987		return nil, err
46988	}
46989	defer googleapi.CloseBody(res)
46990	if err := googleapi.CheckResponse(res); err != nil {
46991		return nil, err
46992	}
46993	ret := &Operation{
46994		ServerResponse: googleapi.ServerResponse{
46995			Header:         res.Header,
46996			HTTPStatusCode: res.StatusCode,
46997		},
46998	}
46999	target := &ret
47000	if err := gensupport.DecodeResponse(target, res); err != nil {
47001		return nil, err
47002	}
47003	return ret, nil
47004	// {
47005	//   "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.",
47006	//   "httpMethod": "PATCH",
47007	//   "id": "compute.autoscalers.patch",
47008	//   "parameterOrder": [
47009	//     "project",
47010	//     "zone"
47011	//   ],
47012	//   "parameters": {
47013	//     "autoscaler": {
47014	//       "description": "Name of the autoscaler to patch.",
47015	//       "location": "query",
47016	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47017	//       "type": "string"
47018	//     },
47019	//     "project": {
47020	//       "description": "Project ID for this request.",
47021	//       "location": "path",
47022	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47023	//       "required": true,
47024	//       "type": "string"
47025	//     },
47026	//     "requestId": {
47027	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47028	//       "location": "query",
47029	//       "type": "string"
47030	//     },
47031	//     "zone": {
47032	//       "description": "Name of the zone for this request.",
47033	//       "location": "path",
47034	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47035	//       "required": true,
47036	//       "type": "string"
47037	//     }
47038	//   },
47039	//   "path": "{project}/zones/{zone}/autoscalers",
47040	//   "request": {
47041	//     "$ref": "Autoscaler"
47042	//   },
47043	//   "response": {
47044	//     "$ref": "Operation"
47045	//   },
47046	//   "scopes": [
47047	//     "https://www.googleapis.com/auth/cloud-platform",
47048	//     "https://www.googleapis.com/auth/compute"
47049	//   ]
47050	// }
47051
47052}
47053
47054// method id "compute.autoscalers.testIamPermissions":
47055
47056type AutoscalersTestIamPermissionsCall struct {
47057	s                      *Service
47058	project                string
47059	zone                   string
47060	resource               string
47061	testpermissionsrequest *TestPermissionsRequest
47062	urlParams_             gensupport.URLParams
47063	ctx_                   context.Context
47064	header_                http.Header
47065}
47066
47067// TestIamPermissions: Returns permissions that a caller has on the
47068// specified resource.
47069func (r *AutoscalersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *AutoscalersTestIamPermissionsCall {
47070	c := &AutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47071	c.project = project
47072	c.zone = zone
47073	c.resource = resource
47074	c.testpermissionsrequest = testpermissionsrequest
47075	return c
47076}
47077
47078// Fields allows partial responses to be retrieved. See
47079// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47080// for more information.
47081func (c *AutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *AutoscalersTestIamPermissionsCall {
47082	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47083	return c
47084}
47085
47086// Context sets the context to be used in this call's Do method. Any
47087// pending HTTP request will be aborted if the provided context is
47088// canceled.
47089func (c *AutoscalersTestIamPermissionsCall) Context(ctx context.Context) *AutoscalersTestIamPermissionsCall {
47090	c.ctx_ = ctx
47091	return c
47092}
47093
47094// Header returns an http.Header that can be modified by the caller to
47095// add HTTP headers to the request.
47096func (c *AutoscalersTestIamPermissionsCall) Header() http.Header {
47097	if c.header_ == nil {
47098		c.header_ = make(http.Header)
47099	}
47100	return c.header_
47101}
47102
47103func (c *AutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
47104	reqHeaders := make(http.Header)
47105	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
47106	for k, v := range c.header_ {
47107		reqHeaders[k] = v
47108	}
47109	reqHeaders.Set("User-Agent", c.s.userAgent())
47110	var body io.Reader = nil
47111	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
47112	if err != nil {
47113		return nil, err
47114	}
47115	reqHeaders.Set("Content-Type", "application/json")
47116	c.urlParams_.Set("alt", alt)
47117	c.urlParams_.Set("prettyPrint", "false")
47118	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions")
47119	urls += "?" + c.urlParams_.Encode()
47120	req, err := http.NewRequest("POST", urls, body)
47121	if err != nil {
47122		return nil, err
47123	}
47124	req.Header = reqHeaders
47125	googleapi.Expand(req.URL, map[string]string{
47126		"project":  c.project,
47127		"zone":     c.zone,
47128		"resource": c.resource,
47129	})
47130	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47131}
47132
47133// Do executes the "compute.autoscalers.testIamPermissions" call.
47134// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
47135// non-2xx status code is an error. Response headers are in either
47136// *TestPermissionsResponse.ServerResponse.Header or (if a response was
47137// returned at all) in error.(*googleapi.Error).Header. Use
47138// googleapi.IsNotModified to check whether the returned error was
47139// because http.StatusNotModified was returned.
47140func (c *AutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
47141	gensupport.SetOptions(c.urlParams_, opts...)
47142	res, err := c.doRequest("json")
47143	if res != nil && res.StatusCode == http.StatusNotModified {
47144		if res.Body != nil {
47145			res.Body.Close()
47146		}
47147		return nil, &googleapi.Error{
47148			Code:   res.StatusCode,
47149			Header: res.Header,
47150		}
47151	}
47152	if err != nil {
47153		return nil, err
47154	}
47155	defer googleapi.CloseBody(res)
47156	if err := googleapi.CheckResponse(res); err != nil {
47157		return nil, err
47158	}
47159	ret := &TestPermissionsResponse{
47160		ServerResponse: googleapi.ServerResponse{
47161			Header:         res.Header,
47162			HTTPStatusCode: res.StatusCode,
47163		},
47164	}
47165	target := &ret
47166	if err := gensupport.DecodeResponse(target, res); err != nil {
47167		return nil, err
47168	}
47169	return ret, nil
47170	// {
47171	//   "description": "Returns permissions that a caller has on the specified resource.",
47172	//   "httpMethod": "POST",
47173	//   "id": "compute.autoscalers.testIamPermissions",
47174	//   "parameterOrder": [
47175	//     "project",
47176	//     "zone",
47177	//     "resource"
47178	//   ],
47179	//   "parameters": {
47180	//     "project": {
47181	//       "description": "Project ID for this request.",
47182	//       "location": "path",
47183	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47184	//       "required": true,
47185	//       "type": "string"
47186	//     },
47187	//     "resource": {
47188	//       "description": "Name or id of the resource for this request.",
47189	//       "location": "path",
47190	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47191	//       "required": true,
47192	//       "type": "string"
47193	//     },
47194	//     "zone": {
47195	//       "description": "The name of the zone for this request.",
47196	//       "location": "path",
47197	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47198	//       "required": true,
47199	//       "type": "string"
47200	//     }
47201	//   },
47202	//   "path": "{project}/zones/{zone}/autoscalers/{resource}/testIamPermissions",
47203	//   "request": {
47204	//     "$ref": "TestPermissionsRequest"
47205	//   },
47206	//   "response": {
47207	//     "$ref": "TestPermissionsResponse"
47208	//   },
47209	//   "scopes": [
47210	//     "https://www.googleapis.com/auth/cloud-platform",
47211	//     "https://www.googleapis.com/auth/compute",
47212	//     "https://www.googleapis.com/auth/compute.readonly"
47213	//   ]
47214	// }
47215
47216}
47217
47218// method id "compute.autoscalers.update":
47219
47220type AutoscalersUpdateCall struct {
47221	s          *Service
47222	project    string
47223	zone       string
47224	autoscaler *Autoscaler
47225	urlParams_ gensupport.URLParams
47226	ctx_       context.Context
47227	header_    http.Header
47228}
47229
47230// Update: Updates an autoscaler in the specified project using the data
47231// included in the request.
47232func (r *AutoscalersService) Update(project string, zone string, autoscaler *Autoscaler) *AutoscalersUpdateCall {
47233	c := &AutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47234	c.project = project
47235	c.zone = zone
47236	c.autoscaler = autoscaler
47237	return c
47238}
47239
47240// Autoscaler sets the optional parameter "autoscaler": Name of the
47241// autoscaler to update.
47242func (c *AutoscalersUpdateCall) Autoscaler(autoscaler string) *AutoscalersUpdateCall {
47243	c.urlParams_.Set("autoscaler", autoscaler)
47244	return c
47245}
47246
47247// RequestId sets the optional parameter "requestId": An optional
47248// request ID to identify requests. Specify a unique request ID so that
47249// if you must retry your request, the server will know to ignore the
47250// request if it has already been completed.
47251//
47252// For example, consider a situation where you make an initial request
47253// and the request times out. If you make the request again with the
47254// same request ID, the server can check if original operation with the
47255// same request ID was received, and if so, will ignore the second
47256// request. This prevents clients from accidentally creating duplicate
47257// commitments.
47258//
47259// The request ID must be a valid UUID with the exception that zero UUID
47260// is not supported (00000000-0000-0000-0000-000000000000).
47261func (c *AutoscalersUpdateCall) RequestId(requestId string) *AutoscalersUpdateCall {
47262	c.urlParams_.Set("requestId", requestId)
47263	return c
47264}
47265
47266// Fields allows partial responses to be retrieved. See
47267// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47268// for more information.
47269func (c *AutoscalersUpdateCall) Fields(s ...googleapi.Field) *AutoscalersUpdateCall {
47270	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47271	return c
47272}
47273
47274// Context sets the context to be used in this call's Do method. Any
47275// pending HTTP request will be aborted if the provided context is
47276// canceled.
47277func (c *AutoscalersUpdateCall) Context(ctx context.Context) *AutoscalersUpdateCall {
47278	c.ctx_ = ctx
47279	return c
47280}
47281
47282// Header returns an http.Header that can be modified by the caller to
47283// add HTTP headers to the request.
47284func (c *AutoscalersUpdateCall) Header() http.Header {
47285	if c.header_ == nil {
47286		c.header_ = make(http.Header)
47287	}
47288	return c.header_
47289}
47290
47291func (c *AutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
47292	reqHeaders := make(http.Header)
47293	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
47294	for k, v := range c.header_ {
47295		reqHeaders[k] = v
47296	}
47297	reqHeaders.Set("User-Agent", c.s.userAgent())
47298	var body io.Reader = nil
47299	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
47300	if err != nil {
47301		return nil, err
47302	}
47303	reqHeaders.Set("Content-Type", "application/json")
47304	c.urlParams_.Set("alt", alt)
47305	c.urlParams_.Set("prettyPrint", "false")
47306	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/autoscalers")
47307	urls += "?" + c.urlParams_.Encode()
47308	req, err := http.NewRequest("PUT", urls, body)
47309	if err != nil {
47310		return nil, err
47311	}
47312	req.Header = reqHeaders
47313	googleapi.Expand(req.URL, map[string]string{
47314		"project": c.project,
47315		"zone":    c.zone,
47316	})
47317	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47318}
47319
47320// Do executes the "compute.autoscalers.update" call.
47321// Exactly one of *Operation or error will be non-nil. Any non-2xx
47322// status code is an error. Response headers are in either
47323// *Operation.ServerResponse.Header or (if a response was returned at
47324// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47325// to check whether the returned error was because
47326// http.StatusNotModified was returned.
47327func (c *AutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47328	gensupport.SetOptions(c.urlParams_, opts...)
47329	res, err := c.doRequest("json")
47330	if res != nil && res.StatusCode == http.StatusNotModified {
47331		if res.Body != nil {
47332			res.Body.Close()
47333		}
47334		return nil, &googleapi.Error{
47335			Code:   res.StatusCode,
47336			Header: res.Header,
47337		}
47338	}
47339	if err != nil {
47340		return nil, err
47341	}
47342	defer googleapi.CloseBody(res)
47343	if err := googleapi.CheckResponse(res); err != nil {
47344		return nil, err
47345	}
47346	ret := &Operation{
47347		ServerResponse: googleapi.ServerResponse{
47348			Header:         res.Header,
47349			HTTPStatusCode: res.StatusCode,
47350		},
47351	}
47352	target := &ret
47353	if err := gensupport.DecodeResponse(target, res); err != nil {
47354		return nil, err
47355	}
47356	return ret, nil
47357	// {
47358	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
47359	//   "httpMethod": "PUT",
47360	//   "id": "compute.autoscalers.update",
47361	//   "parameterOrder": [
47362	//     "project",
47363	//     "zone"
47364	//   ],
47365	//   "parameters": {
47366	//     "autoscaler": {
47367	//       "description": "Name of the autoscaler to update.",
47368	//       "location": "query",
47369	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47370	//       "type": "string"
47371	//     },
47372	//     "project": {
47373	//       "description": "Project ID for this request.",
47374	//       "location": "path",
47375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47376	//       "required": true,
47377	//       "type": "string"
47378	//     },
47379	//     "requestId": {
47380	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47381	//       "location": "query",
47382	//       "type": "string"
47383	//     },
47384	//     "zone": {
47385	//       "description": "Name of the zone for this request.",
47386	//       "location": "path",
47387	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
47388	//       "required": true,
47389	//       "type": "string"
47390	//     }
47391	//   },
47392	//   "path": "{project}/zones/{zone}/autoscalers",
47393	//   "request": {
47394	//     "$ref": "Autoscaler"
47395	//   },
47396	//   "response": {
47397	//     "$ref": "Operation"
47398	//   },
47399	//   "scopes": [
47400	//     "https://www.googleapis.com/auth/cloud-platform",
47401	//     "https://www.googleapis.com/auth/compute"
47402	//   ]
47403	// }
47404
47405}
47406
47407// method id "compute.backendBuckets.addSignedUrlKey":
47408
47409type BackendBucketsAddSignedUrlKeyCall struct {
47410	s             *Service
47411	project       string
47412	backendBucket string
47413	signedurlkey  *SignedUrlKey
47414	urlParams_    gensupport.URLParams
47415	ctx_          context.Context
47416	header_       http.Header
47417}
47418
47419// AddSignedUrlKey: Adds a key for validating requests with signed URLs
47420// for this backend bucket.
47421func (r *BackendBucketsService) AddSignedUrlKey(project string, backendBucket string, signedurlkey *SignedUrlKey) *BackendBucketsAddSignedUrlKeyCall {
47422	c := &BackendBucketsAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47423	c.project = project
47424	c.backendBucket = backendBucket
47425	c.signedurlkey = signedurlkey
47426	return c
47427}
47428
47429// RequestId sets the optional parameter "requestId": An optional
47430// request ID to identify requests. Specify a unique request ID so that
47431// if you must retry your request, the server will know to ignore the
47432// request if it has already been completed.
47433//
47434// For example, consider a situation where you make an initial request
47435// and the request times out. If you make the request again with the
47436// same request ID, the server can check if original operation with the
47437// same request ID was received, and if so, will ignore the second
47438// request. This prevents clients from accidentally creating duplicate
47439// commitments.
47440//
47441// The request ID must be a valid UUID with the exception that zero UUID
47442// is not supported (00000000-0000-0000-0000-000000000000).
47443func (c *BackendBucketsAddSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsAddSignedUrlKeyCall {
47444	c.urlParams_.Set("requestId", requestId)
47445	return c
47446}
47447
47448// Fields allows partial responses to be retrieved. See
47449// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47450// for more information.
47451func (c *BackendBucketsAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsAddSignedUrlKeyCall {
47452	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47453	return c
47454}
47455
47456// Context sets the context to be used in this call's Do method. Any
47457// pending HTTP request will be aborted if the provided context is
47458// canceled.
47459func (c *BackendBucketsAddSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsAddSignedUrlKeyCall {
47460	c.ctx_ = ctx
47461	return c
47462}
47463
47464// Header returns an http.Header that can be modified by the caller to
47465// add HTTP headers to the request.
47466func (c *BackendBucketsAddSignedUrlKeyCall) Header() http.Header {
47467	if c.header_ == nil {
47468		c.header_ = make(http.Header)
47469	}
47470	return c.header_
47471}
47472
47473func (c *BackendBucketsAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
47474	reqHeaders := make(http.Header)
47475	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
47476	for k, v := range c.header_ {
47477		reqHeaders[k] = v
47478	}
47479	reqHeaders.Set("User-Agent", c.s.userAgent())
47480	var body io.Reader = nil
47481	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
47482	if err != nil {
47483		return nil, err
47484	}
47485	reqHeaders.Set("Content-Type", "application/json")
47486	c.urlParams_.Set("alt", alt)
47487	c.urlParams_.Set("prettyPrint", "false")
47488	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey")
47489	urls += "?" + c.urlParams_.Encode()
47490	req, err := http.NewRequest("POST", urls, body)
47491	if err != nil {
47492		return nil, err
47493	}
47494	req.Header = reqHeaders
47495	googleapi.Expand(req.URL, map[string]string{
47496		"project":       c.project,
47497		"backendBucket": c.backendBucket,
47498	})
47499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47500}
47501
47502// Do executes the "compute.backendBuckets.addSignedUrlKey" call.
47503// Exactly one of *Operation or error will be non-nil. Any non-2xx
47504// status code is an error. Response headers are in either
47505// *Operation.ServerResponse.Header or (if a response was returned at
47506// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47507// to check whether the returned error was because
47508// http.StatusNotModified was returned.
47509func (c *BackendBucketsAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47510	gensupport.SetOptions(c.urlParams_, opts...)
47511	res, err := c.doRequest("json")
47512	if res != nil && res.StatusCode == http.StatusNotModified {
47513		if res.Body != nil {
47514			res.Body.Close()
47515		}
47516		return nil, &googleapi.Error{
47517			Code:   res.StatusCode,
47518			Header: res.Header,
47519		}
47520	}
47521	if err != nil {
47522		return nil, err
47523	}
47524	defer googleapi.CloseBody(res)
47525	if err := googleapi.CheckResponse(res); err != nil {
47526		return nil, err
47527	}
47528	ret := &Operation{
47529		ServerResponse: googleapi.ServerResponse{
47530			Header:         res.Header,
47531			HTTPStatusCode: res.StatusCode,
47532		},
47533	}
47534	target := &ret
47535	if err := gensupport.DecodeResponse(target, res); err != nil {
47536		return nil, err
47537	}
47538	return ret, nil
47539	// {
47540	//   "description": "Adds a key for validating requests with signed URLs for this backend bucket.",
47541	//   "httpMethod": "POST",
47542	//   "id": "compute.backendBuckets.addSignedUrlKey",
47543	//   "parameterOrder": [
47544	//     "project",
47545	//     "backendBucket"
47546	//   ],
47547	//   "parameters": {
47548	//     "backendBucket": {
47549	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
47550	//       "location": "path",
47551	//       "required": true,
47552	//       "type": "string"
47553	//     },
47554	//     "project": {
47555	//       "description": "Project ID for this request.",
47556	//       "location": "path",
47557	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47558	//       "required": true,
47559	//       "type": "string"
47560	//     },
47561	//     "requestId": {
47562	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47563	//       "location": "query",
47564	//       "type": "string"
47565	//     }
47566	//   },
47567	//   "path": "{project}/global/backendBuckets/{backendBucket}/addSignedUrlKey",
47568	//   "request": {
47569	//     "$ref": "SignedUrlKey"
47570	//   },
47571	//   "response": {
47572	//     "$ref": "Operation"
47573	//   },
47574	//   "scopes": [
47575	//     "https://www.googleapis.com/auth/cloud-platform",
47576	//     "https://www.googleapis.com/auth/compute"
47577	//   ]
47578	// }
47579
47580}
47581
47582// method id "compute.backendBuckets.delete":
47583
47584type BackendBucketsDeleteCall struct {
47585	s             *Service
47586	project       string
47587	backendBucket string
47588	urlParams_    gensupport.URLParams
47589	ctx_          context.Context
47590	header_       http.Header
47591}
47592
47593// Delete: Deletes the specified BackendBucket resource.
47594func (r *BackendBucketsService) Delete(project string, backendBucket string) *BackendBucketsDeleteCall {
47595	c := &BackendBucketsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47596	c.project = project
47597	c.backendBucket = backendBucket
47598	return c
47599}
47600
47601// RequestId sets the optional parameter "requestId": An optional
47602// request ID to identify requests. Specify a unique request ID so that
47603// if you must retry your request, the server will know to ignore the
47604// request if it has already been completed.
47605//
47606// For example, consider a situation where you make an initial request
47607// and the request times out. If you make the request again with the
47608// same request ID, the server can check if original operation with the
47609// same request ID was received, and if so, will ignore the second
47610// request. This prevents clients from accidentally creating duplicate
47611// commitments.
47612//
47613// The request ID must be a valid UUID with the exception that zero UUID
47614// is not supported (00000000-0000-0000-0000-000000000000).
47615func (c *BackendBucketsDeleteCall) RequestId(requestId string) *BackendBucketsDeleteCall {
47616	c.urlParams_.Set("requestId", requestId)
47617	return c
47618}
47619
47620// Fields allows partial responses to be retrieved. See
47621// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47622// for more information.
47623func (c *BackendBucketsDeleteCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteCall {
47624	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47625	return c
47626}
47627
47628// Context sets the context to be used in this call's Do method. Any
47629// pending HTTP request will be aborted if the provided context is
47630// canceled.
47631func (c *BackendBucketsDeleteCall) Context(ctx context.Context) *BackendBucketsDeleteCall {
47632	c.ctx_ = ctx
47633	return c
47634}
47635
47636// Header returns an http.Header that can be modified by the caller to
47637// add HTTP headers to the request.
47638func (c *BackendBucketsDeleteCall) Header() http.Header {
47639	if c.header_ == nil {
47640		c.header_ = make(http.Header)
47641	}
47642	return c.header_
47643}
47644
47645func (c *BackendBucketsDeleteCall) doRequest(alt string) (*http.Response, error) {
47646	reqHeaders := make(http.Header)
47647	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
47648	for k, v := range c.header_ {
47649		reqHeaders[k] = v
47650	}
47651	reqHeaders.Set("User-Agent", c.s.userAgent())
47652	var body io.Reader = nil
47653	c.urlParams_.Set("alt", alt)
47654	c.urlParams_.Set("prettyPrint", "false")
47655	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
47656	urls += "?" + c.urlParams_.Encode()
47657	req, err := http.NewRequest("DELETE", urls, body)
47658	if err != nil {
47659		return nil, err
47660	}
47661	req.Header = reqHeaders
47662	googleapi.Expand(req.URL, map[string]string{
47663		"project":       c.project,
47664		"backendBucket": c.backendBucket,
47665	})
47666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47667}
47668
47669// Do executes the "compute.backendBuckets.delete" call.
47670// Exactly one of *Operation or error will be non-nil. Any non-2xx
47671// status code is an error. Response headers are in either
47672// *Operation.ServerResponse.Header or (if a response was returned at
47673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47674// to check whether the returned error was because
47675// http.StatusNotModified was returned.
47676func (c *BackendBucketsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47677	gensupport.SetOptions(c.urlParams_, opts...)
47678	res, err := c.doRequest("json")
47679	if res != nil && res.StatusCode == http.StatusNotModified {
47680		if res.Body != nil {
47681			res.Body.Close()
47682		}
47683		return nil, &googleapi.Error{
47684			Code:   res.StatusCode,
47685			Header: res.Header,
47686		}
47687	}
47688	if err != nil {
47689		return nil, err
47690	}
47691	defer googleapi.CloseBody(res)
47692	if err := googleapi.CheckResponse(res); err != nil {
47693		return nil, err
47694	}
47695	ret := &Operation{
47696		ServerResponse: googleapi.ServerResponse{
47697			Header:         res.Header,
47698			HTTPStatusCode: res.StatusCode,
47699		},
47700	}
47701	target := &ret
47702	if err := gensupport.DecodeResponse(target, res); err != nil {
47703		return nil, err
47704	}
47705	return ret, nil
47706	// {
47707	//   "description": "Deletes the specified BackendBucket resource.",
47708	//   "httpMethod": "DELETE",
47709	//   "id": "compute.backendBuckets.delete",
47710	//   "parameterOrder": [
47711	//     "project",
47712	//     "backendBucket"
47713	//   ],
47714	//   "parameters": {
47715	//     "backendBucket": {
47716	//       "description": "Name of the BackendBucket resource to delete.",
47717	//       "location": "path",
47718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
47719	//       "required": true,
47720	//       "type": "string"
47721	//     },
47722	//     "project": {
47723	//       "description": "Project ID for this request.",
47724	//       "location": "path",
47725	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47726	//       "required": true,
47727	//       "type": "string"
47728	//     },
47729	//     "requestId": {
47730	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47731	//       "location": "query",
47732	//       "type": "string"
47733	//     }
47734	//   },
47735	//   "path": "{project}/global/backendBuckets/{backendBucket}",
47736	//   "response": {
47737	//     "$ref": "Operation"
47738	//   },
47739	//   "scopes": [
47740	//     "https://www.googleapis.com/auth/cloud-platform",
47741	//     "https://www.googleapis.com/auth/compute"
47742	//   ]
47743	// }
47744
47745}
47746
47747// method id "compute.backendBuckets.deleteSignedUrlKey":
47748
47749type BackendBucketsDeleteSignedUrlKeyCall struct {
47750	s             *Service
47751	project       string
47752	backendBucket string
47753	urlParams_    gensupport.URLParams
47754	ctx_          context.Context
47755	header_       http.Header
47756}
47757
47758// DeleteSignedUrlKey: Deletes a key for validating requests with signed
47759// URLs for this backend bucket.
47760func (r *BackendBucketsService) DeleteSignedUrlKey(project string, backendBucket string, keyName string) *BackendBucketsDeleteSignedUrlKeyCall {
47761	c := &BackendBucketsDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47762	c.project = project
47763	c.backendBucket = backendBucket
47764	c.urlParams_.Set("keyName", keyName)
47765	return c
47766}
47767
47768// RequestId sets the optional parameter "requestId": An optional
47769// request ID to identify requests. Specify a unique request ID so that
47770// if you must retry your request, the server will know to ignore the
47771// request if it has already been completed.
47772//
47773// For example, consider a situation where you make an initial request
47774// and the request times out. If you make the request again with the
47775// same request ID, the server can check if original operation with the
47776// same request ID was received, and if so, will ignore the second
47777// request. This prevents clients from accidentally creating duplicate
47778// commitments.
47779//
47780// The request ID must be a valid UUID with the exception that zero UUID
47781// is not supported (00000000-0000-0000-0000-000000000000).
47782func (c *BackendBucketsDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendBucketsDeleteSignedUrlKeyCall {
47783	c.urlParams_.Set("requestId", requestId)
47784	return c
47785}
47786
47787// Fields allows partial responses to be retrieved. See
47788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47789// for more information.
47790func (c *BackendBucketsDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendBucketsDeleteSignedUrlKeyCall {
47791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47792	return c
47793}
47794
47795// Context sets the context to be used in this call's Do method. Any
47796// pending HTTP request will be aborted if the provided context is
47797// canceled.
47798func (c *BackendBucketsDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendBucketsDeleteSignedUrlKeyCall {
47799	c.ctx_ = ctx
47800	return c
47801}
47802
47803// Header returns an http.Header that can be modified by the caller to
47804// add HTTP headers to the request.
47805func (c *BackendBucketsDeleteSignedUrlKeyCall) Header() http.Header {
47806	if c.header_ == nil {
47807		c.header_ = make(http.Header)
47808	}
47809	return c.header_
47810}
47811
47812func (c *BackendBucketsDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
47813	reqHeaders := make(http.Header)
47814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
47815	for k, v := range c.header_ {
47816		reqHeaders[k] = v
47817	}
47818	reqHeaders.Set("User-Agent", c.s.userAgent())
47819	var body io.Reader = nil
47820	c.urlParams_.Set("alt", alt)
47821	c.urlParams_.Set("prettyPrint", "false")
47822	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey")
47823	urls += "?" + c.urlParams_.Encode()
47824	req, err := http.NewRequest("POST", urls, body)
47825	if err != nil {
47826		return nil, err
47827	}
47828	req.Header = reqHeaders
47829	googleapi.Expand(req.URL, map[string]string{
47830		"project":       c.project,
47831		"backendBucket": c.backendBucket,
47832	})
47833	return gensupport.SendRequest(c.ctx_, c.s.client, req)
47834}
47835
47836// Do executes the "compute.backendBuckets.deleteSignedUrlKey" call.
47837// Exactly one of *Operation or error will be non-nil. Any non-2xx
47838// status code is an error. Response headers are in either
47839// *Operation.ServerResponse.Header or (if a response was returned at
47840// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
47841// to check whether the returned error was because
47842// http.StatusNotModified was returned.
47843func (c *BackendBucketsDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
47844	gensupport.SetOptions(c.urlParams_, opts...)
47845	res, err := c.doRequest("json")
47846	if res != nil && res.StatusCode == http.StatusNotModified {
47847		if res.Body != nil {
47848			res.Body.Close()
47849		}
47850		return nil, &googleapi.Error{
47851			Code:   res.StatusCode,
47852			Header: res.Header,
47853		}
47854	}
47855	if err != nil {
47856		return nil, err
47857	}
47858	defer googleapi.CloseBody(res)
47859	if err := googleapi.CheckResponse(res); err != nil {
47860		return nil, err
47861	}
47862	ret := &Operation{
47863		ServerResponse: googleapi.ServerResponse{
47864			Header:         res.Header,
47865			HTTPStatusCode: res.StatusCode,
47866		},
47867	}
47868	target := &ret
47869	if err := gensupport.DecodeResponse(target, res); err != nil {
47870		return nil, err
47871	}
47872	return ret, nil
47873	// {
47874	//   "description": "Deletes a key for validating requests with signed URLs for this backend bucket.",
47875	//   "httpMethod": "POST",
47876	//   "id": "compute.backendBuckets.deleteSignedUrlKey",
47877	//   "parameterOrder": [
47878	//     "project",
47879	//     "backendBucket",
47880	//     "keyName"
47881	//   ],
47882	//   "parameters": {
47883	//     "backendBucket": {
47884	//       "description": "Name of the BackendBucket resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
47885	//       "location": "path",
47886	//       "required": true,
47887	//       "type": "string"
47888	//     },
47889	//     "keyName": {
47890	//       "description": "The name of the Signed URL Key to delete.",
47891	//       "location": "query",
47892	//       "required": true,
47893	//       "type": "string"
47894	//     },
47895	//     "project": {
47896	//       "description": "Project ID for this request.",
47897	//       "location": "path",
47898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
47899	//       "required": true,
47900	//       "type": "string"
47901	//     },
47902	//     "requestId": {
47903	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
47904	//       "location": "query",
47905	//       "type": "string"
47906	//     }
47907	//   },
47908	//   "path": "{project}/global/backendBuckets/{backendBucket}/deleteSignedUrlKey",
47909	//   "response": {
47910	//     "$ref": "Operation"
47911	//   },
47912	//   "scopes": [
47913	//     "https://www.googleapis.com/auth/cloud-platform",
47914	//     "https://www.googleapis.com/auth/compute"
47915	//   ]
47916	// }
47917
47918}
47919
47920// method id "compute.backendBuckets.get":
47921
47922type BackendBucketsGetCall struct {
47923	s             *Service
47924	project       string
47925	backendBucket string
47926	urlParams_    gensupport.URLParams
47927	ifNoneMatch_  string
47928	ctx_          context.Context
47929	header_       http.Header
47930}
47931
47932// Get: Returns the specified BackendBucket resource. Gets a list of
47933// available backend buckets by making a list() request.
47934func (r *BackendBucketsService) Get(project string, backendBucket string) *BackendBucketsGetCall {
47935	c := &BackendBucketsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
47936	c.project = project
47937	c.backendBucket = backendBucket
47938	return c
47939}
47940
47941// Fields allows partial responses to be retrieved. See
47942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
47943// for more information.
47944func (c *BackendBucketsGetCall) Fields(s ...googleapi.Field) *BackendBucketsGetCall {
47945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
47946	return c
47947}
47948
47949// IfNoneMatch sets the optional parameter which makes the operation
47950// fail if the object's ETag matches the given value. This is useful for
47951// getting updates only after the object has changed since the last
47952// request. Use googleapi.IsNotModified to check whether the response
47953// error from Do is the result of In-None-Match.
47954func (c *BackendBucketsGetCall) IfNoneMatch(entityTag string) *BackendBucketsGetCall {
47955	c.ifNoneMatch_ = entityTag
47956	return c
47957}
47958
47959// Context sets the context to be used in this call's Do method. Any
47960// pending HTTP request will be aborted if the provided context is
47961// canceled.
47962func (c *BackendBucketsGetCall) Context(ctx context.Context) *BackendBucketsGetCall {
47963	c.ctx_ = ctx
47964	return c
47965}
47966
47967// Header returns an http.Header that can be modified by the caller to
47968// add HTTP headers to the request.
47969func (c *BackendBucketsGetCall) Header() http.Header {
47970	if c.header_ == nil {
47971		c.header_ = make(http.Header)
47972	}
47973	return c.header_
47974}
47975
47976func (c *BackendBucketsGetCall) doRequest(alt string) (*http.Response, error) {
47977	reqHeaders := make(http.Header)
47978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
47979	for k, v := range c.header_ {
47980		reqHeaders[k] = v
47981	}
47982	reqHeaders.Set("User-Agent", c.s.userAgent())
47983	if c.ifNoneMatch_ != "" {
47984		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
47985	}
47986	var body io.Reader = nil
47987	c.urlParams_.Set("alt", alt)
47988	c.urlParams_.Set("prettyPrint", "false")
47989	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
47990	urls += "?" + c.urlParams_.Encode()
47991	req, err := http.NewRequest("GET", urls, body)
47992	if err != nil {
47993		return nil, err
47994	}
47995	req.Header = reqHeaders
47996	googleapi.Expand(req.URL, map[string]string{
47997		"project":       c.project,
47998		"backendBucket": c.backendBucket,
47999	})
48000	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48001}
48002
48003// Do executes the "compute.backendBuckets.get" call.
48004// Exactly one of *BackendBucket or error will be non-nil. Any non-2xx
48005// status code is an error. Response headers are in either
48006// *BackendBucket.ServerResponse.Header or (if a response was returned
48007// at all) in error.(*googleapi.Error).Header. Use
48008// googleapi.IsNotModified to check whether the returned error was
48009// because http.StatusNotModified was returned.
48010func (c *BackendBucketsGetCall) Do(opts ...googleapi.CallOption) (*BackendBucket, error) {
48011	gensupport.SetOptions(c.urlParams_, opts...)
48012	res, err := c.doRequest("json")
48013	if res != nil && res.StatusCode == http.StatusNotModified {
48014		if res.Body != nil {
48015			res.Body.Close()
48016		}
48017		return nil, &googleapi.Error{
48018			Code:   res.StatusCode,
48019			Header: res.Header,
48020		}
48021	}
48022	if err != nil {
48023		return nil, err
48024	}
48025	defer googleapi.CloseBody(res)
48026	if err := googleapi.CheckResponse(res); err != nil {
48027		return nil, err
48028	}
48029	ret := &BackendBucket{
48030		ServerResponse: googleapi.ServerResponse{
48031			Header:         res.Header,
48032			HTTPStatusCode: res.StatusCode,
48033		},
48034	}
48035	target := &ret
48036	if err := gensupport.DecodeResponse(target, res); err != nil {
48037		return nil, err
48038	}
48039	return ret, nil
48040	// {
48041	//   "description": "Returns the specified BackendBucket resource. Gets a list of available backend buckets by making a list() request.",
48042	//   "httpMethod": "GET",
48043	//   "id": "compute.backendBuckets.get",
48044	//   "parameterOrder": [
48045	//     "project",
48046	//     "backendBucket"
48047	//   ],
48048	//   "parameters": {
48049	//     "backendBucket": {
48050	//       "description": "Name of the BackendBucket resource to return.",
48051	//       "location": "path",
48052	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48053	//       "required": true,
48054	//       "type": "string"
48055	//     },
48056	//     "project": {
48057	//       "description": "Project ID for this request.",
48058	//       "location": "path",
48059	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48060	//       "required": true,
48061	//       "type": "string"
48062	//     }
48063	//   },
48064	//   "path": "{project}/global/backendBuckets/{backendBucket}",
48065	//   "response": {
48066	//     "$ref": "BackendBucket"
48067	//   },
48068	//   "scopes": [
48069	//     "https://www.googleapis.com/auth/cloud-platform",
48070	//     "https://www.googleapis.com/auth/compute",
48071	//     "https://www.googleapis.com/auth/compute.readonly"
48072	//   ]
48073	// }
48074
48075}
48076
48077// method id "compute.backendBuckets.insert":
48078
48079type BackendBucketsInsertCall struct {
48080	s             *Service
48081	project       string
48082	backendbucket *BackendBucket
48083	urlParams_    gensupport.URLParams
48084	ctx_          context.Context
48085	header_       http.Header
48086}
48087
48088// Insert: Creates a BackendBucket resource in the specified project
48089// using the data included in the request.
48090func (r *BackendBucketsService) Insert(project string, backendbucket *BackendBucket) *BackendBucketsInsertCall {
48091	c := &BackendBucketsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48092	c.project = project
48093	c.backendbucket = backendbucket
48094	return c
48095}
48096
48097// RequestId sets the optional parameter "requestId": An optional
48098// request ID to identify requests. Specify a unique request ID so that
48099// if you must retry your request, the server will know to ignore the
48100// request if it has already been completed.
48101//
48102// For example, consider a situation where you make an initial request
48103// and the request times out. If you make the request again with the
48104// same request ID, the server can check if original operation with the
48105// same request ID was received, and if so, will ignore the second
48106// request. This prevents clients from accidentally creating duplicate
48107// commitments.
48108//
48109// The request ID must be a valid UUID with the exception that zero UUID
48110// is not supported (00000000-0000-0000-0000-000000000000).
48111func (c *BackendBucketsInsertCall) RequestId(requestId string) *BackendBucketsInsertCall {
48112	c.urlParams_.Set("requestId", requestId)
48113	return c
48114}
48115
48116// Fields allows partial responses to be retrieved. See
48117// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48118// for more information.
48119func (c *BackendBucketsInsertCall) Fields(s ...googleapi.Field) *BackendBucketsInsertCall {
48120	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48121	return c
48122}
48123
48124// Context sets the context to be used in this call's Do method. Any
48125// pending HTTP request will be aborted if the provided context is
48126// canceled.
48127func (c *BackendBucketsInsertCall) Context(ctx context.Context) *BackendBucketsInsertCall {
48128	c.ctx_ = ctx
48129	return c
48130}
48131
48132// Header returns an http.Header that can be modified by the caller to
48133// add HTTP headers to the request.
48134func (c *BackendBucketsInsertCall) Header() http.Header {
48135	if c.header_ == nil {
48136		c.header_ = make(http.Header)
48137	}
48138	return c.header_
48139}
48140
48141func (c *BackendBucketsInsertCall) doRequest(alt string) (*http.Response, error) {
48142	reqHeaders := make(http.Header)
48143	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
48144	for k, v := range c.header_ {
48145		reqHeaders[k] = v
48146	}
48147	reqHeaders.Set("User-Agent", c.s.userAgent())
48148	var body io.Reader = nil
48149	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
48150	if err != nil {
48151		return nil, err
48152	}
48153	reqHeaders.Set("Content-Type", "application/json")
48154	c.urlParams_.Set("alt", alt)
48155	c.urlParams_.Set("prettyPrint", "false")
48156	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
48157	urls += "?" + c.urlParams_.Encode()
48158	req, err := http.NewRequest("POST", urls, body)
48159	if err != nil {
48160		return nil, err
48161	}
48162	req.Header = reqHeaders
48163	googleapi.Expand(req.URL, map[string]string{
48164		"project": c.project,
48165	})
48166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48167}
48168
48169// Do executes the "compute.backendBuckets.insert" call.
48170// Exactly one of *Operation or error will be non-nil. Any non-2xx
48171// status code is an error. Response headers are in either
48172// *Operation.ServerResponse.Header or (if a response was returned at
48173// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48174// to check whether the returned error was because
48175// http.StatusNotModified was returned.
48176func (c *BackendBucketsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48177	gensupport.SetOptions(c.urlParams_, opts...)
48178	res, err := c.doRequest("json")
48179	if res != nil && res.StatusCode == http.StatusNotModified {
48180		if res.Body != nil {
48181			res.Body.Close()
48182		}
48183		return nil, &googleapi.Error{
48184			Code:   res.StatusCode,
48185			Header: res.Header,
48186		}
48187	}
48188	if err != nil {
48189		return nil, err
48190	}
48191	defer googleapi.CloseBody(res)
48192	if err := googleapi.CheckResponse(res); err != nil {
48193		return nil, err
48194	}
48195	ret := &Operation{
48196		ServerResponse: googleapi.ServerResponse{
48197			Header:         res.Header,
48198			HTTPStatusCode: res.StatusCode,
48199		},
48200	}
48201	target := &ret
48202	if err := gensupport.DecodeResponse(target, res); err != nil {
48203		return nil, err
48204	}
48205	return ret, nil
48206	// {
48207	//   "description": "Creates a BackendBucket resource in the specified project using the data included in the request.",
48208	//   "httpMethod": "POST",
48209	//   "id": "compute.backendBuckets.insert",
48210	//   "parameterOrder": [
48211	//     "project"
48212	//   ],
48213	//   "parameters": {
48214	//     "project": {
48215	//       "description": "Project ID for this request.",
48216	//       "location": "path",
48217	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48218	//       "required": true,
48219	//       "type": "string"
48220	//     },
48221	//     "requestId": {
48222	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48223	//       "location": "query",
48224	//       "type": "string"
48225	//     }
48226	//   },
48227	//   "path": "{project}/global/backendBuckets",
48228	//   "request": {
48229	//     "$ref": "BackendBucket"
48230	//   },
48231	//   "response": {
48232	//     "$ref": "Operation"
48233	//   },
48234	//   "scopes": [
48235	//     "https://www.googleapis.com/auth/cloud-platform",
48236	//     "https://www.googleapis.com/auth/compute"
48237	//   ]
48238	// }
48239
48240}
48241
48242// method id "compute.backendBuckets.list":
48243
48244type BackendBucketsListCall struct {
48245	s            *Service
48246	project      string
48247	urlParams_   gensupport.URLParams
48248	ifNoneMatch_ string
48249	ctx_         context.Context
48250	header_      http.Header
48251}
48252
48253// List: Retrieves the list of BackendBucket resources available to the
48254// specified project.
48255func (r *BackendBucketsService) List(project string) *BackendBucketsListCall {
48256	c := &BackendBucketsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48257	c.project = project
48258	return c
48259}
48260
48261// Filter sets the optional parameter "filter": A filter expression that
48262// filters resources listed in the response. The expression must specify
48263// the field name, a comparison operator, and the value that you want to
48264// use for filtering. The value must be a string, a number, or a
48265// boolean. The comparison operator must be either =, !=, >, or <.
48266//
48267// For example, if you are filtering Compute Engine instances, you can
48268// exclude instances named example-instance by specifying name !=
48269// example-instance.
48270//
48271// You can also filter nested fields. For example, you could specify
48272// scheduling.automaticRestart = false to include instances only if they
48273// are not scheduled for automatic restarts. You can use filtering on
48274// nested fields to filter based on resource labels.
48275//
48276// To filter on multiple expressions, provide each separate expression
48277// within parentheses. For example, (scheduling.automaticRestart = true)
48278// (cpuPlatform = "Intel Skylake"). By default, each expression is an
48279// AND expression. However, you can include AND and OR expressions
48280// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
48281// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
48282// true).
48283func (c *BackendBucketsListCall) Filter(filter string) *BackendBucketsListCall {
48284	c.urlParams_.Set("filter", filter)
48285	return c
48286}
48287
48288// MaxResults sets the optional parameter "maxResults": The maximum
48289// number of results per page that should be returned. If the number of
48290// available results is larger than maxResults, Compute Engine returns a
48291// nextPageToken that can be used to get the next page of results in
48292// subsequent list requests. Acceptable values are 0 to 500, inclusive.
48293// (Default: 500)
48294func (c *BackendBucketsListCall) MaxResults(maxResults int64) *BackendBucketsListCall {
48295	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
48296	return c
48297}
48298
48299// OrderBy sets the optional parameter "orderBy": Sorts list results by
48300// a certain order. By default, results are returned in alphanumerical
48301// order based on the resource name.
48302//
48303// You can also sort results in descending order based on the creation
48304// timestamp using orderBy="creationTimestamp desc". This sorts results
48305// based on the creationTimestamp field in reverse chronological order
48306// (newest result first). Use this to sort resources like operations so
48307// that the newest operation is returned first.
48308//
48309// Currently, only sorting by name or creationTimestamp desc is
48310// supported.
48311func (c *BackendBucketsListCall) OrderBy(orderBy string) *BackendBucketsListCall {
48312	c.urlParams_.Set("orderBy", orderBy)
48313	return c
48314}
48315
48316// PageToken sets the optional parameter "pageToken": Specifies a page
48317// token to use. Set pageToken to the nextPageToken returned by a
48318// previous list request to get the next page of results.
48319func (c *BackendBucketsListCall) PageToken(pageToken string) *BackendBucketsListCall {
48320	c.urlParams_.Set("pageToken", pageToken)
48321	return c
48322}
48323
48324// Fields allows partial responses to be retrieved. See
48325// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48326// for more information.
48327func (c *BackendBucketsListCall) Fields(s ...googleapi.Field) *BackendBucketsListCall {
48328	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48329	return c
48330}
48331
48332// IfNoneMatch sets the optional parameter which makes the operation
48333// fail if the object's ETag matches the given value. This is useful for
48334// getting updates only after the object has changed since the last
48335// request. Use googleapi.IsNotModified to check whether the response
48336// error from Do is the result of In-None-Match.
48337func (c *BackendBucketsListCall) IfNoneMatch(entityTag string) *BackendBucketsListCall {
48338	c.ifNoneMatch_ = entityTag
48339	return c
48340}
48341
48342// Context sets the context to be used in this call's Do method. Any
48343// pending HTTP request will be aborted if the provided context is
48344// canceled.
48345func (c *BackendBucketsListCall) Context(ctx context.Context) *BackendBucketsListCall {
48346	c.ctx_ = ctx
48347	return c
48348}
48349
48350// Header returns an http.Header that can be modified by the caller to
48351// add HTTP headers to the request.
48352func (c *BackendBucketsListCall) Header() http.Header {
48353	if c.header_ == nil {
48354		c.header_ = make(http.Header)
48355	}
48356	return c.header_
48357}
48358
48359func (c *BackendBucketsListCall) doRequest(alt string) (*http.Response, error) {
48360	reqHeaders := make(http.Header)
48361	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
48362	for k, v := range c.header_ {
48363		reqHeaders[k] = v
48364	}
48365	reqHeaders.Set("User-Agent", c.s.userAgent())
48366	if c.ifNoneMatch_ != "" {
48367		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
48368	}
48369	var body io.Reader = nil
48370	c.urlParams_.Set("alt", alt)
48371	c.urlParams_.Set("prettyPrint", "false")
48372	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets")
48373	urls += "?" + c.urlParams_.Encode()
48374	req, err := http.NewRequest("GET", urls, body)
48375	if err != nil {
48376		return nil, err
48377	}
48378	req.Header = reqHeaders
48379	googleapi.Expand(req.URL, map[string]string{
48380		"project": c.project,
48381	})
48382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48383}
48384
48385// Do executes the "compute.backendBuckets.list" call.
48386// Exactly one of *BackendBucketList or error will be non-nil. Any
48387// non-2xx status code is an error. Response headers are in either
48388// *BackendBucketList.ServerResponse.Header or (if a response was
48389// returned at all) in error.(*googleapi.Error).Header. Use
48390// googleapi.IsNotModified to check whether the returned error was
48391// because http.StatusNotModified was returned.
48392func (c *BackendBucketsListCall) Do(opts ...googleapi.CallOption) (*BackendBucketList, error) {
48393	gensupport.SetOptions(c.urlParams_, opts...)
48394	res, err := c.doRequest("json")
48395	if res != nil && res.StatusCode == http.StatusNotModified {
48396		if res.Body != nil {
48397			res.Body.Close()
48398		}
48399		return nil, &googleapi.Error{
48400			Code:   res.StatusCode,
48401			Header: res.Header,
48402		}
48403	}
48404	if err != nil {
48405		return nil, err
48406	}
48407	defer googleapi.CloseBody(res)
48408	if err := googleapi.CheckResponse(res); err != nil {
48409		return nil, err
48410	}
48411	ret := &BackendBucketList{
48412		ServerResponse: googleapi.ServerResponse{
48413			Header:         res.Header,
48414			HTTPStatusCode: res.StatusCode,
48415		},
48416	}
48417	target := &ret
48418	if err := gensupport.DecodeResponse(target, res); err != nil {
48419		return nil, err
48420	}
48421	return ret, nil
48422	// {
48423	//   "description": "Retrieves the list of BackendBucket resources available to the specified project.",
48424	//   "httpMethod": "GET",
48425	//   "id": "compute.backendBuckets.list",
48426	//   "parameterOrder": [
48427	//     "project"
48428	//   ],
48429	//   "parameters": {
48430	//     "filter": {
48431	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
48432	//       "location": "query",
48433	//       "type": "string"
48434	//     },
48435	//     "maxResults": {
48436	//       "default": "500",
48437	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
48438	//       "format": "uint32",
48439	//       "location": "query",
48440	//       "minimum": "0",
48441	//       "type": "integer"
48442	//     },
48443	//     "orderBy": {
48444	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
48445	//       "location": "query",
48446	//       "type": "string"
48447	//     },
48448	//     "pageToken": {
48449	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
48450	//       "location": "query",
48451	//       "type": "string"
48452	//     },
48453	//     "project": {
48454	//       "description": "Project ID for this request.",
48455	//       "location": "path",
48456	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48457	//       "required": true,
48458	//       "type": "string"
48459	//     }
48460	//   },
48461	//   "path": "{project}/global/backendBuckets",
48462	//   "response": {
48463	//     "$ref": "BackendBucketList"
48464	//   },
48465	//   "scopes": [
48466	//     "https://www.googleapis.com/auth/cloud-platform",
48467	//     "https://www.googleapis.com/auth/compute",
48468	//     "https://www.googleapis.com/auth/compute.readonly"
48469	//   ]
48470	// }
48471
48472}
48473
48474// Pages invokes f for each page of results.
48475// A non-nil error returned from f will halt the iteration.
48476// The provided context supersedes any context provided to the Context method.
48477func (c *BackendBucketsListCall) Pages(ctx context.Context, f func(*BackendBucketList) error) error {
48478	c.ctx_ = ctx
48479	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
48480	for {
48481		x, err := c.Do()
48482		if err != nil {
48483			return err
48484		}
48485		if err := f(x); err != nil {
48486			return err
48487		}
48488		if x.NextPageToken == "" {
48489			return nil
48490		}
48491		c.PageToken(x.NextPageToken)
48492	}
48493}
48494
48495// method id "compute.backendBuckets.patch":
48496
48497type BackendBucketsPatchCall struct {
48498	s             *Service
48499	project       string
48500	backendBucket string
48501	backendbucket *BackendBucket
48502	urlParams_    gensupport.URLParams
48503	ctx_          context.Context
48504	header_       http.Header
48505}
48506
48507// Patch: Updates the specified BackendBucket resource with the data
48508// included in the request. This method supports PATCH semantics and
48509// uses the JSON merge patch format and processing rules.
48510func (r *BackendBucketsService) Patch(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsPatchCall {
48511	c := &BackendBucketsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48512	c.project = project
48513	c.backendBucket = backendBucket
48514	c.backendbucket = backendbucket
48515	return c
48516}
48517
48518// RequestId sets the optional parameter "requestId": An optional
48519// request ID to identify requests. Specify a unique request ID so that
48520// if you must retry your request, the server will know to ignore the
48521// request if it has already been completed.
48522//
48523// For example, consider a situation where you make an initial request
48524// and the request times out. If you make the request again with the
48525// same request ID, the server can check if original operation with the
48526// same request ID was received, and if so, will ignore the second
48527// request. This prevents clients from accidentally creating duplicate
48528// commitments.
48529//
48530// The request ID must be a valid UUID with the exception that zero UUID
48531// is not supported (00000000-0000-0000-0000-000000000000).
48532func (c *BackendBucketsPatchCall) RequestId(requestId string) *BackendBucketsPatchCall {
48533	c.urlParams_.Set("requestId", requestId)
48534	return c
48535}
48536
48537// Fields allows partial responses to be retrieved. See
48538// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48539// for more information.
48540func (c *BackendBucketsPatchCall) Fields(s ...googleapi.Field) *BackendBucketsPatchCall {
48541	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48542	return c
48543}
48544
48545// Context sets the context to be used in this call's Do method. Any
48546// pending HTTP request will be aborted if the provided context is
48547// canceled.
48548func (c *BackendBucketsPatchCall) Context(ctx context.Context) *BackendBucketsPatchCall {
48549	c.ctx_ = ctx
48550	return c
48551}
48552
48553// Header returns an http.Header that can be modified by the caller to
48554// add HTTP headers to the request.
48555func (c *BackendBucketsPatchCall) Header() http.Header {
48556	if c.header_ == nil {
48557		c.header_ = make(http.Header)
48558	}
48559	return c.header_
48560}
48561
48562func (c *BackendBucketsPatchCall) doRequest(alt string) (*http.Response, error) {
48563	reqHeaders := make(http.Header)
48564	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
48565	for k, v := range c.header_ {
48566		reqHeaders[k] = v
48567	}
48568	reqHeaders.Set("User-Agent", c.s.userAgent())
48569	var body io.Reader = nil
48570	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
48571	if err != nil {
48572		return nil, err
48573	}
48574	reqHeaders.Set("Content-Type", "application/json")
48575	c.urlParams_.Set("alt", alt)
48576	c.urlParams_.Set("prettyPrint", "false")
48577	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
48578	urls += "?" + c.urlParams_.Encode()
48579	req, err := http.NewRequest("PATCH", urls, body)
48580	if err != nil {
48581		return nil, err
48582	}
48583	req.Header = reqHeaders
48584	googleapi.Expand(req.URL, map[string]string{
48585		"project":       c.project,
48586		"backendBucket": c.backendBucket,
48587	})
48588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48589}
48590
48591// Do executes the "compute.backendBuckets.patch" call.
48592// Exactly one of *Operation or error will be non-nil. Any non-2xx
48593// status code is an error. Response headers are in either
48594// *Operation.ServerResponse.Header or (if a response was returned at
48595// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48596// to check whether the returned error was because
48597// http.StatusNotModified was returned.
48598func (c *BackendBucketsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48599	gensupport.SetOptions(c.urlParams_, opts...)
48600	res, err := c.doRequest("json")
48601	if res != nil && res.StatusCode == http.StatusNotModified {
48602		if res.Body != nil {
48603			res.Body.Close()
48604		}
48605		return nil, &googleapi.Error{
48606			Code:   res.StatusCode,
48607			Header: res.Header,
48608		}
48609	}
48610	if err != nil {
48611		return nil, err
48612	}
48613	defer googleapi.CloseBody(res)
48614	if err := googleapi.CheckResponse(res); err != nil {
48615		return nil, err
48616	}
48617	ret := &Operation{
48618		ServerResponse: googleapi.ServerResponse{
48619			Header:         res.Header,
48620			HTTPStatusCode: res.StatusCode,
48621		},
48622	}
48623	target := &ret
48624	if err := gensupport.DecodeResponse(target, res); err != nil {
48625		return nil, err
48626	}
48627	return ret, nil
48628	// {
48629	//   "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.",
48630	//   "httpMethod": "PATCH",
48631	//   "id": "compute.backendBuckets.patch",
48632	//   "parameterOrder": [
48633	//     "project",
48634	//     "backendBucket"
48635	//   ],
48636	//   "parameters": {
48637	//     "backendBucket": {
48638	//       "description": "Name of the BackendBucket resource to patch.",
48639	//       "location": "path",
48640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48641	//       "required": true,
48642	//       "type": "string"
48643	//     },
48644	//     "project": {
48645	//       "description": "Project ID for this request.",
48646	//       "location": "path",
48647	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48648	//       "required": true,
48649	//       "type": "string"
48650	//     },
48651	//     "requestId": {
48652	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48653	//       "location": "query",
48654	//       "type": "string"
48655	//     }
48656	//   },
48657	//   "path": "{project}/global/backendBuckets/{backendBucket}",
48658	//   "request": {
48659	//     "$ref": "BackendBucket"
48660	//   },
48661	//   "response": {
48662	//     "$ref": "Operation"
48663	//   },
48664	//   "scopes": [
48665	//     "https://www.googleapis.com/auth/cloud-platform",
48666	//     "https://www.googleapis.com/auth/compute"
48667	//   ]
48668	// }
48669
48670}
48671
48672// method id "compute.backendBuckets.update":
48673
48674type BackendBucketsUpdateCall struct {
48675	s             *Service
48676	project       string
48677	backendBucket string
48678	backendbucket *BackendBucket
48679	urlParams_    gensupport.URLParams
48680	ctx_          context.Context
48681	header_       http.Header
48682}
48683
48684// Update: Updates the specified BackendBucket resource with the data
48685// included in the request.
48686func (r *BackendBucketsService) Update(project string, backendBucket string, backendbucket *BackendBucket) *BackendBucketsUpdateCall {
48687	c := &BackendBucketsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48688	c.project = project
48689	c.backendBucket = backendBucket
48690	c.backendbucket = backendbucket
48691	return c
48692}
48693
48694// RequestId sets the optional parameter "requestId": An optional
48695// request ID to identify requests. Specify a unique request ID so that
48696// if you must retry your request, the server will know to ignore the
48697// request if it has already been completed.
48698//
48699// For example, consider a situation where you make an initial request
48700// and the request times out. If you make the request again with the
48701// same request ID, the server can check if original operation with the
48702// same request ID was received, and if so, will ignore the second
48703// request. This prevents clients from accidentally creating duplicate
48704// commitments.
48705//
48706// The request ID must be a valid UUID with the exception that zero UUID
48707// is not supported (00000000-0000-0000-0000-000000000000).
48708func (c *BackendBucketsUpdateCall) RequestId(requestId string) *BackendBucketsUpdateCall {
48709	c.urlParams_.Set("requestId", requestId)
48710	return c
48711}
48712
48713// Fields allows partial responses to be retrieved. See
48714// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48715// for more information.
48716func (c *BackendBucketsUpdateCall) Fields(s ...googleapi.Field) *BackendBucketsUpdateCall {
48717	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48718	return c
48719}
48720
48721// Context sets the context to be used in this call's Do method. Any
48722// pending HTTP request will be aborted if the provided context is
48723// canceled.
48724func (c *BackendBucketsUpdateCall) Context(ctx context.Context) *BackendBucketsUpdateCall {
48725	c.ctx_ = ctx
48726	return c
48727}
48728
48729// Header returns an http.Header that can be modified by the caller to
48730// add HTTP headers to the request.
48731func (c *BackendBucketsUpdateCall) Header() http.Header {
48732	if c.header_ == nil {
48733		c.header_ = make(http.Header)
48734	}
48735	return c.header_
48736}
48737
48738func (c *BackendBucketsUpdateCall) doRequest(alt string) (*http.Response, error) {
48739	reqHeaders := make(http.Header)
48740	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
48741	for k, v := range c.header_ {
48742		reqHeaders[k] = v
48743	}
48744	reqHeaders.Set("User-Agent", c.s.userAgent())
48745	var body io.Reader = nil
48746	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendbucket)
48747	if err != nil {
48748		return nil, err
48749	}
48750	reqHeaders.Set("Content-Type", "application/json")
48751	c.urlParams_.Set("alt", alt)
48752	c.urlParams_.Set("prettyPrint", "false")
48753	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendBuckets/{backendBucket}")
48754	urls += "?" + c.urlParams_.Encode()
48755	req, err := http.NewRequest("PUT", urls, body)
48756	if err != nil {
48757		return nil, err
48758	}
48759	req.Header = reqHeaders
48760	googleapi.Expand(req.URL, map[string]string{
48761		"project":       c.project,
48762		"backendBucket": c.backendBucket,
48763	})
48764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48765}
48766
48767// Do executes the "compute.backendBuckets.update" call.
48768// Exactly one of *Operation or error will be non-nil. Any non-2xx
48769// status code is an error. Response headers are in either
48770// *Operation.ServerResponse.Header or (if a response was returned at
48771// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48772// to check whether the returned error was because
48773// http.StatusNotModified was returned.
48774func (c *BackendBucketsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48775	gensupport.SetOptions(c.urlParams_, opts...)
48776	res, err := c.doRequest("json")
48777	if res != nil && res.StatusCode == http.StatusNotModified {
48778		if res.Body != nil {
48779			res.Body.Close()
48780		}
48781		return nil, &googleapi.Error{
48782			Code:   res.StatusCode,
48783			Header: res.Header,
48784		}
48785	}
48786	if err != nil {
48787		return nil, err
48788	}
48789	defer googleapi.CloseBody(res)
48790	if err := googleapi.CheckResponse(res); err != nil {
48791		return nil, err
48792	}
48793	ret := &Operation{
48794		ServerResponse: googleapi.ServerResponse{
48795			Header:         res.Header,
48796			HTTPStatusCode: res.StatusCode,
48797		},
48798	}
48799	target := &ret
48800	if err := gensupport.DecodeResponse(target, res); err != nil {
48801		return nil, err
48802	}
48803	return ret, nil
48804	// {
48805	//   "description": "Updates the specified BackendBucket resource with the data included in the request.",
48806	//   "httpMethod": "PUT",
48807	//   "id": "compute.backendBuckets.update",
48808	//   "parameterOrder": [
48809	//     "project",
48810	//     "backendBucket"
48811	//   ],
48812	//   "parameters": {
48813	//     "backendBucket": {
48814	//       "description": "Name of the BackendBucket resource to update.",
48815	//       "location": "path",
48816	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
48817	//       "required": true,
48818	//       "type": "string"
48819	//     },
48820	//     "project": {
48821	//       "description": "Project ID for this request.",
48822	//       "location": "path",
48823	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48824	//       "required": true,
48825	//       "type": "string"
48826	//     },
48827	//     "requestId": {
48828	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
48829	//       "location": "query",
48830	//       "type": "string"
48831	//     }
48832	//   },
48833	//   "path": "{project}/global/backendBuckets/{backendBucket}",
48834	//   "request": {
48835	//     "$ref": "BackendBucket"
48836	//   },
48837	//   "response": {
48838	//     "$ref": "Operation"
48839	//   },
48840	//   "scopes": [
48841	//     "https://www.googleapis.com/auth/cloud-platform",
48842	//     "https://www.googleapis.com/auth/compute"
48843	//   ]
48844	// }
48845
48846}
48847
48848// method id "compute.backendServices.addSignedUrlKey":
48849
48850type BackendServicesAddSignedUrlKeyCall struct {
48851	s              *Service
48852	project        string
48853	backendService string
48854	signedurlkey   *SignedUrlKey
48855	urlParams_     gensupport.URLParams
48856	ctx_           context.Context
48857	header_        http.Header
48858}
48859
48860// AddSignedUrlKey: Adds a key for validating requests with signed URLs
48861// for this backend service.
48862func (r *BackendServicesService) AddSignedUrlKey(project string, backendService string, signedurlkey *SignedUrlKey) *BackendServicesAddSignedUrlKeyCall {
48863	c := &BackendServicesAddSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
48864	c.project = project
48865	c.backendService = backendService
48866	c.signedurlkey = signedurlkey
48867	return c
48868}
48869
48870// RequestId sets the optional parameter "requestId": An optional
48871// request ID to identify requests. Specify a unique request ID so that
48872// if you must retry your request, the server will know to ignore the
48873// request if it has already been completed.
48874//
48875// For example, consider a situation where you make an initial request
48876// and the request times out. If you make the request again with the
48877// same request ID, the server can check if original operation with the
48878// same request ID was received, and if so, will ignore the second
48879// request. This prevents clients from accidentally creating duplicate
48880// commitments.
48881//
48882// The request ID must be a valid UUID with the exception that zero UUID
48883// is not supported (00000000-0000-0000-0000-000000000000).
48884func (c *BackendServicesAddSignedUrlKeyCall) RequestId(requestId string) *BackendServicesAddSignedUrlKeyCall {
48885	c.urlParams_.Set("requestId", requestId)
48886	return c
48887}
48888
48889// Fields allows partial responses to be retrieved. See
48890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
48891// for more information.
48892func (c *BackendServicesAddSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesAddSignedUrlKeyCall {
48893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
48894	return c
48895}
48896
48897// Context sets the context to be used in this call's Do method. Any
48898// pending HTTP request will be aborted if the provided context is
48899// canceled.
48900func (c *BackendServicesAddSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesAddSignedUrlKeyCall {
48901	c.ctx_ = ctx
48902	return c
48903}
48904
48905// Header returns an http.Header that can be modified by the caller to
48906// add HTTP headers to the request.
48907func (c *BackendServicesAddSignedUrlKeyCall) Header() http.Header {
48908	if c.header_ == nil {
48909		c.header_ = make(http.Header)
48910	}
48911	return c.header_
48912}
48913
48914func (c *BackendServicesAddSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
48915	reqHeaders := make(http.Header)
48916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
48917	for k, v := range c.header_ {
48918		reqHeaders[k] = v
48919	}
48920	reqHeaders.Set("User-Agent", c.s.userAgent())
48921	var body io.Reader = nil
48922	body, err := googleapi.WithoutDataWrapper.JSONReader(c.signedurlkey)
48923	if err != nil {
48924		return nil, err
48925	}
48926	reqHeaders.Set("Content-Type", "application/json")
48927	c.urlParams_.Set("alt", alt)
48928	c.urlParams_.Set("prettyPrint", "false")
48929	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/addSignedUrlKey")
48930	urls += "?" + c.urlParams_.Encode()
48931	req, err := http.NewRequest("POST", urls, body)
48932	if err != nil {
48933		return nil, err
48934	}
48935	req.Header = reqHeaders
48936	googleapi.Expand(req.URL, map[string]string{
48937		"project":        c.project,
48938		"backendService": c.backendService,
48939	})
48940	return gensupport.SendRequest(c.ctx_, c.s.client, req)
48941}
48942
48943// Do executes the "compute.backendServices.addSignedUrlKey" call.
48944// Exactly one of *Operation or error will be non-nil. Any non-2xx
48945// status code is an error. Response headers are in either
48946// *Operation.ServerResponse.Header or (if a response was returned at
48947// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
48948// to check whether the returned error was because
48949// http.StatusNotModified was returned.
48950func (c *BackendServicesAddSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
48951	gensupport.SetOptions(c.urlParams_, opts...)
48952	res, err := c.doRequest("json")
48953	if res != nil && res.StatusCode == http.StatusNotModified {
48954		if res.Body != nil {
48955			res.Body.Close()
48956		}
48957		return nil, &googleapi.Error{
48958			Code:   res.StatusCode,
48959			Header: res.Header,
48960		}
48961	}
48962	if err != nil {
48963		return nil, err
48964	}
48965	defer googleapi.CloseBody(res)
48966	if err := googleapi.CheckResponse(res); err != nil {
48967		return nil, err
48968	}
48969	ret := &Operation{
48970		ServerResponse: googleapi.ServerResponse{
48971			Header:         res.Header,
48972			HTTPStatusCode: res.StatusCode,
48973		},
48974	}
48975	target := &ret
48976	if err := gensupport.DecodeResponse(target, res); err != nil {
48977		return nil, err
48978	}
48979	return ret, nil
48980	// {
48981	//   "description": "Adds a key for validating requests with signed URLs for this backend service.",
48982	//   "httpMethod": "POST",
48983	//   "id": "compute.backendServices.addSignedUrlKey",
48984	//   "parameterOrder": [
48985	//     "project",
48986	//     "backendService"
48987	//   ],
48988	//   "parameters": {
48989	//     "backendService": {
48990	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
48991	//       "location": "path",
48992	//       "required": true,
48993	//       "type": "string"
48994	//     },
48995	//     "project": {
48996	//       "description": "Project ID for this request.",
48997	//       "location": "path",
48998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
48999	//       "required": true,
49000	//       "type": "string"
49001	//     },
49002	//     "requestId": {
49003	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49004	//       "location": "query",
49005	//       "type": "string"
49006	//     }
49007	//   },
49008	//   "path": "{project}/global/backendServices/{backendService}/addSignedUrlKey",
49009	//   "request": {
49010	//     "$ref": "SignedUrlKey"
49011	//   },
49012	//   "response": {
49013	//     "$ref": "Operation"
49014	//   },
49015	//   "scopes": [
49016	//     "https://www.googleapis.com/auth/cloud-platform",
49017	//     "https://www.googleapis.com/auth/compute"
49018	//   ]
49019	// }
49020
49021}
49022
49023// method id "compute.backendServices.aggregatedList":
49024
49025type BackendServicesAggregatedListCall struct {
49026	s            *Service
49027	project      string
49028	urlParams_   gensupport.URLParams
49029	ifNoneMatch_ string
49030	ctx_         context.Context
49031	header_      http.Header
49032}
49033
49034// AggregatedList: Retrieves the list of all BackendService resources,
49035// regional and global, available to the specified project.
49036func (r *BackendServicesService) AggregatedList(project string) *BackendServicesAggregatedListCall {
49037	c := &BackendServicesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49038	c.project = project
49039	return c
49040}
49041
49042// Filter sets the optional parameter "filter": A filter expression that
49043// filters resources listed in the response. The expression must specify
49044// the field name, a comparison operator, and the value that you want to
49045// use for filtering. The value must be a string, a number, or a
49046// boolean. The comparison operator must be either =, !=, >, or <.
49047//
49048// For example, if you are filtering Compute Engine instances, you can
49049// exclude instances named example-instance by specifying name !=
49050// example-instance.
49051//
49052// You can also filter nested fields. For example, you could specify
49053// scheduling.automaticRestart = false to include instances only if they
49054// are not scheduled for automatic restarts. You can use filtering on
49055// nested fields to filter based on resource labels.
49056//
49057// To filter on multiple expressions, provide each separate expression
49058// within parentheses. For example, (scheduling.automaticRestart = true)
49059// (cpuPlatform = "Intel Skylake"). By default, each expression is an
49060// AND expression. However, you can include AND and OR expressions
49061// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
49062// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
49063// true).
49064func (c *BackendServicesAggregatedListCall) Filter(filter string) *BackendServicesAggregatedListCall {
49065	c.urlParams_.Set("filter", filter)
49066	return c
49067}
49068
49069// IncludeAllScopes sets the optional parameter "includeAllScopes":
49070// Indicates whether every visible scope for each scope type (zone,
49071// region, global) should be included in the response. For new resource
49072// types added after this field, the flag has no effect as new resource
49073// types will always include every visible scope for each scope type in
49074// response. For resource types which predate this field, if this flag
49075// is omitted or false, only scopes of the scope types where the
49076// resource type is expected to be found will be included.
49077func (c *BackendServicesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *BackendServicesAggregatedListCall {
49078	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
49079	return c
49080}
49081
49082// MaxResults sets the optional parameter "maxResults": The maximum
49083// number of results per page that should be returned. If the number of
49084// available results is larger than maxResults, Compute Engine returns a
49085// nextPageToken that can be used to get the next page of results in
49086// subsequent list requests. Acceptable values are 0 to 500, inclusive.
49087// (Default: 500)
49088func (c *BackendServicesAggregatedListCall) MaxResults(maxResults int64) *BackendServicesAggregatedListCall {
49089	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
49090	return c
49091}
49092
49093// OrderBy sets the optional parameter "orderBy": Sorts list results by
49094// a certain order. By default, results are returned in alphanumerical
49095// order based on the resource name.
49096//
49097// You can also sort results in descending order based on the creation
49098// timestamp using orderBy="creationTimestamp desc". This sorts results
49099// based on the creationTimestamp field in reverse chronological order
49100// (newest result first). Use this to sort resources like operations so
49101// that the newest operation is returned first.
49102//
49103// Currently, only sorting by name or creationTimestamp desc is
49104// supported.
49105func (c *BackendServicesAggregatedListCall) OrderBy(orderBy string) *BackendServicesAggregatedListCall {
49106	c.urlParams_.Set("orderBy", orderBy)
49107	return c
49108}
49109
49110// PageToken sets the optional parameter "pageToken": Specifies a page
49111// token to use. Set pageToken to the nextPageToken returned by a
49112// previous list request to get the next page of results.
49113func (c *BackendServicesAggregatedListCall) PageToken(pageToken string) *BackendServicesAggregatedListCall {
49114	c.urlParams_.Set("pageToken", pageToken)
49115	return c
49116}
49117
49118// Fields allows partial responses to be retrieved. See
49119// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49120// for more information.
49121func (c *BackendServicesAggregatedListCall) Fields(s ...googleapi.Field) *BackendServicesAggregatedListCall {
49122	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49123	return c
49124}
49125
49126// IfNoneMatch sets the optional parameter which makes the operation
49127// fail if the object's ETag matches the given value. This is useful for
49128// getting updates only after the object has changed since the last
49129// request. Use googleapi.IsNotModified to check whether the response
49130// error from Do is the result of In-None-Match.
49131func (c *BackendServicesAggregatedListCall) IfNoneMatch(entityTag string) *BackendServicesAggregatedListCall {
49132	c.ifNoneMatch_ = entityTag
49133	return c
49134}
49135
49136// Context sets the context to be used in this call's Do method. Any
49137// pending HTTP request will be aborted if the provided context is
49138// canceled.
49139func (c *BackendServicesAggregatedListCall) Context(ctx context.Context) *BackendServicesAggregatedListCall {
49140	c.ctx_ = ctx
49141	return c
49142}
49143
49144// Header returns an http.Header that can be modified by the caller to
49145// add HTTP headers to the request.
49146func (c *BackendServicesAggregatedListCall) Header() http.Header {
49147	if c.header_ == nil {
49148		c.header_ = make(http.Header)
49149	}
49150	return c.header_
49151}
49152
49153func (c *BackendServicesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
49154	reqHeaders := make(http.Header)
49155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49156	for k, v := range c.header_ {
49157		reqHeaders[k] = v
49158	}
49159	reqHeaders.Set("User-Agent", c.s.userAgent())
49160	if c.ifNoneMatch_ != "" {
49161		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49162	}
49163	var body io.Reader = nil
49164	c.urlParams_.Set("alt", alt)
49165	c.urlParams_.Set("prettyPrint", "false")
49166	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/backendServices")
49167	urls += "?" + c.urlParams_.Encode()
49168	req, err := http.NewRequest("GET", urls, body)
49169	if err != nil {
49170		return nil, err
49171	}
49172	req.Header = reqHeaders
49173	googleapi.Expand(req.URL, map[string]string{
49174		"project": c.project,
49175	})
49176	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49177}
49178
49179// Do executes the "compute.backendServices.aggregatedList" call.
49180// Exactly one of *BackendServiceAggregatedList or error will be
49181// non-nil. Any non-2xx status code is an error. Response headers are in
49182// either *BackendServiceAggregatedList.ServerResponse.Header or (if a
49183// response was returned at all) in error.(*googleapi.Error).Header. Use
49184// googleapi.IsNotModified to check whether the returned error was
49185// because http.StatusNotModified was returned.
49186func (c *BackendServicesAggregatedListCall) Do(opts ...googleapi.CallOption) (*BackendServiceAggregatedList, error) {
49187	gensupport.SetOptions(c.urlParams_, opts...)
49188	res, err := c.doRequest("json")
49189	if res != nil && res.StatusCode == http.StatusNotModified {
49190		if res.Body != nil {
49191			res.Body.Close()
49192		}
49193		return nil, &googleapi.Error{
49194			Code:   res.StatusCode,
49195			Header: res.Header,
49196		}
49197	}
49198	if err != nil {
49199		return nil, err
49200	}
49201	defer googleapi.CloseBody(res)
49202	if err := googleapi.CheckResponse(res); err != nil {
49203		return nil, err
49204	}
49205	ret := &BackendServiceAggregatedList{
49206		ServerResponse: googleapi.ServerResponse{
49207			Header:         res.Header,
49208			HTTPStatusCode: res.StatusCode,
49209		},
49210	}
49211	target := &ret
49212	if err := gensupport.DecodeResponse(target, res); err != nil {
49213		return nil, err
49214	}
49215	return ret, nil
49216	// {
49217	//   "description": "Retrieves the list of all BackendService resources, regional and global, available to the specified project.",
49218	//   "httpMethod": "GET",
49219	//   "id": "compute.backendServices.aggregatedList",
49220	//   "parameterOrder": [
49221	//     "project"
49222	//   ],
49223	//   "parameters": {
49224	//     "filter": {
49225	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
49226	//       "location": "query",
49227	//       "type": "string"
49228	//     },
49229	//     "includeAllScopes": {
49230	//       "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.",
49231	//       "location": "query",
49232	//       "type": "boolean"
49233	//     },
49234	//     "maxResults": {
49235	//       "default": "500",
49236	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
49237	//       "format": "uint32",
49238	//       "location": "query",
49239	//       "minimum": "0",
49240	//       "type": "integer"
49241	//     },
49242	//     "orderBy": {
49243	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
49244	//       "location": "query",
49245	//       "type": "string"
49246	//     },
49247	//     "pageToken": {
49248	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
49249	//       "location": "query",
49250	//       "type": "string"
49251	//     },
49252	//     "project": {
49253	//       "description": "Name of the project scoping this request.",
49254	//       "location": "path",
49255	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49256	//       "required": true,
49257	//       "type": "string"
49258	//     }
49259	//   },
49260	//   "path": "{project}/aggregated/backendServices",
49261	//   "response": {
49262	//     "$ref": "BackendServiceAggregatedList"
49263	//   },
49264	//   "scopes": [
49265	//     "https://www.googleapis.com/auth/cloud-platform",
49266	//     "https://www.googleapis.com/auth/compute",
49267	//     "https://www.googleapis.com/auth/compute.readonly"
49268	//   ]
49269	// }
49270
49271}
49272
49273// Pages invokes f for each page of results.
49274// A non-nil error returned from f will halt the iteration.
49275// The provided context supersedes any context provided to the Context method.
49276func (c *BackendServicesAggregatedListCall) Pages(ctx context.Context, f func(*BackendServiceAggregatedList) error) error {
49277	c.ctx_ = ctx
49278	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
49279	for {
49280		x, err := c.Do()
49281		if err != nil {
49282			return err
49283		}
49284		if err := f(x); err != nil {
49285			return err
49286		}
49287		if x.NextPageToken == "" {
49288			return nil
49289		}
49290		c.PageToken(x.NextPageToken)
49291	}
49292}
49293
49294// method id "compute.backendServices.delete":
49295
49296type BackendServicesDeleteCall struct {
49297	s              *Service
49298	project        string
49299	backendService string
49300	urlParams_     gensupport.URLParams
49301	ctx_           context.Context
49302	header_        http.Header
49303}
49304
49305// Delete: Deletes the specified BackendService resource.
49306// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/delete
49307func (r *BackendServicesService) Delete(project string, backendService string) *BackendServicesDeleteCall {
49308	c := &BackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49309	c.project = project
49310	c.backendService = backendService
49311	return c
49312}
49313
49314// RequestId sets the optional parameter "requestId": An optional
49315// request ID to identify requests. Specify a unique request ID so that
49316// if you must retry your request, the server will know to ignore the
49317// request if it has already been completed.
49318//
49319// For example, consider a situation where you make an initial request
49320// and the request times out. If you make the request again with the
49321// same request ID, the server can check if original operation with the
49322// same request ID was received, and if so, will ignore the second
49323// request. This prevents clients from accidentally creating duplicate
49324// commitments.
49325//
49326// The request ID must be a valid UUID with the exception that zero UUID
49327// is not supported (00000000-0000-0000-0000-000000000000).
49328func (c *BackendServicesDeleteCall) RequestId(requestId string) *BackendServicesDeleteCall {
49329	c.urlParams_.Set("requestId", requestId)
49330	return c
49331}
49332
49333// Fields allows partial responses to be retrieved. See
49334// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49335// for more information.
49336func (c *BackendServicesDeleteCall) Fields(s ...googleapi.Field) *BackendServicesDeleteCall {
49337	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49338	return c
49339}
49340
49341// Context sets the context to be used in this call's Do method. Any
49342// pending HTTP request will be aborted if the provided context is
49343// canceled.
49344func (c *BackendServicesDeleteCall) Context(ctx context.Context) *BackendServicesDeleteCall {
49345	c.ctx_ = ctx
49346	return c
49347}
49348
49349// Header returns an http.Header that can be modified by the caller to
49350// add HTTP headers to the request.
49351func (c *BackendServicesDeleteCall) Header() http.Header {
49352	if c.header_ == nil {
49353		c.header_ = make(http.Header)
49354	}
49355	return c.header_
49356}
49357
49358func (c *BackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
49359	reqHeaders := make(http.Header)
49360	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49361	for k, v := range c.header_ {
49362		reqHeaders[k] = v
49363	}
49364	reqHeaders.Set("User-Agent", c.s.userAgent())
49365	var body io.Reader = nil
49366	c.urlParams_.Set("alt", alt)
49367	c.urlParams_.Set("prettyPrint", "false")
49368	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
49369	urls += "?" + c.urlParams_.Encode()
49370	req, err := http.NewRequest("DELETE", urls, body)
49371	if err != nil {
49372		return nil, err
49373	}
49374	req.Header = reqHeaders
49375	googleapi.Expand(req.URL, map[string]string{
49376		"project":        c.project,
49377		"backendService": c.backendService,
49378	})
49379	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49380}
49381
49382// Do executes the "compute.backendServices.delete" call.
49383// Exactly one of *Operation or error will be non-nil. Any non-2xx
49384// status code is an error. Response headers are in either
49385// *Operation.ServerResponse.Header or (if a response was returned at
49386// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49387// to check whether the returned error was because
49388// http.StatusNotModified was returned.
49389func (c *BackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49390	gensupport.SetOptions(c.urlParams_, opts...)
49391	res, err := c.doRequest("json")
49392	if res != nil && res.StatusCode == http.StatusNotModified {
49393		if res.Body != nil {
49394			res.Body.Close()
49395		}
49396		return nil, &googleapi.Error{
49397			Code:   res.StatusCode,
49398			Header: res.Header,
49399		}
49400	}
49401	if err != nil {
49402		return nil, err
49403	}
49404	defer googleapi.CloseBody(res)
49405	if err := googleapi.CheckResponse(res); err != nil {
49406		return nil, err
49407	}
49408	ret := &Operation{
49409		ServerResponse: googleapi.ServerResponse{
49410			Header:         res.Header,
49411			HTTPStatusCode: res.StatusCode,
49412		},
49413	}
49414	target := &ret
49415	if err := gensupport.DecodeResponse(target, res); err != nil {
49416		return nil, err
49417	}
49418	return ret, nil
49419	// {
49420	//   "description": "Deletes the specified BackendService resource.",
49421	//   "httpMethod": "DELETE",
49422	//   "id": "compute.backendServices.delete",
49423	//   "parameterOrder": [
49424	//     "project",
49425	//     "backendService"
49426	//   ],
49427	//   "parameters": {
49428	//     "backendService": {
49429	//       "description": "Name of the BackendService resource to delete.",
49430	//       "location": "path",
49431	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49432	//       "required": true,
49433	//       "type": "string"
49434	//     },
49435	//     "project": {
49436	//       "description": "Project ID for this request.",
49437	//       "location": "path",
49438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49439	//       "required": true,
49440	//       "type": "string"
49441	//     },
49442	//     "requestId": {
49443	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49444	//       "location": "query",
49445	//       "type": "string"
49446	//     }
49447	//   },
49448	//   "path": "{project}/global/backendServices/{backendService}",
49449	//   "response": {
49450	//     "$ref": "Operation"
49451	//   },
49452	//   "scopes": [
49453	//     "https://www.googleapis.com/auth/cloud-platform",
49454	//     "https://www.googleapis.com/auth/compute"
49455	//   ]
49456	// }
49457
49458}
49459
49460// method id "compute.backendServices.deleteSignedUrlKey":
49461
49462type BackendServicesDeleteSignedUrlKeyCall struct {
49463	s              *Service
49464	project        string
49465	backendService string
49466	urlParams_     gensupport.URLParams
49467	ctx_           context.Context
49468	header_        http.Header
49469}
49470
49471// DeleteSignedUrlKey: Deletes a key for validating requests with signed
49472// URLs for this backend service.
49473func (r *BackendServicesService) DeleteSignedUrlKey(project string, backendService string, keyName string) *BackendServicesDeleteSignedUrlKeyCall {
49474	c := &BackendServicesDeleteSignedUrlKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49475	c.project = project
49476	c.backendService = backendService
49477	c.urlParams_.Set("keyName", keyName)
49478	return c
49479}
49480
49481// RequestId sets the optional parameter "requestId": An optional
49482// request ID to identify requests. Specify a unique request ID so that
49483// if you must retry your request, the server will know to ignore the
49484// request if it has already been completed.
49485//
49486// For example, consider a situation where you make an initial request
49487// and the request times out. If you make the request again with the
49488// same request ID, the server can check if original operation with the
49489// same request ID was received, and if so, will ignore the second
49490// request. This prevents clients from accidentally creating duplicate
49491// commitments.
49492//
49493// The request ID must be a valid UUID with the exception that zero UUID
49494// is not supported (00000000-0000-0000-0000-000000000000).
49495func (c *BackendServicesDeleteSignedUrlKeyCall) RequestId(requestId string) *BackendServicesDeleteSignedUrlKeyCall {
49496	c.urlParams_.Set("requestId", requestId)
49497	return c
49498}
49499
49500// Fields allows partial responses to be retrieved. See
49501// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49502// for more information.
49503func (c *BackendServicesDeleteSignedUrlKeyCall) Fields(s ...googleapi.Field) *BackendServicesDeleteSignedUrlKeyCall {
49504	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49505	return c
49506}
49507
49508// Context sets the context to be used in this call's Do method. Any
49509// pending HTTP request will be aborted if the provided context is
49510// canceled.
49511func (c *BackendServicesDeleteSignedUrlKeyCall) Context(ctx context.Context) *BackendServicesDeleteSignedUrlKeyCall {
49512	c.ctx_ = ctx
49513	return c
49514}
49515
49516// Header returns an http.Header that can be modified by the caller to
49517// add HTTP headers to the request.
49518func (c *BackendServicesDeleteSignedUrlKeyCall) Header() http.Header {
49519	if c.header_ == nil {
49520		c.header_ = make(http.Header)
49521	}
49522	return c.header_
49523}
49524
49525func (c *BackendServicesDeleteSignedUrlKeyCall) doRequest(alt string) (*http.Response, error) {
49526	reqHeaders := make(http.Header)
49527	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49528	for k, v := range c.header_ {
49529		reqHeaders[k] = v
49530	}
49531	reqHeaders.Set("User-Agent", c.s.userAgent())
49532	var body io.Reader = nil
49533	c.urlParams_.Set("alt", alt)
49534	c.urlParams_.Set("prettyPrint", "false")
49535	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/deleteSignedUrlKey")
49536	urls += "?" + c.urlParams_.Encode()
49537	req, err := http.NewRequest("POST", urls, body)
49538	if err != nil {
49539		return nil, err
49540	}
49541	req.Header = reqHeaders
49542	googleapi.Expand(req.URL, map[string]string{
49543		"project":        c.project,
49544		"backendService": c.backendService,
49545	})
49546	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49547}
49548
49549// Do executes the "compute.backendServices.deleteSignedUrlKey" call.
49550// Exactly one of *Operation or error will be non-nil. Any non-2xx
49551// status code is an error. Response headers are in either
49552// *Operation.ServerResponse.Header or (if a response was returned at
49553// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
49554// to check whether the returned error was because
49555// http.StatusNotModified was returned.
49556func (c *BackendServicesDeleteSignedUrlKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
49557	gensupport.SetOptions(c.urlParams_, opts...)
49558	res, err := c.doRequest("json")
49559	if res != nil && res.StatusCode == http.StatusNotModified {
49560		if res.Body != nil {
49561			res.Body.Close()
49562		}
49563		return nil, &googleapi.Error{
49564			Code:   res.StatusCode,
49565			Header: res.Header,
49566		}
49567	}
49568	if err != nil {
49569		return nil, err
49570	}
49571	defer googleapi.CloseBody(res)
49572	if err := googleapi.CheckResponse(res); err != nil {
49573		return nil, err
49574	}
49575	ret := &Operation{
49576		ServerResponse: googleapi.ServerResponse{
49577			Header:         res.Header,
49578			HTTPStatusCode: res.StatusCode,
49579		},
49580	}
49581	target := &ret
49582	if err := gensupport.DecodeResponse(target, res); err != nil {
49583		return nil, err
49584	}
49585	return ret, nil
49586	// {
49587	//   "description": "Deletes a key for validating requests with signed URLs for this backend service.",
49588	//   "httpMethod": "POST",
49589	//   "id": "compute.backendServices.deleteSignedUrlKey",
49590	//   "parameterOrder": [
49591	//     "project",
49592	//     "backendService",
49593	//     "keyName"
49594	//   ],
49595	//   "parameters": {
49596	//     "backendService": {
49597	//       "description": "Name of the BackendService resource to which the Signed URL Key should be added. The name should conform to RFC1035.",
49598	//       "location": "path",
49599	//       "required": true,
49600	//       "type": "string"
49601	//     },
49602	//     "keyName": {
49603	//       "description": "The name of the Signed URL Key to delete.",
49604	//       "location": "query",
49605	//       "required": true,
49606	//       "type": "string"
49607	//     },
49608	//     "project": {
49609	//       "description": "Project ID for this request.",
49610	//       "location": "path",
49611	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49612	//       "required": true,
49613	//       "type": "string"
49614	//     },
49615	//     "requestId": {
49616	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
49617	//       "location": "query",
49618	//       "type": "string"
49619	//     }
49620	//   },
49621	//   "path": "{project}/global/backendServices/{backendService}/deleteSignedUrlKey",
49622	//   "response": {
49623	//     "$ref": "Operation"
49624	//   },
49625	//   "scopes": [
49626	//     "https://www.googleapis.com/auth/cloud-platform",
49627	//     "https://www.googleapis.com/auth/compute"
49628	//   ]
49629	// }
49630
49631}
49632
49633// method id "compute.backendServices.get":
49634
49635type BackendServicesGetCall struct {
49636	s              *Service
49637	project        string
49638	backendService string
49639	urlParams_     gensupport.URLParams
49640	ifNoneMatch_   string
49641	ctx_           context.Context
49642	header_        http.Header
49643}
49644
49645// Get: Returns the specified BackendService resource. Gets a list of
49646// available backend services.
49647// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/get
49648func (r *BackendServicesService) Get(project string, backendService string) *BackendServicesGetCall {
49649	c := &BackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49650	c.project = project
49651	c.backendService = backendService
49652	return c
49653}
49654
49655// Fields allows partial responses to be retrieved. See
49656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49657// for more information.
49658func (c *BackendServicesGetCall) Fields(s ...googleapi.Field) *BackendServicesGetCall {
49659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49660	return c
49661}
49662
49663// IfNoneMatch sets the optional parameter which makes the operation
49664// fail if the object's ETag matches the given value. This is useful for
49665// getting updates only after the object has changed since the last
49666// request. Use googleapi.IsNotModified to check whether the response
49667// error from Do is the result of In-None-Match.
49668func (c *BackendServicesGetCall) IfNoneMatch(entityTag string) *BackendServicesGetCall {
49669	c.ifNoneMatch_ = entityTag
49670	return c
49671}
49672
49673// Context sets the context to be used in this call's Do method. Any
49674// pending HTTP request will be aborted if the provided context is
49675// canceled.
49676func (c *BackendServicesGetCall) Context(ctx context.Context) *BackendServicesGetCall {
49677	c.ctx_ = ctx
49678	return c
49679}
49680
49681// Header returns an http.Header that can be modified by the caller to
49682// add HTTP headers to the request.
49683func (c *BackendServicesGetCall) Header() http.Header {
49684	if c.header_ == nil {
49685		c.header_ = make(http.Header)
49686	}
49687	return c.header_
49688}
49689
49690func (c *BackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
49691	reqHeaders := make(http.Header)
49692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49693	for k, v := range c.header_ {
49694		reqHeaders[k] = v
49695	}
49696	reqHeaders.Set("User-Agent", c.s.userAgent())
49697	if c.ifNoneMatch_ != "" {
49698		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
49699	}
49700	var body io.Reader = nil
49701	c.urlParams_.Set("alt", alt)
49702	c.urlParams_.Set("prettyPrint", "false")
49703	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
49704	urls += "?" + c.urlParams_.Encode()
49705	req, err := http.NewRequest("GET", urls, body)
49706	if err != nil {
49707		return nil, err
49708	}
49709	req.Header = reqHeaders
49710	googleapi.Expand(req.URL, map[string]string{
49711		"project":        c.project,
49712		"backendService": c.backendService,
49713	})
49714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49715}
49716
49717// Do executes the "compute.backendServices.get" call.
49718// Exactly one of *BackendService or error will be non-nil. Any non-2xx
49719// status code is an error. Response headers are in either
49720// *BackendService.ServerResponse.Header or (if a response was returned
49721// at all) in error.(*googleapi.Error).Header. Use
49722// googleapi.IsNotModified to check whether the returned error was
49723// because http.StatusNotModified was returned.
49724func (c *BackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
49725	gensupport.SetOptions(c.urlParams_, opts...)
49726	res, err := c.doRequest("json")
49727	if res != nil && res.StatusCode == http.StatusNotModified {
49728		if res.Body != nil {
49729			res.Body.Close()
49730		}
49731		return nil, &googleapi.Error{
49732			Code:   res.StatusCode,
49733			Header: res.Header,
49734		}
49735	}
49736	if err != nil {
49737		return nil, err
49738	}
49739	defer googleapi.CloseBody(res)
49740	if err := googleapi.CheckResponse(res); err != nil {
49741		return nil, err
49742	}
49743	ret := &BackendService{
49744		ServerResponse: googleapi.ServerResponse{
49745			Header:         res.Header,
49746			HTTPStatusCode: res.StatusCode,
49747		},
49748	}
49749	target := &ret
49750	if err := gensupport.DecodeResponse(target, res); err != nil {
49751		return nil, err
49752	}
49753	return ret, nil
49754	// {
49755	//   "description": "Returns the specified BackendService resource. Gets a list of available backend services.",
49756	//   "httpMethod": "GET",
49757	//   "id": "compute.backendServices.get",
49758	//   "parameterOrder": [
49759	//     "project",
49760	//     "backendService"
49761	//   ],
49762	//   "parameters": {
49763	//     "backendService": {
49764	//       "description": "Name of the BackendService resource to return.",
49765	//       "location": "path",
49766	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49767	//       "required": true,
49768	//       "type": "string"
49769	//     },
49770	//     "project": {
49771	//       "description": "Project ID for this request.",
49772	//       "location": "path",
49773	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49774	//       "required": true,
49775	//       "type": "string"
49776	//     }
49777	//   },
49778	//   "path": "{project}/global/backendServices/{backendService}",
49779	//   "response": {
49780	//     "$ref": "BackendService"
49781	//   },
49782	//   "scopes": [
49783	//     "https://www.googleapis.com/auth/cloud-platform",
49784	//     "https://www.googleapis.com/auth/compute",
49785	//     "https://www.googleapis.com/auth/compute.readonly"
49786	//   ]
49787	// }
49788
49789}
49790
49791// method id "compute.backendServices.getHealth":
49792
49793type BackendServicesGetHealthCall struct {
49794	s                      *Service
49795	project                string
49796	backendService         string
49797	resourcegroupreference *ResourceGroupReference
49798	urlParams_             gensupport.URLParams
49799	ctx_                   context.Context
49800	header_                http.Header
49801}
49802
49803// GetHealth: Gets the most recent health check results for this
49804// BackendService.
49805// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/getHealth
49806func (r *BackendServicesService) GetHealth(project string, backendService string, resourcegroupreference *ResourceGroupReference) *BackendServicesGetHealthCall {
49807	c := &BackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49808	c.project = project
49809	c.backendService = backendService
49810	c.resourcegroupreference = resourcegroupreference
49811	return c
49812}
49813
49814// Fields allows partial responses to be retrieved. See
49815// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49816// for more information.
49817func (c *BackendServicesGetHealthCall) Fields(s ...googleapi.Field) *BackendServicesGetHealthCall {
49818	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49819	return c
49820}
49821
49822// Context sets the context to be used in this call's Do method. Any
49823// pending HTTP request will be aborted if the provided context is
49824// canceled.
49825func (c *BackendServicesGetHealthCall) Context(ctx context.Context) *BackendServicesGetHealthCall {
49826	c.ctx_ = ctx
49827	return c
49828}
49829
49830// Header returns an http.Header that can be modified by the caller to
49831// add HTTP headers to the request.
49832func (c *BackendServicesGetHealthCall) Header() http.Header {
49833	if c.header_ == nil {
49834		c.header_ = make(http.Header)
49835	}
49836	return c.header_
49837}
49838
49839func (c *BackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
49840	reqHeaders := make(http.Header)
49841	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
49842	for k, v := range c.header_ {
49843		reqHeaders[k] = v
49844	}
49845	reqHeaders.Set("User-Agent", c.s.userAgent())
49846	var body io.Reader = nil
49847	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
49848	if err != nil {
49849		return nil, err
49850	}
49851	reqHeaders.Set("Content-Type", "application/json")
49852	c.urlParams_.Set("alt", alt)
49853	c.urlParams_.Set("prettyPrint", "false")
49854	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/getHealth")
49855	urls += "?" + c.urlParams_.Encode()
49856	req, err := http.NewRequest("POST", urls, body)
49857	if err != nil {
49858		return nil, err
49859	}
49860	req.Header = reqHeaders
49861	googleapi.Expand(req.URL, map[string]string{
49862		"project":        c.project,
49863		"backendService": c.backendService,
49864	})
49865	return gensupport.SendRequest(c.ctx_, c.s.client, req)
49866}
49867
49868// Do executes the "compute.backendServices.getHealth" call.
49869// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
49870// Any non-2xx status code is an error. Response headers are in either
49871// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
49872// was returned at all) in error.(*googleapi.Error).Header. Use
49873// googleapi.IsNotModified to check whether the returned error was
49874// because http.StatusNotModified was returned.
49875func (c *BackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
49876	gensupport.SetOptions(c.urlParams_, opts...)
49877	res, err := c.doRequest("json")
49878	if res != nil && res.StatusCode == http.StatusNotModified {
49879		if res.Body != nil {
49880			res.Body.Close()
49881		}
49882		return nil, &googleapi.Error{
49883			Code:   res.StatusCode,
49884			Header: res.Header,
49885		}
49886	}
49887	if err != nil {
49888		return nil, err
49889	}
49890	defer googleapi.CloseBody(res)
49891	if err := googleapi.CheckResponse(res); err != nil {
49892		return nil, err
49893	}
49894	ret := &BackendServiceGroupHealth{
49895		ServerResponse: googleapi.ServerResponse{
49896			Header:         res.Header,
49897			HTTPStatusCode: res.StatusCode,
49898		},
49899	}
49900	target := &ret
49901	if err := gensupport.DecodeResponse(target, res); err != nil {
49902		return nil, err
49903	}
49904	return ret, nil
49905	// {
49906	//   "description": "Gets the most recent health check results for this BackendService.",
49907	//   "httpMethod": "POST",
49908	//   "id": "compute.backendServices.getHealth",
49909	//   "parameterOrder": [
49910	//     "project",
49911	//     "backendService"
49912	//   ],
49913	//   "parameters": {
49914	//     "backendService": {
49915	//       "description": "Name of the BackendService resource to which the queried instance belongs.",
49916	//       "location": "path",
49917	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
49918	//       "required": true,
49919	//       "type": "string"
49920	//     },
49921	//     "project": {
49922	//       "location": "path",
49923	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
49924	//       "required": true,
49925	//       "type": "string"
49926	//     }
49927	//   },
49928	//   "path": "{project}/global/backendServices/{backendService}/getHealth",
49929	//   "request": {
49930	//     "$ref": "ResourceGroupReference"
49931	//   },
49932	//   "response": {
49933	//     "$ref": "BackendServiceGroupHealth"
49934	//   },
49935	//   "scopes": [
49936	//     "https://www.googleapis.com/auth/cloud-platform",
49937	//     "https://www.googleapis.com/auth/compute",
49938	//     "https://www.googleapis.com/auth/compute.readonly"
49939	//   ]
49940	// }
49941
49942}
49943
49944// method id "compute.backendServices.insert":
49945
49946type BackendServicesInsertCall struct {
49947	s              *Service
49948	project        string
49949	backendservice *BackendService
49950	urlParams_     gensupport.URLParams
49951	ctx_           context.Context
49952	header_        http.Header
49953}
49954
49955// Insert: Creates a BackendService resource in the specified project
49956// using the data included in the request. There are several
49957// restrictions and guidelines to keep in mind when creating a backend
49958// service. Read  Restrictions and Guidelines for more information.
49959// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/insert
49960func (r *BackendServicesService) Insert(project string, backendservice *BackendService) *BackendServicesInsertCall {
49961	c := &BackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
49962	c.project = project
49963	c.backendservice = backendservice
49964	return c
49965}
49966
49967// RequestId sets the optional parameter "requestId": An optional
49968// request ID to identify requests. Specify a unique request ID so that
49969// if you must retry your request, the server will know to ignore the
49970// request if it has already been completed.
49971//
49972// For example, consider a situation where you make an initial request
49973// and the request times out. If you make the request again with the
49974// same request ID, the server can check if original operation with the
49975// same request ID was received, and if so, will ignore the second
49976// request. This prevents clients from accidentally creating duplicate
49977// commitments.
49978//
49979// The request ID must be a valid UUID with the exception that zero UUID
49980// is not supported (00000000-0000-0000-0000-000000000000).
49981func (c *BackendServicesInsertCall) RequestId(requestId string) *BackendServicesInsertCall {
49982	c.urlParams_.Set("requestId", requestId)
49983	return c
49984}
49985
49986// Fields allows partial responses to be retrieved. See
49987// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
49988// for more information.
49989func (c *BackendServicesInsertCall) Fields(s ...googleapi.Field) *BackendServicesInsertCall {
49990	c.urlParams_.Set("fields", googleapi.CombineFields(s))
49991	return c
49992}
49993
49994// Context sets the context to be used in this call's Do method. Any
49995// pending HTTP request will be aborted if the provided context is
49996// canceled.
49997func (c *BackendServicesInsertCall) Context(ctx context.Context) *BackendServicesInsertCall {
49998	c.ctx_ = ctx
49999	return c
50000}
50001
50002// Header returns an http.Header that can be modified by the caller to
50003// add HTTP headers to the request.
50004func (c *BackendServicesInsertCall) Header() http.Header {
50005	if c.header_ == nil {
50006		c.header_ = make(http.Header)
50007	}
50008	return c.header_
50009}
50010
50011func (c *BackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
50012	reqHeaders := make(http.Header)
50013	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50014	for k, v := range c.header_ {
50015		reqHeaders[k] = v
50016	}
50017	reqHeaders.Set("User-Agent", c.s.userAgent())
50018	var body io.Reader = nil
50019	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
50020	if err != nil {
50021		return nil, err
50022	}
50023	reqHeaders.Set("Content-Type", "application/json")
50024	c.urlParams_.Set("alt", alt)
50025	c.urlParams_.Set("prettyPrint", "false")
50026	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
50027	urls += "?" + c.urlParams_.Encode()
50028	req, err := http.NewRequest("POST", urls, body)
50029	if err != nil {
50030		return nil, err
50031	}
50032	req.Header = reqHeaders
50033	googleapi.Expand(req.URL, map[string]string{
50034		"project": c.project,
50035	})
50036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50037}
50038
50039// Do executes the "compute.backendServices.insert" call.
50040// Exactly one of *Operation or error will be non-nil. Any non-2xx
50041// status code is an error. Response headers are in either
50042// *Operation.ServerResponse.Header or (if a response was returned at
50043// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50044// to check whether the returned error was because
50045// http.StatusNotModified was returned.
50046func (c *BackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50047	gensupport.SetOptions(c.urlParams_, opts...)
50048	res, err := c.doRequest("json")
50049	if res != nil && res.StatusCode == http.StatusNotModified {
50050		if res.Body != nil {
50051			res.Body.Close()
50052		}
50053		return nil, &googleapi.Error{
50054			Code:   res.StatusCode,
50055			Header: res.Header,
50056		}
50057	}
50058	if err != nil {
50059		return nil, err
50060	}
50061	defer googleapi.CloseBody(res)
50062	if err := googleapi.CheckResponse(res); err != nil {
50063		return nil, err
50064	}
50065	ret := &Operation{
50066		ServerResponse: googleapi.ServerResponse{
50067			Header:         res.Header,
50068			HTTPStatusCode: res.StatusCode,
50069		},
50070	}
50071	target := &ret
50072	if err := gensupport.DecodeResponse(target, res); err != nil {
50073		return nil, err
50074	}
50075	return ret, nil
50076	// {
50077	//   "description": "Creates a BackendService resource in the specified project using the data included in the request. There are several restrictions and guidelines to keep in mind when creating a backend service. Read  Restrictions and Guidelines for more information.",
50078	//   "httpMethod": "POST",
50079	//   "id": "compute.backendServices.insert",
50080	//   "parameterOrder": [
50081	//     "project"
50082	//   ],
50083	//   "parameters": {
50084	//     "project": {
50085	//       "description": "Project ID for this request.",
50086	//       "location": "path",
50087	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50088	//       "required": true,
50089	//       "type": "string"
50090	//     },
50091	//     "requestId": {
50092	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50093	//       "location": "query",
50094	//       "type": "string"
50095	//     }
50096	//   },
50097	//   "path": "{project}/global/backendServices",
50098	//   "request": {
50099	//     "$ref": "BackendService"
50100	//   },
50101	//   "response": {
50102	//     "$ref": "Operation"
50103	//   },
50104	//   "scopes": [
50105	//     "https://www.googleapis.com/auth/cloud-platform",
50106	//     "https://www.googleapis.com/auth/compute"
50107	//   ]
50108	// }
50109
50110}
50111
50112// method id "compute.backendServices.list":
50113
50114type BackendServicesListCall struct {
50115	s            *Service
50116	project      string
50117	urlParams_   gensupport.URLParams
50118	ifNoneMatch_ string
50119	ctx_         context.Context
50120	header_      http.Header
50121}
50122
50123// List: Retrieves the list of BackendService resources available to the
50124// specified project.
50125// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/list
50126func (r *BackendServicesService) List(project string) *BackendServicesListCall {
50127	c := &BackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50128	c.project = project
50129	return c
50130}
50131
50132// Filter sets the optional parameter "filter": A filter expression that
50133// filters resources listed in the response. The expression must specify
50134// the field name, a comparison operator, and the value that you want to
50135// use for filtering. The value must be a string, a number, or a
50136// boolean. The comparison operator must be either =, !=, >, or <.
50137//
50138// For example, if you are filtering Compute Engine instances, you can
50139// exclude instances named example-instance by specifying name !=
50140// example-instance.
50141//
50142// You can also filter nested fields. For example, you could specify
50143// scheduling.automaticRestart = false to include instances only if they
50144// are not scheduled for automatic restarts. You can use filtering on
50145// nested fields to filter based on resource labels.
50146//
50147// To filter on multiple expressions, provide each separate expression
50148// within parentheses. For example, (scheduling.automaticRestart = true)
50149// (cpuPlatform = "Intel Skylake"). By default, each expression is an
50150// AND expression. However, you can include AND and OR expressions
50151// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
50152// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
50153// true).
50154func (c *BackendServicesListCall) Filter(filter string) *BackendServicesListCall {
50155	c.urlParams_.Set("filter", filter)
50156	return c
50157}
50158
50159// MaxResults sets the optional parameter "maxResults": The maximum
50160// number of results per page that should be returned. If the number of
50161// available results is larger than maxResults, Compute Engine returns a
50162// nextPageToken that can be used to get the next page of results in
50163// subsequent list requests. Acceptable values are 0 to 500, inclusive.
50164// (Default: 500)
50165func (c *BackendServicesListCall) MaxResults(maxResults int64) *BackendServicesListCall {
50166	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
50167	return c
50168}
50169
50170// OrderBy sets the optional parameter "orderBy": Sorts list results by
50171// a certain order. By default, results are returned in alphanumerical
50172// order based on the resource name.
50173//
50174// You can also sort results in descending order based on the creation
50175// timestamp using orderBy="creationTimestamp desc". This sorts results
50176// based on the creationTimestamp field in reverse chronological order
50177// (newest result first). Use this to sort resources like operations so
50178// that the newest operation is returned first.
50179//
50180// Currently, only sorting by name or creationTimestamp desc is
50181// supported.
50182func (c *BackendServicesListCall) OrderBy(orderBy string) *BackendServicesListCall {
50183	c.urlParams_.Set("orderBy", orderBy)
50184	return c
50185}
50186
50187// PageToken sets the optional parameter "pageToken": Specifies a page
50188// token to use. Set pageToken to the nextPageToken returned by a
50189// previous list request to get the next page of results.
50190func (c *BackendServicesListCall) PageToken(pageToken string) *BackendServicesListCall {
50191	c.urlParams_.Set("pageToken", pageToken)
50192	return c
50193}
50194
50195// Fields allows partial responses to be retrieved. See
50196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50197// for more information.
50198func (c *BackendServicesListCall) Fields(s ...googleapi.Field) *BackendServicesListCall {
50199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50200	return c
50201}
50202
50203// IfNoneMatch sets the optional parameter which makes the operation
50204// fail if the object's ETag matches the given value. This is useful for
50205// getting updates only after the object has changed since the last
50206// request. Use googleapi.IsNotModified to check whether the response
50207// error from Do is the result of In-None-Match.
50208func (c *BackendServicesListCall) IfNoneMatch(entityTag string) *BackendServicesListCall {
50209	c.ifNoneMatch_ = entityTag
50210	return c
50211}
50212
50213// Context sets the context to be used in this call's Do method. Any
50214// pending HTTP request will be aborted if the provided context is
50215// canceled.
50216func (c *BackendServicesListCall) Context(ctx context.Context) *BackendServicesListCall {
50217	c.ctx_ = ctx
50218	return c
50219}
50220
50221// Header returns an http.Header that can be modified by the caller to
50222// add HTTP headers to the request.
50223func (c *BackendServicesListCall) Header() http.Header {
50224	if c.header_ == nil {
50225		c.header_ = make(http.Header)
50226	}
50227	return c.header_
50228}
50229
50230func (c *BackendServicesListCall) doRequest(alt string) (*http.Response, error) {
50231	reqHeaders := make(http.Header)
50232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50233	for k, v := range c.header_ {
50234		reqHeaders[k] = v
50235	}
50236	reqHeaders.Set("User-Agent", c.s.userAgent())
50237	if c.ifNoneMatch_ != "" {
50238		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
50239	}
50240	var body io.Reader = nil
50241	c.urlParams_.Set("alt", alt)
50242	c.urlParams_.Set("prettyPrint", "false")
50243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices")
50244	urls += "?" + c.urlParams_.Encode()
50245	req, err := http.NewRequest("GET", urls, body)
50246	if err != nil {
50247		return nil, err
50248	}
50249	req.Header = reqHeaders
50250	googleapi.Expand(req.URL, map[string]string{
50251		"project": c.project,
50252	})
50253	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50254}
50255
50256// Do executes the "compute.backendServices.list" call.
50257// Exactly one of *BackendServiceList or error will be non-nil. Any
50258// non-2xx status code is an error. Response headers are in either
50259// *BackendServiceList.ServerResponse.Header or (if a response was
50260// returned at all) in error.(*googleapi.Error).Header. Use
50261// googleapi.IsNotModified to check whether the returned error was
50262// because http.StatusNotModified was returned.
50263func (c *BackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
50264	gensupport.SetOptions(c.urlParams_, opts...)
50265	res, err := c.doRequest("json")
50266	if res != nil && res.StatusCode == http.StatusNotModified {
50267		if res.Body != nil {
50268			res.Body.Close()
50269		}
50270		return nil, &googleapi.Error{
50271			Code:   res.StatusCode,
50272			Header: res.Header,
50273		}
50274	}
50275	if err != nil {
50276		return nil, err
50277	}
50278	defer googleapi.CloseBody(res)
50279	if err := googleapi.CheckResponse(res); err != nil {
50280		return nil, err
50281	}
50282	ret := &BackendServiceList{
50283		ServerResponse: googleapi.ServerResponse{
50284			Header:         res.Header,
50285			HTTPStatusCode: res.StatusCode,
50286		},
50287	}
50288	target := &ret
50289	if err := gensupport.DecodeResponse(target, res); err != nil {
50290		return nil, err
50291	}
50292	return ret, nil
50293	// {
50294	//   "description": "Retrieves the list of BackendService resources available to the specified project.",
50295	//   "httpMethod": "GET",
50296	//   "id": "compute.backendServices.list",
50297	//   "parameterOrder": [
50298	//     "project"
50299	//   ],
50300	//   "parameters": {
50301	//     "filter": {
50302	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
50303	//       "location": "query",
50304	//       "type": "string"
50305	//     },
50306	//     "maxResults": {
50307	//       "default": "500",
50308	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
50309	//       "format": "uint32",
50310	//       "location": "query",
50311	//       "minimum": "0",
50312	//       "type": "integer"
50313	//     },
50314	//     "orderBy": {
50315	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
50316	//       "location": "query",
50317	//       "type": "string"
50318	//     },
50319	//     "pageToken": {
50320	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
50321	//       "location": "query",
50322	//       "type": "string"
50323	//     },
50324	//     "project": {
50325	//       "description": "Project ID for this request.",
50326	//       "location": "path",
50327	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50328	//       "required": true,
50329	//       "type": "string"
50330	//     }
50331	//   },
50332	//   "path": "{project}/global/backendServices",
50333	//   "response": {
50334	//     "$ref": "BackendServiceList"
50335	//   },
50336	//   "scopes": [
50337	//     "https://www.googleapis.com/auth/cloud-platform",
50338	//     "https://www.googleapis.com/auth/compute",
50339	//     "https://www.googleapis.com/auth/compute.readonly"
50340	//   ]
50341	// }
50342
50343}
50344
50345// Pages invokes f for each page of results.
50346// A non-nil error returned from f will halt the iteration.
50347// The provided context supersedes any context provided to the Context method.
50348func (c *BackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
50349	c.ctx_ = ctx
50350	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
50351	for {
50352		x, err := c.Do()
50353		if err != nil {
50354			return err
50355		}
50356		if err := f(x); err != nil {
50357			return err
50358		}
50359		if x.NextPageToken == "" {
50360			return nil
50361		}
50362		c.PageToken(x.NextPageToken)
50363	}
50364}
50365
50366// method id "compute.backendServices.patch":
50367
50368type BackendServicesPatchCall struct {
50369	s              *Service
50370	project        string
50371	backendService string
50372	backendservice *BackendService
50373	urlParams_     gensupport.URLParams
50374	ctx_           context.Context
50375	header_        http.Header
50376}
50377
50378// Patch: Patches the specified BackendService resource with the data
50379// included in the request. There are several restrictions and
50380// guidelines to keep in mind when updating a backend service. Read
50381// Restrictions and Guidelines for more information. This method
50382// supports PATCH semantics and uses the JSON merge patch format and
50383// processing rules.
50384// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/patch
50385func (r *BackendServicesService) Patch(project string, backendService string, backendservice *BackendService) *BackendServicesPatchCall {
50386	c := &BackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50387	c.project = project
50388	c.backendService = backendService
50389	c.backendservice = backendservice
50390	return c
50391}
50392
50393// RequestId sets the optional parameter "requestId": An optional
50394// request ID to identify requests. Specify a unique request ID so that
50395// if you must retry your request, the server will know to ignore the
50396// request if it has already been completed.
50397//
50398// For example, consider a situation where you make an initial request
50399// and the request times out. If you make the request again with the
50400// same request ID, the server can check if original operation with the
50401// same request ID was received, and if so, will ignore the second
50402// request. This prevents clients from accidentally creating duplicate
50403// commitments.
50404//
50405// The request ID must be a valid UUID with the exception that zero UUID
50406// is not supported (00000000-0000-0000-0000-000000000000).
50407func (c *BackendServicesPatchCall) RequestId(requestId string) *BackendServicesPatchCall {
50408	c.urlParams_.Set("requestId", requestId)
50409	return c
50410}
50411
50412// Fields allows partial responses to be retrieved. See
50413// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50414// for more information.
50415func (c *BackendServicesPatchCall) Fields(s ...googleapi.Field) *BackendServicesPatchCall {
50416	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50417	return c
50418}
50419
50420// Context sets the context to be used in this call's Do method. Any
50421// pending HTTP request will be aborted if the provided context is
50422// canceled.
50423func (c *BackendServicesPatchCall) Context(ctx context.Context) *BackendServicesPatchCall {
50424	c.ctx_ = ctx
50425	return c
50426}
50427
50428// Header returns an http.Header that can be modified by the caller to
50429// add HTTP headers to the request.
50430func (c *BackendServicesPatchCall) Header() http.Header {
50431	if c.header_ == nil {
50432		c.header_ = make(http.Header)
50433	}
50434	return c.header_
50435}
50436
50437func (c *BackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
50438	reqHeaders := make(http.Header)
50439	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50440	for k, v := range c.header_ {
50441		reqHeaders[k] = v
50442	}
50443	reqHeaders.Set("User-Agent", c.s.userAgent())
50444	var body io.Reader = nil
50445	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
50446	if err != nil {
50447		return nil, err
50448	}
50449	reqHeaders.Set("Content-Type", "application/json")
50450	c.urlParams_.Set("alt", alt)
50451	c.urlParams_.Set("prettyPrint", "false")
50452	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
50453	urls += "?" + c.urlParams_.Encode()
50454	req, err := http.NewRequest("PATCH", urls, body)
50455	if err != nil {
50456		return nil, err
50457	}
50458	req.Header = reqHeaders
50459	googleapi.Expand(req.URL, map[string]string{
50460		"project":        c.project,
50461		"backendService": c.backendService,
50462	})
50463	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50464}
50465
50466// Do executes the "compute.backendServices.patch" call.
50467// Exactly one of *Operation or error will be non-nil. Any non-2xx
50468// status code is an error. Response headers are in either
50469// *Operation.ServerResponse.Header or (if a response was returned at
50470// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50471// to check whether the returned error was because
50472// http.StatusNotModified was returned.
50473func (c *BackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50474	gensupport.SetOptions(c.urlParams_, opts...)
50475	res, err := c.doRequest("json")
50476	if res != nil && res.StatusCode == http.StatusNotModified {
50477		if res.Body != nil {
50478			res.Body.Close()
50479		}
50480		return nil, &googleapi.Error{
50481			Code:   res.StatusCode,
50482			Header: res.Header,
50483		}
50484	}
50485	if err != nil {
50486		return nil, err
50487	}
50488	defer googleapi.CloseBody(res)
50489	if err := googleapi.CheckResponse(res); err != nil {
50490		return nil, err
50491	}
50492	ret := &Operation{
50493		ServerResponse: googleapi.ServerResponse{
50494			Header:         res.Header,
50495			HTTPStatusCode: res.StatusCode,
50496		},
50497	}
50498	target := &ret
50499	if err := gensupport.DecodeResponse(target, res); err != nil {
50500		return nil, err
50501	}
50502	return ret, nil
50503	// {
50504	//   "description": "Patches the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
50505	//   "httpMethod": "PATCH",
50506	//   "id": "compute.backendServices.patch",
50507	//   "parameterOrder": [
50508	//     "project",
50509	//     "backendService"
50510	//   ],
50511	//   "parameters": {
50512	//     "backendService": {
50513	//       "description": "Name of the BackendService resource to patch.",
50514	//       "location": "path",
50515	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50516	//       "required": true,
50517	//       "type": "string"
50518	//     },
50519	//     "project": {
50520	//       "description": "Project ID for this request.",
50521	//       "location": "path",
50522	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50523	//       "required": true,
50524	//       "type": "string"
50525	//     },
50526	//     "requestId": {
50527	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50528	//       "location": "query",
50529	//       "type": "string"
50530	//     }
50531	//   },
50532	//   "path": "{project}/global/backendServices/{backendService}",
50533	//   "request": {
50534	//     "$ref": "BackendService"
50535	//   },
50536	//   "response": {
50537	//     "$ref": "Operation"
50538	//   },
50539	//   "scopes": [
50540	//     "https://www.googleapis.com/auth/cloud-platform",
50541	//     "https://www.googleapis.com/auth/compute"
50542	//   ]
50543	// }
50544
50545}
50546
50547// method id "compute.backendServices.setSecurityPolicy":
50548
50549type BackendServicesSetSecurityPolicyCall struct {
50550	s                       *Service
50551	project                 string
50552	backendService          string
50553	securitypolicyreference *SecurityPolicyReference
50554	urlParams_              gensupport.URLParams
50555	ctx_                    context.Context
50556	header_                 http.Header
50557}
50558
50559// SetSecurityPolicy: Sets the security policy for the specified backend
50560// service.
50561func (r *BackendServicesService) SetSecurityPolicy(project string, backendService string, securitypolicyreference *SecurityPolicyReference) *BackendServicesSetSecurityPolicyCall {
50562	c := &BackendServicesSetSecurityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50563	c.project = project
50564	c.backendService = backendService
50565	c.securitypolicyreference = securitypolicyreference
50566	return c
50567}
50568
50569// RequestId sets the optional parameter "requestId": An optional
50570// request ID to identify requests. Specify a unique request ID so that
50571// if you must retry your request, the server will know to ignore the
50572// request if it has already been completed.
50573//
50574// For example, consider a situation where you make an initial request
50575// and the request times out. If you make the request again with the
50576// same request ID, the server can check if original operation with the
50577// same request ID was received, and if so, will ignore the second
50578// request. This prevents clients from accidentally creating duplicate
50579// commitments.
50580//
50581// The request ID must be a valid UUID with the exception that zero UUID
50582// is not supported (00000000-0000-0000-0000-000000000000).
50583func (c *BackendServicesSetSecurityPolicyCall) RequestId(requestId string) *BackendServicesSetSecurityPolicyCall {
50584	c.urlParams_.Set("requestId", requestId)
50585	return c
50586}
50587
50588// Fields allows partial responses to be retrieved. See
50589// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50590// for more information.
50591func (c *BackendServicesSetSecurityPolicyCall) Fields(s ...googleapi.Field) *BackendServicesSetSecurityPolicyCall {
50592	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50593	return c
50594}
50595
50596// Context sets the context to be used in this call's Do method. Any
50597// pending HTTP request will be aborted if the provided context is
50598// canceled.
50599func (c *BackendServicesSetSecurityPolicyCall) Context(ctx context.Context) *BackendServicesSetSecurityPolicyCall {
50600	c.ctx_ = ctx
50601	return c
50602}
50603
50604// Header returns an http.Header that can be modified by the caller to
50605// add HTTP headers to the request.
50606func (c *BackendServicesSetSecurityPolicyCall) Header() http.Header {
50607	if c.header_ == nil {
50608		c.header_ = make(http.Header)
50609	}
50610	return c.header_
50611}
50612
50613func (c *BackendServicesSetSecurityPolicyCall) doRequest(alt string) (*http.Response, error) {
50614	reqHeaders := make(http.Header)
50615	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50616	for k, v := range c.header_ {
50617		reqHeaders[k] = v
50618	}
50619	reqHeaders.Set("User-Agent", c.s.userAgent())
50620	var body io.Reader = nil
50621	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyreference)
50622	if err != nil {
50623		return nil, err
50624	}
50625	reqHeaders.Set("Content-Type", "application/json")
50626	c.urlParams_.Set("alt", alt)
50627	c.urlParams_.Set("prettyPrint", "false")
50628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}/setSecurityPolicy")
50629	urls += "?" + c.urlParams_.Encode()
50630	req, err := http.NewRequest("POST", urls, body)
50631	if err != nil {
50632		return nil, err
50633	}
50634	req.Header = reqHeaders
50635	googleapi.Expand(req.URL, map[string]string{
50636		"project":        c.project,
50637		"backendService": c.backendService,
50638	})
50639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50640}
50641
50642// Do executes the "compute.backendServices.setSecurityPolicy" call.
50643// Exactly one of *Operation or error will be non-nil. Any non-2xx
50644// status code is an error. Response headers are in either
50645// *Operation.ServerResponse.Header or (if a response was returned at
50646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50647// to check whether the returned error was because
50648// http.StatusNotModified was returned.
50649func (c *BackendServicesSetSecurityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50650	gensupport.SetOptions(c.urlParams_, opts...)
50651	res, err := c.doRequest("json")
50652	if res != nil && res.StatusCode == http.StatusNotModified {
50653		if res.Body != nil {
50654			res.Body.Close()
50655		}
50656		return nil, &googleapi.Error{
50657			Code:   res.StatusCode,
50658			Header: res.Header,
50659		}
50660	}
50661	if err != nil {
50662		return nil, err
50663	}
50664	defer googleapi.CloseBody(res)
50665	if err := googleapi.CheckResponse(res); err != nil {
50666		return nil, err
50667	}
50668	ret := &Operation{
50669		ServerResponse: googleapi.ServerResponse{
50670			Header:         res.Header,
50671			HTTPStatusCode: res.StatusCode,
50672		},
50673	}
50674	target := &ret
50675	if err := gensupport.DecodeResponse(target, res); err != nil {
50676		return nil, err
50677	}
50678	return ret, nil
50679	// {
50680	//   "description": "Sets the security policy for the specified backend service.",
50681	//   "httpMethod": "POST",
50682	//   "id": "compute.backendServices.setSecurityPolicy",
50683	//   "parameterOrder": [
50684	//     "project",
50685	//     "backendService"
50686	//   ],
50687	//   "parameters": {
50688	//     "backendService": {
50689	//       "description": "Name of the BackendService resource to which the security policy should be set. The name should conform to RFC1035.",
50690	//       "location": "path",
50691	//       "required": true,
50692	//       "type": "string"
50693	//     },
50694	//     "project": {
50695	//       "description": "Project ID for this request.",
50696	//       "location": "path",
50697	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50698	//       "required": true,
50699	//       "type": "string"
50700	//     },
50701	//     "requestId": {
50702	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
50703	//       "location": "query",
50704	//       "type": "string"
50705	//     }
50706	//   },
50707	//   "path": "{project}/global/backendServices/{backendService}/setSecurityPolicy",
50708	//   "request": {
50709	//     "$ref": "SecurityPolicyReference"
50710	//   },
50711	//   "response": {
50712	//     "$ref": "Operation"
50713	//   },
50714	//   "scopes": [
50715	//     "https://www.googleapis.com/auth/cloud-platform",
50716	//     "https://www.googleapis.com/auth/compute"
50717	//   ]
50718	// }
50719
50720}
50721
50722// method id "compute.backendServices.testIamPermissions":
50723
50724type BackendServicesTestIamPermissionsCall struct {
50725	s                      *Service
50726	project                string
50727	resource               string
50728	testpermissionsrequest *TestPermissionsRequest
50729	urlParams_             gensupport.URLParams
50730	ctx_                   context.Context
50731	header_                http.Header
50732}
50733
50734// TestIamPermissions: Returns permissions that a caller has on the
50735// specified resource.
50736func (r *BackendServicesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *BackendServicesTestIamPermissionsCall {
50737	c := &BackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50738	c.project = project
50739	c.resource = resource
50740	c.testpermissionsrequest = testpermissionsrequest
50741	return c
50742}
50743
50744// Fields allows partial responses to be retrieved. See
50745// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50746// for more information.
50747func (c *BackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *BackendServicesTestIamPermissionsCall {
50748	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50749	return c
50750}
50751
50752// Context sets the context to be used in this call's Do method. Any
50753// pending HTTP request will be aborted if the provided context is
50754// canceled.
50755func (c *BackendServicesTestIamPermissionsCall) Context(ctx context.Context) *BackendServicesTestIamPermissionsCall {
50756	c.ctx_ = ctx
50757	return c
50758}
50759
50760// Header returns an http.Header that can be modified by the caller to
50761// add HTTP headers to the request.
50762func (c *BackendServicesTestIamPermissionsCall) Header() http.Header {
50763	if c.header_ == nil {
50764		c.header_ = make(http.Header)
50765	}
50766	return c.header_
50767}
50768
50769func (c *BackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
50770	reqHeaders := make(http.Header)
50771	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50772	for k, v := range c.header_ {
50773		reqHeaders[k] = v
50774	}
50775	reqHeaders.Set("User-Agent", c.s.userAgent())
50776	var body io.Reader = nil
50777	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
50778	if err != nil {
50779		return nil, err
50780	}
50781	reqHeaders.Set("Content-Type", "application/json")
50782	c.urlParams_.Set("alt", alt)
50783	c.urlParams_.Set("prettyPrint", "false")
50784	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{resource}/testIamPermissions")
50785	urls += "?" + c.urlParams_.Encode()
50786	req, err := http.NewRequest("POST", urls, body)
50787	if err != nil {
50788		return nil, err
50789	}
50790	req.Header = reqHeaders
50791	googleapi.Expand(req.URL, map[string]string{
50792		"project":  c.project,
50793		"resource": c.resource,
50794	})
50795	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50796}
50797
50798// Do executes the "compute.backendServices.testIamPermissions" call.
50799// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
50800// non-2xx status code is an error. Response headers are in either
50801// *TestPermissionsResponse.ServerResponse.Header or (if a response was
50802// returned at all) in error.(*googleapi.Error).Header. Use
50803// googleapi.IsNotModified to check whether the returned error was
50804// because http.StatusNotModified was returned.
50805func (c *BackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
50806	gensupport.SetOptions(c.urlParams_, opts...)
50807	res, err := c.doRequest("json")
50808	if res != nil && res.StatusCode == http.StatusNotModified {
50809		if res.Body != nil {
50810			res.Body.Close()
50811		}
50812		return nil, &googleapi.Error{
50813			Code:   res.StatusCode,
50814			Header: res.Header,
50815		}
50816	}
50817	if err != nil {
50818		return nil, err
50819	}
50820	defer googleapi.CloseBody(res)
50821	if err := googleapi.CheckResponse(res); err != nil {
50822		return nil, err
50823	}
50824	ret := &TestPermissionsResponse{
50825		ServerResponse: googleapi.ServerResponse{
50826			Header:         res.Header,
50827			HTTPStatusCode: res.StatusCode,
50828		},
50829	}
50830	target := &ret
50831	if err := gensupport.DecodeResponse(target, res); err != nil {
50832		return nil, err
50833	}
50834	return ret, nil
50835	// {
50836	//   "description": "Returns permissions that a caller has on the specified resource.",
50837	//   "httpMethod": "POST",
50838	//   "id": "compute.backendServices.testIamPermissions",
50839	//   "parameterOrder": [
50840	//     "project",
50841	//     "resource"
50842	//   ],
50843	//   "parameters": {
50844	//     "project": {
50845	//       "description": "Project ID for this request.",
50846	//       "location": "path",
50847	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
50848	//       "required": true,
50849	//       "type": "string"
50850	//     },
50851	//     "resource": {
50852	//       "description": "Name or id of the resource for this request.",
50853	//       "location": "path",
50854	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
50855	//       "required": true,
50856	//       "type": "string"
50857	//     }
50858	//   },
50859	//   "path": "{project}/global/backendServices/{resource}/testIamPermissions",
50860	//   "request": {
50861	//     "$ref": "TestPermissionsRequest"
50862	//   },
50863	//   "response": {
50864	//     "$ref": "TestPermissionsResponse"
50865	//   },
50866	//   "scopes": [
50867	//     "https://www.googleapis.com/auth/cloud-platform",
50868	//     "https://www.googleapis.com/auth/compute",
50869	//     "https://www.googleapis.com/auth/compute.readonly"
50870	//   ]
50871	// }
50872
50873}
50874
50875// method id "compute.backendServices.update":
50876
50877type BackendServicesUpdateCall struct {
50878	s              *Service
50879	project        string
50880	backendService string
50881	backendservice *BackendService
50882	urlParams_     gensupport.URLParams
50883	ctx_           context.Context
50884	header_        http.Header
50885}
50886
50887// Update: Updates the specified BackendService resource with the data
50888// included in the request. There are several restrictions and
50889// guidelines to keep in mind when updating a backend service. Read
50890// Restrictions and Guidelines for more information.
50891// For details, see https://cloud.google.com/compute/docs/reference/latest/backendServices/update
50892func (r *BackendServicesService) Update(project string, backendService string, backendservice *BackendService) *BackendServicesUpdateCall {
50893	c := &BackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
50894	c.project = project
50895	c.backendService = backendService
50896	c.backendservice = backendservice
50897	return c
50898}
50899
50900// RequestId sets the optional parameter "requestId": An optional
50901// request ID to identify requests. Specify a unique request ID so that
50902// if you must retry your request, the server will know to ignore the
50903// request if it has already been completed.
50904//
50905// For example, consider a situation where you make an initial request
50906// and the request times out. If you make the request again with the
50907// same request ID, the server can check if original operation with the
50908// same request ID was received, and if so, will ignore the second
50909// request. This prevents clients from accidentally creating duplicate
50910// commitments.
50911//
50912// The request ID must be a valid UUID with the exception that zero UUID
50913// is not supported (00000000-0000-0000-0000-000000000000).
50914func (c *BackendServicesUpdateCall) RequestId(requestId string) *BackendServicesUpdateCall {
50915	c.urlParams_.Set("requestId", requestId)
50916	return c
50917}
50918
50919// Fields allows partial responses to be retrieved. See
50920// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
50921// for more information.
50922func (c *BackendServicesUpdateCall) Fields(s ...googleapi.Field) *BackendServicesUpdateCall {
50923	c.urlParams_.Set("fields", googleapi.CombineFields(s))
50924	return c
50925}
50926
50927// Context sets the context to be used in this call's Do method. Any
50928// pending HTTP request will be aborted if the provided context is
50929// canceled.
50930func (c *BackendServicesUpdateCall) Context(ctx context.Context) *BackendServicesUpdateCall {
50931	c.ctx_ = ctx
50932	return c
50933}
50934
50935// Header returns an http.Header that can be modified by the caller to
50936// add HTTP headers to the request.
50937func (c *BackendServicesUpdateCall) Header() http.Header {
50938	if c.header_ == nil {
50939		c.header_ = make(http.Header)
50940	}
50941	return c.header_
50942}
50943
50944func (c *BackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
50945	reqHeaders := make(http.Header)
50946	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
50947	for k, v := range c.header_ {
50948		reqHeaders[k] = v
50949	}
50950	reqHeaders.Set("User-Agent", c.s.userAgent())
50951	var body io.Reader = nil
50952	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
50953	if err != nil {
50954		return nil, err
50955	}
50956	reqHeaders.Set("Content-Type", "application/json")
50957	c.urlParams_.Set("alt", alt)
50958	c.urlParams_.Set("prettyPrint", "false")
50959	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/backendServices/{backendService}")
50960	urls += "?" + c.urlParams_.Encode()
50961	req, err := http.NewRequest("PUT", urls, body)
50962	if err != nil {
50963		return nil, err
50964	}
50965	req.Header = reqHeaders
50966	googleapi.Expand(req.URL, map[string]string{
50967		"project":        c.project,
50968		"backendService": c.backendService,
50969	})
50970	return gensupport.SendRequest(c.ctx_, c.s.client, req)
50971}
50972
50973// Do executes the "compute.backendServices.update" call.
50974// Exactly one of *Operation or error will be non-nil. Any non-2xx
50975// status code is an error. Response headers are in either
50976// *Operation.ServerResponse.Header or (if a response was returned at
50977// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
50978// to check whether the returned error was because
50979// http.StatusNotModified was returned.
50980func (c *BackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
50981	gensupport.SetOptions(c.urlParams_, opts...)
50982	res, err := c.doRequest("json")
50983	if res != nil && res.StatusCode == http.StatusNotModified {
50984		if res.Body != nil {
50985			res.Body.Close()
50986		}
50987		return nil, &googleapi.Error{
50988			Code:   res.StatusCode,
50989			Header: res.Header,
50990		}
50991	}
50992	if err != nil {
50993		return nil, err
50994	}
50995	defer googleapi.CloseBody(res)
50996	if err := googleapi.CheckResponse(res); err != nil {
50997		return nil, err
50998	}
50999	ret := &Operation{
51000		ServerResponse: googleapi.ServerResponse{
51001			Header:         res.Header,
51002			HTTPStatusCode: res.StatusCode,
51003		},
51004	}
51005	target := &ret
51006	if err := gensupport.DecodeResponse(target, res); err != nil {
51007		return nil, err
51008	}
51009	return ret, nil
51010	// {
51011	//   "description": "Updates the specified BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information.",
51012	//   "httpMethod": "PUT",
51013	//   "id": "compute.backendServices.update",
51014	//   "parameterOrder": [
51015	//     "project",
51016	//     "backendService"
51017	//   ],
51018	//   "parameters": {
51019	//     "backendService": {
51020	//       "description": "Name of the BackendService resource to update.",
51021	//       "location": "path",
51022	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51023	//       "required": true,
51024	//       "type": "string"
51025	//     },
51026	//     "project": {
51027	//       "description": "Project ID for this request.",
51028	//       "location": "path",
51029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51030	//       "required": true,
51031	//       "type": "string"
51032	//     },
51033	//     "requestId": {
51034	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51035	//       "location": "query",
51036	//       "type": "string"
51037	//     }
51038	//   },
51039	//   "path": "{project}/global/backendServices/{backendService}",
51040	//   "request": {
51041	//     "$ref": "BackendService"
51042	//   },
51043	//   "response": {
51044	//     "$ref": "Operation"
51045	//   },
51046	//   "scopes": [
51047	//     "https://www.googleapis.com/auth/cloud-platform",
51048	//     "https://www.googleapis.com/auth/compute"
51049	//   ]
51050	// }
51051
51052}
51053
51054// method id "compute.diskTypes.aggregatedList":
51055
51056type DiskTypesAggregatedListCall struct {
51057	s            *Service
51058	project      string
51059	urlParams_   gensupport.URLParams
51060	ifNoneMatch_ string
51061	ctx_         context.Context
51062	header_      http.Header
51063}
51064
51065// AggregatedList: Retrieves an aggregated list of disk types.
51066// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/aggregatedList
51067func (r *DiskTypesService) AggregatedList(project string) *DiskTypesAggregatedListCall {
51068	c := &DiskTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51069	c.project = project
51070	return c
51071}
51072
51073// Filter sets the optional parameter "filter": A filter expression that
51074// filters resources listed in the response. The expression must specify
51075// the field name, a comparison operator, and the value that you want to
51076// use for filtering. The value must be a string, a number, or a
51077// boolean. The comparison operator must be either =, !=, >, or <.
51078//
51079// For example, if you are filtering Compute Engine instances, you can
51080// exclude instances named example-instance by specifying name !=
51081// example-instance.
51082//
51083// You can also filter nested fields. For example, you could specify
51084// scheduling.automaticRestart = false to include instances only if they
51085// are not scheduled for automatic restarts. You can use filtering on
51086// nested fields to filter based on resource labels.
51087//
51088// To filter on multiple expressions, provide each separate expression
51089// within parentheses. For example, (scheduling.automaticRestart = true)
51090// (cpuPlatform = "Intel Skylake"). By default, each expression is an
51091// AND expression. However, you can include AND and OR expressions
51092// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
51093// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
51094// true).
51095func (c *DiskTypesAggregatedListCall) Filter(filter string) *DiskTypesAggregatedListCall {
51096	c.urlParams_.Set("filter", filter)
51097	return c
51098}
51099
51100// IncludeAllScopes sets the optional parameter "includeAllScopes":
51101// Indicates whether every visible scope for each scope type (zone,
51102// region, global) should be included in the response. For new resource
51103// types added after this field, the flag has no effect as new resource
51104// types will always include every visible scope for each scope type in
51105// response. For resource types which predate this field, if this flag
51106// is omitted or false, only scopes of the scope types where the
51107// resource type is expected to be found will be included.
51108func (c *DiskTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DiskTypesAggregatedListCall {
51109	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
51110	return c
51111}
51112
51113// MaxResults sets the optional parameter "maxResults": The maximum
51114// number of results per page that should be returned. If the number of
51115// available results is larger than maxResults, Compute Engine returns a
51116// nextPageToken that can be used to get the next page of results in
51117// subsequent list requests. Acceptable values are 0 to 500, inclusive.
51118// (Default: 500)
51119func (c *DiskTypesAggregatedListCall) MaxResults(maxResults int64) *DiskTypesAggregatedListCall {
51120	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51121	return c
51122}
51123
51124// OrderBy sets the optional parameter "orderBy": Sorts list results by
51125// a certain order. By default, results are returned in alphanumerical
51126// order based on the resource name.
51127//
51128// You can also sort results in descending order based on the creation
51129// timestamp using orderBy="creationTimestamp desc". This sorts results
51130// based on the creationTimestamp field in reverse chronological order
51131// (newest result first). Use this to sort resources like operations so
51132// that the newest operation is returned first.
51133//
51134// Currently, only sorting by name or creationTimestamp desc is
51135// supported.
51136func (c *DiskTypesAggregatedListCall) OrderBy(orderBy string) *DiskTypesAggregatedListCall {
51137	c.urlParams_.Set("orderBy", orderBy)
51138	return c
51139}
51140
51141// PageToken sets the optional parameter "pageToken": Specifies a page
51142// token to use. Set pageToken to the nextPageToken returned by a
51143// previous list request to get the next page of results.
51144func (c *DiskTypesAggregatedListCall) PageToken(pageToken string) *DiskTypesAggregatedListCall {
51145	c.urlParams_.Set("pageToken", pageToken)
51146	return c
51147}
51148
51149// Fields allows partial responses to be retrieved. See
51150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51151// for more information.
51152func (c *DiskTypesAggregatedListCall) Fields(s ...googleapi.Field) *DiskTypesAggregatedListCall {
51153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51154	return c
51155}
51156
51157// IfNoneMatch sets the optional parameter which makes the operation
51158// fail if the object's ETag matches the given value. This is useful for
51159// getting updates only after the object has changed since the last
51160// request. Use googleapi.IsNotModified to check whether the response
51161// error from Do is the result of In-None-Match.
51162func (c *DiskTypesAggregatedListCall) IfNoneMatch(entityTag string) *DiskTypesAggregatedListCall {
51163	c.ifNoneMatch_ = entityTag
51164	return c
51165}
51166
51167// Context sets the context to be used in this call's Do method. Any
51168// pending HTTP request will be aborted if the provided context is
51169// canceled.
51170func (c *DiskTypesAggregatedListCall) Context(ctx context.Context) *DiskTypesAggregatedListCall {
51171	c.ctx_ = ctx
51172	return c
51173}
51174
51175// Header returns an http.Header that can be modified by the caller to
51176// add HTTP headers to the request.
51177func (c *DiskTypesAggregatedListCall) Header() http.Header {
51178	if c.header_ == nil {
51179		c.header_ = make(http.Header)
51180	}
51181	return c.header_
51182}
51183
51184func (c *DiskTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
51185	reqHeaders := make(http.Header)
51186	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51187	for k, v := range c.header_ {
51188		reqHeaders[k] = v
51189	}
51190	reqHeaders.Set("User-Agent", c.s.userAgent())
51191	if c.ifNoneMatch_ != "" {
51192		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51193	}
51194	var body io.Reader = nil
51195	c.urlParams_.Set("alt", alt)
51196	c.urlParams_.Set("prettyPrint", "false")
51197	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/diskTypes")
51198	urls += "?" + c.urlParams_.Encode()
51199	req, err := http.NewRequest("GET", urls, body)
51200	if err != nil {
51201		return nil, err
51202	}
51203	req.Header = reqHeaders
51204	googleapi.Expand(req.URL, map[string]string{
51205		"project": c.project,
51206	})
51207	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51208}
51209
51210// Do executes the "compute.diskTypes.aggregatedList" call.
51211// Exactly one of *DiskTypeAggregatedList or error will be non-nil. Any
51212// non-2xx status code is an error. Response headers are in either
51213// *DiskTypeAggregatedList.ServerResponse.Header or (if a response was
51214// returned at all) in error.(*googleapi.Error).Header. Use
51215// googleapi.IsNotModified to check whether the returned error was
51216// because http.StatusNotModified was returned.
51217func (c *DiskTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskTypeAggregatedList, error) {
51218	gensupport.SetOptions(c.urlParams_, opts...)
51219	res, err := c.doRequest("json")
51220	if res != nil && res.StatusCode == http.StatusNotModified {
51221		if res.Body != nil {
51222			res.Body.Close()
51223		}
51224		return nil, &googleapi.Error{
51225			Code:   res.StatusCode,
51226			Header: res.Header,
51227		}
51228	}
51229	if err != nil {
51230		return nil, err
51231	}
51232	defer googleapi.CloseBody(res)
51233	if err := googleapi.CheckResponse(res); err != nil {
51234		return nil, err
51235	}
51236	ret := &DiskTypeAggregatedList{
51237		ServerResponse: googleapi.ServerResponse{
51238			Header:         res.Header,
51239			HTTPStatusCode: res.StatusCode,
51240		},
51241	}
51242	target := &ret
51243	if err := gensupport.DecodeResponse(target, res); err != nil {
51244		return nil, err
51245	}
51246	return ret, nil
51247	// {
51248	//   "description": "Retrieves an aggregated list of disk types.",
51249	//   "httpMethod": "GET",
51250	//   "id": "compute.diskTypes.aggregatedList",
51251	//   "parameterOrder": [
51252	//     "project"
51253	//   ],
51254	//   "parameters": {
51255	//     "filter": {
51256	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
51257	//       "location": "query",
51258	//       "type": "string"
51259	//     },
51260	//     "includeAllScopes": {
51261	//       "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.",
51262	//       "location": "query",
51263	//       "type": "boolean"
51264	//     },
51265	//     "maxResults": {
51266	//       "default": "500",
51267	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
51268	//       "format": "uint32",
51269	//       "location": "query",
51270	//       "minimum": "0",
51271	//       "type": "integer"
51272	//     },
51273	//     "orderBy": {
51274	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
51275	//       "location": "query",
51276	//       "type": "string"
51277	//     },
51278	//     "pageToken": {
51279	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
51280	//       "location": "query",
51281	//       "type": "string"
51282	//     },
51283	//     "project": {
51284	//       "description": "Project ID for this request.",
51285	//       "location": "path",
51286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51287	//       "required": true,
51288	//       "type": "string"
51289	//     }
51290	//   },
51291	//   "path": "{project}/aggregated/diskTypes",
51292	//   "response": {
51293	//     "$ref": "DiskTypeAggregatedList"
51294	//   },
51295	//   "scopes": [
51296	//     "https://www.googleapis.com/auth/cloud-platform",
51297	//     "https://www.googleapis.com/auth/compute",
51298	//     "https://www.googleapis.com/auth/compute.readonly"
51299	//   ]
51300	// }
51301
51302}
51303
51304// Pages invokes f for each page of results.
51305// A non-nil error returned from f will halt the iteration.
51306// The provided context supersedes any context provided to the Context method.
51307func (c *DiskTypesAggregatedListCall) Pages(ctx context.Context, f func(*DiskTypeAggregatedList) error) error {
51308	c.ctx_ = ctx
51309	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51310	for {
51311		x, err := c.Do()
51312		if err != nil {
51313			return err
51314		}
51315		if err := f(x); err != nil {
51316			return err
51317		}
51318		if x.NextPageToken == "" {
51319			return nil
51320		}
51321		c.PageToken(x.NextPageToken)
51322	}
51323}
51324
51325// method id "compute.diskTypes.get":
51326
51327type DiskTypesGetCall struct {
51328	s            *Service
51329	project      string
51330	zone         string
51331	diskType     string
51332	urlParams_   gensupport.URLParams
51333	ifNoneMatch_ string
51334	ctx_         context.Context
51335	header_      http.Header
51336}
51337
51338// Get: Returns the specified disk type. Gets a list of available disk
51339// types by making a list() request.
51340// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/get
51341func (r *DiskTypesService) Get(project string, zone string, diskType string) *DiskTypesGetCall {
51342	c := &DiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51343	c.project = project
51344	c.zone = zone
51345	c.diskType = diskType
51346	return c
51347}
51348
51349// Fields allows partial responses to be retrieved. See
51350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51351// for more information.
51352func (c *DiskTypesGetCall) Fields(s ...googleapi.Field) *DiskTypesGetCall {
51353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51354	return c
51355}
51356
51357// IfNoneMatch sets the optional parameter which makes the operation
51358// fail if the object's ETag matches the given value. This is useful for
51359// getting updates only after the object has changed since the last
51360// request. Use googleapi.IsNotModified to check whether the response
51361// error from Do is the result of In-None-Match.
51362func (c *DiskTypesGetCall) IfNoneMatch(entityTag string) *DiskTypesGetCall {
51363	c.ifNoneMatch_ = entityTag
51364	return c
51365}
51366
51367// Context sets the context to be used in this call's Do method. Any
51368// pending HTTP request will be aborted if the provided context is
51369// canceled.
51370func (c *DiskTypesGetCall) Context(ctx context.Context) *DiskTypesGetCall {
51371	c.ctx_ = ctx
51372	return c
51373}
51374
51375// Header returns an http.Header that can be modified by the caller to
51376// add HTTP headers to the request.
51377func (c *DiskTypesGetCall) Header() http.Header {
51378	if c.header_ == nil {
51379		c.header_ = make(http.Header)
51380	}
51381	return c.header_
51382}
51383
51384func (c *DiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
51385	reqHeaders := make(http.Header)
51386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51387	for k, v := range c.header_ {
51388		reqHeaders[k] = v
51389	}
51390	reqHeaders.Set("User-Agent", c.s.userAgent())
51391	if c.ifNoneMatch_ != "" {
51392		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51393	}
51394	var body io.Reader = nil
51395	c.urlParams_.Set("alt", alt)
51396	c.urlParams_.Set("prettyPrint", "false")
51397	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes/{diskType}")
51398	urls += "?" + c.urlParams_.Encode()
51399	req, err := http.NewRequest("GET", urls, body)
51400	if err != nil {
51401		return nil, err
51402	}
51403	req.Header = reqHeaders
51404	googleapi.Expand(req.URL, map[string]string{
51405		"project":  c.project,
51406		"zone":     c.zone,
51407		"diskType": c.diskType,
51408	})
51409	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51410}
51411
51412// Do executes the "compute.diskTypes.get" call.
51413// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
51414// code is an error. Response headers are in either
51415// *DiskType.ServerResponse.Header or (if a response was returned at
51416// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51417// to check whether the returned error was because
51418// http.StatusNotModified was returned.
51419func (c *DiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
51420	gensupport.SetOptions(c.urlParams_, opts...)
51421	res, err := c.doRequest("json")
51422	if res != nil && res.StatusCode == http.StatusNotModified {
51423		if res.Body != nil {
51424			res.Body.Close()
51425		}
51426		return nil, &googleapi.Error{
51427			Code:   res.StatusCode,
51428			Header: res.Header,
51429		}
51430	}
51431	if err != nil {
51432		return nil, err
51433	}
51434	defer googleapi.CloseBody(res)
51435	if err := googleapi.CheckResponse(res); err != nil {
51436		return nil, err
51437	}
51438	ret := &DiskType{
51439		ServerResponse: googleapi.ServerResponse{
51440			Header:         res.Header,
51441			HTTPStatusCode: res.StatusCode,
51442		},
51443	}
51444	target := &ret
51445	if err := gensupport.DecodeResponse(target, res); err != nil {
51446		return nil, err
51447	}
51448	return ret, nil
51449	// {
51450	//   "description": "Returns the specified disk type. Gets a list of available disk types by making a list() request.",
51451	//   "httpMethod": "GET",
51452	//   "id": "compute.diskTypes.get",
51453	//   "parameterOrder": [
51454	//     "project",
51455	//     "zone",
51456	//     "diskType"
51457	//   ],
51458	//   "parameters": {
51459	//     "diskType": {
51460	//       "description": "Name of the disk type to return.",
51461	//       "location": "path",
51462	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51463	//       "required": true,
51464	//       "type": "string"
51465	//     },
51466	//     "project": {
51467	//       "description": "Project ID for this request.",
51468	//       "location": "path",
51469	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51470	//       "required": true,
51471	//       "type": "string"
51472	//     },
51473	//     "zone": {
51474	//       "description": "The name of the zone for this request.",
51475	//       "location": "path",
51476	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51477	//       "required": true,
51478	//       "type": "string"
51479	//     }
51480	//   },
51481	//   "path": "{project}/zones/{zone}/diskTypes/{diskType}",
51482	//   "response": {
51483	//     "$ref": "DiskType"
51484	//   },
51485	//   "scopes": [
51486	//     "https://www.googleapis.com/auth/cloud-platform",
51487	//     "https://www.googleapis.com/auth/compute",
51488	//     "https://www.googleapis.com/auth/compute.readonly"
51489	//   ]
51490	// }
51491
51492}
51493
51494// method id "compute.diskTypes.list":
51495
51496type DiskTypesListCall struct {
51497	s            *Service
51498	project      string
51499	zone         string
51500	urlParams_   gensupport.URLParams
51501	ifNoneMatch_ string
51502	ctx_         context.Context
51503	header_      http.Header
51504}
51505
51506// List: Retrieves a list of disk types available to the specified
51507// project.
51508// For details, see https://cloud.google.com/compute/docs/reference/latest/diskTypes/list
51509func (r *DiskTypesService) List(project string, zone string) *DiskTypesListCall {
51510	c := &DiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51511	c.project = project
51512	c.zone = zone
51513	return c
51514}
51515
51516// Filter sets the optional parameter "filter": A filter expression that
51517// filters resources listed in the response. The expression must specify
51518// the field name, a comparison operator, and the value that you want to
51519// use for filtering. The value must be a string, a number, or a
51520// boolean. The comparison operator must be either =, !=, >, or <.
51521//
51522// For example, if you are filtering Compute Engine instances, you can
51523// exclude instances named example-instance by specifying name !=
51524// example-instance.
51525//
51526// You can also filter nested fields. For example, you could specify
51527// scheduling.automaticRestart = false to include instances only if they
51528// are not scheduled for automatic restarts. You can use filtering on
51529// nested fields to filter based on resource labels.
51530//
51531// To filter on multiple expressions, provide each separate expression
51532// within parentheses. For example, (scheduling.automaticRestart = true)
51533// (cpuPlatform = "Intel Skylake"). By default, each expression is an
51534// AND expression. However, you can include AND and OR expressions
51535// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
51536// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
51537// true).
51538func (c *DiskTypesListCall) Filter(filter string) *DiskTypesListCall {
51539	c.urlParams_.Set("filter", filter)
51540	return c
51541}
51542
51543// MaxResults sets the optional parameter "maxResults": The maximum
51544// number of results per page that should be returned. If the number of
51545// available results is larger than maxResults, Compute Engine returns a
51546// nextPageToken that can be used to get the next page of results in
51547// subsequent list requests. Acceptable values are 0 to 500, inclusive.
51548// (Default: 500)
51549func (c *DiskTypesListCall) MaxResults(maxResults int64) *DiskTypesListCall {
51550	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
51551	return c
51552}
51553
51554// OrderBy sets the optional parameter "orderBy": Sorts list results by
51555// a certain order. By default, results are returned in alphanumerical
51556// order based on the resource name.
51557//
51558// You can also sort results in descending order based on the creation
51559// timestamp using orderBy="creationTimestamp desc". This sorts results
51560// based on the creationTimestamp field in reverse chronological order
51561// (newest result first). Use this to sort resources like operations so
51562// that the newest operation is returned first.
51563//
51564// Currently, only sorting by name or creationTimestamp desc is
51565// supported.
51566func (c *DiskTypesListCall) OrderBy(orderBy string) *DiskTypesListCall {
51567	c.urlParams_.Set("orderBy", orderBy)
51568	return c
51569}
51570
51571// PageToken sets the optional parameter "pageToken": Specifies a page
51572// token to use. Set pageToken to the nextPageToken returned by a
51573// previous list request to get the next page of results.
51574func (c *DiskTypesListCall) PageToken(pageToken string) *DiskTypesListCall {
51575	c.urlParams_.Set("pageToken", pageToken)
51576	return c
51577}
51578
51579// Fields allows partial responses to be retrieved. See
51580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51581// for more information.
51582func (c *DiskTypesListCall) Fields(s ...googleapi.Field) *DiskTypesListCall {
51583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51584	return c
51585}
51586
51587// IfNoneMatch sets the optional parameter which makes the operation
51588// fail if the object's ETag matches the given value. This is useful for
51589// getting updates only after the object has changed since the last
51590// request. Use googleapi.IsNotModified to check whether the response
51591// error from Do is the result of In-None-Match.
51592func (c *DiskTypesListCall) IfNoneMatch(entityTag string) *DiskTypesListCall {
51593	c.ifNoneMatch_ = entityTag
51594	return c
51595}
51596
51597// Context sets the context to be used in this call's Do method. Any
51598// pending HTTP request will be aborted if the provided context is
51599// canceled.
51600func (c *DiskTypesListCall) Context(ctx context.Context) *DiskTypesListCall {
51601	c.ctx_ = ctx
51602	return c
51603}
51604
51605// Header returns an http.Header that can be modified by the caller to
51606// add HTTP headers to the request.
51607func (c *DiskTypesListCall) Header() http.Header {
51608	if c.header_ == nil {
51609		c.header_ = make(http.Header)
51610	}
51611	return c.header_
51612}
51613
51614func (c *DiskTypesListCall) doRequest(alt string) (*http.Response, error) {
51615	reqHeaders := make(http.Header)
51616	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51617	for k, v := range c.header_ {
51618		reqHeaders[k] = v
51619	}
51620	reqHeaders.Set("User-Agent", c.s.userAgent())
51621	if c.ifNoneMatch_ != "" {
51622		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
51623	}
51624	var body io.Reader = nil
51625	c.urlParams_.Set("alt", alt)
51626	c.urlParams_.Set("prettyPrint", "false")
51627	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/diskTypes")
51628	urls += "?" + c.urlParams_.Encode()
51629	req, err := http.NewRequest("GET", urls, body)
51630	if err != nil {
51631		return nil, err
51632	}
51633	req.Header = reqHeaders
51634	googleapi.Expand(req.URL, map[string]string{
51635		"project": c.project,
51636		"zone":    c.zone,
51637	})
51638	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51639}
51640
51641// Do executes the "compute.diskTypes.list" call.
51642// Exactly one of *DiskTypeList or error will be non-nil. Any non-2xx
51643// status code is an error. Response headers are in either
51644// *DiskTypeList.ServerResponse.Header or (if a response was returned at
51645// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51646// to check whether the returned error was because
51647// http.StatusNotModified was returned.
51648func (c *DiskTypesListCall) Do(opts ...googleapi.CallOption) (*DiskTypeList, error) {
51649	gensupport.SetOptions(c.urlParams_, opts...)
51650	res, err := c.doRequest("json")
51651	if res != nil && res.StatusCode == http.StatusNotModified {
51652		if res.Body != nil {
51653			res.Body.Close()
51654		}
51655		return nil, &googleapi.Error{
51656			Code:   res.StatusCode,
51657			Header: res.Header,
51658		}
51659	}
51660	if err != nil {
51661		return nil, err
51662	}
51663	defer googleapi.CloseBody(res)
51664	if err := googleapi.CheckResponse(res); err != nil {
51665		return nil, err
51666	}
51667	ret := &DiskTypeList{
51668		ServerResponse: googleapi.ServerResponse{
51669			Header:         res.Header,
51670			HTTPStatusCode: res.StatusCode,
51671		},
51672	}
51673	target := &ret
51674	if err := gensupport.DecodeResponse(target, res); err != nil {
51675		return nil, err
51676	}
51677	return ret, nil
51678	// {
51679	//   "description": "Retrieves a list of disk types available to the specified project.",
51680	//   "httpMethod": "GET",
51681	//   "id": "compute.diskTypes.list",
51682	//   "parameterOrder": [
51683	//     "project",
51684	//     "zone"
51685	//   ],
51686	//   "parameters": {
51687	//     "filter": {
51688	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
51689	//       "location": "query",
51690	//       "type": "string"
51691	//     },
51692	//     "maxResults": {
51693	//       "default": "500",
51694	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
51695	//       "format": "uint32",
51696	//       "location": "query",
51697	//       "minimum": "0",
51698	//       "type": "integer"
51699	//     },
51700	//     "orderBy": {
51701	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
51702	//       "location": "query",
51703	//       "type": "string"
51704	//     },
51705	//     "pageToken": {
51706	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
51707	//       "location": "query",
51708	//       "type": "string"
51709	//     },
51710	//     "project": {
51711	//       "description": "Project ID for this request.",
51712	//       "location": "path",
51713	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51714	//       "required": true,
51715	//       "type": "string"
51716	//     },
51717	//     "zone": {
51718	//       "description": "The name of the zone for this request.",
51719	//       "location": "path",
51720	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51721	//       "required": true,
51722	//       "type": "string"
51723	//     }
51724	//   },
51725	//   "path": "{project}/zones/{zone}/diskTypes",
51726	//   "response": {
51727	//     "$ref": "DiskTypeList"
51728	//   },
51729	//   "scopes": [
51730	//     "https://www.googleapis.com/auth/cloud-platform",
51731	//     "https://www.googleapis.com/auth/compute",
51732	//     "https://www.googleapis.com/auth/compute.readonly"
51733	//   ]
51734	// }
51735
51736}
51737
51738// Pages invokes f for each page of results.
51739// A non-nil error returned from f will halt the iteration.
51740// The provided context supersedes any context provided to the Context method.
51741func (c *DiskTypesListCall) Pages(ctx context.Context, f func(*DiskTypeList) error) error {
51742	c.ctx_ = ctx
51743	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
51744	for {
51745		x, err := c.Do()
51746		if err != nil {
51747			return err
51748		}
51749		if err := f(x); err != nil {
51750			return err
51751		}
51752		if x.NextPageToken == "" {
51753			return nil
51754		}
51755		c.PageToken(x.NextPageToken)
51756	}
51757}
51758
51759// method id "compute.disks.addResourcePolicies":
51760
51761type DisksAddResourcePoliciesCall struct {
51762	s                               *Service
51763	project                         string
51764	zone                            string
51765	disk                            string
51766	disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest
51767	urlParams_                      gensupport.URLParams
51768	ctx_                            context.Context
51769	header_                         http.Header
51770}
51771
51772// AddResourcePolicies: Adds existing resource policies to a disk. You
51773// can only add one policy which will be applied to this disk for
51774// scheduling snapshot creation.
51775func (r *DisksService) AddResourcePolicies(project string, zone string, disk string, disksaddresourcepoliciesrequest *DisksAddResourcePoliciesRequest) *DisksAddResourcePoliciesCall {
51776	c := &DisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51777	c.project = project
51778	c.zone = zone
51779	c.disk = disk
51780	c.disksaddresourcepoliciesrequest = disksaddresourcepoliciesrequest
51781	return c
51782}
51783
51784// RequestId sets the optional parameter "requestId": An optional
51785// request ID to identify requests. Specify a unique request ID so that
51786// if you must retry your request, the server will know to ignore the
51787// request if it has already been completed.
51788//
51789// For example, consider a situation where you make an initial request
51790// and the request times out. If you make the request again with the
51791// same request ID, the server can check if original operation with the
51792// same request ID was received, and if so, will ignore the second
51793// request. This prevents clients from accidentally creating duplicate
51794// commitments.
51795//
51796// The request ID must be a valid UUID with the exception that zero UUID
51797// is not supported (00000000-0000-0000-0000-000000000000).
51798func (c *DisksAddResourcePoliciesCall) RequestId(requestId string) *DisksAddResourcePoliciesCall {
51799	c.urlParams_.Set("requestId", requestId)
51800	return c
51801}
51802
51803// Fields allows partial responses to be retrieved. See
51804// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
51805// for more information.
51806func (c *DisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksAddResourcePoliciesCall {
51807	c.urlParams_.Set("fields", googleapi.CombineFields(s))
51808	return c
51809}
51810
51811// Context sets the context to be used in this call's Do method. Any
51812// pending HTTP request will be aborted if the provided context is
51813// canceled.
51814func (c *DisksAddResourcePoliciesCall) Context(ctx context.Context) *DisksAddResourcePoliciesCall {
51815	c.ctx_ = ctx
51816	return c
51817}
51818
51819// Header returns an http.Header that can be modified by the caller to
51820// add HTTP headers to the request.
51821func (c *DisksAddResourcePoliciesCall) Header() http.Header {
51822	if c.header_ == nil {
51823		c.header_ = make(http.Header)
51824	}
51825	return c.header_
51826}
51827
51828func (c *DisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
51829	reqHeaders := make(http.Header)
51830	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
51831	for k, v := range c.header_ {
51832		reqHeaders[k] = v
51833	}
51834	reqHeaders.Set("User-Agent", c.s.userAgent())
51835	var body io.Reader = nil
51836	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksaddresourcepoliciesrequest)
51837	if err != nil {
51838		return nil, err
51839	}
51840	reqHeaders.Set("Content-Type", "application/json")
51841	c.urlParams_.Set("alt", alt)
51842	c.urlParams_.Set("prettyPrint", "false")
51843	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/addResourcePolicies")
51844	urls += "?" + c.urlParams_.Encode()
51845	req, err := http.NewRequest("POST", urls, body)
51846	if err != nil {
51847		return nil, err
51848	}
51849	req.Header = reqHeaders
51850	googleapi.Expand(req.URL, map[string]string{
51851		"project": c.project,
51852		"zone":    c.zone,
51853		"disk":    c.disk,
51854	})
51855	return gensupport.SendRequest(c.ctx_, c.s.client, req)
51856}
51857
51858// Do executes the "compute.disks.addResourcePolicies" call.
51859// Exactly one of *Operation or error will be non-nil. Any non-2xx
51860// status code is an error. Response headers are in either
51861// *Operation.ServerResponse.Header or (if a response was returned at
51862// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
51863// to check whether the returned error was because
51864// http.StatusNotModified was returned.
51865func (c *DisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
51866	gensupport.SetOptions(c.urlParams_, opts...)
51867	res, err := c.doRequest("json")
51868	if res != nil && res.StatusCode == http.StatusNotModified {
51869		if res.Body != nil {
51870			res.Body.Close()
51871		}
51872		return nil, &googleapi.Error{
51873			Code:   res.StatusCode,
51874			Header: res.Header,
51875		}
51876	}
51877	if err != nil {
51878		return nil, err
51879	}
51880	defer googleapi.CloseBody(res)
51881	if err := googleapi.CheckResponse(res); err != nil {
51882		return nil, err
51883	}
51884	ret := &Operation{
51885		ServerResponse: googleapi.ServerResponse{
51886			Header:         res.Header,
51887			HTTPStatusCode: res.StatusCode,
51888		},
51889	}
51890	target := &ret
51891	if err := gensupport.DecodeResponse(target, res); err != nil {
51892		return nil, err
51893	}
51894	return ret, nil
51895	// {
51896	//   "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.",
51897	//   "httpMethod": "POST",
51898	//   "id": "compute.disks.addResourcePolicies",
51899	//   "parameterOrder": [
51900	//     "project",
51901	//     "zone",
51902	//     "disk"
51903	//   ],
51904	//   "parameters": {
51905	//     "disk": {
51906	//       "description": "The disk name for this request.",
51907	//       "location": "path",
51908	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
51909	//       "required": true,
51910	//       "type": "string"
51911	//     },
51912	//     "project": {
51913	//       "description": "Project ID for this request.",
51914	//       "location": "path",
51915	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
51916	//       "required": true,
51917	//       "type": "string"
51918	//     },
51919	//     "requestId": {
51920	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
51921	//       "location": "query",
51922	//       "type": "string"
51923	//     },
51924	//     "zone": {
51925	//       "description": "The name of the zone for this request.",
51926	//       "location": "path",
51927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
51928	//       "required": true,
51929	//       "type": "string"
51930	//     }
51931	//   },
51932	//   "path": "{project}/zones/{zone}/disks/{disk}/addResourcePolicies",
51933	//   "request": {
51934	//     "$ref": "DisksAddResourcePoliciesRequest"
51935	//   },
51936	//   "response": {
51937	//     "$ref": "Operation"
51938	//   },
51939	//   "scopes": [
51940	//     "https://www.googleapis.com/auth/cloud-platform",
51941	//     "https://www.googleapis.com/auth/compute"
51942	//   ]
51943	// }
51944
51945}
51946
51947// method id "compute.disks.aggregatedList":
51948
51949type DisksAggregatedListCall struct {
51950	s            *Service
51951	project      string
51952	urlParams_   gensupport.URLParams
51953	ifNoneMatch_ string
51954	ctx_         context.Context
51955	header_      http.Header
51956}
51957
51958// AggregatedList: Retrieves an aggregated list of persistent disks.
51959// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/aggregatedList
51960func (r *DisksService) AggregatedList(project string) *DisksAggregatedListCall {
51961	c := &DisksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
51962	c.project = project
51963	return c
51964}
51965
51966// Filter sets the optional parameter "filter": A filter expression that
51967// filters resources listed in the response. The expression must specify
51968// the field name, a comparison operator, and the value that you want to
51969// use for filtering. The value must be a string, a number, or a
51970// boolean. The comparison operator must be either =, !=, >, or <.
51971//
51972// For example, if you are filtering Compute Engine instances, you can
51973// exclude instances named example-instance by specifying name !=
51974// example-instance.
51975//
51976// You can also filter nested fields. For example, you could specify
51977// scheduling.automaticRestart = false to include instances only if they
51978// are not scheduled for automatic restarts. You can use filtering on
51979// nested fields to filter based on resource labels.
51980//
51981// To filter on multiple expressions, provide each separate expression
51982// within parentheses. For example, (scheduling.automaticRestart = true)
51983// (cpuPlatform = "Intel Skylake"). By default, each expression is an
51984// AND expression. However, you can include AND and OR expressions
51985// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
51986// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
51987// true).
51988func (c *DisksAggregatedListCall) Filter(filter string) *DisksAggregatedListCall {
51989	c.urlParams_.Set("filter", filter)
51990	return c
51991}
51992
51993// IncludeAllScopes sets the optional parameter "includeAllScopes":
51994// Indicates whether every visible scope for each scope type (zone,
51995// region, global) should be included in the response. For new resource
51996// types added after this field, the flag has no effect as new resource
51997// types will always include every visible scope for each scope type in
51998// response. For resource types which predate this field, if this flag
51999// is omitted or false, only scopes of the scope types where the
52000// resource type is expected to be found will be included.
52001func (c *DisksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *DisksAggregatedListCall {
52002	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
52003	return c
52004}
52005
52006// MaxResults sets the optional parameter "maxResults": The maximum
52007// number of results per page that should be returned. If the number of
52008// available results is larger than maxResults, Compute Engine returns a
52009// nextPageToken that can be used to get the next page of results in
52010// subsequent list requests. Acceptable values are 0 to 500, inclusive.
52011// (Default: 500)
52012func (c *DisksAggregatedListCall) MaxResults(maxResults int64) *DisksAggregatedListCall {
52013	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
52014	return c
52015}
52016
52017// OrderBy sets the optional parameter "orderBy": Sorts list results by
52018// a certain order. By default, results are returned in alphanumerical
52019// order based on the resource name.
52020//
52021// You can also sort results in descending order based on the creation
52022// timestamp using orderBy="creationTimestamp desc". This sorts results
52023// based on the creationTimestamp field in reverse chronological order
52024// (newest result first). Use this to sort resources like operations so
52025// that the newest operation is returned first.
52026//
52027// Currently, only sorting by name or creationTimestamp desc is
52028// supported.
52029func (c *DisksAggregatedListCall) OrderBy(orderBy string) *DisksAggregatedListCall {
52030	c.urlParams_.Set("orderBy", orderBy)
52031	return c
52032}
52033
52034// PageToken sets the optional parameter "pageToken": Specifies a page
52035// token to use. Set pageToken to the nextPageToken returned by a
52036// previous list request to get the next page of results.
52037func (c *DisksAggregatedListCall) PageToken(pageToken string) *DisksAggregatedListCall {
52038	c.urlParams_.Set("pageToken", pageToken)
52039	return c
52040}
52041
52042// Fields allows partial responses to be retrieved. See
52043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52044// for more information.
52045func (c *DisksAggregatedListCall) Fields(s ...googleapi.Field) *DisksAggregatedListCall {
52046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52047	return c
52048}
52049
52050// IfNoneMatch sets the optional parameter which makes the operation
52051// fail if the object's ETag matches the given value. This is useful for
52052// getting updates only after the object has changed since the last
52053// request. Use googleapi.IsNotModified to check whether the response
52054// error from Do is the result of In-None-Match.
52055func (c *DisksAggregatedListCall) IfNoneMatch(entityTag string) *DisksAggregatedListCall {
52056	c.ifNoneMatch_ = entityTag
52057	return c
52058}
52059
52060// Context sets the context to be used in this call's Do method. Any
52061// pending HTTP request will be aborted if the provided context is
52062// canceled.
52063func (c *DisksAggregatedListCall) Context(ctx context.Context) *DisksAggregatedListCall {
52064	c.ctx_ = ctx
52065	return c
52066}
52067
52068// Header returns an http.Header that can be modified by the caller to
52069// add HTTP headers to the request.
52070func (c *DisksAggregatedListCall) Header() http.Header {
52071	if c.header_ == nil {
52072		c.header_ = make(http.Header)
52073	}
52074	return c.header_
52075}
52076
52077func (c *DisksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
52078	reqHeaders := make(http.Header)
52079	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52080	for k, v := range c.header_ {
52081		reqHeaders[k] = v
52082	}
52083	reqHeaders.Set("User-Agent", c.s.userAgent())
52084	if c.ifNoneMatch_ != "" {
52085		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52086	}
52087	var body io.Reader = nil
52088	c.urlParams_.Set("alt", alt)
52089	c.urlParams_.Set("prettyPrint", "false")
52090	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/disks")
52091	urls += "?" + c.urlParams_.Encode()
52092	req, err := http.NewRequest("GET", urls, body)
52093	if err != nil {
52094		return nil, err
52095	}
52096	req.Header = reqHeaders
52097	googleapi.Expand(req.URL, map[string]string{
52098		"project": c.project,
52099	})
52100	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52101}
52102
52103// Do executes the "compute.disks.aggregatedList" call.
52104// Exactly one of *DiskAggregatedList or error will be non-nil. Any
52105// non-2xx status code is an error. Response headers are in either
52106// *DiskAggregatedList.ServerResponse.Header or (if a response was
52107// returned at all) in error.(*googleapi.Error).Header. Use
52108// googleapi.IsNotModified to check whether the returned error was
52109// because http.StatusNotModified was returned.
52110func (c *DisksAggregatedListCall) Do(opts ...googleapi.CallOption) (*DiskAggregatedList, error) {
52111	gensupport.SetOptions(c.urlParams_, opts...)
52112	res, err := c.doRequest("json")
52113	if res != nil && res.StatusCode == http.StatusNotModified {
52114		if res.Body != nil {
52115			res.Body.Close()
52116		}
52117		return nil, &googleapi.Error{
52118			Code:   res.StatusCode,
52119			Header: res.Header,
52120		}
52121	}
52122	if err != nil {
52123		return nil, err
52124	}
52125	defer googleapi.CloseBody(res)
52126	if err := googleapi.CheckResponse(res); err != nil {
52127		return nil, err
52128	}
52129	ret := &DiskAggregatedList{
52130		ServerResponse: googleapi.ServerResponse{
52131			Header:         res.Header,
52132			HTTPStatusCode: res.StatusCode,
52133		},
52134	}
52135	target := &ret
52136	if err := gensupport.DecodeResponse(target, res); err != nil {
52137		return nil, err
52138	}
52139	return ret, nil
52140	// {
52141	//   "description": "Retrieves an aggregated list of persistent disks.",
52142	//   "httpMethod": "GET",
52143	//   "id": "compute.disks.aggregatedList",
52144	//   "parameterOrder": [
52145	//     "project"
52146	//   ],
52147	//   "parameters": {
52148	//     "filter": {
52149	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
52150	//       "location": "query",
52151	//       "type": "string"
52152	//     },
52153	//     "includeAllScopes": {
52154	//       "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.",
52155	//       "location": "query",
52156	//       "type": "boolean"
52157	//     },
52158	//     "maxResults": {
52159	//       "default": "500",
52160	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
52161	//       "format": "uint32",
52162	//       "location": "query",
52163	//       "minimum": "0",
52164	//       "type": "integer"
52165	//     },
52166	//     "orderBy": {
52167	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
52168	//       "location": "query",
52169	//       "type": "string"
52170	//     },
52171	//     "pageToken": {
52172	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
52173	//       "location": "query",
52174	//       "type": "string"
52175	//     },
52176	//     "project": {
52177	//       "description": "Project ID for this request.",
52178	//       "location": "path",
52179	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52180	//       "required": true,
52181	//       "type": "string"
52182	//     }
52183	//   },
52184	//   "path": "{project}/aggregated/disks",
52185	//   "response": {
52186	//     "$ref": "DiskAggregatedList"
52187	//   },
52188	//   "scopes": [
52189	//     "https://www.googleapis.com/auth/cloud-platform",
52190	//     "https://www.googleapis.com/auth/compute",
52191	//     "https://www.googleapis.com/auth/compute.readonly"
52192	//   ]
52193	// }
52194
52195}
52196
52197// Pages invokes f for each page of results.
52198// A non-nil error returned from f will halt the iteration.
52199// The provided context supersedes any context provided to the Context method.
52200func (c *DisksAggregatedListCall) Pages(ctx context.Context, f func(*DiskAggregatedList) error) error {
52201	c.ctx_ = ctx
52202	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
52203	for {
52204		x, err := c.Do()
52205		if err != nil {
52206			return err
52207		}
52208		if err := f(x); err != nil {
52209			return err
52210		}
52211		if x.NextPageToken == "" {
52212			return nil
52213		}
52214		c.PageToken(x.NextPageToken)
52215	}
52216}
52217
52218// method id "compute.disks.createSnapshot":
52219
52220type DisksCreateSnapshotCall struct {
52221	s          *Service
52222	project    string
52223	zone       string
52224	disk       string
52225	snapshot   *Snapshot
52226	urlParams_ gensupport.URLParams
52227	ctx_       context.Context
52228	header_    http.Header
52229}
52230
52231// CreateSnapshot: Creates a snapshot of a specified persistent disk.
52232// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/createSnapshot
52233func (r *DisksService) CreateSnapshot(project string, zone string, disk string, snapshot *Snapshot) *DisksCreateSnapshotCall {
52234	c := &DisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52235	c.project = project
52236	c.zone = zone
52237	c.disk = disk
52238	c.snapshot = snapshot
52239	return c
52240}
52241
52242// GuestFlush sets the optional parameter "guestFlush": [Input Only]
52243// Specifies to create an application consistent snapshot by informing
52244// the OS to prepare for the snapshot process. Currently only supported
52245// on Windows instances using the Volume Shadow Copy Service (VSS).
52246func (c *DisksCreateSnapshotCall) GuestFlush(guestFlush bool) *DisksCreateSnapshotCall {
52247	c.urlParams_.Set("guestFlush", fmt.Sprint(guestFlush))
52248	return c
52249}
52250
52251// RequestId sets the optional parameter "requestId": An optional
52252// request ID to identify requests. Specify a unique request ID so that
52253// if you must retry your request, the server will know to ignore the
52254// request if it has already been completed.
52255//
52256// For example, consider a situation where you make an initial request
52257// and the request times out. If you make the request again with the
52258// same request ID, the server can check if original operation with the
52259// same request ID was received, and if so, will ignore the second
52260// request. This prevents clients from accidentally creating duplicate
52261// commitments.
52262//
52263// The request ID must be a valid UUID with the exception that zero UUID
52264// is not supported (00000000-0000-0000-0000-000000000000).
52265func (c *DisksCreateSnapshotCall) RequestId(requestId string) *DisksCreateSnapshotCall {
52266	c.urlParams_.Set("requestId", requestId)
52267	return c
52268}
52269
52270// Fields allows partial responses to be retrieved. See
52271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52272// for more information.
52273func (c *DisksCreateSnapshotCall) Fields(s ...googleapi.Field) *DisksCreateSnapshotCall {
52274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52275	return c
52276}
52277
52278// Context sets the context to be used in this call's Do method. Any
52279// pending HTTP request will be aborted if the provided context is
52280// canceled.
52281func (c *DisksCreateSnapshotCall) Context(ctx context.Context) *DisksCreateSnapshotCall {
52282	c.ctx_ = ctx
52283	return c
52284}
52285
52286// Header returns an http.Header that can be modified by the caller to
52287// add HTTP headers to the request.
52288func (c *DisksCreateSnapshotCall) Header() http.Header {
52289	if c.header_ == nil {
52290		c.header_ = make(http.Header)
52291	}
52292	return c.header_
52293}
52294
52295func (c *DisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
52296	reqHeaders := make(http.Header)
52297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52298	for k, v := range c.header_ {
52299		reqHeaders[k] = v
52300	}
52301	reqHeaders.Set("User-Agent", c.s.userAgent())
52302	var body io.Reader = nil
52303	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
52304	if err != nil {
52305		return nil, err
52306	}
52307	reqHeaders.Set("Content-Type", "application/json")
52308	c.urlParams_.Set("alt", alt)
52309	c.urlParams_.Set("prettyPrint", "false")
52310	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/createSnapshot")
52311	urls += "?" + c.urlParams_.Encode()
52312	req, err := http.NewRequest("POST", urls, body)
52313	if err != nil {
52314		return nil, err
52315	}
52316	req.Header = reqHeaders
52317	googleapi.Expand(req.URL, map[string]string{
52318		"project": c.project,
52319		"zone":    c.zone,
52320		"disk":    c.disk,
52321	})
52322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52323}
52324
52325// Do executes the "compute.disks.createSnapshot" call.
52326// Exactly one of *Operation or error will be non-nil. Any non-2xx
52327// status code is an error. Response headers are in either
52328// *Operation.ServerResponse.Header or (if a response was returned at
52329// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52330// to check whether the returned error was because
52331// http.StatusNotModified was returned.
52332func (c *DisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52333	gensupport.SetOptions(c.urlParams_, opts...)
52334	res, err := c.doRequest("json")
52335	if res != nil && res.StatusCode == http.StatusNotModified {
52336		if res.Body != nil {
52337			res.Body.Close()
52338		}
52339		return nil, &googleapi.Error{
52340			Code:   res.StatusCode,
52341			Header: res.Header,
52342		}
52343	}
52344	if err != nil {
52345		return nil, err
52346	}
52347	defer googleapi.CloseBody(res)
52348	if err := googleapi.CheckResponse(res); err != nil {
52349		return nil, err
52350	}
52351	ret := &Operation{
52352		ServerResponse: googleapi.ServerResponse{
52353			Header:         res.Header,
52354			HTTPStatusCode: res.StatusCode,
52355		},
52356	}
52357	target := &ret
52358	if err := gensupport.DecodeResponse(target, res); err != nil {
52359		return nil, err
52360	}
52361	return ret, nil
52362	// {
52363	//   "description": "Creates a snapshot of a specified persistent disk.",
52364	//   "httpMethod": "POST",
52365	//   "id": "compute.disks.createSnapshot",
52366	//   "parameterOrder": [
52367	//     "project",
52368	//     "zone",
52369	//     "disk"
52370	//   ],
52371	//   "parameters": {
52372	//     "disk": {
52373	//       "description": "Name of the persistent disk to snapshot.",
52374	//       "location": "path",
52375	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52376	//       "required": true,
52377	//       "type": "string"
52378	//     },
52379	//     "guestFlush": {
52380	//       "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).",
52381	//       "location": "query",
52382	//       "type": "boolean"
52383	//     },
52384	//     "project": {
52385	//       "description": "Project ID for this request.",
52386	//       "location": "path",
52387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52388	//       "required": true,
52389	//       "type": "string"
52390	//     },
52391	//     "requestId": {
52392	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52393	//       "location": "query",
52394	//       "type": "string"
52395	//     },
52396	//     "zone": {
52397	//       "description": "The name of the zone for this request.",
52398	//       "location": "path",
52399	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52400	//       "required": true,
52401	//       "type": "string"
52402	//     }
52403	//   },
52404	//   "path": "{project}/zones/{zone}/disks/{disk}/createSnapshot",
52405	//   "request": {
52406	//     "$ref": "Snapshot"
52407	//   },
52408	//   "response": {
52409	//     "$ref": "Operation"
52410	//   },
52411	//   "scopes": [
52412	//     "https://www.googleapis.com/auth/cloud-platform",
52413	//     "https://www.googleapis.com/auth/compute"
52414	//   ]
52415	// }
52416
52417}
52418
52419// method id "compute.disks.delete":
52420
52421type DisksDeleteCall struct {
52422	s          *Service
52423	project    string
52424	zone       string
52425	disk       string
52426	urlParams_ gensupport.URLParams
52427	ctx_       context.Context
52428	header_    http.Header
52429}
52430
52431// Delete: Deletes the specified persistent disk. Deleting a disk
52432// removes its data permanently and is irreversible. However, deleting a
52433// disk does not delete any snapshots previously made from the disk. You
52434// must separately delete snapshots.
52435// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/delete
52436func (r *DisksService) Delete(project string, zone string, disk string) *DisksDeleteCall {
52437	c := &DisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52438	c.project = project
52439	c.zone = zone
52440	c.disk = disk
52441	return c
52442}
52443
52444// RequestId sets the optional parameter "requestId": An optional
52445// request ID to identify requests. Specify a unique request ID so that
52446// if you must retry your request, the server will know to ignore the
52447// request if it has already been completed.
52448//
52449// For example, consider a situation where you make an initial request
52450// and the request times out. If you make the request again with the
52451// same request ID, the server can check if original operation with the
52452// same request ID was received, and if so, will ignore the second
52453// request. This prevents clients from accidentally creating duplicate
52454// commitments.
52455//
52456// The request ID must be a valid UUID with the exception that zero UUID
52457// is not supported (00000000-0000-0000-0000-000000000000).
52458func (c *DisksDeleteCall) RequestId(requestId string) *DisksDeleteCall {
52459	c.urlParams_.Set("requestId", requestId)
52460	return c
52461}
52462
52463// Fields allows partial responses to be retrieved. See
52464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52465// for more information.
52466func (c *DisksDeleteCall) Fields(s ...googleapi.Field) *DisksDeleteCall {
52467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52468	return c
52469}
52470
52471// Context sets the context to be used in this call's Do method. Any
52472// pending HTTP request will be aborted if the provided context is
52473// canceled.
52474func (c *DisksDeleteCall) Context(ctx context.Context) *DisksDeleteCall {
52475	c.ctx_ = ctx
52476	return c
52477}
52478
52479// Header returns an http.Header that can be modified by the caller to
52480// add HTTP headers to the request.
52481func (c *DisksDeleteCall) Header() http.Header {
52482	if c.header_ == nil {
52483		c.header_ = make(http.Header)
52484	}
52485	return c.header_
52486}
52487
52488func (c *DisksDeleteCall) doRequest(alt string) (*http.Response, error) {
52489	reqHeaders := make(http.Header)
52490	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52491	for k, v := range c.header_ {
52492		reqHeaders[k] = v
52493	}
52494	reqHeaders.Set("User-Agent", c.s.userAgent())
52495	var body io.Reader = nil
52496	c.urlParams_.Set("alt", alt)
52497	c.urlParams_.Set("prettyPrint", "false")
52498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
52499	urls += "?" + c.urlParams_.Encode()
52500	req, err := http.NewRequest("DELETE", urls, body)
52501	if err != nil {
52502		return nil, err
52503	}
52504	req.Header = reqHeaders
52505	googleapi.Expand(req.URL, map[string]string{
52506		"project": c.project,
52507		"zone":    c.zone,
52508		"disk":    c.disk,
52509	})
52510	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52511}
52512
52513// Do executes the "compute.disks.delete" call.
52514// Exactly one of *Operation or error will be non-nil. Any non-2xx
52515// status code is an error. Response headers are in either
52516// *Operation.ServerResponse.Header or (if a response was returned at
52517// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
52518// to check whether the returned error was because
52519// http.StatusNotModified was returned.
52520func (c *DisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
52521	gensupport.SetOptions(c.urlParams_, opts...)
52522	res, err := c.doRequest("json")
52523	if res != nil && res.StatusCode == http.StatusNotModified {
52524		if res.Body != nil {
52525			res.Body.Close()
52526		}
52527		return nil, &googleapi.Error{
52528			Code:   res.StatusCode,
52529			Header: res.Header,
52530		}
52531	}
52532	if err != nil {
52533		return nil, err
52534	}
52535	defer googleapi.CloseBody(res)
52536	if err := googleapi.CheckResponse(res); err != nil {
52537		return nil, err
52538	}
52539	ret := &Operation{
52540		ServerResponse: googleapi.ServerResponse{
52541			Header:         res.Header,
52542			HTTPStatusCode: res.StatusCode,
52543		},
52544	}
52545	target := &ret
52546	if err := gensupport.DecodeResponse(target, res); err != nil {
52547		return nil, err
52548	}
52549	return ret, nil
52550	// {
52551	//   "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.",
52552	//   "httpMethod": "DELETE",
52553	//   "id": "compute.disks.delete",
52554	//   "parameterOrder": [
52555	//     "project",
52556	//     "zone",
52557	//     "disk"
52558	//   ],
52559	//   "parameters": {
52560	//     "disk": {
52561	//       "description": "Name of the persistent disk to delete.",
52562	//       "location": "path",
52563	//       "required": true,
52564	//       "type": "string"
52565	//     },
52566	//     "project": {
52567	//       "description": "Project ID for this request.",
52568	//       "location": "path",
52569	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52570	//       "required": true,
52571	//       "type": "string"
52572	//     },
52573	//     "requestId": {
52574	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
52575	//       "location": "query",
52576	//       "type": "string"
52577	//     },
52578	//     "zone": {
52579	//       "description": "The name of the zone for this request.",
52580	//       "location": "path",
52581	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52582	//       "required": true,
52583	//       "type": "string"
52584	//     }
52585	//   },
52586	//   "path": "{project}/zones/{zone}/disks/{disk}",
52587	//   "response": {
52588	//     "$ref": "Operation"
52589	//   },
52590	//   "scopes": [
52591	//     "https://www.googleapis.com/auth/cloud-platform",
52592	//     "https://www.googleapis.com/auth/compute"
52593	//   ]
52594	// }
52595
52596}
52597
52598// method id "compute.disks.get":
52599
52600type DisksGetCall struct {
52601	s            *Service
52602	project      string
52603	zone         string
52604	disk         string
52605	urlParams_   gensupport.URLParams
52606	ifNoneMatch_ string
52607	ctx_         context.Context
52608	header_      http.Header
52609}
52610
52611// Get: Returns a specified persistent disk. Gets a list of available
52612// persistent disks by making a list() request.
52613// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/get
52614func (r *DisksService) Get(project string, zone string, disk string) *DisksGetCall {
52615	c := &DisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52616	c.project = project
52617	c.zone = zone
52618	c.disk = disk
52619	return c
52620}
52621
52622// Fields allows partial responses to be retrieved. See
52623// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52624// for more information.
52625func (c *DisksGetCall) Fields(s ...googleapi.Field) *DisksGetCall {
52626	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52627	return c
52628}
52629
52630// IfNoneMatch sets the optional parameter which makes the operation
52631// fail if the object's ETag matches the given value. This is useful for
52632// getting updates only after the object has changed since the last
52633// request. Use googleapi.IsNotModified to check whether the response
52634// error from Do is the result of In-None-Match.
52635func (c *DisksGetCall) IfNoneMatch(entityTag string) *DisksGetCall {
52636	c.ifNoneMatch_ = entityTag
52637	return c
52638}
52639
52640// Context sets the context to be used in this call's Do method. Any
52641// pending HTTP request will be aborted if the provided context is
52642// canceled.
52643func (c *DisksGetCall) Context(ctx context.Context) *DisksGetCall {
52644	c.ctx_ = ctx
52645	return c
52646}
52647
52648// Header returns an http.Header that can be modified by the caller to
52649// add HTTP headers to the request.
52650func (c *DisksGetCall) Header() http.Header {
52651	if c.header_ == nil {
52652		c.header_ = make(http.Header)
52653	}
52654	return c.header_
52655}
52656
52657func (c *DisksGetCall) doRequest(alt string) (*http.Response, error) {
52658	reqHeaders := make(http.Header)
52659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52660	for k, v := range c.header_ {
52661		reqHeaders[k] = v
52662	}
52663	reqHeaders.Set("User-Agent", c.s.userAgent())
52664	if c.ifNoneMatch_ != "" {
52665		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52666	}
52667	var body io.Reader = nil
52668	c.urlParams_.Set("alt", alt)
52669	c.urlParams_.Set("prettyPrint", "false")
52670	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}")
52671	urls += "?" + c.urlParams_.Encode()
52672	req, err := http.NewRequest("GET", urls, body)
52673	if err != nil {
52674		return nil, err
52675	}
52676	req.Header = reqHeaders
52677	googleapi.Expand(req.URL, map[string]string{
52678		"project": c.project,
52679		"zone":    c.zone,
52680		"disk":    c.disk,
52681	})
52682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52683}
52684
52685// Do executes the "compute.disks.get" call.
52686// Exactly one of *Disk or error will be non-nil. Any non-2xx status
52687// code is an error. Response headers are in either
52688// *Disk.ServerResponse.Header or (if a response was returned at all) in
52689// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
52690// whether the returned error was because http.StatusNotModified was
52691// returned.
52692func (c *DisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
52693	gensupport.SetOptions(c.urlParams_, opts...)
52694	res, err := c.doRequest("json")
52695	if res != nil && res.StatusCode == http.StatusNotModified {
52696		if res.Body != nil {
52697			res.Body.Close()
52698		}
52699		return nil, &googleapi.Error{
52700			Code:   res.StatusCode,
52701			Header: res.Header,
52702		}
52703	}
52704	if err != nil {
52705		return nil, err
52706	}
52707	defer googleapi.CloseBody(res)
52708	if err := googleapi.CheckResponse(res); err != nil {
52709		return nil, err
52710	}
52711	ret := &Disk{
52712		ServerResponse: googleapi.ServerResponse{
52713			Header:         res.Header,
52714			HTTPStatusCode: res.StatusCode,
52715		},
52716	}
52717	target := &ret
52718	if err := gensupport.DecodeResponse(target, res); err != nil {
52719		return nil, err
52720	}
52721	return ret, nil
52722	// {
52723	//   "description": "Returns a specified persistent disk. Gets a list of available persistent disks by making a list() request.",
52724	//   "httpMethod": "GET",
52725	//   "id": "compute.disks.get",
52726	//   "parameterOrder": [
52727	//     "project",
52728	//     "zone",
52729	//     "disk"
52730	//   ],
52731	//   "parameters": {
52732	//     "disk": {
52733	//       "description": "Name of the persistent disk to return.",
52734	//       "location": "path",
52735	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52736	//       "required": true,
52737	//       "type": "string"
52738	//     },
52739	//     "project": {
52740	//       "description": "Project ID for this request.",
52741	//       "location": "path",
52742	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52743	//       "required": true,
52744	//       "type": "string"
52745	//     },
52746	//     "zone": {
52747	//       "description": "The name of the zone for this request.",
52748	//       "location": "path",
52749	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52750	//       "required": true,
52751	//       "type": "string"
52752	//     }
52753	//   },
52754	//   "path": "{project}/zones/{zone}/disks/{disk}",
52755	//   "response": {
52756	//     "$ref": "Disk"
52757	//   },
52758	//   "scopes": [
52759	//     "https://www.googleapis.com/auth/cloud-platform",
52760	//     "https://www.googleapis.com/auth/compute",
52761	//     "https://www.googleapis.com/auth/compute.readonly"
52762	//   ]
52763	// }
52764
52765}
52766
52767// method id "compute.disks.getIamPolicy":
52768
52769type DisksGetIamPolicyCall struct {
52770	s            *Service
52771	project      string
52772	zone         string
52773	resource     string
52774	urlParams_   gensupport.URLParams
52775	ifNoneMatch_ string
52776	ctx_         context.Context
52777	header_      http.Header
52778}
52779
52780// GetIamPolicy: Gets the access control policy for a resource. May be
52781// empty if no such policy or resource exists.
52782func (r *DisksService) GetIamPolicy(project string, zone string, resource string) *DisksGetIamPolicyCall {
52783	c := &DisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52784	c.project = project
52785	c.zone = zone
52786	c.resource = resource
52787	return c
52788}
52789
52790// OptionsRequestedPolicyVersion sets the optional parameter
52791// "optionsRequestedPolicyVersion": Requested IAM Policy version.
52792func (c *DisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *DisksGetIamPolicyCall {
52793	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
52794	return c
52795}
52796
52797// Fields allows partial responses to be retrieved. See
52798// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
52799// for more information.
52800func (c *DisksGetIamPolicyCall) Fields(s ...googleapi.Field) *DisksGetIamPolicyCall {
52801	c.urlParams_.Set("fields", googleapi.CombineFields(s))
52802	return c
52803}
52804
52805// IfNoneMatch sets the optional parameter which makes the operation
52806// fail if the object's ETag matches the given value. This is useful for
52807// getting updates only after the object has changed since the last
52808// request. Use googleapi.IsNotModified to check whether the response
52809// error from Do is the result of In-None-Match.
52810func (c *DisksGetIamPolicyCall) IfNoneMatch(entityTag string) *DisksGetIamPolicyCall {
52811	c.ifNoneMatch_ = entityTag
52812	return c
52813}
52814
52815// Context sets the context to be used in this call's Do method. Any
52816// pending HTTP request will be aborted if the provided context is
52817// canceled.
52818func (c *DisksGetIamPolicyCall) Context(ctx context.Context) *DisksGetIamPolicyCall {
52819	c.ctx_ = ctx
52820	return c
52821}
52822
52823// Header returns an http.Header that can be modified by the caller to
52824// add HTTP headers to the request.
52825func (c *DisksGetIamPolicyCall) Header() http.Header {
52826	if c.header_ == nil {
52827		c.header_ = make(http.Header)
52828	}
52829	return c.header_
52830}
52831
52832func (c *DisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
52833	reqHeaders := make(http.Header)
52834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
52835	for k, v := range c.header_ {
52836		reqHeaders[k] = v
52837	}
52838	reqHeaders.Set("User-Agent", c.s.userAgent())
52839	if c.ifNoneMatch_ != "" {
52840		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
52841	}
52842	var body io.Reader = nil
52843	c.urlParams_.Set("alt", alt)
52844	c.urlParams_.Set("prettyPrint", "false")
52845	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/getIamPolicy")
52846	urls += "?" + c.urlParams_.Encode()
52847	req, err := http.NewRequest("GET", urls, body)
52848	if err != nil {
52849		return nil, err
52850	}
52851	req.Header = reqHeaders
52852	googleapi.Expand(req.URL, map[string]string{
52853		"project":  c.project,
52854		"zone":     c.zone,
52855		"resource": c.resource,
52856	})
52857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
52858}
52859
52860// Do executes the "compute.disks.getIamPolicy" call.
52861// Exactly one of *Policy or error will be non-nil. Any non-2xx status
52862// code is an error. Response headers are in either
52863// *Policy.ServerResponse.Header or (if a response was returned at all)
52864// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
52865// check whether the returned error was because http.StatusNotModified
52866// was returned.
52867func (c *DisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
52868	gensupport.SetOptions(c.urlParams_, opts...)
52869	res, err := c.doRequest("json")
52870	if res != nil && res.StatusCode == http.StatusNotModified {
52871		if res.Body != nil {
52872			res.Body.Close()
52873		}
52874		return nil, &googleapi.Error{
52875			Code:   res.StatusCode,
52876			Header: res.Header,
52877		}
52878	}
52879	if err != nil {
52880		return nil, err
52881	}
52882	defer googleapi.CloseBody(res)
52883	if err := googleapi.CheckResponse(res); err != nil {
52884		return nil, err
52885	}
52886	ret := &Policy{
52887		ServerResponse: googleapi.ServerResponse{
52888			Header:         res.Header,
52889			HTTPStatusCode: res.StatusCode,
52890		},
52891	}
52892	target := &ret
52893	if err := gensupport.DecodeResponse(target, res); err != nil {
52894		return nil, err
52895	}
52896	return ret, nil
52897	// {
52898	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
52899	//   "httpMethod": "GET",
52900	//   "id": "compute.disks.getIamPolicy",
52901	//   "parameterOrder": [
52902	//     "project",
52903	//     "zone",
52904	//     "resource"
52905	//   ],
52906	//   "parameters": {
52907	//     "optionsRequestedPolicyVersion": {
52908	//       "description": "Requested IAM Policy version.",
52909	//       "format": "int32",
52910	//       "location": "query",
52911	//       "type": "integer"
52912	//     },
52913	//     "project": {
52914	//       "description": "Project ID for this request.",
52915	//       "location": "path",
52916	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
52917	//       "required": true,
52918	//       "type": "string"
52919	//     },
52920	//     "resource": {
52921	//       "description": "Name or id of the resource for this request.",
52922	//       "location": "path",
52923	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
52924	//       "required": true,
52925	//       "type": "string"
52926	//     },
52927	//     "zone": {
52928	//       "description": "The name of the zone for this request.",
52929	//       "location": "path",
52930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
52931	//       "required": true,
52932	//       "type": "string"
52933	//     }
52934	//   },
52935	//   "path": "{project}/zones/{zone}/disks/{resource}/getIamPolicy",
52936	//   "response": {
52937	//     "$ref": "Policy"
52938	//   },
52939	//   "scopes": [
52940	//     "https://www.googleapis.com/auth/cloud-platform",
52941	//     "https://www.googleapis.com/auth/compute",
52942	//     "https://www.googleapis.com/auth/compute.readonly"
52943	//   ]
52944	// }
52945
52946}
52947
52948// method id "compute.disks.insert":
52949
52950type DisksInsertCall struct {
52951	s          *Service
52952	project    string
52953	zone       string
52954	disk       *Disk
52955	urlParams_ gensupport.URLParams
52956	ctx_       context.Context
52957	header_    http.Header
52958}
52959
52960// Insert: Creates a persistent disk in the specified project using the
52961// data in the request. You can create a disk with a sourceImage, a
52962// sourceSnapshot, or create an empty 500 GB data disk by omitting all
52963// properties. You can also create a disk that is larger than the
52964// default size by specifying the sizeGb property.
52965// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/insert
52966func (r *DisksService) Insert(project string, zone string, disk *Disk) *DisksInsertCall {
52967	c := &DisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
52968	c.project = project
52969	c.zone = zone
52970	c.disk = disk
52971	return c
52972}
52973
52974// RequestId sets the optional parameter "requestId": An optional
52975// request ID to identify requests. Specify a unique request ID so that
52976// if you must retry your request, the server will know to ignore the
52977// request if it has already been completed.
52978//
52979// For example, consider a situation where you make an initial request
52980// and the request times out. If you make the request again with the
52981// same request ID, the server can check if original operation with the
52982// same request ID was received, and if so, will ignore the second
52983// request. This prevents clients from accidentally creating duplicate
52984// commitments.
52985//
52986// The request ID must be a valid UUID with the exception that zero UUID
52987// is not supported (00000000-0000-0000-0000-000000000000).
52988func (c *DisksInsertCall) RequestId(requestId string) *DisksInsertCall {
52989	c.urlParams_.Set("requestId", requestId)
52990	return c
52991}
52992
52993// SourceImage sets the optional parameter "sourceImage": Source image
52994// to restore onto a disk.
52995func (c *DisksInsertCall) SourceImage(sourceImage string) *DisksInsertCall {
52996	c.urlParams_.Set("sourceImage", sourceImage)
52997	return c
52998}
52999
53000// Fields allows partial responses to be retrieved. See
53001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53002// for more information.
53003func (c *DisksInsertCall) Fields(s ...googleapi.Field) *DisksInsertCall {
53004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53005	return c
53006}
53007
53008// Context sets the context to be used in this call's Do method. Any
53009// pending HTTP request will be aborted if the provided context is
53010// canceled.
53011func (c *DisksInsertCall) Context(ctx context.Context) *DisksInsertCall {
53012	c.ctx_ = ctx
53013	return c
53014}
53015
53016// Header returns an http.Header that can be modified by the caller to
53017// add HTTP headers to the request.
53018func (c *DisksInsertCall) Header() http.Header {
53019	if c.header_ == nil {
53020		c.header_ = make(http.Header)
53021	}
53022	return c.header_
53023}
53024
53025func (c *DisksInsertCall) doRequest(alt string) (*http.Response, error) {
53026	reqHeaders := make(http.Header)
53027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53028	for k, v := range c.header_ {
53029		reqHeaders[k] = v
53030	}
53031	reqHeaders.Set("User-Agent", c.s.userAgent())
53032	var body io.Reader = nil
53033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
53034	if err != nil {
53035		return nil, err
53036	}
53037	reqHeaders.Set("Content-Type", "application/json")
53038	c.urlParams_.Set("alt", alt)
53039	c.urlParams_.Set("prettyPrint", "false")
53040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
53041	urls += "?" + c.urlParams_.Encode()
53042	req, err := http.NewRequest("POST", urls, body)
53043	if err != nil {
53044		return nil, err
53045	}
53046	req.Header = reqHeaders
53047	googleapi.Expand(req.URL, map[string]string{
53048		"project": c.project,
53049		"zone":    c.zone,
53050	})
53051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53052}
53053
53054// Do executes the "compute.disks.insert" call.
53055// Exactly one of *Operation or error will be non-nil. Any non-2xx
53056// status code is an error. Response headers are in either
53057// *Operation.ServerResponse.Header or (if a response was returned at
53058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53059// to check whether the returned error was because
53060// http.StatusNotModified was returned.
53061func (c *DisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53062	gensupport.SetOptions(c.urlParams_, opts...)
53063	res, err := c.doRequest("json")
53064	if res != nil && res.StatusCode == http.StatusNotModified {
53065		if res.Body != nil {
53066			res.Body.Close()
53067		}
53068		return nil, &googleapi.Error{
53069			Code:   res.StatusCode,
53070			Header: res.Header,
53071		}
53072	}
53073	if err != nil {
53074		return nil, err
53075	}
53076	defer googleapi.CloseBody(res)
53077	if err := googleapi.CheckResponse(res); err != nil {
53078		return nil, err
53079	}
53080	ret := &Operation{
53081		ServerResponse: googleapi.ServerResponse{
53082			Header:         res.Header,
53083			HTTPStatusCode: res.StatusCode,
53084		},
53085	}
53086	target := &ret
53087	if err := gensupport.DecodeResponse(target, res); err != nil {
53088		return nil, err
53089	}
53090	return ret, nil
53091	// {
53092	//   "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.",
53093	//   "httpMethod": "POST",
53094	//   "id": "compute.disks.insert",
53095	//   "parameterOrder": [
53096	//     "project",
53097	//     "zone"
53098	//   ],
53099	//   "parameters": {
53100	//     "project": {
53101	//       "description": "Project ID for this request.",
53102	//       "location": "path",
53103	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53104	//       "required": true,
53105	//       "type": "string"
53106	//     },
53107	//     "requestId": {
53108	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53109	//       "location": "query",
53110	//       "type": "string"
53111	//     },
53112	//     "sourceImage": {
53113	//       "description": "Optional. Source image to restore onto a disk.",
53114	//       "location": "query",
53115	//       "type": "string"
53116	//     },
53117	//     "zone": {
53118	//       "description": "The name of the zone for this request.",
53119	//       "location": "path",
53120	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53121	//       "required": true,
53122	//       "type": "string"
53123	//     }
53124	//   },
53125	//   "path": "{project}/zones/{zone}/disks",
53126	//   "request": {
53127	//     "$ref": "Disk"
53128	//   },
53129	//   "response": {
53130	//     "$ref": "Operation"
53131	//   },
53132	//   "scopes": [
53133	//     "https://www.googleapis.com/auth/cloud-platform",
53134	//     "https://www.googleapis.com/auth/compute"
53135	//   ]
53136	// }
53137
53138}
53139
53140// method id "compute.disks.list":
53141
53142type DisksListCall struct {
53143	s            *Service
53144	project      string
53145	zone         string
53146	urlParams_   gensupport.URLParams
53147	ifNoneMatch_ string
53148	ctx_         context.Context
53149	header_      http.Header
53150}
53151
53152// List: Retrieves a list of persistent disks contained within the
53153// specified zone.
53154// For details, see https://cloud.google.com/compute/docs/reference/latest/disks/list
53155func (r *DisksService) List(project string, zone string) *DisksListCall {
53156	c := &DisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53157	c.project = project
53158	c.zone = zone
53159	return c
53160}
53161
53162// Filter sets the optional parameter "filter": A filter expression that
53163// filters resources listed in the response. The expression must specify
53164// the field name, a comparison operator, and the value that you want to
53165// use for filtering. The value must be a string, a number, or a
53166// boolean. The comparison operator must be either =, !=, >, or <.
53167//
53168// For example, if you are filtering Compute Engine instances, you can
53169// exclude instances named example-instance by specifying name !=
53170// example-instance.
53171//
53172// You can also filter nested fields. For example, you could specify
53173// scheduling.automaticRestart = false to include instances only if they
53174// are not scheduled for automatic restarts. You can use filtering on
53175// nested fields to filter based on resource labels.
53176//
53177// To filter on multiple expressions, provide each separate expression
53178// within parentheses. For example, (scheduling.automaticRestart = true)
53179// (cpuPlatform = "Intel Skylake"). By default, each expression is an
53180// AND expression. However, you can include AND and OR expressions
53181// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
53182// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
53183// true).
53184func (c *DisksListCall) Filter(filter string) *DisksListCall {
53185	c.urlParams_.Set("filter", filter)
53186	return c
53187}
53188
53189// MaxResults sets the optional parameter "maxResults": The maximum
53190// number of results per page that should be returned. If the number of
53191// available results is larger than maxResults, Compute Engine returns a
53192// nextPageToken that can be used to get the next page of results in
53193// subsequent list requests. Acceptable values are 0 to 500, inclusive.
53194// (Default: 500)
53195func (c *DisksListCall) MaxResults(maxResults int64) *DisksListCall {
53196	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
53197	return c
53198}
53199
53200// OrderBy sets the optional parameter "orderBy": Sorts list results by
53201// a certain order. By default, results are returned in alphanumerical
53202// order based on the resource name.
53203//
53204// You can also sort results in descending order based on the creation
53205// timestamp using orderBy="creationTimestamp desc". This sorts results
53206// based on the creationTimestamp field in reverse chronological order
53207// (newest result first). Use this to sort resources like operations so
53208// that the newest operation is returned first.
53209//
53210// Currently, only sorting by name or creationTimestamp desc is
53211// supported.
53212func (c *DisksListCall) OrderBy(orderBy string) *DisksListCall {
53213	c.urlParams_.Set("orderBy", orderBy)
53214	return c
53215}
53216
53217// PageToken sets the optional parameter "pageToken": Specifies a page
53218// token to use. Set pageToken to the nextPageToken returned by a
53219// previous list request to get the next page of results.
53220func (c *DisksListCall) PageToken(pageToken string) *DisksListCall {
53221	c.urlParams_.Set("pageToken", pageToken)
53222	return c
53223}
53224
53225// Fields allows partial responses to be retrieved. See
53226// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53227// for more information.
53228func (c *DisksListCall) Fields(s ...googleapi.Field) *DisksListCall {
53229	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53230	return c
53231}
53232
53233// IfNoneMatch sets the optional parameter which makes the operation
53234// fail if the object's ETag matches the given value. This is useful for
53235// getting updates only after the object has changed since the last
53236// request. Use googleapi.IsNotModified to check whether the response
53237// error from Do is the result of In-None-Match.
53238func (c *DisksListCall) IfNoneMatch(entityTag string) *DisksListCall {
53239	c.ifNoneMatch_ = entityTag
53240	return c
53241}
53242
53243// Context sets the context to be used in this call's Do method. Any
53244// pending HTTP request will be aborted if the provided context is
53245// canceled.
53246func (c *DisksListCall) Context(ctx context.Context) *DisksListCall {
53247	c.ctx_ = ctx
53248	return c
53249}
53250
53251// Header returns an http.Header that can be modified by the caller to
53252// add HTTP headers to the request.
53253func (c *DisksListCall) Header() http.Header {
53254	if c.header_ == nil {
53255		c.header_ = make(http.Header)
53256	}
53257	return c.header_
53258}
53259
53260func (c *DisksListCall) doRequest(alt string) (*http.Response, error) {
53261	reqHeaders := make(http.Header)
53262	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53263	for k, v := range c.header_ {
53264		reqHeaders[k] = v
53265	}
53266	reqHeaders.Set("User-Agent", c.s.userAgent())
53267	if c.ifNoneMatch_ != "" {
53268		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
53269	}
53270	var body io.Reader = nil
53271	c.urlParams_.Set("alt", alt)
53272	c.urlParams_.Set("prettyPrint", "false")
53273	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks")
53274	urls += "?" + c.urlParams_.Encode()
53275	req, err := http.NewRequest("GET", urls, body)
53276	if err != nil {
53277		return nil, err
53278	}
53279	req.Header = reqHeaders
53280	googleapi.Expand(req.URL, map[string]string{
53281		"project": c.project,
53282		"zone":    c.zone,
53283	})
53284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53285}
53286
53287// Do executes the "compute.disks.list" call.
53288// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
53289// code is an error. Response headers are in either
53290// *DiskList.ServerResponse.Header or (if a response was returned at
53291// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53292// to check whether the returned error was because
53293// http.StatusNotModified was returned.
53294func (c *DisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
53295	gensupport.SetOptions(c.urlParams_, opts...)
53296	res, err := c.doRequest("json")
53297	if res != nil && res.StatusCode == http.StatusNotModified {
53298		if res.Body != nil {
53299			res.Body.Close()
53300		}
53301		return nil, &googleapi.Error{
53302			Code:   res.StatusCode,
53303			Header: res.Header,
53304		}
53305	}
53306	if err != nil {
53307		return nil, err
53308	}
53309	defer googleapi.CloseBody(res)
53310	if err := googleapi.CheckResponse(res); err != nil {
53311		return nil, err
53312	}
53313	ret := &DiskList{
53314		ServerResponse: googleapi.ServerResponse{
53315			Header:         res.Header,
53316			HTTPStatusCode: res.StatusCode,
53317		},
53318	}
53319	target := &ret
53320	if err := gensupport.DecodeResponse(target, res); err != nil {
53321		return nil, err
53322	}
53323	return ret, nil
53324	// {
53325	//   "description": "Retrieves a list of persistent disks contained within the specified zone.",
53326	//   "httpMethod": "GET",
53327	//   "id": "compute.disks.list",
53328	//   "parameterOrder": [
53329	//     "project",
53330	//     "zone"
53331	//   ],
53332	//   "parameters": {
53333	//     "filter": {
53334	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
53335	//       "location": "query",
53336	//       "type": "string"
53337	//     },
53338	//     "maxResults": {
53339	//       "default": "500",
53340	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
53341	//       "format": "uint32",
53342	//       "location": "query",
53343	//       "minimum": "0",
53344	//       "type": "integer"
53345	//     },
53346	//     "orderBy": {
53347	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
53348	//       "location": "query",
53349	//       "type": "string"
53350	//     },
53351	//     "pageToken": {
53352	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
53353	//       "location": "query",
53354	//       "type": "string"
53355	//     },
53356	//     "project": {
53357	//       "description": "Project ID for this request.",
53358	//       "location": "path",
53359	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53360	//       "required": true,
53361	//       "type": "string"
53362	//     },
53363	//     "zone": {
53364	//       "description": "The name of the zone for this request.",
53365	//       "location": "path",
53366	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53367	//       "required": true,
53368	//       "type": "string"
53369	//     }
53370	//   },
53371	//   "path": "{project}/zones/{zone}/disks",
53372	//   "response": {
53373	//     "$ref": "DiskList"
53374	//   },
53375	//   "scopes": [
53376	//     "https://www.googleapis.com/auth/cloud-platform",
53377	//     "https://www.googleapis.com/auth/compute",
53378	//     "https://www.googleapis.com/auth/compute.readonly"
53379	//   ]
53380	// }
53381
53382}
53383
53384// Pages invokes f for each page of results.
53385// A non-nil error returned from f will halt the iteration.
53386// The provided context supersedes any context provided to the Context method.
53387func (c *DisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
53388	c.ctx_ = ctx
53389	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
53390	for {
53391		x, err := c.Do()
53392		if err != nil {
53393			return err
53394		}
53395		if err := f(x); err != nil {
53396			return err
53397		}
53398		if x.NextPageToken == "" {
53399			return nil
53400		}
53401		c.PageToken(x.NextPageToken)
53402	}
53403}
53404
53405// method id "compute.disks.removeResourcePolicies":
53406
53407type DisksRemoveResourcePoliciesCall struct {
53408	s                                  *Service
53409	project                            string
53410	zone                               string
53411	disk                               string
53412	disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest
53413	urlParams_                         gensupport.URLParams
53414	ctx_                               context.Context
53415	header_                            http.Header
53416}
53417
53418// RemoveResourcePolicies: Removes resource policies from a disk.
53419func (r *DisksService) RemoveResourcePolicies(project string, zone string, disk string, disksremoveresourcepoliciesrequest *DisksRemoveResourcePoliciesRequest) *DisksRemoveResourcePoliciesCall {
53420	c := &DisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53421	c.project = project
53422	c.zone = zone
53423	c.disk = disk
53424	c.disksremoveresourcepoliciesrequest = disksremoveresourcepoliciesrequest
53425	return c
53426}
53427
53428// RequestId sets the optional parameter "requestId": An optional
53429// request ID to identify requests. Specify a unique request ID so that
53430// if you must retry your request, the server will know to ignore the
53431// request if it has already been completed.
53432//
53433// For example, consider a situation where you make an initial request
53434// and the request times out. If you make the request again with the
53435// same request ID, the server can check if original operation with the
53436// same request ID was received, and if so, will ignore the second
53437// request. This prevents clients from accidentally creating duplicate
53438// commitments.
53439//
53440// The request ID must be a valid UUID with the exception that zero UUID
53441// is not supported (00000000-0000-0000-0000-000000000000).
53442func (c *DisksRemoveResourcePoliciesCall) RequestId(requestId string) *DisksRemoveResourcePoliciesCall {
53443	c.urlParams_.Set("requestId", requestId)
53444	return c
53445}
53446
53447// Fields allows partial responses to be retrieved. See
53448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53449// for more information.
53450func (c *DisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *DisksRemoveResourcePoliciesCall {
53451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53452	return c
53453}
53454
53455// Context sets the context to be used in this call's Do method. Any
53456// pending HTTP request will be aborted if the provided context is
53457// canceled.
53458func (c *DisksRemoveResourcePoliciesCall) Context(ctx context.Context) *DisksRemoveResourcePoliciesCall {
53459	c.ctx_ = ctx
53460	return c
53461}
53462
53463// Header returns an http.Header that can be modified by the caller to
53464// add HTTP headers to the request.
53465func (c *DisksRemoveResourcePoliciesCall) Header() http.Header {
53466	if c.header_ == nil {
53467		c.header_ = make(http.Header)
53468	}
53469	return c.header_
53470}
53471
53472func (c *DisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
53473	reqHeaders := make(http.Header)
53474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53475	for k, v := range c.header_ {
53476		reqHeaders[k] = v
53477	}
53478	reqHeaders.Set("User-Agent", c.s.userAgent())
53479	var body io.Reader = nil
53480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksremoveresourcepoliciesrequest)
53481	if err != nil {
53482		return nil, err
53483	}
53484	reqHeaders.Set("Content-Type", "application/json")
53485	c.urlParams_.Set("alt", alt)
53486	c.urlParams_.Set("prettyPrint", "false")
53487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies")
53488	urls += "?" + c.urlParams_.Encode()
53489	req, err := http.NewRequest("POST", urls, body)
53490	if err != nil {
53491		return nil, err
53492	}
53493	req.Header = reqHeaders
53494	googleapi.Expand(req.URL, map[string]string{
53495		"project": c.project,
53496		"zone":    c.zone,
53497		"disk":    c.disk,
53498	})
53499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53500}
53501
53502// Do executes the "compute.disks.removeResourcePolicies" call.
53503// Exactly one of *Operation or error will be non-nil. Any non-2xx
53504// status code is an error. Response headers are in either
53505// *Operation.ServerResponse.Header or (if a response was returned at
53506// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53507// to check whether the returned error was because
53508// http.StatusNotModified was returned.
53509func (c *DisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53510	gensupport.SetOptions(c.urlParams_, opts...)
53511	res, err := c.doRequest("json")
53512	if res != nil && res.StatusCode == http.StatusNotModified {
53513		if res.Body != nil {
53514			res.Body.Close()
53515		}
53516		return nil, &googleapi.Error{
53517			Code:   res.StatusCode,
53518			Header: res.Header,
53519		}
53520	}
53521	if err != nil {
53522		return nil, err
53523	}
53524	defer googleapi.CloseBody(res)
53525	if err := googleapi.CheckResponse(res); err != nil {
53526		return nil, err
53527	}
53528	ret := &Operation{
53529		ServerResponse: googleapi.ServerResponse{
53530			Header:         res.Header,
53531			HTTPStatusCode: res.StatusCode,
53532		},
53533	}
53534	target := &ret
53535	if err := gensupport.DecodeResponse(target, res); err != nil {
53536		return nil, err
53537	}
53538	return ret, nil
53539	// {
53540	//   "description": "Removes resource policies from a disk.",
53541	//   "httpMethod": "POST",
53542	//   "id": "compute.disks.removeResourcePolicies",
53543	//   "parameterOrder": [
53544	//     "project",
53545	//     "zone",
53546	//     "disk"
53547	//   ],
53548	//   "parameters": {
53549	//     "disk": {
53550	//       "description": "The disk name for this request.",
53551	//       "location": "path",
53552	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53553	//       "required": true,
53554	//       "type": "string"
53555	//     },
53556	//     "project": {
53557	//       "description": "Project ID for this request.",
53558	//       "location": "path",
53559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53560	//       "required": true,
53561	//       "type": "string"
53562	//     },
53563	//     "requestId": {
53564	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53565	//       "location": "query",
53566	//       "type": "string"
53567	//     },
53568	//     "zone": {
53569	//       "description": "The name of the zone for this request.",
53570	//       "location": "path",
53571	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53572	//       "required": true,
53573	//       "type": "string"
53574	//     }
53575	//   },
53576	//   "path": "{project}/zones/{zone}/disks/{disk}/removeResourcePolicies",
53577	//   "request": {
53578	//     "$ref": "DisksRemoveResourcePoliciesRequest"
53579	//   },
53580	//   "response": {
53581	//     "$ref": "Operation"
53582	//   },
53583	//   "scopes": [
53584	//     "https://www.googleapis.com/auth/cloud-platform",
53585	//     "https://www.googleapis.com/auth/compute"
53586	//   ]
53587	// }
53588
53589}
53590
53591// method id "compute.disks.resize":
53592
53593type DisksResizeCall struct {
53594	s                  *Service
53595	project            string
53596	zone               string
53597	disk               string
53598	disksresizerequest *DisksResizeRequest
53599	urlParams_         gensupport.URLParams
53600	ctx_               context.Context
53601	header_            http.Header
53602}
53603
53604// Resize: Resizes the specified persistent disk. You can only increase
53605// the size of the disk.
53606func (r *DisksService) Resize(project string, zone string, disk string, disksresizerequest *DisksResizeRequest) *DisksResizeCall {
53607	c := &DisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53608	c.project = project
53609	c.zone = zone
53610	c.disk = disk
53611	c.disksresizerequest = disksresizerequest
53612	return c
53613}
53614
53615// RequestId sets the optional parameter "requestId": An optional
53616// request ID to identify requests. Specify a unique request ID so that
53617// if you must retry your request, the server will know to ignore the
53618// request if it has already been completed.
53619//
53620// For example, consider a situation where you make an initial request
53621// and the request times out. If you make the request again with the
53622// same request ID, the server can check if original operation with the
53623// same request ID was received, and if so, will ignore the second
53624// request. This prevents clients from accidentally creating duplicate
53625// commitments.
53626//
53627// The request ID must be a valid UUID with the exception that zero UUID
53628// is not supported (00000000-0000-0000-0000-000000000000).
53629func (c *DisksResizeCall) RequestId(requestId string) *DisksResizeCall {
53630	c.urlParams_.Set("requestId", requestId)
53631	return c
53632}
53633
53634// Fields allows partial responses to be retrieved. See
53635// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53636// for more information.
53637func (c *DisksResizeCall) Fields(s ...googleapi.Field) *DisksResizeCall {
53638	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53639	return c
53640}
53641
53642// Context sets the context to be used in this call's Do method. Any
53643// pending HTTP request will be aborted if the provided context is
53644// canceled.
53645func (c *DisksResizeCall) Context(ctx context.Context) *DisksResizeCall {
53646	c.ctx_ = ctx
53647	return c
53648}
53649
53650// Header returns an http.Header that can be modified by the caller to
53651// add HTTP headers to the request.
53652func (c *DisksResizeCall) Header() http.Header {
53653	if c.header_ == nil {
53654		c.header_ = make(http.Header)
53655	}
53656	return c.header_
53657}
53658
53659func (c *DisksResizeCall) doRequest(alt string) (*http.Response, error) {
53660	reqHeaders := make(http.Header)
53661	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53662	for k, v := range c.header_ {
53663		reqHeaders[k] = v
53664	}
53665	reqHeaders.Set("User-Agent", c.s.userAgent())
53666	var body io.Reader = nil
53667	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disksresizerequest)
53668	if err != nil {
53669		return nil, err
53670	}
53671	reqHeaders.Set("Content-Type", "application/json")
53672	c.urlParams_.Set("alt", alt)
53673	c.urlParams_.Set("prettyPrint", "false")
53674	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{disk}/resize")
53675	urls += "?" + c.urlParams_.Encode()
53676	req, err := http.NewRequest("POST", urls, body)
53677	if err != nil {
53678		return nil, err
53679	}
53680	req.Header = reqHeaders
53681	googleapi.Expand(req.URL, map[string]string{
53682		"project": c.project,
53683		"zone":    c.zone,
53684		"disk":    c.disk,
53685	})
53686	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53687}
53688
53689// Do executes the "compute.disks.resize" call.
53690// Exactly one of *Operation or error will be non-nil. Any non-2xx
53691// status code is an error. Response headers are in either
53692// *Operation.ServerResponse.Header or (if a response was returned at
53693// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
53694// to check whether the returned error was because
53695// http.StatusNotModified was returned.
53696func (c *DisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
53697	gensupport.SetOptions(c.urlParams_, opts...)
53698	res, err := c.doRequest("json")
53699	if res != nil && res.StatusCode == http.StatusNotModified {
53700		if res.Body != nil {
53701			res.Body.Close()
53702		}
53703		return nil, &googleapi.Error{
53704			Code:   res.StatusCode,
53705			Header: res.Header,
53706		}
53707	}
53708	if err != nil {
53709		return nil, err
53710	}
53711	defer googleapi.CloseBody(res)
53712	if err := googleapi.CheckResponse(res); err != nil {
53713		return nil, err
53714	}
53715	ret := &Operation{
53716		ServerResponse: googleapi.ServerResponse{
53717			Header:         res.Header,
53718			HTTPStatusCode: res.StatusCode,
53719		},
53720	}
53721	target := &ret
53722	if err := gensupport.DecodeResponse(target, res); err != nil {
53723		return nil, err
53724	}
53725	return ret, nil
53726	// {
53727	//   "description": "Resizes the specified persistent disk. You can only increase the size of the disk.",
53728	//   "httpMethod": "POST",
53729	//   "id": "compute.disks.resize",
53730	//   "parameterOrder": [
53731	//     "project",
53732	//     "zone",
53733	//     "disk"
53734	//   ],
53735	//   "parameters": {
53736	//     "disk": {
53737	//       "description": "The name of the persistent disk.",
53738	//       "location": "path",
53739	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53740	//       "required": true,
53741	//       "type": "string"
53742	//     },
53743	//     "project": {
53744	//       "description": "Project ID for this request.",
53745	//       "location": "path",
53746	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53747	//       "required": true,
53748	//       "type": "string"
53749	//     },
53750	//     "requestId": {
53751	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
53752	//       "location": "query",
53753	//       "type": "string"
53754	//     },
53755	//     "zone": {
53756	//       "description": "The name of the zone for this request.",
53757	//       "location": "path",
53758	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53759	//       "required": true,
53760	//       "type": "string"
53761	//     }
53762	//   },
53763	//   "path": "{project}/zones/{zone}/disks/{disk}/resize",
53764	//   "request": {
53765	//     "$ref": "DisksResizeRequest"
53766	//   },
53767	//   "response": {
53768	//     "$ref": "Operation"
53769	//   },
53770	//   "scopes": [
53771	//     "https://www.googleapis.com/auth/cloud-platform",
53772	//     "https://www.googleapis.com/auth/compute"
53773	//   ]
53774	// }
53775
53776}
53777
53778// method id "compute.disks.setIamPolicy":
53779
53780type DisksSetIamPolicyCall struct {
53781	s                    *Service
53782	project              string
53783	zone                 string
53784	resource             string
53785	zonesetpolicyrequest *ZoneSetPolicyRequest
53786	urlParams_           gensupport.URLParams
53787	ctx_                 context.Context
53788	header_              http.Header
53789}
53790
53791// SetIamPolicy: Sets the access control policy on the specified
53792// resource. Replaces any existing policy.
53793func (r *DisksService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *DisksSetIamPolicyCall {
53794	c := &DisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53795	c.project = project
53796	c.zone = zone
53797	c.resource = resource
53798	c.zonesetpolicyrequest = zonesetpolicyrequest
53799	return c
53800}
53801
53802// Fields allows partial responses to be retrieved. See
53803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
53804// for more information.
53805func (c *DisksSetIamPolicyCall) Fields(s ...googleapi.Field) *DisksSetIamPolicyCall {
53806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
53807	return c
53808}
53809
53810// Context sets the context to be used in this call's Do method. Any
53811// pending HTTP request will be aborted if the provided context is
53812// canceled.
53813func (c *DisksSetIamPolicyCall) Context(ctx context.Context) *DisksSetIamPolicyCall {
53814	c.ctx_ = ctx
53815	return c
53816}
53817
53818// Header returns an http.Header that can be modified by the caller to
53819// add HTTP headers to the request.
53820func (c *DisksSetIamPolicyCall) Header() http.Header {
53821	if c.header_ == nil {
53822		c.header_ = make(http.Header)
53823	}
53824	return c.header_
53825}
53826
53827func (c *DisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
53828	reqHeaders := make(http.Header)
53829	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
53830	for k, v := range c.header_ {
53831		reqHeaders[k] = v
53832	}
53833	reqHeaders.Set("User-Agent", c.s.userAgent())
53834	var body io.Reader = nil
53835	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
53836	if err != nil {
53837		return nil, err
53838	}
53839	reqHeaders.Set("Content-Type", "application/json")
53840	c.urlParams_.Set("alt", alt)
53841	c.urlParams_.Set("prettyPrint", "false")
53842	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setIamPolicy")
53843	urls += "?" + c.urlParams_.Encode()
53844	req, err := http.NewRequest("POST", urls, body)
53845	if err != nil {
53846		return nil, err
53847	}
53848	req.Header = reqHeaders
53849	googleapi.Expand(req.URL, map[string]string{
53850		"project":  c.project,
53851		"zone":     c.zone,
53852		"resource": c.resource,
53853	})
53854	return gensupport.SendRequest(c.ctx_, c.s.client, req)
53855}
53856
53857// Do executes the "compute.disks.setIamPolicy" call.
53858// Exactly one of *Policy or error will be non-nil. Any non-2xx status
53859// code is an error. Response headers are in either
53860// *Policy.ServerResponse.Header or (if a response was returned at all)
53861// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
53862// check whether the returned error was because http.StatusNotModified
53863// was returned.
53864func (c *DisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
53865	gensupport.SetOptions(c.urlParams_, opts...)
53866	res, err := c.doRequest("json")
53867	if res != nil && res.StatusCode == http.StatusNotModified {
53868		if res.Body != nil {
53869			res.Body.Close()
53870		}
53871		return nil, &googleapi.Error{
53872			Code:   res.StatusCode,
53873			Header: res.Header,
53874		}
53875	}
53876	if err != nil {
53877		return nil, err
53878	}
53879	defer googleapi.CloseBody(res)
53880	if err := googleapi.CheckResponse(res); err != nil {
53881		return nil, err
53882	}
53883	ret := &Policy{
53884		ServerResponse: googleapi.ServerResponse{
53885			Header:         res.Header,
53886			HTTPStatusCode: res.StatusCode,
53887		},
53888	}
53889	target := &ret
53890	if err := gensupport.DecodeResponse(target, res); err != nil {
53891		return nil, err
53892	}
53893	return ret, nil
53894	// {
53895	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
53896	//   "httpMethod": "POST",
53897	//   "id": "compute.disks.setIamPolicy",
53898	//   "parameterOrder": [
53899	//     "project",
53900	//     "zone",
53901	//     "resource"
53902	//   ],
53903	//   "parameters": {
53904	//     "project": {
53905	//       "description": "Project ID for this request.",
53906	//       "location": "path",
53907	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
53908	//       "required": true,
53909	//       "type": "string"
53910	//     },
53911	//     "resource": {
53912	//       "description": "Name or id of the resource for this request.",
53913	//       "location": "path",
53914	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
53915	//       "required": true,
53916	//       "type": "string"
53917	//     },
53918	//     "zone": {
53919	//       "description": "The name of the zone for this request.",
53920	//       "location": "path",
53921	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
53922	//       "required": true,
53923	//       "type": "string"
53924	//     }
53925	//   },
53926	//   "path": "{project}/zones/{zone}/disks/{resource}/setIamPolicy",
53927	//   "request": {
53928	//     "$ref": "ZoneSetPolicyRequest"
53929	//   },
53930	//   "response": {
53931	//     "$ref": "Policy"
53932	//   },
53933	//   "scopes": [
53934	//     "https://www.googleapis.com/auth/cloud-platform",
53935	//     "https://www.googleapis.com/auth/compute"
53936	//   ]
53937	// }
53938
53939}
53940
53941// method id "compute.disks.setLabels":
53942
53943type DisksSetLabelsCall struct {
53944	s                    *Service
53945	project              string
53946	zone                 string
53947	resource             string
53948	zonesetlabelsrequest *ZoneSetLabelsRequest
53949	urlParams_           gensupport.URLParams
53950	ctx_                 context.Context
53951	header_              http.Header
53952}
53953
53954// SetLabels: Sets the labels on a disk. To learn more about labels,
53955// read the Labeling Resources documentation.
53956func (r *DisksService) SetLabels(project string, zone string, resource string, zonesetlabelsrequest *ZoneSetLabelsRequest) *DisksSetLabelsCall {
53957	c := &DisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
53958	c.project = project
53959	c.zone = zone
53960	c.resource = resource
53961	c.zonesetlabelsrequest = zonesetlabelsrequest
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 *DisksSetLabelsCall) RequestId(requestId string) *DisksSetLabelsCall {
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 *DisksSetLabelsCall) Fields(s ...googleapi.Field) *DisksSetLabelsCall {
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 *DisksSetLabelsCall) Context(ctx context.Context) *DisksSetLabelsCall {
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 *DisksSetLabelsCall) Header() http.Header {
54003	if c.header_ == nil {
54004		c.header_ = make(http.Header)
54005	}
54006	return c.header_
54007}
54008
54009func (c *DisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
54010	reqHeaders := make(http.Header)
54011	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
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	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetlabelsrequest)
54018	if err != nil {
54019		return nil, err
54020	}
54021	reqHeaders.Set("Content-Type", "application/json")
54022	c.urlParams_.Set("alt", alt)
54023	c.urlParams_.Set("prettyPrint", "false")
54024	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/setLabels")
54025	urls += "?" + c.urlParams_.Encode()
54026	req, err := http.NewRequest("POST", urls, body)
54027	if err != nil {
54028		return nil, err
54029	}
54030	req.Header = reqHeaders
54031	googleapi.Expand(req.URL, map[string]string{
54032		"project":  c.project,
54033		"zone":     c.zone,
54034		"resource": c.resource,
54035	})
54036	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54037}
54038
54039// Do executes the "compute.disks.setLabels" call.
54040// Exactly one of *Operation or error will be non-nil. Any non-2xx
54041// status code is an error. Response headers are in either
54042// *Operation.ServerResponse.Header or (if a response was returned at
54043// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54044// to check whether the returned error was because
54045// http.StatusNotModified was returned.
54046func (c *DisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54047	gensupport.SetOptions(c.urlParams_, opts...)
54048	res, err := c.doRequest("json")
54049	if res != nil && res.StatusCode == http.StatusNotModified {
54050		if res.Body != nil {
54051			res.Body.Close()
54052		}
54053		return nil, &googleapi.Error{
54054			Code:   res.StatusCode,
54055			Header: res.Header,
54056		}
54057	}
54058	if err != nil {
54059		return nil, err
54060	}
54061	defer googleapi.CloseBody(res)
54062	if err := googleapi.CheckResponse(res); err != nil {
54063		return nil, err
54064	}
54065	ret := &Operation{
54066		ServerResponse: googleapi.ServerResponse{
54067			Header:         res.Header,
54068			HTTPStatusCode: res.StatusCode,
54069		},
54070	}
54071	target := &ret
54072	if err := gensupport.DecodeResponse(target, res); err != nil {
54073		return nil, err
54074	}
54075	return ret, nil
54076	// {
54077	//   "description": "Sets the labels on a disk. To learn more about labels, read the Labeling Resources documentation.",
54078	//   "httpMethod": "POST",
54079	//   "id": "compute.disks.setLabels",
54080	//   "parameterOrder": [
54081	//     "project",
54082	//     "zone",
54083	//     "resource"
54084	//   ],
54085	//   "parameters": {
54086	//     "project": {
54087	//       "description": "Project ID for this request.",
54088	//       "location": "path",
54089	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54090	//       "required": true,
54091	//       "type": "string"
54092	//     },
54093	//     "requestId": {
54094	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54095	//       "location": "query",
54096	//       "type": "string"
54097	//     },
54098	//     "resource": {
54099	//       "description": "Name or id of the resource for this request.",
54100	//       "location": "path",
54101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54102	//       "required": true,
54103	//       "type": "string"
54104	//     },
54105	//     "zone": {
54106	//       "description": "The name of the zone for this request.",
54107	//       "location": "path",
54108	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54109	//       "required": true,
54110	//       "type": "string"
54111	//     }
54112	//   },
54113	//   "path": "{project}/zones/{zone}/disks/{resource}/setLabels",
54114	//   "request": {
54115	//     "$ref": "ZoneSetLabelsRequest"
54116	//   },
54117	//   "response": {
54118	//     "$ref": "Operation"
54119	//   },
54120	//   "scopes": [
54121	//     "https://www.googleapis.com/auth/cloud-platform",
54122	//     "https://www.googleapis.com/auth/compute"
54123	//   ]
54124	// }
54125
54126}
54127
54128// method id "compute.disks.testIamPermissions":
54129
54130type DisksTestIamPermissionsCall struct {
54131	s                      *Service
54132	project                string
54133	zone                   string
54134	resource               string
54135	testpermissionsrequest *TestPermissionsRequest
54136	urlParams_             gensupport.URLParams
54137	ctx_                   context.Context
54138	header_                http.Header
54139}
54140
54141// TestIamPermissions: Returns permissions that a caller has on the
54142// specified resource.
54143func (r *DisksService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *DisksTestIamPermissionsCall {
54144	c := &DisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54145	c.project = project
54146	c.zone = zone
54147	c.resource = resource
54148	c.testpermissionsrequest = testpermissionsrequest
54149	return c
54150}
54151
54152// Fields allows partial responses to be retrieved. See
54153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54154// for more information.
54155func (c *DisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *DisksTestIamPermissionsCall {
54156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54157	return c
54158}
54159
54160// Context sets the context to be used in this call's Do method. Any
54161// pending HTTP request will be aborted if the provided context is
54162// canceled.
54163func (c *DisksTestIamPermissionsCall) Context(ctx context.Context) *DisksTestIamPermissionsCall {
54164	c.ctx_ = ctx
54165	return c
54166}
54167
54168// Header returns an http.Header that can be modified by the caller to
54169// add HTTP headers to the request.
54170func (c *DisksTestIamPermissionsCall) Header() http.Header {
54171	if c.header_ == nil {
54172		c.header_ = make(http.Header)
54173	}
54174	return c.header_
54175}
54176
54177func (c *DisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
54178	reqHeaders := make(http.Header)
54179	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54180	for k, v := range c.header_ {
54181		reqHeaders[k] = v
54182	}
54183	reqHeaders.Set("User-Agent", c.s.userAgent())
54184	var body io.Reader = nil
54185	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
54186	if err != nil {
54187		return nil, err
54188	}
54189	reqHeaders.Set("Content-Type", "application/json")
54190	c.urlParams_.Set("alt", alt)
54191	c.urlParams_.Set("prettyPrint", "false")
54192	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/disks/{resource}/testIamPermissions")
54193	urls += "?" + c.urlParams_.Encode()
54194	req, err := http.NewRequest("POST", urls, body)
54195	if err != nil {
54196		return nil, err
54197	}
54198	req.Header = reqHeaders
54199	googleapi.Expand(req.URL, map[string]string{
54200		"project":  c.project,
54201		"zone":     c.zone,
54202		"resource": c.resource,
54203	})
54204	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54205}
54206
54207// Do executes the "compute.disks.testIamPermissions" call.
54208// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
54209// non-2xx status code is an error. Response headers are in either
54210// *TestPermissionsResponse.ServerResponse.Header or (if a response was
54211// returned at all) in error.(*googleapi.Error).Header. Use
54212// googleapi.IsNotModified to check whether the returned error was
54213// because http.StatusNotModified was returned.
54214func (c *DisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
54215	gensupport.SetOptions(c.urlParams_, opts...)
54216	res, err := c.doRequest("json")
54217	if res != nil && res.StatusCode == http.StatusNotModified {
54218		if res.Body != nil {
54219			res.Body.Close()
54220		}
54221		return nil, &googleapi.Error{
54222			Code:   res.StatusCode,
54223			Header: res.Header,
54224		}
54225	}
54226	if err != nil {
54227		return nil, err
54228	}
54229	defer googleapi.CloseBody(res)
54230	if err := googleapi.CheckResponse(res); err != nil {
54231		return nil, err
54232	}
54233	ret := &TestPermissionsResponse{
54234		ServerResponse: googleapi.ServerResponse{
54235			Header:         res.Header,
54236			HTTPStatusCode: res.StatusCode,
54237		},
54238	}
54239	target := &ret
54240	if err := gensupport.DecodeResponse(target, res); err != nil {
54241		return nil, err
54242	}
54243	return ret, nil
54244	// {
54245	//   "description": "Returns permissions that a caller has on the specified resource.",
54246	//   "httpMethod": "POST",
54247	//   "id": "compute.disks.testIamPermissions",
54248	//   "parameterOrder": [
54249	//     "project",
54250	//     "zone",
54251	//     "resource"
54252	//   ],
54253	//   "parameters": {
54254	//     "project": {
54255	//       "description": "Project ID for this request.",
54256	//       "location": "path",
54257	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54258	//       "required": true,
54259	//       "type": "string"
54260	//     },
54261	//     "resource": {
54262	//       "description": "Name or id of the resource for this request.",
54263	//       "location": "path",
54264	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
54265	//       "required": true,
54266	//       "type": "string"
54267	//     },
54268	//     "zone": {
54269	//       "description": "The name of the zone for this request.",
54270	//       "location": "path",
54271	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54272	//       "required": true,
54273	//       "type": "string"
54274	//     }
54275	//   },
54276	//   "path": "{project}/zones/{zone}/disks/{resource}/testIamPermissions",
54277	//   "request": {
54278	//     "$ref": "TestPermissionsRequest"
54279	//   },
54280	//   "response": {
54281	//     "$ref": "TestPermissionsResponse"
54282	//   },
54283	//   "scopes": [
54284	//     "https://www.googleapis.com/auth/cloud-platform",
54285	//     "https://www.googleapis.com/auth/compute",
54286	//     "https://www.googleapis.com/auth/compute.readonly"
54287	//   ]
54288	// }
54289
54290}
54291
54292// method id "compute.externalVpnGateways.delete":
54293
54294type ExternalVpnGatewaysDeleteCall struct {
54295	s                  *Service
54296	project            string
54297	externalVpnGateway string
54298	urlParams_         gensupport.URLParams
54299	ctx_               context.Context
54300	header_            http.Header
54301}
54302
54303// Delete: Deletes the specified externalVpnGateway.
54304func (r *ExternalVpnGatewaysService) Delete(project string, externalVpnGateway string) *ExternalVpnGatewaysDeleteCall {
54305	c := &ExternalVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54306	c.project = project
54307	c.externalVpnGateway = externalVpnGateway
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 *ExternalVpnGatewaysDeleteCall) RequestId(requestId string) *ExternalVpnGatewaysDeleteCall {
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 *ExternalVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysDeleteCall {
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 *ExternalVpnGatewaysDeleteCall) Context(ctx context.Context) *ExternalVpnGatewaysDeleteCall {
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 *ExternalVpnGatewaysDeleteCall) Header() http.Header {
54349	if c.header_ == nil {
54350		c.header_ = make(http.Header)
54351	}
54352	return c.header_
54353}
54354
54355func (c *ExternalVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
54356	reqHeaders := make(http.Header)
54357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
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	c.urlParams_.Set("alt", alt)
54364	c.urlParams_.Set("prettyPrint", "false")
54365	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
54366	urls += "?" + c.urlParams_.Encode()
54367	req, err := http.NewRequest("DELETE", urls, body)
54368	if err != nil {
54369		return nil, err
54370	}
54371	req.Header = reqHeaders
54372	googleapi.Expand(req.URL, map[string]string{
54373		"project":            c.project,
54374		"externalVpnGateway": c.externalVpnGateway,
54375	})
54376	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54377}
54378
54379// Do executes the "compute.externalVpnGateways.delete" call.
54380// Exactly one of *Operation or error will be non-nil. Any non-2xx
54381// status code is an error. Response headers are in either
54382// *Operation.ServerResponse.Header or (if a response was returned at
54383// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54384// to check whether the returned error was because
54385// http.StatusNotModified was returned.
54386func (c *ExternalVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54387	gensupport.SetOptions(c.urlParams_, opts...)
54388	res, err := c.doRequest("json")
54389	if res != nil && res.StatusCode == http.StatusNotModified {
54390		if res.Body != nil {
54391			res.Body.Close()
54392		}
54393		return nil, &googleapi.Error{
54394			Code:   res.StatusCode,
54395			Header: res.Header,
54396		}
54397	}
54398	if err != nil {
54399		return nil, err
54400	}
54401	defer googleapi.CloseBody(res)
54402	if err := googleapi.CheckResponse(res); err != nil {
54403		return nil, err
54404	}
54405	ret := &Operation{
54406		ServerResponse: googleapi.ServerResponse{
54407			Header:         res.Header,
54408			HTTPStatusCode: res.StatusCode,
54409		},
54410	}
54411	target := &ret
54412	if err := gensupport.DecodeResponse(target, res); err != nil {
54413		return nil, err
54414	}
54415	return ret, nil
54416	// {
54417	//   "description": "Deletes the specified externalVpnGateway.",
54418	//   "httpMethod": "DELETE",
54419	//   "id": "compute.externalVpnGateways.delete",
54420	//   "parameterOrder": [
54421	//     "project",
54422	//     "externalVpnGateway"
54423	//   ],
54424	//   "parameters": {
54425	//     "externalVpnGateway": {
54426	//       "description": "Name of the externalVpnGateways to delete.",
54427	//       "location": "path",
54428	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54429	//       "required": true,
54430	//       "type": "string"
54431	//     },
54432	//     "project": {
54433	//       "description": "Project ID for this request.",
54434	//       "location": "path",
54435	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54436	//       "required": true,
54437	//       "type": "string"
54438	//     },
54439	//     "requestId": {
54440	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54441	//       "location": "query",
54442	//       "type": "string"
54443	//     }
54444	//   },
54445	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
54446	//   "response": {
54447	//     "$ref": "Operation"
54448	//   },
54449	//   "scopes": [
54450	//     "https://www.googleapis.com/auth/cloud-platform",
54451	//     "https://www.googleapis.com/auth/compute"
54452	//   ]
54453	// }
54454
54455}
54456
54457// method id "compute.externalVpnGateways.get":
54458
54459type ExternalVpnGatewaysGetCall struct {
54460	s                  *Service
54461	project            string
54462	externalVpnGateway string
54463	urlParams_         gensupport.URLParams
54464	ifNoneMatch_       string
54465	ctx_               context.Context
54466	header_            http.Header
54467}
54468
54469// Get: Returns the specified externalVpnGateway. Get a list of
54470// available externalVpnGateways by making a list() request.
54471func (r *ExternalVpnGatewaysService) Get(project string, externalVpnGateway string) *ExternalVpnGatewaysGetCall {
54472	c := &ExternalVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54473	c.project = project
54474	c.externalVpnGateway = externalVpnGateway
54475	return c
54476}
54477
54478// Fields allows partial responses to be retrieved. See
54479// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54480// for more information.
54481func (c *ExternalVpnGatewaysGetCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysGetCall {
54482	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54483	return c
54484}
54485
54486// IfNoneMatch sets the optional parameter which makes the operation
54487// fail if the object's ETag matches the given value. This is useful for
54488// getting updates only after the object has changed since the last
54489// request. Use googleapi.IsNotModified to check whether the response
54490// error from Do is the result of In-None-Match.
54491func (c *ExternalVpnGatewaysGetCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysGetCall {
54492	c.ifNoneMatch_ = entityTag
54493	return c
54494}
54495
54496// Context sets the context to be used in this call's Do method. Any
54497// pending HTTP request will be aborted if the provided context is
54498// canceled.
54499func (c *ExternalVpnGatewaysGetCall) Context(ctx context.Context) *ExternalVpnGatewaysGetCall {
54500	c.ctx_ = ctx
54501	return c
54502}
54503
54504// Header returns an http.Header that can be modified by the caller to
54505// add HTTP headers to the request.
54506func (c *ExternalVpnGatewaysGetCall) Header() http.Header {
54507	if c.header_ == nil {
54508		c.header_ = make(http.Header)
54509	}
54510	return c.header_
54511}
54512
54513func (c *ExternalVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
54514	reqHeaders := make(http.Header)
54515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54516	for k, v := range c.header_ {
54517		reqHeaders[k] = v
54518	}
54519	reqHeaders.Set("User-Agent", c.s.userAgent())
54520	if c.ifNoneMatch_ != "" {
54521		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54522	}
54523	var body io.Reader = nil
54524	c.urlParams_.Set("alt", alt)
54525	c.urlParams_.Set("prettyPrint", "false")
54526	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{externalVpnGateway}")
54527	urls += "?" + c.urlParams_.Encode()
54528	req, err := http.NewRequest("GET", urls, body)
54529	if err != nil {
54530		return nil, err
54531	}
54532	req.Header = reqHeaders
54533	googleapi.Expand(req.URL, map[string]string{
54534		"project":            c.project,
54535		"externalVpnGateway": c.externalVpnGateway,
54536	})
54537	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54538}
54539
54540// Do executes the "compute.externalVpnGateways.get" call.
54541// Exactly one of *ExternalVpnGateway or error will be non-nil. Any
54542// non-2xx status code is an error. Response headers are in either
54543// *ExternalVpnGateway.ServerResponse.Header or (if a response was
54544// returned at all) in error.(*googleapi.Error).Header. Use
54545// googleapi.IsNotModified to check whether the returned error was
54546// because http.StatusNotModified was returned.
54547func (c *ExternalVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGateway, error) {
54548	gensupport.SetOptions(c.urlParams_, opts...)
54549	res, err := c.doRequest("json")
54550	if res != nil && res.StatusCode == http.StatusNotModified {
54551		if res.Body != nil {
54552			res.Body.Close()
54553		}
54554		return nil, &googleapi.Error{
54555			Code:   res.StatusCode,
54556			Header: res.Header,
54557		}
54558	}
54559	if err != nil {
54560		return nil, err
54561	}
54562	defer googleapi.CloseBody(res)
54563	if err := googleapi.CheckResponse(res); err != nil {
54564		return nil, err
54565	}
54566	ret := &ExternalVpnGateway{
54567		ServerResponse: googleapi.ServerResponse{
54568			Header:         res.Header,
54569			HTTPStatusCode: res.StatusCode,
54570		},
54571	}
54572	target := &ret
54573	if err := gensupport.DecodeResponse(target, res); err != nil {
54574		return nil, err
54575	}
54576	return ret, nil
54577	// {
54578	//   "description": "Returns the specified externalVpnGateway. Get a list of available externalVpnGateways by making a list() request.",
54579	//   "httpMethod": "GET",
54580	//   "id": "compute.externalVpnGateways.get",
54581	//   "parameterOrder": [
54582	//     "project",
54583	//     "externalVpnGateway"
54584	//   ],
54585	//   "parameters": {
54586	//     "externalVpnGateway": {
54587	//       "description": "Name of the externalVpnGateway to return.",
54588	//       "location": "path",
54589	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
54590	//       "required": true,
54591	//       "type": "string"
54592	//     },
54593	//     "project": {
54594	//       "description": "Project ID for this request.",
54595	//       "location": "path",
54596	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54597	//       "required": true,
54598	//       "type": "string"
54599	//     }
54600	//   },
54601	//   "path": "{project}/global/externalVpnGateways/{externalVpnGateway}",
54602	//   "response": {
54603	//     "$ref": "ExternalVpnGateway"
54604	//   },
54605	//   "scopes": [
54606	//     "https://www.googleapis.com/auth/cloud-platform",
54607	//     "https://www.googleapis.com/auth/compute",
54608	//     "https://www.googleapis.com/auth/compute.readonly"
54609	//   ]
54610	// }
54611
54612}
54613
54614// method id "compute.externalVpnGateways.insert":
54615
54616type ExternalVpnGatewaysInsertCall struct {
54617	s                  *Service
54618	project            string
54619	externalvpngateway *ExternalVpnGateway
54620	urlParams_         gensupport.URLParams
54621	ctx_               context.Context
54622	header_            http.Header
54623}
54624
54625// Insert: Creates a ExternalVpnGateway in the specified project using
54626// the data included in the request.
54627func (r *ExternalVpnGatewaysService) Insert(project string, externalvpngateway *ExternalVpnGateway) *ExternalVpnGatewaysInsertCall {
54628	c := &ExternalVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54629	c.project = project
54630	c.externalvpngateway = externalvpngateway
54631	return c
54632}
54633
54634// RequestId sets the optional parameter "requestId": An optional
54635// request ID to identify requests. Specify a unique request ID so that
54636// if you must retry your request, the server will know to ignore the
54637// request if it has already been completed.
54638//
54639// For example, consider a situation where you make an initial request
54640// and the request times out. If you make the request again with the
54641// same request ID, the server can check if original operation with the
54642// same request ID was received, and if so, will ignore the second
54643// request. This prevents clients from accidentally creating duplicate
54644// commitments.
54645//
54646// The request ID must be a valid UUID with the exception that zero UUID
54647// is not supported (00000000-0000-0000-0000-000000000000).
54648func (c *ExternalVpnGatewaysInsertCall) RequestId(requestId string) *ExternalVpnGatewaysInsertCall {
54649	c.urlParams_.Set("requestId", requestId)
54650	return c
54651}
54652
54653// Fields allows partial responses to be retrieved. See
54654// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54655// for more information.
54656func (c *ExternalVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysInsertCall {
54657	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54658	return c
54659}
54660
54661// Context sets the context to be used in this call's Do method. Any
54662// pending HTTP request will be aborted if the provided context is
54663// canceled.
54664func (c *ExternalVpnGatewaysInsertCall) Context(ctx context.Context) *ExternalVpnGatewaysInsertCall {
54665	c.ctx_ = ctx
54666	return c
54667}
54668
54669// Header returns an http.Header that can be modified by the caller to
54670// add HTTP headers to the request.
54671func (c *ExternalVpnGatewaysInsertCall) Header() http.Header {
54672	if c.header_ == nil {
54673		c.header_ = make(http.Header)
54674	}
54675	return c.header_
54676}
54677
54678func (c *ExternalVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
54679	reqHeaders := make(http.Header)
54680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54681	for k, v := range c.header_ {
54682		reqHeaders[k] = v
54683	}
54684	reqHeaders.Set("User-Agent", c.s.userAgent())
54685	var body io.Reader = nil
54686	body, err := googleapi.WithoutDataWrapper.JSONReader(c.externalvpngateway)
54687	if err != nil {
54688		return nil, err
54689	}
54690	reqHeaders.Set("Content-Type", "application/json")
54691	c.urlParams_.Set("alt", alt)
54692	c.urlParams_.Set("prettyPrint", "false")
54693	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
54694	urls += "?" + c.urlParams_.Encode()
54695	req, err := http.NewRequest("POST", urls, body)
54696	if err != nil {
54697		return nil, err
54698	}
54699	req.Header = reqHeaders
54700	googleapi.Expand(req.URL, map[string]string{
54701		"project": c.project,
54702	})
54703	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54704}
54705
54706// Do executes the "compute.externalVpnGateways.insert" call.
54707// Exactly one of *Operation or error will be non-nil. Any non-2xx
54708// status code is an error. Response headers are in either
54709// *Operation.ServerResponse.Header or (if a response was returned at
54710// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
54711// to check whether the returned error was because
54712// http.StatusNotModified was returned.
54713func (c *ExternalVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
54714	gensupport.SetOptions(c.urlParams_, opts...)
54715	res, err := c.doRequest("json")
54716	if res != nil && res.StatusCode == http.StatusNotModified {
54717		if res.Body != nil {
54718			res.Body.Close()
54719		}
54720		return nil, &googleapi.Error{
54721			Code:   res.StatusCode,
54722			Header: res.Header,
54723		}
54724	}
54725	if err != nil {
54726		return nil, err
54727	}
54728	defer googleapi.CloseBody(res)
54729	if err := googleapi.CheckResponse(res); err != nil {
54730		return nil, err
54731	}
54732	ret := &Operation{
54733		ServerResponse: googleapi.ServerResponse{
54734			Header:         res.Header,
54735			HTTPStatusCode: res.StatusCode,
54736		},
54737	}
54738	target := &ret
54739	if err := gensupport.DecodeResponse(target, res); err != nil {
54740		return nil, err
54741	}
54742	return ret, nil
54743	// {
54744	//   "description": "Creates a ExternalVpnGateway in the specified project using the data included in the request.",
54745	//   "httpMethod": "POST",
54746	//   "id": "compute.externalVpnGateways.insert",
54747	//   "parameterOrder": [
54748	//     "project"
54749	//   ],
54750	//   "parameters": {
54751	//     "project": {
54752	//       "description": "Project ID for this request.",
54753	//       "location": "path",
54754	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54755	//       "required": true,
54756	//       "type": "string"
54757	//     },
54758	//     "requestId": {
54759	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
54760	//       "location": "query",
54761	//       "type": "string"
54762	//     }
54763	//   },
54764	//   "path": "{project}/global/externalVpnGateways",
54765	//   "request": {
54766	//     "$ref": "ExternalVpnGateway"
54767	//   },
54768	//   "response": {
54769	//     "$ref": "Operation"
54770	//   },
54771	//   "scopes": [
54772	//     "https://www.googleapis.com/auth/cloud-platform",
54773	//     "https://www.googleapis.com/auth/compute"
54774	//   ]
54775	// }
54776
54777}
54778
54779// method id "compute.externalVpnGateways.list":
54780
54781type ExternalVpnGatewaysListCall struct {
54782	s            *Service
54783	project      string
54784	urlParams_   gensupport.URLParams
54785	ifNoneMatch_ string
54786	ctx_         context.Context
54787	header_      http.Header
54788}
54789
54790// List: Retrieves the list of ExternalVpnGateway available to the
54791// specified project.
54792func (r *ExternalVpnGatewaysService) List(project string) *ExternalVpnGatewaysListCall {
54793	c := &ExternalVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
54794	c.project = project
54795	return c
54796}
54797
54798// Filter sets the optional parameter "filter": A filter expression that
54799// filters resources listed in the response. The expression must specify
54800// the field name, a comparison operator, and the value that you want to
54801// use for filtering. The value must be a string, a number, or a
54802// boolean. The comparison operator must be either =, !=, >, or <.
54803//
54804// For example, if you are filtering Compute Engine instances, you can
54805// exclude instances named example-instance by specifying name !=
54806// example-instance.
54807//
54808// You can also filter nested fields. For example, you could specify
54809// scheduling.automaticRestart = false to include instances only if they
54810// are not scheduled for automatic restarts. You can use filtering on
54811// nested fields to filter based on resource labels.
54812//
54813// To filter on multiple expressions, provide each separate expression
54814// within parentheses. For example, (scheduling.automaticRestart = true)
54815// (cpuPlatform = "Intel Skylake"). By default, each expression is an
54816// AND expression. However, you can include AND and OR expressions
54817// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
54818// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
54819// true).
54820func (c *ExternalVpnGatewaysListCall) Filter(filter string) *ExternalVpnGatewaysListCall {
54821	c.urlParams_.Set("filter", filter)
54822	return c
54823}
54824
54825// MaxResults sets the optional parameter "maxResults": The maximum
54826// number of results per page that should be returned. If the number of
54827// available results is larger than maxResults, Compute Engine returns a
54828// nextPageToken that can be used to get the next page of results in
54829// subsequent list requests. Acceptable values are 0 to 500, inclusive.
54830// (Default: 500)
54831func (c *ExternalVpnGatewaysListCall) MaxResults(maxResults int64) *ExternalVpnGatewaysListCall {
54832	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
54833	return c
54834}
54835
54836// OrderBy sets the optional parameter "orderBy": Sorts list results by
54837// a certain order. By default, results are returned in alphanumerical
54838// order based on the resource name.
54839//
54840// You can also sort results in descending order based on the creation
54841// timestamp using orderBy="creationTimestamp desc". This sorts results
54842// based on the creationTimestamp field in reverse chronological order
54843// (newest result first). Use this to sort resources like operations so
54844// that the newest operation is returned first.
54845//
54846// Currently, only sorting by name or creationTimestamp desc is
54847// supported.
54848func (c *ExternalVpnGatewaysListCall) OrderBy(orderBy string) *ExternalVpnGatewaysListCall {
54849	c.urlParams_.Set("orderBy", orderBy)
54850	return c
54851}
54852
54853// PageToken sets the optional parameter "pageToken": Specifies a page
54854// token to use. Set pageToken to the nextPageToken returned by a
54855// previous list request to get the next page of results.
54856func (c *ExternalVpnGatewaysListCall) PageToken(pageToken string) *ExternalVpnGatewaysListCall {
54857	c.urlParams_.Set("pageToken", pageToken)
54858	return c
54859}
54860
54861// Fields allows partial responses to be retrieved. See
54862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
54863// for more information.
54864func (c *ExternalVpnGatewaysListCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysListCall {
54865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
54866	return c
54867}
54868
54869// IfNoneMatch sets the optional parameter which makes the operation
54870// fail if the object's ETag matches the given value. This is useful for
54871// getting updates only after the object has changed since the last
54872// request. Use googleapi.IsNotModified to check whether the response
54873// error from Do is the result of In-None-Match.
54874func (c *ExternalVpnGatewaysListCall) IfNoneMatch(entityTag string) *ExternalVpnGatewaysListCall {
54875	c.ifNoneMatch_ = entityTag
54876	return c
54877}
54878
54879// Context sets the context to be used in this call's Do method. Any
54880// pending HTTP request will be aborted if the provided context is
54881// canceled.
54882func (c *ExternalVpnGatewaysListCall) Context(ctx context.Context) *ExternalVpnGatewaysListCall {
54883	c.ctx_ = ctx
54884	return c
54885}
54886
54887// Header returns an http.Header that can be modified by the caller to
54888// add HTTP headers to the request.
54889func (c *ExternalVpnGatewaysListCall) Header() http.Header {
54890	if c.header_ == nil {
54891		c.header_ = make(http.Header)
54892	}
54893	return c.header_
54894}
54895
54896func (c *ExternalVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
54897	reqHeaders := make(http.Header)
54898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
54899	for k, v := range c.header_ {
54900		reqHeaders[k] = v
54901	}
54902	reqHeaders.Set("User-Agent", c.s.userAgent())
54903	if c.ifNoneMatch_ != "" {
54904		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
54905	}
54906	var body io.Reader = nil
54907	c.urlParams_.Set("alt", alt)
54908	c.urlParams_.Set("prettyPrint", "false")
54909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways")
54910	urls += "?" + c.urlParams_.Encode()
54911	req, err := http.NewRequest("GET", urls, body)
54912	if err != nil {
54913		return nil, err
54914	}
54915	req.Header = reqHeaders
54916	googleapi.Expand(req.URL, map[string]string{
54917		"project": c.project,
54918	})
54919	return gensupport.SendRequest(c.ctx_, c.s.client, req)
54920}
54921
54922// Do executes the "compute.externalVpnGateways.list" call.
54923// Exactly one of *ExternalVpnGatewayList or error will be non-nil. Any
54924// non-2xx status code is an error. Response headers are in either
54925// *ExternalVpnGatewayList.ServerResponse.Header or (if a response was
54926// returned at all) in error.(*googleapi.Error).Header. Use
54927// googleapi.IsNotModified to check whether the returned error was
54928// because http.StatusNotModified was returned.
54929func (c *ExternalVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*ExternalVpnGatewayList, error) {
54930	gensupport.SetOptions(c.urlParams_, opts...)
54931	res, err := c.doRequest("json")
54932	if res != nil && res.StatusCode == http.StatusNotModified {
54933		if res.Body != nil {
54934			res.Body.Close()
54935		}
54936		return nil, &googleapi.Error{
54937			Code:   res.StatusCode,
54938			Header: res.Header,
54939		}
54940	}
54941	if err != nil {
54942		return nil, err
54943	}
54944	defer googleapi.CloseBody(res)
54945	if err := googleapi.CheckResponse(res); err != nil {
54946		return nil, err
54947	}
54948	ret := &ExternalVpnGatewayList{
54949		ServerResponse: googleapi.ServerResponse{
54950			Header:         res.Header,
54951			HTTPStatusCode: res.StatusCode,
54952		},
54953	}
54954	target := &ret
54955	if err := gensupport.DecodeResponse(target, res); err != nil {
54956		return nil, err
54957	}
54958	return ret, nil
54959	// {
54960	//   "description": "Retrieves the list of ExternalVpnGateway available to the specified project.",
54961	//   "httpMethod": "GET",
54962	//   "id": "compute.externalVpnGateways.list",
54963	//   "parameterOrder": [
54964	//     "project"
54965	//   ],
54966	//   "parameters": {
54967	//     "filter": {
54968	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
54969	//       "location": "query",
54970	//       "type": "string"
54971	//     },
54972	//     "maxResults": {
54973	//       "default": "500",
54974	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
54975	//       "format": "uint32",
54976	//       "location": "query",
54977	//       "minimum": "0",
54978	//       "type": "integer"
54979	//     },
54980	//     "orderBy": {
54981	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
54982	//       "location": "query",
54983	//       "type": "string"
54984	//     },
54985	//     "pageToken": {
54986	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
54987	//       "location": "query",
54988	//       "type": "string"
54989	//     },
54990	//     "project": {
54991	//       "description": "Project ID for this request.",
54992	//       "location": "path",
54993	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
54994	//       "required": true,
54995	//       "type": "string"
54996	//     }
54997	//   },
54998	//   "path": "{project}/global/externalVpnGateways",
54999	//   "response": {
55000	//     "$ref": "ExternalVpnGatewayList"
55001	//   },
55002	//   "scopes": [
55003	//     "https://www.googleapis.com/auth/cloud-platform",
55004	//     "https://www.googleapis.com/auth/compute",
55005	//     "https://www.googleapis.com/auth/compute.readonly"
55006	//   ]
55007	// }
55008
55009}
55010
55011// Pages invokes f for each page of results.
55012// A non-nil error returned from f will halt the iteration.
55013// The provided context supersedes any context provided to the Context method.
55014func (c *ExternalVpnGatewaysListCall) Pages(ctx context.Context, f func(*ExternalVpnGatewayList) error) error {
55015	c.ctx_ = ctx
55016	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
55017	for {
55018		x, err := c.Do()
55019		if err != nil {
55020			return err
55021		}
55022		if err := f(x); err != nil {
55023			return err
55024		}
55025		if x.NextPageToken == "" {
55026			return nil
55027		}
55028		c.PageToken(x.NextPageToken)
55029	}
55030}
55031
55032// method id "compute.externalVpnGateways.setLabels":
55033
55034type ExternalVpnGatewaysSetLabelsCall struct {
55035	s                      *Service
55036	project                string
55037	resource               string
55038	globalsetlabelsrequest *GlobalSetLabelsRequest
55039	urlParams_             gensupport.URLParams
55040	ctx_                   context.Context
55041	header_                http.Header
55042}
55043
55044// SetLabels: Sets the labels on an ExternalVpnGateway. To learn more
55045// about labels, read the Labeling Resources documentation.
55046func (r *ExternalVpnGatewaysService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ExternalVpnGatewaysSetLabelsCall {
55047	c := &ExternalVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55048	c.project = project
55049	c.resource = resource
55050	c.globalsetlabelsrequest = globalsetlabelsrequest
55051	return c
55052}
55053
55054// Fields allows partial responses to be retrieved. See
55055// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55056// for more information.
55057func (c *ExternalVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysSetLabelsCall {
55058	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55059	return c
55060}
55061
55062// Context sets the context to be used in this call's Do method. Any
55063// pending HTTP request will be aborted if the provided context is
55064// canceled.
55065func (c *ExternalVpnGatewaysSetLabelsCall) Context(ctx context.Context) *ExternalVpnGatewaysSetLabelsCall {
55066	c.ctx_ = ctx
55067	return c
55068}
55069
55070// Header returns an http.Header that can be modified by the caller to
55071// add HTTP headers to the request.
55072func (c *ExternalVpnGatewaysSetLabelsCall) Header() http.Header {
55073	if c.header_ == nil {
55074		c.header_ = make(http.Header)
55075	}
55076	return c.header_
55077}
55078
55079func (c *ExternalVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
55080	reqHeaders := make(http.Header)
55081	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55082	for k, v := range c.header_ {
55083		reqHeaders[k] = v
55084	}
55085	reqHeaders.Set("User-Agent", c.s.userAgent())
55086	var body io.Reader = nil
55087	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
55088	if err != nil {
55089		return nil, err
55090	}
55091	reqHeaders.Set("Content-Type", "application/json")
55092	c.urlParams_.Set("alt", alt)
55093	c.urlParams_.Set("prettyPrint", "false")
55094	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/setLabels")
55095	urls += "?" + c.urlParams_.Encode()
55096	req, err := http.NewRequest("POST", urls, body)
55097	if err != nil {
55098		return nil, err
55099	}
55100	req.Header = reqHeaders
55101	googleapi.Expand(req.URL, map[string]string{
55102		"project":  c.project,
55103		"resource": c.resource,
55104	})
55105	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55106}
55107
55108// Do executes the "compute.externalVpnGateways.setLabels" call.
55109// Exactly one of *Operation or error will be non-nil. Any non-2xx
55110// status code is an error. Response headers are in either
55111// *Operation.ServerResponse.Header or (if a response was returned at
55112// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55113// to check whether the returned error was because
55114// http.StatusNotModified was returned.
55115func (c *ExternalVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55116	gensupport.SetOptions(c.urlParams_, opts...)
55117	res, err := c.doRequest("json")
55118	if res != nil && res.StatusCode == http.StatusNotModified {
55119		if res.Body != nil {
55120			res.Body.Close()
55121		}
55122		return nil, &googleapi.Error{
55123			Code:   res.StatusCode,
55124			Header: res.Header,
55125		}
55126	}
55127	if err != nil {
55128		return nil, err
55129	}
55130	defer googleapi.CloseBody(res)
55131	if err := googleapi.CheckResponse(res); err != nil {
55132		return nil, err
55133	}
55134	ret := &Operation{
55135		ServerResponse: googleapi.ServerResponse{
55136			Header:         res.Header,
55137			HTTPStatusCode: res.StatusCode,
55138		},
55139	}
55140	target := &ret
55141	if err := gensupport.DecodeResponse(target, res); err != nil {
55142		return nil, err
55143	}
55144	return ret, nil
55145	// {
55146	//   "description": "Sets the labels on an ExternalVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
55147	//   "httpMethod": "POST",
55148	//   "id": "compute.externalVpnGateways.setLabels",
55149	//   "parameterOrder": [
55150	//     "project",
55151	//     "resource"
55152	//   ],
55153	//   "parameters": {
55154	//     "project": {
55155	//       "description": "Project ID for this request.",
55156	//       "location": "path",
55157	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55158	//       "required": true,
55159	//       "type": "string"
55160	//     },
55161	//     "resource": {
55162	//       "description": "Name or id of the resource for this request.",
55163	//       "location": "path",
55164	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55165	//       "required": true,
55166	//       "type": "string"
55167	//     }
55168	//   },
55169	//   "path": "{project}/global/externalVpnGateways/{resource}/setLabels",
55170	//   "request": {
55171	//     "$ref": "GlobalSetLabelsRequest"
55172	//   },
55173	//   "response": {
55174	//     "$ref": "Operation"
55175	//   },
55176	//   "scopes": [
55177	//     "https://www.googleapis.com/auth/cloud-platform",
55178	//     "https://www.googleapis.com/auth/compute"
55179	//   ]
55180	// }
55181
55182}
55183
55184// method id "compute.externalVpnGateways.testIamPermissions":
55185
55186type ExternalVpnGatewaysTestIamPermissionsCall struct {
55187	s                      *Service
55188	project                string
55189	resource               string
55190	testpermissionsrequest *TestPermissionsRequest
55191	urlParams_             gensupport.URLParams
55192	ctx_                   context.Context
55193	header_                http.Header
55194}
55195
55196// TestIamPermissions: Returns permissions that a caller has on the
55197// specified resource.
55198func (r *ExternalVpnGatewaysService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ExternalVpnGatewaysTestIamPermissionsCall {
55199	c := &ExternalVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55200	c.project = project
55201	c.resource = resource
55202	c.testpermissionsrequest = testpermissionsrequest
55203	return c
55204}
55205
55206// Fields allows partial responses to be retrieved. See
55207// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55208// for more information.
55209func (c *ExternalVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *ExternalVpnGatewaysTestIamPermissionsCall {
55210	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55211	return c
55212}
55213
55214// Context sets the context to be used in this call's Do method. Any
55215// pending HTTP request will be aborted if the provided context is
55216// canceled.
55217func (c *ExternalVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *ExternalVpnGatewaysTestIamPermissionsCall {
55218	c.ctx_ = ctx
55219	return c
55220}
55221
55222// Header returns an http.Header that can be modified by the caller to
55223// add HTTP headers to the request.
55224func (c *ExternalVpnGatewaysTestIamPermissionsCall) Header() http.Header {
55225	if c.header_ == nil {
55226		c.header_ = make(http.Header)
55227	}
55228	return c.header_
55229}
55230
55231func (c *ExternalVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
55232	reqHeaders := make(http.Header)
55233	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55234	for k, v := range c.header_ {
55235		reqHeaders[k] = v
55236	}
55237	reqHeaders.Set("User-Agent", c.s.userAgent())
55238	var body io.Reader = nil
55239	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
55240	if err != nil {
55241		return nil, err
55242	}
55243	reqHeaders.Set("Content-Type", "application/json")
55244	c.urlParams_.Set("alt", alt)
55245	c.urlParams_.Set("prettyPrint", "false")
55246	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/externalVpnGateways/{resource}/testIamPermissions")
55247	urls += "?" + c.urlParams_.Encode()
55248	req, err := http.NewRequest("POST", urls, body)
55249	if err != nil {
55250		return nil, err
55251	}
55252	req.Header = reqHeaders
55253	googleapi.Expand(req.URL, map[string]string{
55254		"project":  c.project,
55255		"resource": c.resource,
55256	})
55257	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55258}
55259
55260// Do executes the "compute.externalVpnGateways.testIamPermissions" call.
55261// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
55262// non-2xx status code is an error. Response headers are in either
55263// *TestPermissionsResponse.ServerResponse.Header or (if a response was
55264// returned at all) in error.(*googleapi.Error).Header. Use
55265// googleapi.IsNotModified to check whether the returned error was
55266// because http.StatusNotModified was returned.
55267func (c *ExternalVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
55268	gensupport.SetOptions(c.urlParams_, opts...)
55269	res, err := c.doRequest("json")
55270	if res != nil && res.StatusCode == http.StatusNotModified {
55271		if res.Body != nil {
55272			res.Body.Close()
55273		}
55274		return nil, &googleapi.Error{
55275			Code:   res.StatusCode,
55276			Header: res.Header,
55277		}
55278	}
55279	if err != nil {
55280		return nil, err
55281	}
55282	defer googleapi.CloseBody(res)
55283	if err := googleapi.CheckResponse(res); err != nil {
55284		return nil, err
55285	}
55286	ret := &TestPermissionsResponse{
55287		ServerResponse: googleapi.ServerResponse{
55288			Header:         res.Header,
55289			HTTPStatusCode: res.StatusCode,
55290		},
55291	}
55292	target := &ret
55293	if err := gensupport.DecodeResponse(target, res); err != nil {
55294		return nil, err
55295	}
55296	return ret, nil
55297	// {
55298	//   "description": "Returns permissions that a caller has on the specified resource.",
55299	//   "httpMethod": "POST",
55300	//   "id": "compute.externalVpnGateways.testIamPermissions",
55301	//   "parameterOrder": [
55302	//     "project",
55303	//     "resource"
55304	//   ],
55305	//   "parameters": {
55306	//     "project": {
55307	//       "description": "Project ID for this request.",
55308	//       "location": "path",
55309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55310	//       "required": true,
55311	//       "type": "string"
55312	//     },
55313	//     "resource": {
55314	//       "description": "Name or id of the resource for this request.",
55315	//       "location": "path",
55316	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55317	//       "required": true,
55318	//       "type": "string"
55319	//     }
55320	//   },
55321	//   "path": "{project}/global/externalVpnGateways/{resource}/testIamPermissions",
55322	//   "request": {
55323	//     "$ref": "TestPermissionsRequest"
55324	//   },
55325	//   "response": {
55326	//     "$ref": "TestPermissionsResponse"
55327	//   },
55328	//   "scopes": [
55329	//     "https://www.googleapis.com/auth/cloud-platform",
55330	//     "https://www.googleapis.com/auth/compute",
55331	//     "https://www.googleapis.com/auth/compute.readonly"
55332	//   ]
55333	// }
55334
55335}
55336
55337// method id "compute.firewalls.delete":
55338
55339type FirewallsDeleteCall struct {
55340	s          *Service
55341	project    string
55342	firewall   string
55343	urlParams_ gensupport.URLParams
55344	ctx_       context.Context
55345	header_    http.Header
55346}
55347
55348// Delete: Deletes the specified firewall.
55349// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/delete
55350func (r *FirewallsService) Delete(project string, firewall string) *FirewallsDeleteCall {
55351	c := &FirewallsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55352	c.project = project
55353	c.firewall = firewall
55354	return c
55355}
55356
55357// RequestId sets the optional parameter "requestId": An optional
55358// request ID to identify requests. Specify a unique request ID so that
55359// if you must retry your request, the server will know to ignore the
55360// request if it has already been completed.
55361//
55362// For example, consider a situation where you make an initial request
55363// and the request times out. If you make the request again with the
55364// same request ID, the server can check if original operation with the
55365// same request ID was received, and if so, will ignore the second
55366// request. This prevents clients from accidentally creating duplicate
55367// commitments.
55368//
55369// The request ID must be a valid UUID with the exception that zero UUID
55370// is not supported (00000000-0000-0000-0000-000000000000).
55371func (c *FirewallsDeleteCall) RequestId(requestId string) *FirewallsDeleteCall {
55372	c.urlParams_.Set("requestId", requestId)
55373	return c
55374}
55375
55376// Fields allows partial responses to be retrieved. See
55377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55378// for more information.
55379func (c *FirewallsDeleteCall) Fields(s ...googleapi.Field) *FirewallsDeleteCall {
55380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55381	return c
55382}
55383
55384// Context sets the context to be used in this call's Do method. Any
55385// pending HTTP request will be aborted if the provided context is
55386// canceled.
55387func (c *FirewallsDeleteCall) Context(ctx context.Context) *FirewallsDeleteCall {
55388	c.ctx_ = ctx
55389	return c
55390}
55391
55392// Header returns an http.Header that can be modified by the caller to
55393// add HTTP headers to the request.
55394func (c *FirewallsDeleteCall) Header() http.Header {
55395	if c.header_ == nil {
55396		c.header_ = make(http.Header)
55397	}
55398	return c.header_
55399}
55400
55401func (c *FirewallsDeleteCall) doRequest(alt string) (*http.Response, error) {
55402	reqHeaders := make(http.Header)
55403	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55404	for k, v := range c.header_ {
55405		reqHeaders[k] = v
55406	}
55407	reqHeaders.Set("User-Agent", c.s.userAgent())
55408	var body io.Reader = nil
55409	c.urlParams_.Set("alt", alt)
55410	c.urlParams_.Set("prettyPrint", "false")
55411	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
55412	urls += "?" + c.urlParams_.Encode()
55413	req, err := http.NewRequest("DELETE", urls, body)
55414	if err != nil {
55415		return nil, err
55416	}
55417	req.Header = reqHeaders
55418	googleapi.Expand(req.URL, map[string]string{
55419		"project":  c.project,
55420		"firewall": c.firewall,
55421	})
55422	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55423}
55424
55425// Do executes the "compute.firewalls.delete" call.
55426// Exactly one of *Operation or error will be non-nil. Any non-2xx
55427// status code is an error. Response headers are in either
55428// *Operation.ServerResponse.Header or (if a response was returned at
55429// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55430// to check whether the returned error was because
55431// http.StatusNotModified was returned.
55432func (c *FirewallsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55433	gensupport.SetOptions(c.urlParams_, opts...)
55434	res, err := c.doRequest("json")
55435	if res != nil && res.StatusCode == http.StatusNotModified {
55436		if res.Body != nil {
55437			res.Body.Close()
55438		}
55439		return nil, &googleapi.Error{
55440			Code:   res.StatusCode,
55441			Header: res.Header,
55442		}
55443	}
55444	if err != nil {
55445		return nil, err
55446	}
55447	defer googleapi.CloseBody(res)
55448	if err := googleapi.CheckResponse(res); err != nil {
55449		return nil, err
55450	}
55451	ret := &Operation{
55452		ServerResponse: googleapi.ServerResponse{
55453			Header:         res.Header,
55454			HTTPStatusCode: res.StatusCode,
55455		},
55456	}
55457	target := &ret
55458	if err := gensupport.DecodeResponse(target, res); err != nil {
55459		return nil, err
55460	}
55461	return ret, nil
55462	// {
55463	//   "description": "Deletes the specified firewall.",
55464	//   "httpMethod": "DELETE",
55465	//   "id": "compute.firewalls.delete",
55466	//   "parameterOrder": [
55467	//     "project",
55468	//     "firewall"
55469	//   ],
55470	//   "parameters": {
55471	//     "firewall": {
55472	//       "description": "Name of the firewall rule to delete.",
55473	//       "location": "path",
55474	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55475	//       "required": true,
55476	//       "type": "string"
55477	//     },
55478	//     "project": {
55479	//       "description": "Project ID for this request.",
55480	//       "location": "path",
55481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55482	//       "required": true,
55483	//       "type": "string"
55484	//     },
55485	//     "requestId": {
55486	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55487	//       "location": "query",
55488	//       "type": "string"
55489	//     }
55490	//   },
55491	//   "path": "{project}/global/firewalls/{firewall}",
55492	//   "response": {
55493	//     "$ref": "Operation"
55494	//   },
55495	//   "scopes": [
55496	//     "https://www.googleapis.com/auth/cloud-platform",
55497	//     "https://www.googleapis.com/auth/compute"
55498	//   ]
55499	// }
55500
55501}
55502
55503// method id "compute.firewalls.get":
55504
55505type FirewallsGetCall struct {
55506	s            *Service
55507	project      string
55508	firewall     string
55509	urlParams_   gensupport.URLParams
55510	ifNoneMatch_ string
55511	ctx_         context.Context
55512	header_      http.Header
55513}
55514
55515// Get: Returns the specified firewall.
55516// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/get
55517func (r *FirewallsService) Get(project string, firewall string) *FirewallsGetCall {
55518	c := &FirewallsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55519	c.project = project
55520	c.firewall = firewall
55521	return c
55522}
55523
55524// Fields allows partial responses to be retrieved. See
55525// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55526// for more information.
55527func (c *FirewallsGetCall) Fields(s ...googleapi.Field) *FirewallsGetCall {
55528	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55529	return c
55530}
55531
55532// IfNoneMatch sets the optional parameter which makes the operation
55533// fail if the object's ETag matches the given value. This is useful for
55534// getting updates only after the object has changed since the last
55535// request. Use googleapi.IsNotModified to check whether the response
55536// error from Do is the result of In-None-Match.
55537func (c *FirewallsGetCall) IfNoneMatch(entityTag string) *FirewallsGetCall {
55538	c.ifNoneMatch_ = entityTag
55539	return c
55540}
55541
55542// Context sets the context to be used in this call's Do method. Any
55543// pending HTTP request will be aborted if the provided context is
55544// canceled.
55545func (c *FirewallsGetCall) Context(ctx context.Context) *FirewallsGetCall {
55546	c.ctx_ = ctx
55547	return c
55548}
55549
55550// Header returns an http.Header that can be modified by the caller to
55551// add HTTP headers to the request.
55552func (c *FirewallsGetCall) Header() http.Header {
55553	if c.header_ == nil {
55554		c.header_ = make(http.Header)
55555	}
55556	return c.header_
55557}
55558
55559func (c *FirewallsGetCall) doRequest(alt string) (*http.Response, error) {
55560	reqHeaders := make(http.Header)
55561	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55562	for k, v := range c.header_ {
55563		reqHeaders[k] = v
55564	}
55565	reqHeaders.Set("User-Agent", c.s.userAgent())
55566	if c.ifNoneMatch_ != "" {
55567		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55568	}
55569	var body io.Reader = nil
55570	c.urlParams_.Set("alt", alt)
55571	c.urlParams_.Set("prettyPrint", "false")
55572	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
55573	urls += "?" + c.urlParams_.Encode()
55574	req, err := http.NewRequest("GET", urls, body)
55575	if err != nil {
55576		return nil, err
55577	}
55578	req.Header = reqHeaders
55579	googleapi.Expand(req.URL, map[string]string{
55580		"project":  c.project,
55581		"firewall": c.firewall,
55582	})
55583	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55584}
55585
55586// Do executes the "compute.firewalls.get" call.
55587// Exactly one of *Firewall or error will be non-nil. Any non-2xx status
55588// code is an error. Response headers are in either
55589// *Firewall.ServerResponse.Header or (if a response was returned at
55590// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55591// to check whether the returned error was because
55592// http.StatusNotModified was returned.
55593func (c *FirewallsGetCall) Do(opts ...googleapi.CallOption) (*Firewall, error) {
55594	gensupport.SetOptions(c.urlParams_, opts...)
55595	res, err := c.doRequest("json")
55596	if res != nil && res.StatusCode == http.StatusNotModified {
55597		if res.Body != nil {
55598			res.Body.Close()
55599		}
55600		return nil, &googleapi.Error{
55601			Code:   res.StatusCode,
55602			Header: res.Header,
55603		}
55604	}
55605	if err != nil {
55606		return nil, err
55607	}
55608	defer googleapi.CloseBody(res)
55609	if err := googleapi.CheckResponse(res); err != nil {
55610		return nil, err
55611	}
55612	ret := &Firewall{
55613		ServerResponse: googleapi.ServerResponse{
55614			Header:         res.Header,
55615			HTTPStatusCode: res.StatusCode,
55616		},
55617	}
55618	target := &ret
55619	if err := gensupport.DecodeResponse(target, res); err != nil {
55620		return nil, err
55621	}
55622	return ret, nil
55623	// {
55624	//   "description": "Returns the specified firewall.",
55625	//   "httpMethod": "GET",
55626	//   "id": "compute.firewalls.get",
55627	//   "parameterOrder": [
55628	//     "project",
55629	//     "firewall"
55630	//   ],
55631	//   "parameters": {
55632	//     "firewall": {
55633	//       "description": "Name of the firewall rule to return.",
55634	//       "location": "path",
55635	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
55636	//       "required": true,
55637	//       "type": "string"
55638	//     },
55639	//     "project": {
55640	//       "description": "Project ID for this request.",
55641	//       "location": "path",
55642	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55643	//       "required": true,
55644	//       "type": "string"
55645	//     }
55646	//   },
55647	//   "path": "{project}/global/firewalls/{firewall}",
55648	//   "response": {
55649	//     "$ref": "Firewall"
55650	//   },
55651	//   "scopes": [
55652	//     "https://www.googleapis.com/auth/cloud-platform",
55653	//     "https://www.googleapis.com/auth/compute",
55654	//     "https://www.googleapis.com/auth/compute.readonly"
55655	//   ]
55656	// }
55657
55658}
55659
55660// method id "compute.firewalls.insert":
55661
55662type FirewallsInsertCall struct {
55663	s          *Service
55664	project    string
55665	firewall   *Firewall
55666	urlParams_ gensupport.URLParams
55667	ctx_       context.Context
55668	header_    http.Header
55669}
55670
55671// Insert: Creates a firewall rule in the specified project using the
55672// data included in the request.
55673// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/insert
55674func (r *FirewallsService) Insert(project string, firewall *Firewall) *FirewallsInsertCall {
55675	c := &FirewallsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55676	c.project = project
55677	c.firewall = firewall
55678	return c
55679}
55680
55681// RequestId sets the optional parameter "requestId": An optional
55682// request ID to identify requests. Specify a unique request ID so that
55683// if you must retry your request, the server will know to ignore the
55684// request if it has already been completed.
55685//
55686// For example, consider a situation where you make an initial request
55687// and the request times out. If you make the request again with the
55688// same request ID, the server can check if original operation with the
55689// same request ID was received, and if so, will ignore the second
55690// request. This prevents clients from accidentally creating duplicate
55691// commitments.
55692//
55693// The request ID must be a valid UUID with the exception that zero UUID
55694// is not supported (00000000-0000-0000-0000-000000000000).
55695func (c *FirewallsInsertCall) RequestId(requestId string) *FirewallsInsertCall {
55696	c.urlParams_.Set("requestId", requestId)
55697	return c
55698}
55699
55700// Fields allows partial responses to be retrieved. See
55701// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55702// for more information.
55703func (c *FirewallsInsertCall) Fields(s ...googleapi.Field) *FirewallsInsertCall {
55704	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55705	return c
55706}
55707
55708// Context sets the context to be used in this call's Do method. Any
55709// pending HTTP request will be aborted if the provided context is
55710// canceled.
55711func (c *FirewallsInsertCall) Context(ctx context.Context) *FirewallsInsertCall {
55712	c.ctx_ = ctx
55713	return c
55714}
55715
55716// Header returns an http.Header that can be modified by the caller to
55717// add HTTP headers to the request.
55718func (c *FirewallsInsertCall) Header() http.Header {
55719	if c.header_ == nil {
55720		c.header_ = make(http.Header)
55721	}
55722	return c.header_
55723}
55724
55725func (c *FirewallsInsertCall) doRequest(alt string) (*http.Response, error) {
55726	reqHeaders := make(http.Header)
55727	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55728	for k, v := range c.header_ {
55729		reqHeaders[k] = v
55730	}
55731	reqHeaders.Set("User-Agent", c.s.userAgent())
55732	var body io.Reader = nil
55733	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall)
55734	if err != nil {
55735		return nil, err
55736	}
55737	reqHeaders.Set("Content-Type", "application/json")
55738	c.urlParams_.Set("alt", alt)
55739	c.urlParams_.Set("prettyPrint", "false")
55740	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
55741	urls += "?" + c.urlParams_.Encode()
55742	req, err := http.NewRequest("POST", urls, body)
55743	if err != nil {
55744		return nil, err
55745	}
55746	req.Header = reqHeaders
55747	googleapi.Expand(req.URL, map[string]string{
55748		"project": c.project,
55749	})
55750	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55751}
55752
55753// Do executes the "compute.firewalls.insert" call.
55754// Exactly one of *Operation or error will be non-nil. Any non-2xx
55755// status code is an error. Response headers are in either
55756// *Operation.ServerResponse.Header or (if a response was returned at
55757// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55758// to check whether the returned error was because
55759// http.StatusNotModified was returned.
55760func (c *FirewallsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
55761	gensupport.SetOptions(c.urlParams_, opts...)
55762	res, err := c.doRequest("json")
55763	if res != nil && res.StatusCode == http.StatusNotModified {
55764		if res.Body != nil {
55765			res.Body.Close()
55766		}
55767		return nil, &googleapi.Error{
55768			Code:   res.StatusCode,
55769			Header: res.Header,
55770		}
55771	}
55772	if err != nil {
55773		return nil, err
55774	}
55775	defer googleapi.CloseBody(res)
55776	if err := googleapi.CheckResponse(res); err != nil {
55777		return nil, err
55778	}
55779	ret := &Operation{
55780		ServerResponse: googleapi.ServerResponse{
55781			Header:         res.Header,
55782			HTTPStatusCode: res.StatusCode,
55783		},
55784	}
55785	target := &ret
55786	if err := gensupport.DecodeResponse(target, res); err != nil {
55787		return nil, err
55788	}
55789	return ret, nil
55790	// {
55791	//   "description": "Creates a firewall rule in the specified project using the data included in the request.",
55792	//   "httpMethod": "POST",
55793	//   "id": "compute.firewalls.insert",
55794	//   "parameterOrder": [
55795	//     "project"
55796	//   ],
55797	//   "parameters": {
55798	//     "project": {
55799	//       "description": "Project ID for this request.",
55800	//       "location": "path",
55801	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
55802	//       "required": true,
55803	//       "type": "string"
55804	//     },
55805	//     "requestId": {
55806	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
55807	//       "location": "query",
55808	//       "type": "string"
55809	//     }
55810	//   },
55811	//   "path": "{project}/global/firewalls",
55812	//   "request": {
55813	//     "$ref": "Firewall"
55814	//   },
55815	//   "response": {
55816	//     "$ref": "Operation"
55817	//   },
55818	//   "scopes": [
55819	//     "https://www.googleapis.com/auth/cloud-platform",
55820	//     "https://www.googleapis.com/auth/compute"
55821	//   ]
55822	// }
55823
55824}
55825
55826// method id "compute.firewalls.list":
55827
55828type FirewallsListCall struct {
55829	s            *Service
55830	project      string
55831	urlParams_   gensupport.URLParams
55832	ifNoneMatch_ string
55833	ctx_         context.Context
55834	header_      http.Header
55835}
55836
55837// List: Retrieves the list of firewall rules available to the specified
55838// project.
55839// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/list
55840func (r *FirewallsService) List(project string) *FirewallsListCall {
55841	c := &FirewallsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
55842	c.project = project
55843	return c
55844}
55845
55846// Filter sets the optional parameter "filter": A filter expression that
55847// filters resources listed in the response. The expression must specify
55848// the field name, a comparison operator, and the value that you want to
55849// use for filtering. The value must be a string, a number, or a
55850// boolean. The comparison operator must be either =, !=, >, or <.
55851//
55852// For example, if you are filtering Compute Engine instances, you can
55853// exclude instances named example-instance by specifying name !=
55854// example-instance.
55855//
55856// You can also filter nested fields. For example, you could specify
55857// scheduling.automaticRestart = false to include instances only if they
55858// are not scheduled for automatic restarts. You can use filtering on
55859// nested fields to filter based on resource labels.
55860//
55861// To filter on multiple expressions, provide each separate expression
55862// within parentheses. For example, (scheduling.automaticRestart = true)
55863// (cpuPlatform = "Intel Skylake"). By default, each expression is an
55864// AND expression. However, you can include AND and OR expressions
55865// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
55866// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
55867// true).
55868func (c *FirewallsListCall) Filter(filter string) *FirewallsListCall {
55869	c.urlParams_.Set("filter", filter)
55870	return c
55871}
55872
55873// MaxResults sets the optional parameter "maxResults": The maximum
55874// number of results per page that should be returned. If the number of
55875// available results is larger than maxResults, Compute Engine returns a
55876// nextPageToken that can be used to get the next page of results in
55877// subsequent list requests. Acceptable values are 0 to 500, inclusive.
55878// (Default: 500)
55879func (c *FirewallsListCall) MaxResults(maxResults int64) *FirewallsListCall {
55880	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
55881	return c
55882}
55883
55884// OrderBy sets the optional parameter "orderBy": Sorts list results by
55885// a certain order. By default, results are returned in alphanumerical
55886// order based on the resource name.
55887//
55888// You can also sort results in descending order based on the creation
55889// timestamp using orderBy="creationTimestamp desc". This sorts results
55890// based on the creationTimestamp field in reverse chronological order
55891// (newest result first). Use this to sort resources like operations so
55892// that the newest operation is returned first.
55893//
55894// Currently, only sorting by name or creationTimestamp desc is
55895// supported.
55896func (c *FirewallsListCall) OrderBy(orderBy string) *FirewallsListCall {
55897	c.urlParams_.Set("orderBy", orderBy)
55898	return c
55899}
55900
55901// PageToken sets the optional parameter "pageToken": Specifies a page
55902// token to use. Set pageToken to the nextPageToken returned by a
55903// previous list request to get the next page of results.
55904func (c *FirewallsListCall) PageToken(pageToken string) *FirewallsListCall {
55905	c.urlParams_.Set("pageToken", pageToken)
55906	return c
55907}
55908
55909// Fields allows partial responses to be retrieved. See
55910// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
55911// for more information.
55912func (c *FirewallsListCall) Fields(s ...googleapi.Field) *FirewallsListCall {
55913	c.urlParams_.Set("fields", googleapi.CombineFields(s))
55914	return c
55915}
55916
55917// IfNoneMatch sets the optional parameter which makes the operation
55918// fail if the object's ETag matches the given value. This is useful for
55919// getting updates only after the object has changed since the last
55920// request. Use googleapi.IsNotModified to check whether the response
55921// error from Do is the result of In-None-Match.
55922func (c *FirewallsListCall) IfNoneMatch(entityTag string) *FirewallsListCall {
55923	c.ifNoneMatch_ = entityTag
55924	return c
55925}
55926
55927// Context sets the context to be used in this call's Do method. Any
55928// pending HTTP request will be aborted if the provided context is
55929// canceled.
55930func (c *FirewallsListCall) Context(ctx context.Context) *FirewallsListCall {
55931	c.ctx_ = ctx
55932	return c
55933}
55934
55935// Header returns an http.Header that can be modified by the caller to
55936// add HTTP headers to the request.
55937func (c *FirewallsListCall) Header() http.Header {
55938	if c.header_ == nil {
55939		c.header_ = make(http.Header)
55940	}
55941	return c.header_
55942}
55943
55944func (c *FirewallsListCall) doRequest(alt string) (*http.Response, error) {
55945	reqHeaders := make(http.Header)
55946	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
55947	for k, v := range c.header_ {
55948		reqHeaders[k] = v
55949	}
55950	reqHeaders.Set("User-Agent", c.s.userAgent())
55951	if c.ifNoneMatch_ != "" {
55952		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
55953	}
55954	var body io.Reader = nil
55955	c.urlParams_.Set("alt", alt)
55956	c.urlParams_.Set("prettyPrint", "false")
55957	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls")
55958	urls += "?" + c.urlParams_.Encode()
55959	req, err := http.NewRequest("GET", urls, body)
55960	if err != nil {
55961		return nil, err
55962	}
55963	req.Header = reqHeaders
55964	googleapi.Expand(req.URL, map[string]string{
55965		"project": c.project,
55966	})
55967	return gensupport.SendRequest(c.ctx_, c.s.client, req)
55968}
55969
55970// Do executes the "compute.firewalls.list" call.
55971// Exactly one of *FirewallList or error will be non-nil. Any non-2xx
55972// status code is an error. Response headers are in either
55973// *FirewallList.ServerResponse.Header or (if a response was returned at
55974// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
55975// to check whether the returned error was because
55976// http.StatusNotModified was returned.
55977func (c *FirewallsListCall) Do(opts ...googleapi.CallOption) (*FirewallList, error) {
55978	gensupport.SetOptions(c.urlParams_, opts...)
55979	res, err := c.doRequest("json")
55980	if res != nil && res.StatusCode == http.StatusNotModified {
55981		if res.Body != nil {
55982			res.Body.Close()
55983		}
55984		return nil, &googleapi.Error{
55985			Code:   res.StatusCode,
55986			Header: res.Header,
55987		}
55988	}
55989	if err != nil {
55990		return nil, err
55991	}
55992	defer googleapi.CloseBody(res)
55993	if err := googleapi.CheckResponse(res); err != nil {
55994		return nil, err
55995	}
55996	ret := &FirewallList{
55997		ServerResponse: googleapi.ServerResponse{
55998			Header:         res.Header,
55999			HTTPStatusCode: res.StatusCode,
56000		},
56001	}
56002	target := &ret
56003	if err := gensupport.DecodeResponse(target, res); err != nil {
56004		return nil, err
56005	}
56006	return ret, nil
56007	// {
56008	//   "description": "Retrieves the list of firewall rules available to the specified project.",
56009	//   "httpMethod": "GET",
56010	//   "id": "compute.firewalls.list",
56011	//   "parameterOrder": [
56012	//     "project"
56013	//   ],
56014	//   "parameters": {
56015	//     "filter": {
56016	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
56017	//       "location": "query",
56018	//       "type": "string"
56019	//     },
56020	//     "maxResults": {
56021	//       "default": "500",
56022	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
56023	//       "format": "uint32",
56024	//       "location": "query",
56025	//       "minimum": "0",
56026	//       "type": "integer"
56027	//     },
56028	//     "orderBy": {
56029	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
56030	//       "location": "query",
56031	//       "type": "string"
56032	//     },
56033	//     "pageToken": {
56034	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
56035	//       "location": "query",
56036	//       "type": "string"
56037	//     },
56038	//     "project": {
56039	//       "description": "Project ID for this request.",
56040	//       "location": "path",
56041	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56042	//       "required": true,
56043	//       "type": "string"
56044	//     }
56045	//   },
56046	//   "path": "{project}/global/firewalls",
56047	//   "response": {
56048	//     "$ref": "FirewallList"
56049	//   },
56050	//   "scopes": [
56051	//     "https://www.googleapis.com/auth/cloud-platform",
56052	//     "https://www.googleapis.com/auth/compute",
56053	//     "https://www.googleapis.com/auth/compute.readonly"
56054	//   ]
56055	// }
56056
56057}
56058
56059// Pages invokes f for each page of results.
56060// A non-nil error returned from f will halt the iteration.
56061// The provided context supersedes any context provided to the Context method.
56062func (c *FirewallsListCall) Pages(ctx context.Context, f func(*FirewallList) error) error {
56063	c.ctx_ = ctx
56064	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56065	for {
56066		x, err := c.Do()
56067		if err != nil {
56068			return err
56069		}
56070		if err := f(x); err != nil {
56071			return err
56072		}
56073		if x.NextPageToken == "" {
56074			return nil
56075		}
56076		c.PageToken(x.NextPageToken)
56077	}
56078}
56079
56080// method id "compute.firewalls.patch":
56081
56082type FirewallsPatchCall struct {
56083	s          *Service
56084	project    string
56085	firewall   string
56086	firewall2  *Firewall
56087	urlParams_ gensupport.URLParams
56088	ctx_       context.Context
56089	header_    http.Header
56090}
56091
56092// Patch: Updates the specified firewall rule with the data included in
56093// the request. This method supports PATCH semantics and uses the JSON
56094// merge patch format and processing rules.
56095// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/patch
56096func (r *FirewallsService) Patch(project string, firewall string, firewall2 *Firewall) *FirewallsPatchCall {
56097	c := &FirewallsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56098	c.project = project
56099	c.firewall = firewall
56100	c.firewall2 = firewall2
56101	return c
56102}
56103
56104// RequestId sets the optional parameter "requestId": An optional
56105// request ID to identify requests. Specify a unique request ID so that
56106// if you must retry your request, the server will know to ignore the
56107// request if it has already been completed.
56108//
56109// For example, consider a situation where you make an initial request
56110// and the request times out. If you make the request again with the
56111// same request ID, the server can check if original operation with the
56112// same request ID was received, and if so, will ignore the second
56113// request. This prevents clients from accidentally creating duplicate
56114// commitments.
56115//
56116// The request ID must be a valid UUID with the exception that zero UUID
56117// is not supported (00000000-0000-0000-0000-000000000000).
56118func (c *FirewallsPatchCall) RequestId(requestId string) *FirewallsPatchCall {
56119	c.urlParams_.Set("requestId", requestId)
56120	return c
56121}
56122
56123// Fields allows partial responses to be retrieved. See
56124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56125// for more information.
56126func (c *FirewallsPatchCall) Fields(s ...googleapi.Field) *FirewallsPatchCall {
56127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56128	return c
56129}
56130
56131// Context sets the context to be used in this call's Do method. Any
56132// pending HTTP request will be aborted if the provided context is
56133// canceled.
56134func (c *FirewallsPatchCall) Context(ctx context.Context) *FirewallsPatchCall {
56135	c.ctx_ = ctx
56136	return c
56137}
56138
56139// Header returns an http.Header that can be modified by the caller to
56140// add HTTP headers to the request.
56141func (c *FirewallsPatchCall) Header() http.Header {
56142	if c.header_ == nil {
56143		c.header_ = make(http.Header)
56144	}
56145	return c.header_
56146}
56147
56148func (c *FirewallsPatchCall) doRequest(alt string) (*http.Response, error) {
56149	reqHeaders := make(http.Header)
56150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56151	for k, v := range c.header_ {
56152		reqHeaders[k] = v
56153	}
56154	reqHeaders.Set("User-Agent", c.s.userAgent())
56155	var body io.Reader = nil
56156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
56157	if err != nil {
56158		return nil, err
56159	}
56160	reqHeaders.Set("Content-Type", "application/json")
56161	c.urlParams_.Set("alt", alt)
56162	c.urlParams_.Set("prettyPrint", "false")
56163	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
56164	urls += "?" + c.urlParams_.Encode()
56165	req, err := http.NewRequest("PATCH", urls, body)
56166	if err != nil {
56167		return nil, err
56168	}
56169	req.Header = reqHeaders
56170	googleapi.Expand(req.URL, map[string]string{
56171		"project":  c.project,
56172		"firewall": c.firewall,
56173	})
56174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56175}
56176
56177// Do executes the "compute.firewalls.patch" call.
56178// Exactly one of *Operation or error will be non-nil. Any non-2xx
56179// status code is an error. Response headers are in either
56180// *Operation.ServerResponse.Header or (if a response was returned at
56181// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56182// to check whether the returned error was because
56183// http.StatusNotModified was returned.
56184func (c *FirewallsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56185	gensupport.SetOptions(c.urlParams_, opts...)
56186	res, err := c.doRequest("json")
56187	if res != nil && res.StatusCode == http.StatusNotModified {
56188		if res.Body != nil {
56189			res.Body.Close()
56190		}
56191		return nil, &googleapi.Error{
56192			Code:   res.StatusCode,
56193			Header: res.Header,
56194		}
56195	}
56196	if err != nil {
56197		return nil, err
56198	}
56199	defer googleapi.CloseBody(res)
56200	if err := googleapi.CheckResponse(res); err != nil {
56201		return nil, err
56202	}
56203	ret := &Operation{
56204		ServerResponse: googleapi.ServerResponse{
56205			Header:         res.Header,
56206			HTTPStatusCode: res.StatusCode,
56207		},
56208	}
56209	target := &ret
56210	if err := gensupport.DecodeResponse(target, res); err != nil {
56211		return nil, err
56212	}
56213	return ret, nil
56214	// {
56215	//   "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.",
56216	//   "httpMethod": "PATCH",
56217	//   "id": "compute.firewalls.patch",
56218	//   "parameterOrder": [
56219	//     "project",
56220	//     "firewall"
56221	//   ],
56222	//   "parameters": {
56223	//     "firewall": {
56224	//       "description": "Name of the firewall rule to patch.",
56225	//       "location": "path",
56226	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56227	//       "required": true,
56228	//       "type": "string"
56229	//     },
56230	//     "project": {
56231	//       "description": "Project ID for this request.",
56232	//       "location": "path",
56233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56234	//       "required": true,
56235	//       "type": "string"
56236	//     },
56237	//     "requestId": {
56238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56239	//       "location": "query",
56240	//       "type": "string"
56241	//     }
56242	//   },
56243	//   "path": "{project}/global/firewalls/{firewall}",
56244	//   "request": {
56245	//     "$ref": "Firewall"
56246	//   },
56247	//   "response": {
56248	//     "$ref": "Operation"
56249	//   },
56250	//   "scopes": [
56251	//     "https://www.googleapis.com/auth/cloud-platform",
56252	//     "https://www.googleapis.com/auth/compute"
56253	//   ]
56254	// }
56255
56256}
56257
56258// method id "compute.firewalls.testIamPermissions":
56259
56260type FirewallsTestIamPermissionsCall struct {
56261	s                      *Service
56262	project                string
56263	resource               string
56264	testpermissionsrequest *TestPermissionsRequest
56265	urlParams_             gensupport.URLParams
56266	ctx_                   context.Context
56267	header_                http.Header
56268}
56269
56270// TestIamPermissions: Returns permissions that a caller has on the
56271// specified resource.
56272func (r *FirewallsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *FirewallsTestIamPermissionsCall {
56273	c := &FirewallsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56274	c.project = project
56275	c.resource = resource
56276	c.testpermissionsrequest = testpermissionsrequest
56277	return c
56278}
56279
56280// Fields allows partial responses to be retrieved. See
56281// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56282// for more information.
56283func (c *FirewallsTestIamPermissionsCall) Fields(s ...googleapi.Field) *FirewallsTestIamPermissionsCall {
56284	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56285	return c
56286}
56287
56288// Context sets the context to be used in this call's Do method. Any
56289// pending HTTP request will be aborted if the provided context is
56290// canceled.
56291func (c *FirewallsTestIamPermissionsCall) Context(ctx context.Context) *FirewallsTestIamPermissionsCall {
56292	c.ctx_ = ctx
56293	return c
56294}
56295
56296// Header returns an http.Header that can be modified by the caller to
56297// add HTTP headers to the request.
56298func (c *FirewallsTestIamPermissionsCall) Header() http.Header {
56299	if c.header_ == nil {
56300		c.header_ = make(http.Header)
56301	}
56302	return c.header_
56303}
56304
56305func (c *FirewallsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
56306	reqHeaders := make(http.Header)
56307	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56308	for k, v := range c.header_ {
56309		reqHeaders[k] = v
56310	}
56311	reqHeaders.Set("User-Agent", c.s.userAgent())
56312	var body io.Reader = nil
56313	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
56314	if err != nil {
56315		return nil, err
56316	}
56317	reqHeaders.Set("Content-Type", "application/json")
56318	c.urlParams_.Set("alt", alt)
56319	c.urlParams_.Set("prettyPrint", "false")
56320	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{resource}/testIamPermissions")
56321	urls += "?" + c.urlParams_.Encode()
56322	req, err := http.NewRequest("POST", urls, body)
56323	if err != nil {
56324		return nil, err
56325	}
56326	req.Header = reqHeaders
56327	googleapi.Expand(req.URL, map[string]string{
56328		"project":  c.project,
56329		"resource": c.resource,
56330	})
56331	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56332}
56333
56334// Do executes the "compute.firewalls.testIamPermissions" call.
56335// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
56336// non-2xx status code is an error. Response headers are in either
56337// *TestPermissionsResponse.ServerResponse.Header or (if a response was
56338// returned at all) in error.(*googleapi.Error).Header. Use
56339// googleapi.IsNotModified to check whether the returned error was
56340// because http.StatusNotModified was returned.
56341func (c *FirewallsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
56342	gensupport.SetOptions(c.urlParams_, opts...)
56343	res, err := c.doRequest("json")
56344	if res != nil && res.StatusCode == http.StatusNotModified {
56345		if res.Body != nil {
56346			res.Body.Close()
56347		}
56348		return nil, &googleapi.Error{
56349			Code:   res.StatusCode,
56350			Header: res.Header,
56351		}
56352	}
56353	if err != nil {
56354		return nil, err
56355	}
56356	defer googleapi.CloseBody(res)
56357	if err := googleapi.CheckResponse(res); err != nil {
56358		return nil, err
56359	}
56360	ret := &TestPermissionsResponse{
56361		ServerResponse: googleapi.ServerResponse{
56362			Header:         res.Header,
56363			HTTPStatusCode: res.StatusCode,
56364		},
56365	}
56366	target := &ret
56367	if err := gensupport.DecodeResponse(target, res); err != nil {
56368		return nil, err
56369	}
56370	return ret, nil
56371	// {
56372	//   "description": "Returns permissions that a caller has on the specified resource.",
56373	//   "httpMethod": "POST",
56374	//   "id": "compute.firewalls.testIamPermissions",
56375	//   "parameterOrder": [
56376	//     "project",
56377	//     "resource"
56378	//   ],
56379	//   "parameters": {
56380	//     "project": {
56381	//       "description": "Project ID for this request.",
56382	//       "location": "path",
56383	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56384	//       "required": true,
56385	//       "type": "string"
56386	//     },
56387	//     "resource": {
56388	//       "description": "Name or id of the resource for this request.",
56389	//       "location": "path",
56390	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56391	//       "required": true,
56392	//       "type": "string"
56393	//     }
56394	//   },
56395	//   "path": "{project}/global/firewalls/{resource}/testIamPermissions",
56396	//   "request": {
56397	//     "$ref": "TestPermissionsRequest"
56398	//   },
56399	//   "response": {
56400	//     "$ref": "TestPermissionsResponse"
56401	//   },
56402	//   "scopes": [
56403	//     "https://www.googleapis.com/auth/cloud-platform",
56404	//     "https://www.googleapis.com/auth/compute",
56405	//     "https://www.googleapis.com/auth/compute.readonly"
56406	//   ]
56407	// }
56408
56409}
56410
56411// method id "compute.firewalls.update":
56412
56413type FirewallsUpdateCall struct {
56414	s          *Service
56415	project    string
56416	firewall   string
56417	firewall2  *Firewall
56418	urlParams_ gensupport.URLParams
56419	ctx_       context.Context
56420	header_    http.Header
56421}
56422
56423// Update: Updates the specified firewall rule with the data included in
56424// the request. Note that all fields will be updated if using PUT, even
56425// fields that are not specified. To update individual fields, please
56426// use PATCH instead.
56427// For details, see https://cloud.google.com/compute/docs/reference/latest/firewalls/update
56428func (r *FirewallsService) Update(project string, firewall string, firewall2 *Firewall) *FirewallsUpdateCall {
56429	c := &FirewallsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56430	c.project = project
56431	c.firewall = firewall
56432	c.firewall2 = firewall2
56433	return c
56434}
56435
56436// RequestId sets the optional parameter "requestId": An optional
56437// request ID to identify requests. Specify a unique request ID so that
56438// if you must retry your request, the server will know to ignore the
56439// request if it has already been completed.
56440//
56441// For example, consider a situation where you make an initial request
56442// and the request times out. If you make the request again with the
56443// same request ID, the server can check if original operation with the
56444// same request ID was received, and if so, will ignore the second
56445// request. This prevents clients from accidentally creating duplicate
56446// commitments.
56447//
56448// The request ID must be a valid UUID with the exception that zero UUID
56449// is not supported (00000000-0000-0000-0000-000000000000).
56450func (c *FirewallsUpdateCall) RequestId(requestId string) *FirewallsUpdateCall {
56451	c.urlParams_.Set("requestId", requestId)
56452	return c
56453}
56454
56455// Fields allows partial responses to be retrieved. See
56456// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56457// for more information.
56458func (c *FirewallsUpdateCall) Fields(s ...googleapi.Field) *FirewallsUpdateCall {
56459	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56460	return c
56461}
56462
56463// Context sets the context to be used in this call's Do method. Any
56464// pending HTTP request will be aborted if the provided context is
56465// canceled.
56466func (c *FirewallsUpdateCall) Context(ctx context.Context) *FirewallsUpdateCall {
56467	c.ctx_ = ctx
56468	return c
56469}
56470
56471// Header returns an http.Header that can be modified by the caller to
56472// add HTTP headers to the request.
56473func (c *FirewallsUpdateCall) Header() http.Header {
56474	if c.header_ == nil {
56475		c.header_ = make(http.Header)
56476	}
56477	return c.header_
56478}
56479
56480func (c *FirewallsUpdateCall) doRequest(alt string) (*http.Response, error) {
56481	reqHeaders := make(http.Header)
56482	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56483	for k, v := range c.header_ {
56484		reqHeaders[k] = v
56485	}
56486	reqHeaders.Set("User-Agent", c.s.userAgent())
56487	var body io.Reader = nil
56488	body, err := googleapi.WithoutDataWrapper.JSONReader(c.firewall2)
56489	if err != nil {
56490		return nil, err
56491	}
56492	reqHeaders.Set("Content-Type", "application/json")
56493	c.urlParams_.Set("alt", alt)
56494	c.urlParams_.Set("prettyPrint", "false")
56495	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/firewalls/{firewall}")
56496	urls += "?" + c.urlParams_.Encode()
56497	req, err := http.NewRequest("PUT", urls, body)
56498	if err != nil {
56499		return nil, err
56500	}
56501	req.Header = reqHeaders
56502	googleapi.Expand(req.URL, map[string]string{
56503		"project":  c.project,
56504		"firewall": c.firewall,
56505	})
56506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56507}
56508
56509// Do executes the "compute.firewalls.update" call.
56510// Exactly one of *Operation or error will be non-nil. Any non-2xx
56511// status code is an error. Response headers are in either
56512// *Operation.ServerResponse.Header or (if a response was returned at
56513// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56514// to check whether the returned error was because
56515// http.StatusNotModified was returned.
56516func (c *FirewallsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56517	gensupport.SetOptions(c.urlParams_, opts...)
56518	res, err := c.doRequest("json")
56519	if res != nil && res.StatusCode == http.StatusNotModified {
56520		if res.Body != nil {
56521			res.Body.Close()
56522		}
56523		return nil, &googleapi.Error{
56524			Code:   res.StatusCode,
56525			Header: res.Header,
56526		}
56527	}
56528	if err != nil {
56529		return nil, err
56530	}
56531	defer googleapi.CloseBody(res)
56532	if err := googleapi.CheckResponse(res); err != nil {
56533		return nil, err
56534	}
56535	ret := &Operation{
56536		ServerResponse: googleapi.ServerResponse{
56537			Header:         res.Header,
56538			HTTPStatusCode: res.StatusCode,
56539		},
56540	}
56541	target := &ret
56542	if err := gensupport.DecodeResponse(target, res); err != nil {
56543		return nil, err
56544	}
56545	return ret, nil
56546	// {
56547	//   "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.",
56548	//   "httpMethod": "PUT",
56549	//   "id": "compute.firewalls.update",
56550	//   "parameterOrder": [
56551	//     "project",
56552	//     "firewall"
56553	//   ],
56554	//   "parameters": {
56555	//     "firewall": {
56556	//       "description": "Name of the firewall rule to update.",
56557	//       "location": "path",
56558	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
56559	//       "required": true,
56560	//       "type": "string"
56561	//     },
56562	//     "project": {
56563	//       "description": "Project ID for this request.",
56564	//       "location": "path",
56565	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56566	//       "required": true,
56567	//       "type": "string"
56568	//     },
56569	//     "requestId": {
56570	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
56571	//       "location": "query",
56572	//       "type": "string"
56573	//     }
56574	//   },
56575	//   "path": "{project}/global/firewalls/{firewall}",
56576	//   "request": {
56577	//     "$ref": "Firewall"
56578	//   },
56579	//   "response": {
56580	//     "$ref": "Operation"
56581	//   },
56582	//   "scopes": [
56583	//     "https://www.googleapis.com/auth/cloud-platform",
56584	//     "https://www.googleapis.com/auth/compute"
56585	//   ]
56586	// }
56587
56588}
56589
56590// method id "compute.forwardingRules.aggregatedList":
56591
56592type ForwardingRulesAggregatedListCall struct {
56593	s            *Service
56594	project      string
56595	urlParams_   gensupport.URLParams
56596	ifNoneMatch_ string
56597	ctx_         context.Context
56598	header_      http.Header
56599}
56600
56601// AggregatedList: Retrieves an aggregated list of forwarding rules.
56602// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/aggregatedList
56603func (r *ForwardingRulesService) AggregatedList(project string) *ForwardingRulesAggregatedListCall {
56604	c := &ForwardingRulesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56605	c.project = project
56606	return c
56607}
56608
56609// Filter sets the optional parameter "filter": A filter expression that
56610// filters resources listed in the response. The expression must specify
56611// the field name, a comparison operator, and the value that you want to
56612// use for filtering. The value must be a string, a number, or a
56613// boolean. The comparison operator must be either =, !=, >, or <.
56614//
56615// For example, if you are filtering Compute Engine instances, you can
56616// exclude instances named example-instance by specifying name !=
56617// example-instance.
56618//
56619// You can also filter nested fields. For example, you could specify
56620// scheduling.automaticRestart = false to include instances only if they
56621// are not scheduled for automatic restarts. You can use filtering on
56622// nested fields to filter based on resource labels.
56623//
56624// To filter on multiple expressions, provide each separate expression
56625// within parentheses. For example, (scheduling.automaticRestart = true)
56626// (cpuPlatform = "Intel Skylake"). By default, each expression is an
56627// AND expression. However, you can include AND and OR expressions
56628// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
56629// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
56630// true).
56631func (c *ForwardingRulesAggregatedListCall) Filter(filter string) *ForwardingRulesAggregatedListCall {
56632	c.urlParams_.Set("filter", filter)
56633	return c
56634}
56635
56636// IncludeAllScopes sets the optional parameter "includeAllScopes":
56637// Indicates whether every visible scope for each scope type (zone,
56638// region, global) should be included in the response. For new resource
56639// types added after this field, the flag has no effect as new resource
56640// types will always include every visible scope for each scope type in
56641// response. For resource types which predate this field, if this flag
56642// is omitted or false, only scopes of the scope types where the
56643// resource type is expected to be found will be included.
56644func (c *ForwardingRulesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ForwardingRulesAggregatedListCall {
56645	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
56646	return c
56647}
56648
56649// MaxResults sets the optional parameter "maxResults": The maximum
56650// number of results per page that should be returned. If the number of
56651// available results is larger than maxResults, Compute Engine returns a
56652// nextPageToken that can be used to get the next page of results in
56653// subsequent list requests. Acceptable values are 0 to 500, inclusive.
56654// (Default: 500)
56655func (c *ForwardingRulesAggregatedListCall) MaxResults(maxResults int64) *ForwardingRulesAggregatedListCall {
56656	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
56657	return c
56658}
56659
56660// OrderBy sets the optional parameter "orderBy": Sorts list results by
56661// a certain order. By default, results are returned in alphanumerical
56662// order based on the resource name.
56663//
56664// You can also sort results in descending order based on the creation
56665// timestamp using orderBy="creationTimestamp desc". This sorts results
56666// based on the creationTimestamp field in reverse chronological order
56667// (newest result first). Use this to sort resources like operations so
56668// that the newest operation is returned first.
56669//
56670// Currently, only sorting by name or creationTimestamp desc is
56671// supported.
56672func (c *ForwardingRulesAggregatedListCall) OrderBy(orderBy string) *ForwardingRulesAggregatedListCall {
56673	c.urlParams_.Set("orderBy", orderBy)
56674	return c
56675}
56676
56677// PageToken sets the optional parameter "pageToken": Specifies a page
56678// token to use. Set pageToken to the nextPageToken returned by a
56679// previous list request to get the next page of results.
56680func (c *ForwardingRulesAggregatedListCall) PageToken(pageToken string) *ForwardingRulesAggregatedListCall {
56681	c.urlParams_.Set("pageToken", pageToken)
56682	return c
56683}
56684
56685// Fields allows partial responses to be retrieved. See
56686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56687// for more information.
56688func (c *ForwardingRulesAggregatedListCall) Fields(s ...googleapi.Field) *ForwardingRulesAggregatedListCall {
56689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56690	return c
56691}
56692
56693// IfNoneMatch sets the optional parameter which makes the operation
56694// fail if the object's ETag matches the given value. This is useful for
56695// getting updates only after the object has changed since the last
56696// request. Use googleapi.IsNotModified to check whether the response
56697// error from Do is the result of In-None-Match.
56698func (c *ForwardingRulesAggregatedListCall) IfNoneMatch(entityTag string) *ForwardingRulesAggregatedListCall {
56699	c.ifNoneMatch_ = entityTag
56700	return c
56701}
56702
56703// Context sets the context to be used in this call's Do method. Any
56704// pending HTTP request will be aborted if the provided context is
56705// canceled.
56706func (c *ForwardingRulesAggregatedListCall) Context(ctx context.Context) *ForwardingRulesAggregatedListCall {
56707	c.ctx_ = ctx
56708	return c
56709}
56710
56711// Header returns an http.Header that can be modified by the caller to
56712// add HTTP headers to the request.
56713func (c *ForwardingRulesAggregatedListCall) Header() http.Header {
56714	if c.header_ == nil {
56715		c.header_ = make(http.Header)
56716	}
56717	return c.header_
56718}
56719
56720func (c *ForwardingRulesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
56721	reqHeaders := make(http.Header)
56722	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56723	for k, v := range c.header_ {
56724		reqHeaders[k] = v
56725	}
56726	reqHeaders.Set("User-Agent", c.s.userAgent())
56727	if c.ifNoneMatch_ != "" {
56728		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
56729	}
56730	var body io.Reader = nil
56731	c.urlParams_.Set("alt", alt)
56732	c.urlParams_.Set("prettyPrint", "false")
56733	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/forwardingRules")
56734	urls += "?" + c.urlParams_.Encode()
56735	req, err := http.NewRequest("GET", urls, body)
56736	if err != nil {
56737		return nil, err
56738	}
56739	req.Header = reqHeaders
56740	googleapi.Expand(req.URL, map[string]string{
56741		"project": c.project,
56742	})
56743	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56744}
56745
56746// Do executes the "compute.forwardingRules.aggregatedList" call.
56747// Exactly one of *ForwardingRuleAggregatedList or error will be
56748// non-nil. Any non-2xx status code is an error. Response headers are in
56749// either *ForwardingRuleAggregatedList.ServerResponse.Header or (if a
56750// response was returned at all) in error.(*googleapi.Error).Header. Use
56751// googleapi.IsNotModified to check whether the returned error was
56752// because http.StatusNotModified was returned.
56753func (c *ForwardingRulesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleAggregatedList, error) {
56754	gensupport.SetOptions(c.urlParams_, opts...)
56755	res, err := c.doRequest("json")
56756	if res != nil && res.StatusCode == http.StatusNotModified {
56757		if res.Body != nil {
56758			res.Body.Close()
56759		}
56760		return nil, &googleapi.Error{
56761			Code:   res.StatusCode,
56762			Header: res.Header,
56763		}
56764	}
56765	if err != nil {
56766		return nil, err
56767	}
56768	defer googleapi.CloseBody(res)
56769	if err := googleapi.CheckResponse(res); err != nil {
56770		return nil, err
56771	}
56772	ret := &ForwardingRuleAggregatedList{
56773		ServerResponse: googleapi.ServerResponse{
56774			Header:         res.Header,
56775			HTTPStatusCode: res.StatusCode,
56776		},
56777	}
56778	target := &ret
56779	if err := gensupport.DecodeResponse(target, res); err != nil {
56780		return nil, err
56781	}
56782	return ret, nil
56783	// {
56784	//   "description": "Retrieves an aggregated list of forwarding rules.",
56785	//   "httpMethod": "GET",
56786	//   "id": "compute.forwardingRules.aggregatedList",
56787	//   "parameterOrder": [
56788	//     "project"
56789	//   ],
56790	//   "parameters": {
56791	//     "filter": {
56792	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
56793	//       "location": "query",
56794	//       "type": "string"
56795	//     },
56796	//     "includeAllScopes": {
56797	//       "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.",
56798	//       "location": "query",
56799	//       "type": "boolean"
56800	//     },
56801	//     "maxResults": {
56802	//       "default": "500",
56803	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
56804	//       "format": "uint32",
56805	//       "location": "query",
56806	//       "minimum": "0",
56807	//       "type": "integer"
56808	//     },
56809	//     "orderBy": {
56810	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
56811	//       "location": "query",
56812	//       "type": "string"
56813	//     },
56814	//     "pageToken": {
56815	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
56816	//       "location": "query",
56817	//       "type": "string"
56818	//     },
56819	//     "project": {
56820	//       "description": "Project ID for this request.",
56821	//       "location": "path",
56822	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
56823	//       "required": true,
56824	//       "type": "string"
56825	//     }
56826	//   },
56827	//   "path": "{project}/aggregated/forwardingRules",
56828	//   "response": {
56829	//     "$ref": "ForwardingRuleAggregatedList"
56830	//   },
56831	//   "scopes": [
56832	//     "https://www.googleapis.com/auth/cloud-platform",
56833	//     "https://www.googleapis.com/auth/compute",
56834	//     "https://www.googleapis.com/auth/compute.readonly"
56835	//   ]
56836	// }
56837
56838}
56839
56840// Pages invokes f for each page of results.
56841// A non-nil error returned from f will halt the iteration.
56842// The provided context supersedes any context provided to the Context method.
56843func (c *ForwardingRulesAggregatedListCall) Pages(ctx context.Context, f func(*ForwardingRuleAggregatedList) error) error {
56844	c.ctx_ = ctx
56845	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
56846	for {
56847		x, err := c.Do()
56848		if err != nil {
56849			return err
56850		}
56851		if err := f(x); err != nil {
56852			return err
56853		}
56854		if x.NextPageToken == "" {
56855			return nil
56856		}
56857		c.PageToken(x.NextPageToken)
56858	}
56859}
56860
56861// method id "compute.forwardingRules.delete":
56862
56863type ForwardingRulesDeleteCall struct {
56864	s              *Service
56865	project        string
56866	region         string
56867	forwardingRule string
56868	urlParams_     gensupport.URLParams
56869	ctx_           context.Context
56870	header_        http.Header
56871}
56872
56873// Delete: Deletes the specified ForwardingRule resource.
56874// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/delete
56875func (r *ForwardingRulesService) Delete(project string, region string, forwardingRule string) *ForwardingRulesDeleteCall {
56876	c := &ForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
56877	c.project = project
56878	c.region = region
56879	c.forwardingRule = forwardingRule
56880	return c
56881}
56882
56883// RequestId sets the optional parameter "requestId": An optional
56884// request ID to identify requests. Specify a unique request ID so that
56885// if you must retry your request, the server will know to ignore the
56886// request if it has already been completed.
56887//
56888// For example, consider a situation where you make an initial request
56889// and the request times out. If you make the request again with the
56890// same request ID, the server can check if original operation with the
56891// same request ID was received, and if so, will ignore the second
56892// request. This prevents clients from accidentally creating duplicate
56893// commitments.
56894//
56895// The request ID must be a valid UUID with the exception that zero UUID
56896// is not supported (00000000-0000-0000-0000-000000000000).
56897func (c *ForwardingRulesDeleteCall) RequestId(requestId string) *ForwardingRulesDeleteCall {
56898	c.urlParams_.Set("requestId", requestId)
56899	return c
56900}
56901
56902// Fields allows partial responses to be retrieved. See
56903// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
56904// for more information.
56905func (c *ForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *ForwardingRulesDeleteCall {
56906	c.urlParams_.Set("fields", googleapi.CombineFields(s))
56907	return c
56908}
56909
56910// Context sets the context to be used in this call's Do method. Any
56911// pending HTTP request will be aborted if the provided context is
56912// canceled.
56913func (c *ForwardingRulesDeleteCall) Context(ctx context.Context) *ForwardingRulesDeleteCall {
56914	c.ctx_ = ctx
56915	return c
56916}
56917
56918// Header returns an http.Header that can be modified by the caller to
56919// add HTTP headers to the request.
56920func (c *ForwardingRulesDeleteCall) Header() http.Header {
56921	if c.header_ == nil {
56922		c.header_ = make(http.Header)
56923	}
56924	return c.header_
56925}
56926
56927func (c *ForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
56928	reqHeaders := make(http.Header)
56929	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
56930	for k, v := range c.header_ {
56931		reqHeaders[k] = v
56932	}
56933	reqHeaders.Set("User-Agent", c.s.userAgent())
56934	var body io.Reader = nil
56935	c.urlParams_.Set("alt", alt)
56936	c.urlParams_.Set("prettyPrint", "false")
56937	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
56938	urls += "?" + c.urlParams_.Encode()
56939	req, err := http.NewRequest("DELETE", urls, body)
56940	if err != nil {
56941		return nil, err
56942	}
56943	req.Header = reqHeaders
56944	googleapi.Expand(req.URL, map[string]string{
56945		"project":        c.project,
56946		"region":         c.region,
56947		"forwardingRule": c.forwardingRule,
56948	})
56949	return gensupport.SendRequest(c.ctx_, c.s.client, req)
56950}
56951
56952// Do executes the "compute.forwardingRules.delete" call.
56953// Exactly one of *Operation or error will be non-nil. Any non-2xx
56954// status code is an error. Response headers are in either
56955// *Operation.ServerResponse.Header or (if a response was returned at
56956// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
56957// to check whether the returned error was because
56958// http.StatusNotModified was returned.
56959func (c *ForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
56960	gensupport.SetOptions(c.urlParams_, opts...)
56961	res, err := c.doRequest("json")
56962	if res != nil && res.StatusCode == http.StatusNotModified {
56963		if res.Body != nil {
56964			res.Body.Close()
56965		}
56966		return nil, &googleapi.Error{
56967			Code:   res.StatusCode,
56968			Header: res.Header,
56969		}
56970	}
56971	if err != nil {
56972		return nil, err
56973	}
56974	defer googleapi.CloseBody(res)
56975	if err := googleapi.CheckResponse(res); err != nil {
56976		return nil, err
56977	}
56978	ret := &Operation{
56979		ServerResponse: googleapi.ServerResponse{
56980			Header:         res.Header,
56981			HTTPStatusCode: res.StatusCode,
56982		},
56983	}
56984	target := &ret
56985	if err := gensupport.DecodeResponse(target, res); err != nil {
56986		return nil, err
56987	}
56988	return ret, nil
56989	// {
56990	//   "description": "Deletes the specified ForwardingRule resource.",
56991	//   "httpMethod": "DELETE",
56992	//   "id": "compute.forwardingRules.delete",
56993	//   "parameterOrder": [
56994	//     "project",
56995	//     "region",
56996	//     "forwardingRule"
56997	//   ],
56998	//   "parameters": {
56999	//     "forwardingRule": {
57000	//       "description": "Name of the ForwardingRule resource to delete.",
57001	//       "location": "path",
57002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57003	//       "required": true,
57004	//       "type": "string"
57005	//     },
57006	//     "project": {
57007	//       "description": "Project ID for this request.",
57008	//       "location": "path",
57009	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57010	//       "required": true,
57011	//       "type": "string"
57012	//     },
57013	//     "region": {
57014	//       "description": "Name of the region scoping this request.",
57015	//       "location": "path",
57016	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57017	//       "required": true,
57018	//       "type": "string"
57019	//     },
57020	//     "requestId": {
57021	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57022	//       "location": "query",
57023	//       "type": "string"
57024	//     }
57025	//   },
57026	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
57027	//   "response": {
57028	//     "$ref": "Operation"
57029	//   },
57030	//   "scopes": [
57031	//     "https://www.googleapis.com/auth/cloud-platform",
57032	//     "https://www.googleapis.com/auth/compute"
57033	//   ]
57034	// }
57035
57036}
57037
57038// method id "compute.forwardingRules.get":
57039
57040type ForwardingRulesGetCall struct {
57041	s              *Service
57042	project        string
57043	region         string
57044	forwardingRule string
57045	urlParams_     gensupport.URLParams
57046	ifNoneMatch_   string
57047	ctx_           context.Context
57048	header_        http.Header
57049}
57050
57051// Get: Returns the specified ForwardingRule resource.
57052// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/get
57053func (r *ForwardingRulesService) Get(project string, region string, forwardingRule string) *ForwardingRulesGetCall {
57054	c := &ForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57055	c.project = project
57056	c.region = region
57057	c.forwardingRule = forwardingRule
57058	return c
57059}
57060
57061// Fields allows partial responses to be retrieved. See
57062// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57063// for more information.
57064func (c *ForwardingRulesGetCall) Fields(s ...googleapi.Field) *ForwardingRulesGetCall {
57065	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57066	return c
57067}
57068
57069// IfNoneMatch sets the optional parameter which makes the operation
57070// fail if the object's ETag matches the given value. This is useful for
57071// getting updates only after the object has changed since the last
57072// request. Use googleapi.IsNotModified to check whether the response
57073// error from Do is the result of In-None-Match.
57074func (c *ForwardingRulesGetCall) IfNoneMatch(entityTag string) *ForwardingRulesGetCall {
57075	c.ifNoneMatch_ = entityTag
57076	return c
57077}
57078
57079// Context sets the context to be used in this call's Do method. Any
57080// pending HTTP request will be aborted if the provided context is
57081// canceled.
57082func (c *ForwardingRulesGetCall) Context(ctx context.Context) *ForwardingRulesGetCall {
57083	c.ctx_ = ctx
57084	return c
57085}
57086
57087// Header returns an http.Header that can be modified by the caller to
57088// add HTTP headers to the request.
57089func (c *ForwardingRulesGetCall) Header() http.Header {
57090	if c.header_ == nil {
57091		c.header_ = make(http.Header)
57092	}
57093	return c.header_
57094}
57095
57096func (c *ForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
57097	reqHeaders := make(http.Header)
57098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57099	for k, v := range c.header_ {
57100		reqHeaders[k] = v
57101	}
57102	reqHeaders.Set("User-Agent", c.s.userAgent())
57103	if c.ifNoneMatch_ != "" {
57104		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57105	}
57106	var body io.Reader = nil
57107	c.urlParams_.Set("alt", alt)
57108	c.urlParams_.Set("prettyPrint", "false")
57109	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
57110	urls += "?" + c.urlParams_.Encode()
57111	req, err := http.NewRequest("GET", urls, body)
57112	if err != nil {
57113		return nil, err
57114	}
57115	req.Header = reqHeaders
57116	googleapi.Expand(req.URL, map[string]string{
57117		"project":        c.project,
57118		"region":         c.region,
57119		"forwardingRule": c.forwardingRule,
57120	})
57121	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57122}
57123
57124// Do executes the "compute.forwardingRules.get" call.
57125// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
57126// status code is an error. Response headers are in either
57127// *ForwardingRule.ServerResponse.Header or (if a response was returned
57128// at all) in error.(*googleapi.Error).Header. Use
57129// googleapi.IsNotModified to check whether the returned error was
57130// because http.StatusNotModified was returned.
57131func (c *ForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
57132	gensupport.SetOptions(c.urlParams_, opts...)
57133	res, err := c.doRequest("json")
57134	if res != nil && res.StatusCode == http.StatusNotModified {
57135		if res.Body != nil {
57136			res.Body.Close()
57137		}
57138		return nil, &googleapi.Error{
57139			Code:   res.StatusCode,
57140			Header: res.Header,
57141		}
57142	}
57143	if err != nil {
57144		return nil, err
57145	}
57146	defer googleapi.CloseBody(res)
57147	if err := googleapi.CheckResponse(res); err != nil {
57148		return nil, err
57149	}
57150	ret := &ForwardingRule{
57151		ServerResponse: googleapi.ServerResponse{
57152			Header:         res.Header,
57153			HTTPStatusCode: res.StatusCode,
57154		},
57155	}
57156	target := &ret
57157	if err := gensupport.DecodeResponse(target, res); err != nil {
57158		return nil, err
57159	}
57160	return ret, nil
57161	// {
57162	//   "description": "Returns the specified ForwardingRule resource.",
57163	//   "httpMethod": "GET",
57164	//   "id": "compute.forwardingRules.get",
57165	//   "parameterOrder": [
57166	//     "project",
57167	//     "region",
57168	//     "forwardingRule"
57169	//   ],
57170	//   "parameters": {
57171	//     "forwardingRule": {
57172	//       "description": "Name of the ForwardingRule resource to return.",
57173	//       "location": "path",
57174	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57175	//       "required": true,
57176	//       "type": "string"
57177	//     },
57178	//     "project": {
57179	//       "description": "Project ID for this request.",
57180	//       "location": "path",
57181	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57182	//       "required": true,
57183	//       "type": "string"
57184	//     },
57185	//     "region": {
57186	//       "description": "Name of the region scoping this request.",
57187	//       "location": "path",
57188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57189	//       "required": true,
57190	//       "type": "string"
57191	//     }
57192	//   },
57193	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
57194	//   "response": {
57195	//     "$ref": "ForwardingRule"
57196	//   },
57197	//   "scopes": [
57198	//     "https://www.googleapis.com/auth/cloud-platform",
57199	//     "https://www.googleapis.com/auth/compute",
57200	//     "https://www.googleapis.com/auth/compute.readonly"
57201	//   ]
57202	// }
57203
57204}
57205
57206// method id "compute.forwardingRules.insert":
57207
57208type ForwardingRulesInsertCall struct {
57209	s              *Service
57210	project        string
57211	region         string
57212	forwardingrule *ForwardingRule
57213	urlParams_     gensupport.URLParams
57214	ctx_           context.Context
57215	header_        http.Header
57216}
57217
57218// Insert: Creates a ForwardingRule resource in the specified project
57219// and region using the data included in the request.
57220// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/insert
57221func (r *ForwardingRulesService) Insert(project string, region string, forwardingrule *ForwardingRule) *ForwardingRulesInsertCall {
57222	c := &ForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57223	c.project = project
57224	c.region = region
57225	c.forwardingrule = forwardingrule
57226	return c
57227}
57228
57229// RequestId sets the optional parameter "requestId": An optional
57230// request ID to identify requests. Specify a unique request ID so that
57231// if you must retry your request, the server will know to ignore the
57232// request if it has already been completed.
57233//
57234// For example, consider a situation where you make an initial request
57235// and the request times out. If you make the request again with the
57236// same request ID, the server can check if original operation with the
57237// same request ID was received, and if so, will ignore the second
57238// request. This prevents clients from accidentally creating duplicate
57239// commitments.
57240//
57241// The request ID must be a valid UUID with the exception that zero UUID
57242// is not supported (00000000-0000-0000-0000-000000000000).
57243func (c *ForwardingRulesInsertCall) RequestId(requestId string) *ForwardingRulesInsertCall {
57244	c.urlParams_.Set("requestId", requestId)
57245	return c
57246}
57247
57248// Fields allows partial responses to be retrieved. See
57249// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57250// for more information.
57251func (c *ForwardingRulesInsertCall) Fields(s ...googleapi.Field) *ForwardingRulesInsertCall {
57252	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57253	return c
57254}
57255
57256// Context sets the context to be used in this call's Do method. Any
57257// pending HTTP request will be aborted if the provided context is
57258// canceled.
57259func (c *ForwardingRulesInsertCall) Context(ctx context.Context) *ForwardingRulesInsertCall {
57260	c.ctx_ = ctx
57261	return c
57262}
57263
57264// Header returns an http.Header that can be modified by the caller to
57265// add HTTP headers to the request.
57266func (c *ForwardingRulesInsertCall) Header() http.Header {
57267	if c.header_ == nil {
57268		c.header_ = make(http.Header)
57269	}
57270	return c.header_
57271}
57272
57273func (c *ForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
57274	reqHeaders := make(http.Header)
57275	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57276	for k, v := range c.header_ {
57277		reqHeaders[k] = v
57278	}
57279	reqHeaders.Set("User-Agent", c.s.userAgent())
57280	var body io.Reader = nil
57281	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
57282	if err != nil {
57283		return nil, err
57284	}
57285	reqHeaders.Set("Content-Type", "application/json")
57286	c.urlParams_.Set("alt", alt)
57287	c.urlParams_.Set("prettyPrint", "false")
57288	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
57289	urls += "?" + c.urlParams_.Encode()
57290	req, err := http.NewRequest("POST", urls, body)
57291	if err != nil {
57292		return nil, err
57293	}
57294	req.Header = reqHeaders
57295	googleapi.Expand(req.URL, map[string]string{
57296		"project": c.project,
57297		"region":  c.region,
57298	})
57299	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57300}
57301
57302// Do executes the "compute.forwardingRules.insert" call.
57303// Exactly one of *Operation or error will be non-nil. Any non-2xx
57304// status code is an error. Response headers are in either
57305// *Operation.ServerResponse.Header or (if a response was returned at
57306// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57307// to check whether the returned error was because
57308// http.StatusNotModified was returned.
57309func (c *ForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57310	gensupport.SetOptions(c.urlParams_, opts...)
57311	res, err := c.doRequest("json")
57312	if res != nil && res.StatusCode == http.StatusNotModified {
57313		if res.Body != nil {
57314			res.Body.Close()
57315		}
57316		return nil, &googleapi.Error{
57317			Code:   res.StatusCode,
57318			Header: res.Header,
57319		}
57320	}
57321	if err != nil {
57322		return nil, err
57323	}
57324	defer googleapi.CloseBody(res)
57325	if err := googleapi.CheckResponse(res); err != nil {
57326		return nil, err
57327	}
57328	ret := &Operation{
57329		ServerResponse: googleapi.ServerResponse{
57330			Header:         res.Header,
57331			HTTPStatusCode: res.StatusCode,
57332		},
57333	}
57334	target := &ret
57335	if err := gensupport.DecodeResponse(target, res); err != nil {
57336		return nil, err
57337	}
57338	return ret, nil
57339	// {
57340	//   "description": "Creates a ForwardingRule resource in the specified project and region using the data included in the request.",
57341	//   "httpMethod": "POST",
57342	//   "id": "compute.forwardingRules.insert",
57343	//   "parameterOrder": [
57344	//     "project",
57345	//     "region"
57346	//   ],
57347	//   "parameters": {
57348	//     "project": {
57349	//       "description": "Project ID for this request.",
57350	//       "location": "path",
57351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57352	//       "required": true,
57353	//       "type": "string"
57354	//     },
57355	//     "region": {
57356	//       "description": "Name of the region scoping this request.",
57357	//       "location": "path",
57358	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57359	//       "required": true,
57360	//       "type": "string"
57361	//     },
57362	//     "requestId": {
57363	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57364	//       "location": "query",
57365	//       "type": "string"
57366	//     }
57367	//   },
57368	//   "path": "{project}/regions/{region}/forwardingRules",
57369	//   "request": {
57370	//     "$ref": "ForwardingRule"
57371	//   },
57372	//   "response": {
57373	//     "$ref": "Operation"
57374	//   },
57375	//   "scopes": [
57376	//     "https://www.googleapis.com/auth/cloud-platform",
57377	//     "https://www.googleapis.com/auth/compute"
57378	//   ]
57379	// }
57380
57381}
57382
57383// method id "compute.forwardingRules.list":
57384
57385type ForwardingRulesListCall struct {
57386	s            *Service
57387	project      string
57388	region       string
57389	urlParams_   gensupport.URLParams
57390	ifNoneMatch_ string
57391	ctx_         context.Context
57392	header_      http.Header
57393}
57394
57395// List: Retrieves a list of ForwardingRule resources available to the
57396// specified project and region.
57397// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/list
57398func (r *ForwardingRulesService) List(project string, region string) *ForwardingRulesListCall {
57399	c := &ForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57400	c.project = project
57401	c.region = region
57402	return c
57403}
57404
57405// Filter sets the optional parameter "filter": A filter expression that
57406// filters resources listed in the response. The expression must specify
57407// the field name, a comparison operator, and the value that you want to
57408// use for filtering. The value must be a string, a number, or a
57409// boolean. The comparison operator must be either =, !=, >, or <.
57410//
57411// For example, if you are filtering Compute Engine instances, you can
57412// exclude instances named example-instance by specifying name !=
57413// example-instance.
57414//
57415// You can also filter nested fields. For example, you could specify
57416// scheduling.automaticRestart = false to include instances only if they
57417// are not scheduled for automatic restarts. You can use filtering on
57418// nested fields to filter based on resource labels.
57419//
57420// To filter on multiple expressions, provide each separate expression
57421// within parentheses. For example, (scheduling.automaticRestart = true)
57422// (cpuPlatform = "Intel Skylake"). By default, each expression is an
57423// AND expression. However, you can include AND and OR expressions
57424// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
57425// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
57426// true).
57427func (c *ForwardingRulesListCall) Filter(filter string) *ForwardingRulesListCall {
57428	c.urlParams_.Set("filter", filter)
57429	return c
57430}
57431
57432// MaxResults sets the optional parameter "maxResults": The maximum
57433// number of results per page that should be returned. If the number of
57434// available results is larger than maxResults, Compute Engine returns a
57435// nextPageToken that can be used to get the next page of results in
57436// subsequent list requests. Acceptable values are 0 to 500, inclusive.
57437// (Default: 500)
57438func (c *ForwardingRulesListCall) MaxResults(maxResults int64) *ForwardingRulesListCall {
57439	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
57440	return c
57441}
57442
57443// OrderBy sets the optional parameter "orderBy": Sorts list results by
57444// a certain order. By default, results are returned in alphanumerical
57445// order based on the resource name.
57446//
57447// You can also sort results in descending order based on the creation
57448// timestamp using orderBy="creationTimestamp desc". This sorts results
57449// based on the creationTimestamp field in reverse chronological order
57450// (newest result first). Use this to sort resources like operations so
57451// that the newest operation is returned first.
57452//
57453// Currently, only sorting by name or creationTimestamp desc is
57454// supported.
57455func (c *ForwardingRulesListCall) OrderBy(orderBy string) *ForwardingRulesListCall {
57456	c.urlParams_.Set("orderBy", orderBy)
57457	return c
57458}
57459
57460// PageToken sets the optional parameter "pageToken": Specifies a page
57461// token to use. Set pageToken to the nextPageToken returned by a
57462// previous list request to get the next page of results.
57463func (c *ForwardingRulesListCall) PageToken(pageToken string) *ForwardingRulesListCall {
57464	c.urlParams_.Set("pageToken", pageToken)
57465	return c
57466}
57467
57468// Fields allows partial responses to be retrieved. See
57469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57470// for more information.
57471func (c *ForwardingRulesListCall) Fields(s ...googleapi.Field) *ForwardingRulesListCall {
57472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57473	return c
57474}
57475
57476// IfNoneMatch sets the optional parameter which makes the operation
57477// fail if the object's ETag matches the given value. This is useful for
57478// getting updates only after the object has changed since the last
57479// request. Use googleapi.IsNotModified to check whether the response
57480// error from Do is the result of In-None-Match.
57481func (c *ForwardingRulesListCall) IfNoneMatch(entityTag string) *ForwardingRulesListCall {
57482	c.ifNoneMatch_ = entityTag
57483	return c
57484}
57485
57486// Context sets the context to be used in this call's Do method. Any
57487// pending HTTP request will be aborted if the provided context is
57488// canceled.
57489func (c *ForwardingRulesListCall) Context(ctx context.Context) *ForwardingRulesListCall {
57490	c.ctx_ = ctx
57491	return c
57492}
57493
57494// Header returns an http.Header that can be modified by the caller to
57495// add HTTP headers to the request.
57496func (c *ForwardingRulesListCall) Header() http.Header {
57497	if c.header_ == nil {
57498		c.header_ = make(http.Header)
57499	}
57500	return c.header_
57501}
57502
57503func (c *ForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
57504	reqHeaders := make(http.Header)
57505	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57506	for k, v := range c.header_ {
57507		reqHeaders[k] = v
57508	}
57509	reqHeaders.Set("User-Agent", c.s.userAgent())
57510	if c.ifNoneMatch_ != "" {
57511		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
57512	}
57513	var body io.Reader = nil
57514	c.urlParams_.Set("alt", alt)
57515	c.urlParams_.Set("prettyPrint", "false")
57516	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules")
57517	urls += "?" + c.urlParams_.Encode()
57518	req, err := http.NewRequest("GET", urls, body)
57519	if err != nil {
57520		return nil, err
57521	}
57522	req.Header = reqHeaders
57523	googleapi.Expand(req.URL, map[string]string{
57524		"project": c.project,
57525		"region":  c.region,
57526	})
57527	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57528}
57529
57530// Do executes the "compute.forwardingRules.list" call.
57531// Exactly one of *ForwardingRuleList or error will be non-nil. Any
57532// non-2xx status code is an error. Response headers are in either
57533// *ForwardingRuleList.ServerResponse.Header or (if a response was
57534// returned at all) in error.(*googleapi.Error).Header. Use
57535// googleapi.IsNotModified to check whether the returned error was
57536// because http.StatusNotModified was returned.
57537func (c *ForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
57538	gensupport.SetOptions(c.urlParams_, opts...)
57539	res, err := c.doRequest("json")
57540	if res != nil && res.StatusCode == http.StatusNotModified {
57541		if res.Body != nil {
57542			res.Body.Close()
57543		}
57544		return nil, &googleapi.Error{
57545			Code:   res.StatusCode,
57546			Header: res.Header,
57547		}
57548	}
57549	if err != nil {
57550		return nil, err
57551	}
57552	defer googleapi.CloseBody(res)
57553	if err := googleapi.CheckResponse(res); err != nil {
57554		return nil, err
57555	}
57556	ret := &ForwardingRuleList{
57557		ServerResponse: googleapi.ServerResponse{
57558			Header:         res.Header,
57559			HTTPStatusCode: res.StatusCode,
57560		},
57561	}
57562	target := &ret
57563	if err := gensupport.DecodeResponse(target, res); err != nil {
57564		return nil, err
57565	}
57566	return ret, nil
57567	// {
57568	//   "description": "Retrieves a list of ForwardingRule resources available to the specified project and region.",
57569	//   "httpMethod": "GET",
57570	//   "id": "compute.forwardingRules.list",
57571	//   "parameterOrder": [
57572	//     "project",
57573	//     "region"
57574	//   ],
57575	//   "parameters": {
57576	//     "filter": {
57577	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
57578	//       "location": "query",
57579	//       "type": "string"
57580	//     },
57581	//     "maxResults": {
57582	//       "default": "500",
57583	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
57584	//       "format": "uint32",
57585	//       "location": "query",
57586	//       "minimum": "0",
57587	//       "type": "integer"
57588	//     },
57589	//     "orderBy": {
57590	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
57591	//       "location": "query",
57592	//       "type": "string"
57593	//     },
57594	//     "pageToken": {
57595	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
57596	//       "location": "query",
57597	//       "type": "string"
57598	//     },
57599	//     "project": {
57600	//       "description": "Project ID for this request.",
57601	//       "location": "path",
57602	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57603	//       "required": true,
57604	//       "type": "string"
57605	//     },
57606	//     "region": {
57607	//       "description": "Name of the region scoping this request.",
57608	//       "location": "path",
57609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57610	//       "required": true,
57611	//       "type": "string"
57612	//     }
57613	//   },
57614	//   "path": "{project}/regions/{region}/forwardingRules",
57615	//   "response": {
57616	//     "$ref": "ForwardingRuleList"
57617	//   },
57618	//   "scopes": [
57619	//     "https://www.googleapis.com/auth/cloud-platform",
57620	//     "https://www.googleapis.com/auth/compute",
57621	//     "https://www.googleapis.com/auth/compute.readonly"
57622	//   ]
57623	// }
57624
57625}
57626
57627// Pages invokes f for each page of results.
57628// A non-nil error returned from f will halt the iteration.
57629// The provided context supersedes any context provided to the Context method.
57630func (c *ForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
57631	c.ctx_ = ctx
57632	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
57633	for {
57634		x, err := c.Do()
57635		if err != nil {
57636			return err
57637		}
57638		if err := f(x); err != nil {
57639			return err
57640		}
57641		if x.NextPageToken == "" {
57642			return nil
57643		}
57644		c.PageToken(x.NextPageToken)
57645	}
57646}
57647
57648// method id "compute.forwardingRules.patch":
57649
57650type ForwardingRulesPatchCall struct {
57651	s              *Service
57652	project        string
57653	region         string
57654	forwardingRule string
57655	forwardingrule *ForwardingRule
57656	urlParams_     gensupport.URLParams
57657	ctx_           context.Context
57658	header_        http.Header
57659}
57660
57661// Patch: Updates the specified forwarding rule with the data included
57662// in the request. This method supports PATCH semantics and uses the
57663// JSON merge patch format and processing rules. Currently, you can only
57664// patch the network_tier field.
57665func (r *ForwardingRulesService) Patch(project string, region string, forwardingRule string, forwardingrule *ForwardingRule) *ForwardingRulesPatchCall {
57666	c := &ForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57667	c.project = project
57668	c.region = region
57669	c.forwardingRule = forwardingRule
57670	c.forwardingrule = forwardingrule
57671	return c
57672}
57673
57674// RequestId sets the optional parameter "requestId": An optional
57675// request ID to identify requests. Specify a unique request ID so that
57676// if you must retry your request, the server will know to ignore the
57677// request if it has already been completed.
57678//
57679// For example, consider a situation where you make an initial request
57680// and the request times out. If you make the request again with the
57681// same request ID, the server can check if original operation with the
57682// same request ID was received, and if so, will ignore the second
57683// request. This prevents clients from accidentally creating duplicate
57684// commitments.
57685//
57686// The request ID must be a valid UUID with the exception that zero UUID
57687// is not supported (00000000-0000-0000-0000-000000000000).
57688func (c *ForwardingRulesPatchCall) RequestId(requestId string) *ForwardingRulesPatchCall {
57689	c.urlParams_.Set("requestId", requestId)
57690	return c
57691}
57692
57693// Fields allows partial responses to be retrieved. See
57694// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57695// for more information.
57696func (c *ForwardingRulesPatchCall) Fields(s ...googleapi.Field) *ForwardingRulesPatchCall {
57697	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57698	return c
57699}
57700
57701// Context sets the context to be used in this call's Do method. Any
57702// pending HTTP request will be aborted if the provided context is
57703// canceled.
57704func (c *ForwardingRulesPatchCall) Context(ctx context.Context) *ForwardingRulesPatchCall {
57705	c.ctx_ = ctx
57706	return c
57707}
57708
57709// Header returns an http.Header that can be modified by the caller to
57710// add HTTP headers to the request.
57711func (c *ForwardingRulesPatchCall) Header() http.Header {
57712	if c.header_ == nil {
57713		c.header_ = make(http.Header)
57714	}
57715	return c.header_
57716}
57717
57718func (c *ForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
57719	reqHeaders := make(http.Header)
57720	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57721	for k, v := range c.header_ {
57722		reqHeaders[k] = v
57723	}
57724	reqHeaders.Set("User-Agent", c.s.userAgent())
57725	var body io.Reader = nil
57726	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
57727	if err != nil {
57728		return nil, err
57729	}
57730	reqHeaders.Set("Content-Type", "application/json")
57731	c.urlParams_.Set("alt", alt)
57732	c.urlParams_.Set("prettyPrint", "false")
57733	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}")
57734	urls += "?" + c.urlParams_.Encode()
57735	req, err := http.NewRequest("PATCH", urls, body)
57736	if err != nil {
57737		return nil, err
57738	}
57739	req.Header = reqHeaders
57740	googleapi.Expand(req.URL, map[string]string{
57741		"project":        c.project,
57742		"region":         c.region,
57743		"forwardingRule": c.forwardingRule,
57744	})
57745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57746}
57747
57748// Do executes the "compute.forwardingRules.patch" call.
57749// Exactly one of *Operation or error will be non-nil. Any non-2xx
57750// status code is an error. Response headers are in either
57751// *Operation.ServerResponse.Header or (if a response was returned at
57752// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57753// to check whether the returned error was because
57754// http.StatusNotModified was returned.
57755func (c *ForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57756	gensupport.SetOptions(c.urlParams_, opts...)
57757	res, err := c.doRequest("json")
57758	if res != nil && res.StatusCode == http.StatusNotModified {
57759		if res.Body != nil {
57760			res.Body.Close()
57761		}
57762		return nil, &googleapi.Error{
57763			Code:   res.StatusCode,
57764			Header: res.Header,
57765		}
57766	}
57767	if err != nil {
57768		return nil, err
57769	}
57770	defer googleapi.CloseBody(res)
57771	if err := googleapi.CheckResponse(res); err != nil {
57772		return nil, err
57773	}
57774	ret := &Operation{
57775		ServerResponse: googleapi.ServerResponse{
57776			Header:         res.Header,
57777			HTTPStatusCode: res.StatusCode,
57778		},
57779	}
57780	target := &ret
57781	if err := gensupport.DecodeResponse(target, res); err != nil {
57782		return nil, err
57783	}
57784	return ret, nil
57785	// {
57786	//   "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.",
57787	//   "httpMethod": "PATCH",
57788	//   "id": "compute.forwardingRules.patch",
57789	//   "parameterOrder": [
57790	//     "project",
57791	//     "region",
57792	//     "forwardingRule"
57793	//   ],
57794	//   "parameters": {
57795	//     "forwardingRule": {
57796	//       "description": "Name of the ForwardingRule resource to patch.",
57797	//       "location": "path",
57798	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
57799	//       "required": true,
57800	//       "type": "string"
57801	//     },
57802	//     "project": {
57803	//       "description": "Project ID for this request.",
57804	//       "location": "path",
57805	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57806	//       "required": true,
57807	//       "type": "string"
57808	//     },
57809	//     "region": {
57810	//       "description": "Name of the region scoping this request.",
57811	//       "location": "path",
57812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57813	//       "required": true,
57814	//       "type": "string"
57815	//     },
57816	//     "requestId": {
57817	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57818	//       "location": "query",
57819	//       "type": "string"
57820	//     }
57821	//   },
57822	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}",
57823	//   "request": {
57824	//     "$ref": "ForwardingRule"
57825	//   },
57826	//   "response": {
57827	//     "$ref": "Operation"
57828	//   },
57829	//   "scopes": [
57830	//     "https://www.googleapis.com/auth/cloud-platform",
57831	//     "https://www.googleapis.com/auth/compute"
57832	//   ]
57833	// }
57834
57835}
57836
57837// method id "compute.forwardingRules.setLabels":
57838
57839type ForwardingRulesSetLabelsCall struct {
57840	s                      *Service
57841	project                string
57842	region                 string
57843	resource               string
57844	regionsetlabelsrequest *RegionSetLabelsRequest
57845	urlParams_             gensupport.URLParams
57846	ctx_                   context.Context
57847	header_                http.Header
57848}
57849
57850// SetLabels: Sets the labels on the specified resource. To learn more
57851// about labels, read the Labeling Resources documentation.
57852func (r *ForwardingRulesService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *ForwardingRulesSetLabelsCall {
57853	c := &ForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
57854	c.project = project
57855	c.region = region
57856	c.resource = resource
57857	c.regionsetlabelsrequest = regionsetlabelsrequest
57858	return c
57859}
57860
57861// RequestId sets the optional parameter "requestId": An optional
57862// request ID to identify requests. Specify a unique request ID so that
57863// if you must retry your request, the server will know to ignore the
57864// request if it has already been completed.
57865//
57866// For example, consider a situation where you make an initial request
57867// and the request times out. If you make the request again with the
57868// same request ID, the server can check if original operation with the
57869// same request ID was received, and if so, will ignore the second
57870// request. This prevents clients from accidentally creating duplicate
57871// commitments.
57872//
57873// The request ID must be a valid UUID with the exception that zero UUID
57874// is not supported (00000000-0000-0000-0000-000000000000).
57875func (c *ForwardingRulesSetLabelsCall) RequestId(requestId string) *ForwardingRulesSetLabelsCall {
57876	c.urlParams_.Set("requestId", requestId)
57877	return c
57878}
57879
57880// Fields allows partial responses to be retrieved. See
57881// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
57882// for more information.
57883func (c *ForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *ForwardingRulesSetLabelsCall {
57884	c.urlParams_.Set("fields", googleapi.CombineFields(s))
57885	return c
57886}
57887
57888// Context sets the context to be used in this call's Do method. Any
57889// pending HTTP request will be aborted if the provided context is
57890// canceled.
57891func (c *ForwardingRulesSetLabelsCall) Context(ctx context.Context) *ForwardingRulesSetLabelsCall {
57892	c.ctx_ = ctx
57893	return c
57894}
57895
57896// Header returns an http.Header that can be modified by the caller to
57897// add HTTP headers to the request.
57898func (c *ForwardingRulesSetLabelsCall) Header() http.Header {
57899	if c.header_ == nil {
57900		c.header_ = make(http.Header)
57901	}
57902	return c.header_
57903}
57904
57905func (c *ForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
57906	reqHeaders := make(http.Header)
57907	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
57908	for k, v := range c.header_ {
57909		reqHeaders[k] = v
57910	}
57911	reqHeaders.Set("User-Agent", c.s.userAgent())
57912	var body io.Reader = nil
57913	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
57914	if err != nil {
57915		return nil, err
57916	}
57917	reqHeaders.Set("Content-Type", "application/json")
57918	c.urlParams_.Set("alt", alt)
57919	c.urlParams_.Set("prettyPrint", "false")
57920	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/setLabels")
57921	urls += "?" + c.urlParams_.Encode()
57922	req, err := http.NewRequest("POST", urls, body)
57923	if err != nil {
57924		return nil, err
57925	}
57926	req.Header = reqHeaders
57927	googleapi.Expand(req.URL, map[string]string{
57928		"project":  c.project,
57929		"region":   c.region,
57930		"resource": c.resource,
57931	})
57932	return gensupport.SendRequest(c.ctx_, c.s.client, req)
57933}
57934
57935// Do executes the "compute.forwardingRules.setLabels" call.
57936// Exactly one of *Operation or error will be non-nil. Any non-2xx
57937// status code is an error. Response headers are in either
57938// *Operation.ServerResponse.Header or (if a response was returned at
57939// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
57940// to check whether the returned error was because
57941// http.StatusNotModified was returned.
57942func (c *ForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
57943	gensupport.SetOptions(c.urlParams_, opts...)
57944	res, err := c.doRequest("json")
57945	if res != nil && res.StatusCode == http.StatusNotModified {
57946		if res.Body != nil {
57947			res.Body.Close()
57948		}
57949		return nil, &googleapi.Error{
57950			Code:   res.StatusCode,
57951			Header: res.Header,
57952		}
57953	}
57954	if err != nil {
57955		return nil, err
57956	}
57957	defer googleapi.CloseBody(res)
57958	if err := googleapi.CheckResponse(res); err != nil {
57959		return nil, err
57960	}
57961	ret := &Operation{
57962		ServerResponse: googleapi.ServerResponse{
57963			Header:         res.Header,
57964			HTTPStatusCode: res.StatusCode,
57965		},
57966	}
57967	target := &ret
57968	if err := gensupport.DecodeResponse(target, res); err != nil {
57969		return nil, err
57970	}
57971	return ret, nil
57972	// {
57973	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
57974	//   "httpMethod": "POST",
57975	//   "id": "compute.forwardingRules.setLabels",
57976	//   "parameterOrder": [
57977	//     "project",
57978	//     "region",
57979	//     "resource"
57980	//   ],
57981	//   "parameters": {
57982	//     "project": {
57983	//       "description": "Project ID for this request.",
57984	//       "location": "path",
57985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
57986	//       "required": true,
57987	//       "type": "string"
57988	//     },
57989	//     "region": {
57990	//       "description": "The region for this request.",
57991	//       "location": "path",
57992	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
57993	//       "required": true,
57994	//       "type": "string"
57995	//     },
57996	//     "requestId": {
57997	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
57998	//       "location": "query",
57999	//       "type": "string"
58000	//     },
58001	//     "resource": {
58002	//       "description": "Name or id of the resource for this request.",
58003	//       "location": "path",
58004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58005	//       "required": true,
58006	//       "type": "string"
58007	//     }
58008	//   },
58009	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/setLabels",
58010	//   "request": {
58011	//     "$ref": "RegionSetLabelsRequest"
58012	//   },
58013	//   "response": {
58014	//     "$ref": "Operation"
58015	//   },
58016	//   "scopes": [
58017	//     "https://www.googleapis.com/auth/cloud-platform",
58018	//     "https://www.googleapis.com/auth/compute"
58019	//   ]
58020	// }
58021
58022}
58023
58024// method id "compute.forwardingRules.setTarget":
58025
58026type ForwardingRulesSetTargetCall struct {
58027	s               *Service
58028	project         string
58029	region          string
58030	forwardingRule  string
58031	targetreference *TargetReference
58032	urlParams_      gensupport.URLParams
58033	ctx_            context.Context
58034	header_         http.Header
58035}
58036
58037// SetTarget: Changes target URL for forwarding rule. The new target
58038// should be of the same type as the old target.
58039// For details, see https://cloud.google.com/compute/docs/reference/latest/forwardingRules/setTarget
58040func (r *ForwardingRulesService) SetTarget(project string, region string, forwardingRule string, targetreference *TargetReference) *ForwardingRulesSetTargetCall {
58041	c := &ForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58042	c.project = project
58043	c.region = region
58044	c.forwardingRule = forwardingRule
58045	c.targetreference = targetreference
58046	return c
58047}
58048
58049// RequestId sets the optional parameter "requestId": An optional
58050// request ID to identify requests. Specify a unique request ID so that
58051// if you must retry your request, the server will know to ignore the
58052// request if it has already been completed.
58053//
58054// For example, consider a situation where you make an initial request
58055// and the request times out. If you make the request again with the
58056// same request ID, the server can check if original operation with the
58057// same request ID was received, and if so, will ignore the second
58058// request. This prevents clients from accidentally creating duplicate
58059// commitments.
58060//
58061// The request ID must be a valid UUID with the exception that zero UUID
58062// is not supported (00000000-0000-0000-0000-000000000000).
58063func (c *ForwardingRulesSetTargetCall) RequestId(requestId string) *ForwardingRulesSetTargetCall {
58064	c.urlParams_.Set("requestId", requestId)
58065	return c
58066}
58067
58068// Fields allows partial responses to be retrieved. See
58069// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58070// for more information.
58071func (c *ForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *ForwardingRulesSetTargetCall {
58072	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58073	return c
58074}
58075
58076// Context sets the context to be used in this call's Do method. Any
58077// pending HTTP request will be aborted if the provided context is
58078// canceled.
58079func (c *ForwardingRulesSetTargetCall) Context(ctx context.Context) *ForwardingRulesSetTargetCall {
58080	c.ctx_ = ctx
58081	return c
58082}
58083
58084// Header returns an http.Header that can be modified by the caller to
58085// add HTTP headers to the request.
58086func (c *ForwardingRulesSetTargetCall) Header() http.Header {
58087	if c.header_ == nil {
58088		c.header_ = make(http.Header)
58089	}
58090	return c.header_
58091}
58092
58093func (c *ForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
58094	reqHeaders := make(http.Header)
58095	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58096	for k, v := range c.header_ {
58097		reqHeaders[k] = v
58098	}
58099	reqHeaders.Set("User-Agent", c.s.userAgent())
58100	var body io.Reader = nil
58101	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
58102	if err != nil {
58103		return nil, err
58104	}
58105	reqHeaders.Set("Content-Type", "application/json")
58106	c.urlParams_.Set("alt", alt)
58107	c.urlParams_.Set("prettyPrint", "false")
58108	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget")
58109	urls += "?" + c.urlParams_.Encode()
58110	req, err := http.NewRequest("POST", urls, body)
58111	if err != nil {
58112		return nil, err
58113	}
58114	req.Header = reqHeaders
58115	googleapi.Expand(req.URL, map[string]string{
58116		"project":        c.project,
58117		"region":         c.region,
58118		"forwardingRule": c.forwardingRule,
58119	})
58120	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58121}
58122
58123// Do executes the "compute.forwardingRules.setTarget" call.
58124// Exactly one of *Operation or error will be non-nil. Any non-2xx
58125// status code is an error. Response headers are in either
58126// *Operation.ServerResponse.Header or (if a response was returned at
58127// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58128// to check whether the returned error was because
58129// http.StatusNotModified was returned.
58130func (c *ForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58131	gensupport.SetOptions(c.urlParams_, opts...)
58132	res, err := c.doRequest("json")
58133	if res != nil && res.StatusCode == http.StatusNotModified {
58134		if res.Body != nil {
58135			res.Body.Close()
58136		}
58137		return nil, &googleapi.Error{
58138			Code:   res.StatusCode,
58139			Header: res.Header,
58140		}
58141	}
58142	if err != nil {
58143		return nil, err
58144	}
58145	defer googleapi.CloseBody(res)
58146	if err := googleapi.CheckResponse(res); err != nil {
58147		return nil, err
58148	}
58149	ret := &Operation{
58150		ServerResponse: googleapi.ServerResponse{
58151			Header:         res.Header,
58152			HTTPStatusCode: res.StatusCode,
58153		},
58154	}
58155	target := &ret
58156	if err := gensupport.DecodeResponse(target, res); err != nil {
58157		return nil, err
58158	}
58159	return ret, nil
58160	// {
58161	//   "description": "Changes target URL for forwarding rule. The new target should be of the same type as the old target.",
58162	//   "httpMethod": "POST",
58163	//   "id": "compute.forwardingRules.setTarget",
58164	//   "parameterOrder": [
58165	//     "project",
58166	//     "region",
58167	//     "forwardingRule"
58168	//   ],
58169	//   "parameters": {
58170	//     "forwardingRule": {
58171	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
58172	//       "location": "path",
58173	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58174	//       "required": true,
58175	//       "type": "string"
58176	//     },
58177	//     "project": {
58178	//       "description": "Project ID for this request.",
58179	//       "location": "path",
58180	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58181	//       "required": true,
58182	//       "type": "string"
58183	//     },
58184	//     "region": {
58185	//       "description": "Name of the region scoping this request.",
58186	//       "location": "path",
58187	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58188	//       "required": true,
58189	//       "type": "string"
58190	//     },
58191	//     "requestId": {
58192	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58193	//       "location": "query",
58194	//       "type": "string"
58195	//     }
58196	//   },
58197	//   "path": "{project}/regions/{region}/forwardingRules/{forwardingRule}/setTarget",
58198	//   "request": {
58199	//     "$ref": "TargetReference"
58200	//   },
58201	//   "response": {
58202	//     "$ref": "Operation"
58203	//   },
58204	//   "scopes": [
58205	//     "https://www.googleapis.com/auth/cloud-platform",
58206	//     "https://www.googleapis.com/auth/compute"
58207	//   ]
58208	// }
58209
58210}
58211
58212// method id "compute.forwardingRules.testIamPermissions":
58213
58214type ForwardingRulesTestIamPermissionsCall struct {
58215	s                      *Service
58216	project                string
58217	region                 string
58218	resource               string
58219	testpermissionsrequest *TestPermissionsRequest
58220	urlParams_             gensupport.URLParams
58221	ctx_                   context.Context
58222	header_                http.Header
58223}
58224
58225// TestIamPermissions: Returns permissions that a caller has on the
58226// specified resource.
58227func (r *ForwardingRulesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ForwardingRulesTestIamPermissionsCall {
58228	c := &ForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58229	c.project = project
58230	c.region = region
58231	c.resource = resource
58232	c.testpermissionsrequest = testpermissionsrequest
58233	return c
58234}
58235
58236// Fields allows partial responses to be retrieved. See
58237// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58238// for more information.
58239func (c *ForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ForwardingRulesTestIamPermissionsCall {
58240	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58241	return c
58242}
58243
58244// Context sets the context to be used in this call's Do method. Any
58245// pending HTTP request will be aborted if the provided context is
58246// canceled.
58247func (c *ForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *ForwardingRulesTestIamPermissionsCall {
58248	c.ctx_ = ctx
58249	return c
58250}
58251
58252// Header returns an http.Header that can be modified by the caller to
58253// add HTTP headers to the request.
58254func (c *ForwardingRulesTestIamPermissionsCall) Header() http.Header {
58255	if c.header_ == nil {
58256		c.header_ = make(http.Header)
58257	}
58258	return c.header_
58259}
58260
58261func (c *ForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
58262	reqHeaders := make(http.Header)
58263	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58264	for k, v := range c.header_ {
58265		reqHeaders[k] = v
58266	}
58267	reqHeaders.Set("User-Agent", c.s.userAgent())
58268	var body io.Reader = nil
58269	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
58270	if err != nil {
58271		return nil, err
58272	}
58273	reqHeaders.Set("Content-Type", "application/json")
58274	c.urlParams_.Set("alt", alt)
58275	c.urlParams_.Set("prettyPrint", "false")
58276	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions")
58277	urls += "?" + c.urlParams_.Encode()
58278	req, err := http.NewRequest("POST", urls, body)
58279	if err != nil {
58280		return nil, err
58281	}
58282	req.Header = reqHeaders
58283	googleapi.Expand(req.URL, map[string]string{
58284		"project":  c.project,
58285		"region":   c.region,
58286		"resource": c.resource,
58287	})
58288	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58289}
58290
58291// Do executes the "compute.forwardingRules.testIamPermissions" call.
58292// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
58293// non-2xx status code is an error. Response headers are in either
58294// *TestPermissionsResponse.ServerResponse.Header or (if a response was
58295// returned at all) in error.(*googleapi.Error).Header. Use
58296// googleapi.IsNotModified to check whether the returned error was
58297// because http.StatusNotModified was returned.
58298func (c *ForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
58299	gensupport.SetOptions(c.urlParams_, opts...)
58300	res, err := c.doRequest("json")
58301	if res != nil && res.StatusCode == http.StatusNotModified {
58302		if res.Body != nil {
58303			res.Body.Close()
58304		}
58305		return nil, &googleapi.Error{
58306			Code:   res.StatusCode,
58307			Header: res.Header,
58308		}
58309	}
58310	if err != nil {
58311		return nil, err
58312	}
58313	defer googleapi.CloseBody(res)
58314	if err := googleapi.CheckResponse(res); err != nil {
58315		return nil, err
58316	}
58317	ret := &TestPermissionsResponse{
58318		ServerResponse: googleapi.ServerResponse{
58319			Header:         res.Header,
58320			HTTPStatusCode: res.StatusCode,
58321		},
58322	}
58323	target := &ret
58324	if err := gensupport.DecodeResponse(target, res); err != nil {
58325		return nil, err
58326	}
58327	return ret, nil
58328	// {
58329	//   "description": "Returns permissions that a caller has on the specified resource.",
58330	//   "httpMethod": "POST",
58331	//   "id": "compute.forwardingRules.testIamPermissions",
58332	//   "parameterOrder": [
58333	//     "project",
58334	//     "region",
58335	//     "resource"
58336	//   ],
58337	//   "parameters": {
58338	//     "project": {
58339	//       "description": "Project ID for this request.",
58340	//       "location": "path",
58341	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58342	//       "required": true,
58343	//       "type": "string"
58344	//     },
58345	//     "region": {
58346	//       "description": "The name of the region for this request.",
58347	//       "location": "path",
58348	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
58349	//       "required": true,
58350	//       "type": "string"
58351	//     },
58352	//     "resource": {
58353	//       "description": "Name or id of the resource for this request.",
58354	//       "location": "path",
58355	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58356	//       "required": true,
58357	//       "type": "string"
58358	//     }
58359	//   },
58360	//   "path": "{project}/regions/{region}/forwardingRules/{resource}/testIamPermissions",
58361	//   "request": {
58362	//     "$ref": "TestPermissionsRequest"
58363	//   },
58364	//   "response": {
58365	//     "$ref": "TestPermissionsResponse"
58366	//   },
58367	//   "scopes": [
58368	//     "https://www.googleapis.com/auth/cloud-platform",
58369	//     "https://www.googleapis.com/auth/compute",
58370	//     "https://www.googleapis.com/auth/compute.readonly"
58371	//   ]
58372	// }
58373
58374}
58375
58376// method id "compute.globalAddresses.delete":
58377
58378type GlobalAddressesDeleteCall struct {
58379	s          *Service
58380	project    string
58381	address    string
58382	urlParams_ gensupport.URLParams
58383	ctx_       context.Context
58384	header_    http.Header
58385}
58386
58387// Delete: Deletes the specified address resource.
58388// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/delete
58389func (r *GlobalAddressesService) Delete(project string, address string) *GlobalAddressesDeleteCall {
58390	c := &GlobalAddressesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58391	c.project = project
58392	c.address = address
58393	return c
58394}
58395
58396// RequestId sets the optional parameter "requestId": An optional
58397// request ID to identify requests. Specify a unique request ID so that
58398// if you must retry your request, the server will know to ignore the
58399// request if it has already been completed.
58400//
58401// For example, consider a situation where you make an initial request
58402// and the request times out. If you make the request again with the
58403// same request ID, the server can check if original operation with the
58404// same request ID was received, and if so, will ignore the second
58405// request. This prevents clients from accidentally creating duplicate
58406// commitments.
58407//
58408// The request ID must be a valid UUID with the exception that zero UUID
58409// is not supported (00000000-0000-0000-0000-000000000000).
58410func (c *GlobalAddressesDeleteCall) RequestId(requestId string) *GlobalAddressesDeleteCall {
58411	c.urlParams_.Set("requestId", requestId)
58412	return c
58413}
58414
58415// Fields allows partial responses to be retrieved. See
58416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58417// for more information.
58418func (c *GlobalAddressesDeleteCall) Fields(s ...googleapi.Field) *GlobalAddressesDeleteCall {
58419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58420	return c
58421}
58422
58423// Context sets the context to be used in this call's Do method. Any
58424// pending HTTP request will be aborted if the provided context is
58425// canceled.
58426func (c *GlobalAddressesDeleteCall) Context(ctx context.Context) *GlobalAddressesDeleteCall {
58427	c.ctx_ = ctx
58428	return c
58429}
58430
58431// Header returns an http.Header that can be modified by the caller to
58432// add HTTP headers to the request.
58433func (c *GlobalAddressesDeleteCall) Header() http.Header {
58434	if c.header_ == nil {
58435		c.header_ = make(http.Header)
58436	}
58437	return c.header_
58438}
58439
58440func (c *GlobalAddressesDeleteCall) doRequest(alt string) (*http.Response, error) {
58441	reqHeaders := make(http.Header)
58442	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58443	for k, v := range c.header_ {
58444		reqHeaders[k] = v
58445	}
58446	reqHeaders.Set("User-Agent", c.s.userAgent())
58447	var body io.Reader = nil
58448	c.urlParams_.Set("alt", alt)
58449	c.urlParams_.Set("prettyPrint", "false")
58450	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
58451	urls += "?" + c.urlParams_.Encode()
58452	req, err := http.NewRequest("DELETE", urls, body)
58453	if err != nil {
58454		return nil, err
58455	}
58456	req.Header = reqHeaders
58457	googleapi.Expand(req.URL, map[string]string{
58458		"project": c.project,
58459		"address": c.address,
58460	})
58461	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58462}
58463
58464// Do executes the "compute.globalAddresses.delete" call.
58465// Exactly one of *Operation or error will be non-nil. Any non-2xx
58466// status code is an error. Response headers are in either
58467// *Operation.ServerResponse.Header or (if a response was returned at
58468// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58469// to check whether the returned error was because
58470// http.StatusNotModified was returned.
58471func (c *GlobalAddressesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58472	gensupport.SetOptions(c.urlParams_, opts...)
58473	res, err := c.doRequest("json")
58474	if res != nil && res.StatusCode == http.StatusNotModified {
58475		if res.Body != nil {
58476			res.Body.Close()
58477		}
58478		return nil, &googleapi.Error{
58479			Code:   res.StatusCode,
58480			Header: res.Header,
58481		}
58482	}
58483	if err != nil {
58484		return nil, err
58485	}
58486	defer googleapi.CloseBody(res)
58487	if err := googleapi.CheckResponse(res); err != nil {
58488		return nil, err
58489	}
58490	ret := &Operation{
58491		ServerResponse: googleapi.ServerResponse{
58492			Header:         res.Header,
58493			HTTPStatusCode: res.StatusCode,
58494		},
58495	}
58496	target := &ret
58497	if err := gensupport.DecodeResponse(target, res); err != nil {
58498		return nil, err
58499	}
58500	return ret, nil
58501	// {
58502	//   "description": "Deletes the specified address resource.",
58503	//   "httpMethod": "DELETE",
58504	//   "id": "compute.globalAddresses.delete",
58505	//   "parameterOrder": [
58506	//     "project",
58507	//     "address"
58508	//   ],
58509	//   "parameters": {
58510	//     "address": {
58511	//       "description": "Name of the address resource to delete.",
58512	//       "location": "path",
58513	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58514	//       "required": true,
58515	//       "type": "string"
58516	//     },
58517	//     "project": {
58518	//       "description": "Project ID for this request.",
58519	//       "location": "path",
58520	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58521	//       "required": true,
58522	//       "type": "string"
58523	//     },
58524	//     "requestId": {
58525	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58526	//       "location": "query",
58527	//       "type": "string"
58528	//     }
58529	//   },
58530	//   "path": "{project}/global/addresses/{address}",
58531	//   "response": {
58532	//     "$ref": "Operation"
58533	//   },
58534	//   "scopes": [
58535	//     "https://www.googleapis.com/auth/cloud-platform",
58536	//     "https://www.googleapis.com/auth/compute"
58537	//   ]
58538	// }
58539
58540}
58541
58542// method id "compute.globalAddresses.get":
58543
58544type GlobalAddressesGetCall struct {
58545	s            *Service
58546	project      string
58547	address      string
58548	urlParams_   gensupport.URLParams
58549	ifNoneMatch_ string
58550	ctx_         context.Context
58551	header_      http.Header
58552}
58553
58554// Get: Returns the specified address resource. Gets a list of available
58555// addresses by making a list() request.
58556// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/get
58557func (r *GlobalAddressesService) Get(project string, address string) *GlobalAddressesGetCall {
58558	c := &GlobalAddressesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58559	c.project = project
58560	c.address = address
58561	return c
58562}
58563
58564// Fields allows partial responses to be retrieved. See
58565// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58566// for more information.
58567func (c *GlobalAddressesGetCall) Fields(s ...googleapi.Field) *GlobalAddressesGetCall {
58568	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58569	return c
58570}
58571
58572// IfNoneMatch sets the optional parameter which makes the operation
58573// fail if the object's ETag matches the given value. This is useful for
58574// getting updates only after the object has changed since the last
58575// request. Use googleapi.IsNotModified to check whether the response
58576// error from Do is the result of In-None-Match.
58577func (c *GlobalAddressesGetCall) IfNoneMatch(entityTag string) *GlobalAddressesGetCall {
58578	c.ifNoneMatch_ = entityTag
58579	return c
58580}
58581
58582// Context sets the context to be used in this call's Do method. Any
58583// pending HTTP request will be aborted if the provided context is
58584// canceled.
58585func (c *GlobalAddressesGetCall) Context(ctx context.Context) *GlobalAddressesGetCall {
58586	c.ctx_ = ctx
58587	return c
58588}
58589
58590// Header returns an http.Header that can be modified by the caller to
58591// add HTTP headers to the request.
58592func (c *GlobalAddressesGetCall) Header() http.Header {
58593	if c.header_ == nil {
58594		c.header_ = make(http.Header)
58595	}
58596	return c.header_
58597}
58598
58599func (c *GlobalAddressesGetCall) doRequest(alt string) (*http.Response, error) {
58600	reqHeaders := make(http.Header)
58601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58602	for k, v := range c.header_ {
58603		reqHeaders[k] = v
58604	}
58605	reqHeaders.Set("User-Agent", c.s.userAgent())
58606	if c.ifNoneMatch_ != "" {
58607		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58608	}
58609	var body io.Reader = nil
58610	c.urlParams_.Set("alt", alt)
58611	c.urlParams_.Set("prettyPrint", "false")
58612	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{address}")
58613	urls += "?" + c.urlParams_.Encode()
58614	req, err := http.NewRequest("GET", urls, body)
58615	if err != nil {
58616		return nil, err
58617	}
58618	req.Header = reqHeaders
58619	googleapi.Expand(req.URL, map[string]string{
58620		"project": c.project,
58621		"address": c.address,
58622	})
58623	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58624}
58625
58626// Do executes the "compute.globalAddresses.get" call.
58627// Exactly one of *Address or error will be non-nil. Any non-2xx status
58628// code is an error. Response headers are in either
58629// *Address.ServerResponse.Header or (if a response was returned at all)
58630// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
58631// check whether the returned error was because http.StatusNotModified
58632// was returned.
58633func (c *GlobalAddressesGetCall) Do(opts ...googleapi.CallOption) (*Address, error) {
58634	gensupport.SetOptions(c.urlParams_, opts...)
58635	res, err := c.doRequest("json")
58636	if res != nil && res.StatusCode == http.StatusNotModified {
58637		if res.Body != nil {
58638			res.Body.Close()
58639		}
58640		return nil, &googleapi.Error{
58641			Code:   res.StatusCode,
58642			Header: res.Header,
58643		}
58644	}
58645	if err != nil {
58646		return nil, err
58647	}
58648	defer googleapi.CloseBody(res)
58649	if err := googleapi.CheckResponse(res); err != nil {
58650		return nil, err
58651	}
58652	ret := &Address{
58653		ServerResponse: googleapi.ServerResponse{
58654			Header:         res.Header,
58655			HTTPStatusCode: res.StatusCode,
58656		},
58657	}
58658	target := &ret
58659	if err := gensupport.DecodeResponse(target, res); err != nil {
58660		return nil, err
58661	}
58662	return ret, nil
58663	// {
58664	//   "description": "Returns the specified address resource. Gets a list of available addresses by making a list() request.",
58665	//   "httpMethod": "GET",
58666	//   "id": "compute.globalAddresses.get",
58667	//   "parameterOrder": [
58668	//     "project",
58669	//     "address"
58670	//   ],
58671	//   "parameters": {
58672	//     "address": {
58673	//       "description": "Name of the address resource to return.",
58674	//       "location": "path",
58675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
58676	//       "required": true,
58677	//       "type": "string"
58678	//     },
58679	//     "project": {
58680	//       "description": "Project ID for this request.",
58681	//       "location": "path",
58682	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58683	//       "required": true,
58684	//       "type": "string"
58685	//     }
58686	//   },
58687	//   "path": "{project}/global/addresses/{address}",
58688	//   "response": {
58689	//     "$ref": "Address"
58690	//   },
58691	//   "scopes": [
58692	//     "https://www.googleapis.com/auth/cloud-platform",
58693	//     "https://www.googleapis.com/auth/compute",
58694	//     "https://www.googleapis.com/auth/compute.readonly"
58695	//   ]
58696	// }
58697
58698}
58699
58700// method id "compute.globalAddresses.insert":
58701
58702type GlobalAddressesInsertCall struct {
58703	s          *Service
58704	project    string
58705	address    *Address
58706	urlParams_ gensupport.URLParams
58707	ctx_       context.Context
58708	header_    http.Header
58709}
58710
58711// Insert: Creates an address resource in the specified project by using
58712// the data included in the request.
58713// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/insert
58714func (r *GlobalAddressesService) Insert(project string, address *Address) *GlobalAddressesInsertCall {
58715	c := &GlobalAddressesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58716	c.project = project
58717	c.address = address
58718	return c
58719}
58720
58721// RequestId sets the optional parameter "requestId": An optional
58722// request ID to identify requests. Specify a unique request ID so that
58723// if you must retry your request, the server will know to ignore the
58724// request if it has already been completed.
58725//
58726// For example, consider a situation where you make an initial request
58727// and the request times out. If you make the request again with the
58728// same request ID, the server can check if original operation with the
58729// same request ID was received, and if so, will ignore the second
58730// request. This prevents clients from accidentally creating duplicate
58731// commitments.
58732//
58733// The request ID must be a valid UUID with the exception that zero UUID
58734// is not supported (00000000-0000-0000-0000-000000000000).
58735func (c *GlobalAddressesInsertCall) RequestId(requestId string) *GlobalAddressesInsertCall {
58736	c.urlParams_.Set("requestId", requestId)
58737	return c
58738}
58739
58740// Fields allows partial responses to be retrieved. See
58741// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58742// for more information.
58743func (c *GlobalAddressesInsertCall) Fields(s ...googleapi.Field) *GlobalAddressesInsertCall {
58744	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58745	return c
58746}
58747
58748// Context sets the context to be used in this call's Do method. Any
58749// pending HTTP request will be aborted if the provided context is
58750// canceled.
58751func (c *GlobalAddressesInsertCall) Context(ctx context.Context) *GlobalAddressesInsertCall {
58752	c.ctx_ = ctx
58753	return c
58754}
58755
58756// Header returns an http.Header that can be modified by the caller to
58757// add HTTP headers to the request.
58758func (c *GlobalAddressesInsertCall) Header() http.Header {
58759	if c.header_ == nil {
58760		c.header_ = make(http.Header)
58761	}
58762	return c.header_
58763}
58764
58765func (c *GlobalAddressesInsertCall) doRequest(alt string) (*http.Response, error) {
58766	reqHeaders := make(http.Header)
58767	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58768	for k, v := range c.header_ {
58769		reqHeaders[k] = v
58770	}
58771	reqHeaders.Set("User-Agent", c.s.userAgent())
58772	var body io.Reader = nil
58773	body, err := googleapi.WithoutDataWrapper.JSONReader(c.address)
58774	if err != nil {
58775		return nil, err
58776	}
58777	reqHeaders.Set("Content-Type", "application/json")
58778	c.urlParams_.Set("alt", alt)
58779	c.urlParams_.Set("prettyPrint", "false")
58780	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
58781	urls += "?" + c.urlParams_.Encode()
58782	req, err := http.NewRequest("POST", urls, body)
58783	if err != nil {
58784		return nil, err
58785	}
58786	req.Header = reqHeaders
58787	googleapi.Expand(req.URL, map[string]string{
58788		"project": c.project,
58789	})
58790	return gensupport.SendRequest(c.ctx_, c.s.client, req)
58791}
58792
58793// Do executes the "compute.globalAddresses.insert" call.
58794// Exactly one of *Operation or error will be non-nil. Any non-2xx
58795// status code is an error. Response headers are in either
58796// *Operation.ServerResponse.Header or (if a response was returned at
58797// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
58798// to check whether the returned error was because
58799// http.StatusNotModified was returned.
58800func (c *GlobalAddressesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
58801	gensupport.SetOptions(c.urlParams_, opts...)
58802	res, err := c.doRequest("json")
58803	if res != nil && res.StatusCode == http.StatusNotModified {
58804		if res.Body != nil {
58805			res.Body.Close()
58806		}
58807		return nil, &googleapi.Error{
58808			Code:   res.StatusCode,
58809			Header: res.Header,
58810		}
58811	}
58812	if err != nil {
58813		return nil, err
58814	}
58815	defer googleapi.CloseBody(res)
58816	if err := googleapi.CheckResponse(res); err != nil {
58817		return nil, err
58818	}
58819	ret := &Operation{
58820		ServerResponse: googleapi.ServerResponse{
58821			Header:         res.Header,
58822			HTTPStatusCode: res.StatusCode,
58823		},
58824	}
58825	target := &ret
58826	if err := gensupport.DecodeResponse(target, res); err != nil {
58827		return nil, err
58828	}
58829	return ret, nil
58830	// {
58831	//   "description": "Creates an address resource in the specified project by using the data included in the request.",
58832	//   "httpMethod": "POST",
58833	//   "id": "compute.globalAddresses.insert",
58834	//   "parameterOrder": [
58835	//     "project"
58836	//   ],
58837	//   "parameters": {
58838	//     "project": {
58839	//       "description": "Project ID for this request.",
58840	//       "location": "path",
58841	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
58842	//       "required": true,
58843	//       "type": "string"
58844	//     },
58845	//     "requestId": {
58846	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
58847	//       "location": "query",
58848	//       "type": "string"
58849	//     }
58850	//   },
58851	//   "path": "{project}/global/addresses",
58852	//   "request": {
58853	//     "$ref": "Address"
58854	//   },
58855	//   "response": {
58856	//     "$ref": "Operation"
58857	//   },
58858	//   "scopes": [
58859	//     "https://www.googleapis.com/auth/cloud-platform",
58860	//     "https://www.googleapis.com/auth/compute"
58861	//   ]
58862	// }
58863
58864}
58865
58866// method id "compute.globalAddresses.list":
58867
58868type GlobalAddressesListCall struct {
58869	s            *Service
58870	project      string
58871	urlParams_   gensupport.URLParams
58872	ifNoneMatch_ string
58873	ctx_         context.Context
58874	header_      http.Header
58875}
58876
58877// List: Retrieves a list of global addresses.
58878// For details, see https://cloud.google.com/compute/docs/reference/latest/globalAddresses/list
58879func (r *GlobalAddressesService) List(project string) *GlobalAddressesListCall {
58880	c := &GlobalAddressesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
58881	c.project = project
58882	return c
58883}
58884
58885// Filter sets the optional parameter "filter": A filter expression that
58886// filters resources listed in the response. The expression must specify
58887// the field name, a comparison operator, and the value that you want to
58888// use for filtering. The value must be a string, a number, or a
58889// boolean. The comparison operator must be either =, !=, >, or <.
58890//
58891// For example, if you are filtering Compute Engine instances, you can
58892// exclude instances named example-instance by specifying name !=
58893// example-instance.
58894//
58895// You can also filter nested fields. For example, you could specify
58896// scheduling.automaticRestart = false to include instances only if they
58897// are not scheduled for automatic restarts. You can use filtering on
58898// nested fields to filter based on resource labels.
58899//
58900// To filter on multiple expressions, provide each separate expression
58901// within parentheses. For example, (scheduling.automaticRestart = true)
58902// (cpuPlatform = "Intel Skylake"). By default, each expression is an
58903// AND expression. However, you can include AND and OR expressions
58904// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
58905// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
58906// true).
58907func (c *GlobalAddressesListCall) Filter(filter string) *GlobalAddressesListCall {
58908	c.urlParams_.Set("filter", filter)
58909	return c
58910}
58911
58912// MaxResults sets the optional parameter "maxResults": The maximum
58913// number of results per page that should be returned. If the number of
58914// available results is larger than maxResults, Compute Engine returns a
58915// nextPageToken that can be used to get the next page of results in
58916// subsequent list requests. Acceptable values are 0 to 500, inclusive.
58917// (Default: 500)
58918func (c *GlobalAddressesListCall) MaxResults(maxResults int64) *GlobalAddressesListCall {
58919	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
58920	return c
58921}
58922
58923// OrderBy sets the optional parameter "orderBy": Sorts list results by
58924// a certain order. By default, results are returned in alphanumerical
58925// order based on the resource name.
58926//
58927// You can also sort results in descending order based on the creation
58928// timestamp using orderBy="creationTimestamp desc". This sorts results
58929// based on the creationTimestamp field in reverse chronological order
58930// (newest result first). Use this to sort resources like operations so
58931// that the newest operation is returned first.
58932//
58933// Currently, only sorting by name or creationTimestamp desc is
58934// supported.
58935func (c *GlobalAddressesListCall) OrderBy(orderBy string) *GlobalAddressesListCall {
58936	c.urlParams_.Set("orderBy", orderBy)
58937	return c
58938}
58939
58940// PageToken sets the optional parameter "pageToken": Specifies a page
58941// token to use. Set pageToken to the nextPageToken returned by a
58942// previous list request to get the next page of results.
58943func (c *GlobalAddressesListCall) PageToken(pageToken string) *GlobalAddressesListCall {
58944	c.urlParams_.Set("pageToken", pageToken)
58945	return c
58946}
58947
58948// Fields allows partial responses to be retrieved. See
58949// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
58950// for more information.
58951func (c *GlobalAddressesListCall) Fields(s ...googleapi.Field) *GlobalAddressesListCall {
58952	c.urlParams_.Set("fields", googleapi.CombineFields(s))
58953	return c
58954}
58955
58956// IfNoneMatch sets the optional parameter which makes the operation
58957// fail if the object's ETag matches the given value. This is useful for
58958// getting updates only after the object has changed since the last
58959// request. Use googleapi.IsNotModified to check whether the response
58960// error from Do is the result of In-None-Match.
58961func (c *GlobalAddressesListCall) IfNoneMatch(entityTag string) *GlobalAddressesListCall {
58962	c.ifNoneMatch_ = entityTag
58963	return c
58964}
58965
58966// Context sets the context to be used in this call's Do method. Any
58967// pending HTTP request will be aborted if the provided context is
58968// canceled.
58969func (c *GlobalAddressesListCall) Context(ctx context.Context) *GlobalAddressesListCall {
58970	c.ctx_ = ctx
58971	return c
58972}
58973
58974// Header returns an http.Header that can be modified by the caller to
58975// add HTTP headers to the request.
58976func (c *GlobalAddressesListCall) Header() http.Header {
58977	if c.header_ == nil {
58978		c.header_ = make(http.Header)
58979	}
58980	return c.header_
58981}
58982
58983func (c *GlobalAddressesListCall) doRequest(alt string) (*http.Response, error) {
58984	reqHeaders := make(http.Header)
58985	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
58986	for k, v := range c.header_ {
58987		reqHeaders[k] = v
58988	}
58989	reqHeaders.Set("User-Agent", c.s.userAgent())
58990	if c.ifNoneMatch_ != "" {
58991		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
58992	}
58993	var body io.Reader = nil
58994	c.urlParams_.Set("alt", alt)
58995	c.urlParams_.Set("prettyPrint", "false")
58996	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses")
58997	urls += "?" + c.urlParams_.Encode()
58998	req, err := http.NewRequest("GET", urls, body)
58999	if err != nil {
59000		return nil, err
59001	}
59002	req.Header = reqHeaders
59003	googleapi.Expand(req.URL, map[string]string{
59004		"project": c.project,
59005	})
59006	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59007}
59008
59009// Do executes the "compute.globalAddresses.list" call.
59010// Exactly one of *AddressList or error will be non-nil. Any non-2xx
59011// status code is an error. Response headers are in either
59012// *AddressList.ServerResponse.Header or (if a response was returned at
59013// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59014// to check whether the returned error was because
59015// http.StatusNotModified was returned.
59016func (c *GlobalAddressesListCall) Do(opts ...googleapi.CallOption) (*AddressList, error) {
59017	gensupport.SetOptions(c.urlParams_, opts...)
59018	res, err := c.doRequest("json")
59019	if res != nil && res.StatusCode == http.StatusNotModified {
59020		if res.Body != nil {
59021			res.Body.Close()
59022		}
59023		return nil, &googleapi.Error{
59024			Code:   res.StatusCode,
59025			Header: res.Header,
59026		}
59027	}
59028	if err != nil {
59029		return nil, err
59030	}
59031	defer googleapi.CloseBody(res)
59032	if err := googleapi.CheckResponse(res); err != nil {
59033		return nil, err
59034	}
59035	ret := &AddressList{
59036		ServerResponse: googleapi.ServerResponse{
59037			Header:         res.Header,
59038			HTTPStatusCode: res.StatusCode,
59039		},
59040	}
59041	target := &ret
59042	if err := gensupport.DecodeResponse(target, res); err != nil {
59043		return nil, err
59044	}
59045	return ret, nil
59046	// {
59047	//   "description": "Retrieves a list of global addresses.",
59048	//   "httpMethod": "GET",
59049	//   "id": "compute.globalAddresses.list",
59050	//   "parameterOrder": [
59051	//     "project"
59052	//   ],
59053	//   "parameters": {
59054	//     "filter": {
59055	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
59056	//       "location": "query",
59057	//       "type": "string"
59058	//     },
59059	//     "maxResults": {
59060	//       "default": "500",
59061	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
59062	//       "format": "uint32",
59063	//       "location": "query",
59064	//       "minimum": "0",
59065	//       "type": "integer"
59066	//     },
59067	//     "orderBy": {
59068	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
59069	//       "location": "query",
59070	//       "type": "string"
59071	//     },
59072	//     "pageToken": {
59073	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
59074	//       "location": "query",
59075	//       "type": "string"
59076	//     },
59077	//     "project": {
59078	//       "description": "Project ID for this request.",
59079	//       "location": "path",
59080	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59081	//       "required": true,
59082	//       "type": "string"
59083	//     }
59084	//   },
59085	//   "path": "{project}/global/addresses",
59086	//   "response": {
59087	//     "$ref": "AddressList"
59088	//   },
59089	//   "scopes": [
59090	//     "https://www.googleapis.com/auth/cloud-platform",
59091	//     "https://www.googleapis.com/auth/compute",
59092	//     "https://www.googleapis.com/auth/compute.readonly"
59093	//   ]
59094	// }
59095
59096}
59097
59098// Pages invokes f for each page of results.
59099// A non-nil error returned from f will halt the iteration.
59100// The provided context supersedes any context provided to the Context method.
59101func (c *GlobalAddressesListCall) Pages(ctx context.Context, f func(*AddressList) error) error {
59102	c.ctx_ = ctx
59103	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
59104	for {
59105		x, err := c.Do()
59106		if err != nil {
59107			return err
59108		}
59109		if err := f(x); err != nil {
59110			return err
59111		}
59112		if x.NextPageToken == "" {
59113			return nil
59114		}
59115		c.PageToken(x.NextPageToken)
59116	}
59117}
59118
59119// method id "compute.globalAddresses.setLabels":
59120
59121type GlobalAddressesSetLabelsCall struct {
59122	s                      *Service
59123	project                string
59124	resource               string
59125	globalsetlabelsrequest *GlobalSetLabelsRequest
59126	urlParams_             gensupport.URLParams
59127	ctx_                   context.Context
59128	header_                http.Header
59129}
59130
59131// SetLabels: Sets the labels on a GlobalAddress. To learn more about
59132// labels, read the Labeling Resources documentation.
59133func (r *GlobalAddressesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalAddressesSetLabelsCall {
59134	c := &GlobalAddressesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59135	c.project = project
59136	c.resource = resource
59137	c.globalsetlabelsrequest = globalsetlabelsrequest
59138	return c
59139}
59140
59141// Fields allows partial responses to be retrieved. See
59142// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59143// for more information.
59144func (c *GlobalAddressesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalAddressesSetLabelsCall {
59145	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59146	return c
59147}
59148
59149// Context sets the context to be used in this call's Do method. Any
59150// pending HTTP request will be aborted if the provided context is
59151// canceled.
59152func (c *GlobalAddressesSetLabelsCall) Context(ctx context.Context) *GlobalAddressesSetLabelsCall {
59153	c.ctx_ = ctx
59154	return c
59155}
59156
59157// Header returns an http.Header that can be modified by the caller to
59158// add HTTP headers to the request.
59159func (c *GlobalAddressesSetLabelsCall) Header() http.Header {
59160	if c.header_ == nil {
59161		c.header_ = make(http.Header)
59162	}
59163	return c.header_
59164}
59165
59166func (c *GlobalAddressesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
59167	reqHeaders := make(http.Header)
59168	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59169	for k, v := range c.header_ {
59170		reqHeaders[k] = v
59171	}
59172	reqHeaders.Set("User-Agent", c.s.userAgent())
59173	var body io.Reader = nil
59174	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
59175	if err != nil {
59176		return nil, err
59177	}
59178	reqHeaders.Set("Content-Type", "application/json")
59179	c.urlParams_.Set("alt", alt)
59180	c.urlParams_.Set("prettyPrint", "false")
59181	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/setLabels")
59182	urls += "?" + c.urlParams_.Encode()
59183	req, err := http.NewRequest("POST", urls, body)
59184	if err != nil {
59185		return nil, err
59186	}
59187	req.Header = reqHeaders
59188	googleapi.Expand(req.URL, map[string]string{
59189		"project":  c.project,
59190		"resource": c.resource,
59191	})
59192	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59193}
59194
59195// Do executes the "compute.globalAddresses.setLabels" call.
59196// Exactly one of *Operation or error will be non-nil. Any non-2xx
59197// status code is an error. Response headers are in either
59198// *Operation.ServerResponse.Header or (if a response was returned at
59199// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59200// to check whether the returned error was because
59201// http.StatusNotModified was returned.
59202func (c *GlobalAddressesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59203	gensupport.SetOptions(c.urlParams_, opts...)
59204	res, err := c.doRequest("json")
59205	if res != nil && res.StatusCode == http.StatusNotModified {
59206		if res.Body != nil {
59207			res.Body.Close()
59208		}
59209		return nil, &googleapi.Error{
59210			Code:   res.StatusCode,
59211			Header: res.Header,
59212		}
59213	}
59214	if err != nil {
59215		return nil, err
59216	}
59217	defer googleapi.CloseBody(res)
59218	if err := googleapi.CheckResponse(res); err != nil {
59219		return nil, err
59220	}
59221	ret := &Operation{
59222		ServerResponse: googleapi.ServerResponse{
59223			Header:         res.Header,
59224			HTTPStatusCode: res.StatusCode,
59225		},
59226	}
59227	target := &ret
59228	if err := gensupport.DecodeResponse(target, res); err != nil {
59229		return nil, err
59230	}
59231	return ret, nil
59232	// {
59233	//   "description": "Sets the labels on a GlobalAddress. To learn more about labels, read the Labeling Resources documentation.",
59234	//   "httpMethod": "POST",
59235	//   "id": "compute.globalAddresses.setLabels",
59236	//   "parameterOrder": [
59237	//     "project",
59238	//     "resource"
59239	//   ],
59240	//   "parameters": {
59241	//     "project": {
59242	//       "description": "Project ID for this request.",
59243	//       "location": "path",
59244	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59245	//       "required": true,
59246	//       "type": "string"
59247	//     },
59248	//     "resource": {
59249	//       "description": "Name or id of the resource for this request.",
59250	//       "location": "path",
59251	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59252	//       "required": true,
59253	//       "type": "string"
59254	//     }
59255	//   },
59256	//   "path": "{project}/global/addresses/{resource}/setLabels",
59257	//   "request": {
59258	//     "$ref": "GlobalSetLabelsRequest"
59259	//   },
59260	//   "response": {
59261	//     "$ref": "Operation"
59262	//   },
59263	//   "scopes": [
59264	//     "https://www.googleapis.com/auth/cloud-platform",
59265	//     "https://www.googleapis.com/auth/compute"
59266	//   ]
59267	// }
59268
59269}
59270
59271// method id "compute.globalAddresses.testIamPermissions":
59272
59273type GlobalAddressesTestIamPermissionsCall struct {
59274	s                      *Service
59275	project                string
59276	resource               string
59277	testpermissionsrequest *TestPermissionsRequest
59278	urlParams_             gensupport.URLParams
59279	ctx_                   context.Context
59280	header_                http.Header
59281}
59282
59283// TestIamPermissions: Returns permissions that a caller has on the
59284// specified resource.
59285func (r *GlobalAddressesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalAddressesTestIamPermissionsCall {
59286	c := &GlobalAddressesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59287	c.project = project
59288	c.resource = resource
59289	c.testpermissionsrequest = testpermissionsrequest
59290	return c
59291}
59292
59293// Fields allows partial responses to be retrieved. See
59294// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59295// for more information.
59296func (c *GlobalAddressesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalAddressesTestIamPermissionsCall {
59297	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59298	return c
59299}
59300
59301// Context sets the context to be used in this call's Do method. Any
59302// pending HTTP request will be aborted if the provided context is
59303// canceled.
59304func (c *GlobalAddressesTestIamPermissionsCall) Context(ctx context.Context) *GlobalAddressesTestIamPermissionsCall {
59305	c.ctx_ = ctx
59306	return c
59307}
59308
59309// Header returns an http.Header that can be modified by the caller to
59310// add HTTP headers to the request.
59311func (c *GlobalAddressesTestIamPermissionsCall) Header() http.Header {
59312	if c.header_ == nil {
59313		c.header_ = make(http.Header)
59314	}
59315	return c.header_
59316}
59317
59318func (c *GlobalAddressesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
59319	reqHeaders := make(http.Header)
59320	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59321	for k, v := range c.header_ {
59322		reqHeaders[k] = v
59323	}
59324	reqHeaders.Set("User-Agent", c.s.userAgent())
59325	var body io.Reader = nil
59326	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
59327	if err != nil {
59328		return nil, err
59329	}
59330	reqHeaders.Set("Content-Type", "application/json")
59331	c.urlParams_.Set("alt", alt)
59332	c.urlParams_.Set("prettyPrint", "false")
59333	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/addresses/{resource}/testIamPermissions")
59334	urls += "?" + c.urlParams_.Encode()
59335	req, err := http.NewRequest("POST", urls, body)
59336	if err != nil {
59337		return nil, err
59338	}
59339	req.Header = reqHeaders
59340	googleapi.Expand(req.URL, map[string]string{
59341		"project":  c.project,
59342		"resource": c.resource,
59343	})
59344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59345}
59346
59347// Do executes the "compute.globalAddresses.testIamPermissions" call.
59348// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
59349// non-2xx status code is an error. Response headers are in either
59350// *TestPermissionsResponse.ServerResponse.Header or (if a response was
59351// returned at all) in error.(*googleapi.Error).Header. Use
59352// googleapi.IsNotModified to check whether the returned error was
59353// because http.StatusNotModified was returned.
59354func (c *GlobalAddressesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
59355	gensupport.SetOptions(c.urlParams_, opts...)
59356	res, err := c.doRequest("json")
59357	if res != nil && res.StatusCode == http.StatusNotModified {
59358		if res.Body != nil {
59359			res.Body.Close()
59360		}
59361		return nil, &googleapi.Error{
59362			Code:   res.StatusCode,
59363			Header: res.Header,
59364		}
59365	}
59366	if err != nil {
59367		return nil, err
59368	}
59369	defer googleapi.CloseBody(res)
59370	if err := googleapi.CheckResponse(res); err != nil {
59371		return nil, err
59372	}
59373	ret := &TestPermissionsResponse{
59374		ServerResponse: googleapi.ServerResponse{
59375			Header:         res.Header,
59376			HTTPStatusCode: res.StatusCode,
59377		},
59378	}
59379	target := &ret
59380	if err := gensupport.DecodeResponse(target, res); err != nil {
59381		return nil, err
59382	}
59383	return ret, nil
59384	// {
59385	//   "description": "Returns permissions that a caller has on the specified resource.",
59386	//   "httpMethod": "POST",
59387	//   "id": "compute.globalAddresses.testIamPermissions",
59388	//   "parameterOrder": [
59389	//     "project",
59390	//     "resource"
59391	//   ],
59392	//   "parameters": {
59393	//     "project": {
59394	//       "description": "Project ID for this request.",
59395	//       "location": "path",
59396	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59397	//       "required": true,
59398	//       "type": "string"
59399	//     },
59400	//     "resource": {
59401	//       "description": "Name or id of the resource for this request.",
59402	//       "location": "path",
59403	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59404	//       "required": true,
59405	//       "type": "string"
59406	//     }
59407	//   },
59408	//   "path": "{project}/global/addresses/{resource}/testIamPermissions",
59409	//   "request": {
59410	//     "$ref": "TestPermissionsRequest"
59411	//   },
59412	//   "response": {
59413	//     "$ref": "TestPermissionsResponse"
59414	//   },
59415	//   "scopes": [
59416	//     "https://www.googleapis.com/auth/cloud-platform",
59417	//     "https://www.googleapis.com/auth/compute",
59418	//     "https://www.googleapis.com/auth/compute.readonly"
59419	//   ]
59420	// }
59421
59422}
59423
59424// method id "compute.globalForwardingRules.delete":
59425
59426type GlobalForwardingRulesDeleteCall struct {
59427	s              *Service
59428	project        string
59429	forwardingRule string
59430	urlParams_     gensupport.URLParams
59431	ctx_           context.Context
59432	header_        http.Header
59433}
59434
59435// Delete: Deletes the specified GlobalForwardingRule resource.
59436// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/delete
59437func (r *GlobalForwardingRulesService) Delete(project string, forwardingRule string) *GlobalForwardingRulesDeleteCall {
59438	c := &GlobalForwardingRulesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59439	c.project = project
59440	c.forwardingRule = forwardingRule
59441	return c
59442}
59443
59444// RequestId sets the optional parameter "requestId": An optional
59445// request ID to identify requests. Specify a unique request ID so that
59446// if you must retry your request, the server will know to ignore the
59447// request if it has already been completed.
59448//
59449// For example, consider a situation where you make an initial request
59450// and the request times out. If you make the request again with the
59451// same request ID, the server can check if original operation with the
59452// same request ID was received, and if so, will ignore the second
59453// request. This prevents clients from accidentally creating duplicate
59454// commitments.
59455//
59456// The request ID must be a valid UUID with the exception that zero UUID
59457// is not supported (00000000-0000-0000-0000-000000000000).
59458func (c *GlobalForwardingRulesDeleteCall) RequestId(requestId string) *GlobalForwardingRulesDeleteCall {
59459	c.urlParams_.Set("requestId", requestId)
59460	return c
59461}
59462
59463// Fields allows partial responses to be retrieved. See
59464// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59465// for more information.
59466func (c *GlobalForwardingRulesDeleteCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesDeleteCall {
59467	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59468	return c
59469}
59470
59471// Context sets the context to be used in this call's Do method. Any
59472// pending HTTP request will be aborted if the provided context is
59473// canceled.
59474func (c *GlobalForwardingRulesDeleteCall) Context(ctx context.Context) *GlobalForwardingRulesDeleteCall {
59475	c.ctx_ = ctx
59476	return c
59477}
59478
59479// Header returns an http.Header that can be modified by the caller to
59480// add HTTP headers to the request.
59481func (c *GlobalForwardingRulesDeleteCall) Header() http.Header {
59482	if c.header_ == nil {
59483		c.header_ = make(http.Header)
59484	}
59485	return c.header_
59486}
59487
59488func (c *GlobalForwardingRulesDeleteCall) doRequest(alt string) (*http.Response, error) {
59489	reqHeaders := make(http.Header)
59490	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59491	for k, v := range c.header_ {
59492		reqHeaders[k] = v
59493	}
59494	reqHeaders.Set("User-Agent", c.s.userAgent())
59495	var body io.Reader = nil
59496	c.urlParams_.Set("alt", alt)
59497	c.urlParams_.Set("prettyPrint", "false")
59498	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
59499	urls += "?" + c.urlParams_.Encode()
59500	req, err := http.NewRequest("DELETE", urls, body)
59501	if err != nil {
59502		return nil, err
59503	}
59504	req.Header = reqHeaders
59505	googleapi.Expand(req.URL, map[string]string{
59506		"project":        c.project,
59507		"forwardingRule": c.forwardingRule,
59508	})
59509	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59510}
59511
59512// Do executes the "compute.globalForwardingRules.delete" call.
59513// Exactly one of *Operation or error will be non-nil. Any non-2xx
59514// status code is an error. Response headers are in either
59515// *Operation.ServerResponse.Header or (if a response was returned at
59516// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59517// to check whether the returned error was because
59518// http.StatusNotModified was returned.
59519func (c *GlobalForwardingRulesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59520	gensupport.SetOptions(c.urlParams_, opts...)
59521	res, err := c.doRequest("json")
59522	if res != nil && res.StatusCode == http.StatusNotModified {
59523		if res.Body != nil {
59524			res.Body.Close()
59525		}
59526		return nil, &googleapi.Error{
59527			Code:   res.StatusCode,
59528			Header: res.Header,
59529		}
59530	}
59531	if err != nil {
59532		return nil, err
59533	}
59534	defer googleapi.CloseBody(res)
59535	if err := googleapi.CheckResponse(res); err != nil {
59536		return nil, err
59537	}
59538	ret := &Operation{
59539		ServerResponse: googleapi.ServerResponse{
59540			Header:         res.Header,
59541			HTTPStatusCode: res.StatusCode,
59542		},
59543	}
59544	target := &ret
59545	if err := gensupport.DecodeResponse(target, res); err != nil {
59546		return nil, err
59547	}
59548	return ret, nil
59549	// {
59550	//   "description": "Deletes the specified GlobalForwardingRule resource.",
59551	//   "httpMethod": "DELETE",
59552	//   "id": "compute.globalForwardingRules.delete",
59553	//   "parameterOrder": [
59554	//     "project",
59555	//     "forwardingRule"
59556	//   ],
59557	//   "parameters": {
59558	//     "forwardingRule": {
59559	//       "description": "Name of the ForwardingRule resource to delete.",
59560	//       "location": "path",
59561	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59562	//       "required": true,
59563	//       "type": "string"
59564	//     },
59565	//     "project": {
59566	//       "description": "Project ID for this request.",
59567	//       "location": "path",
59568	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59569	//       "required": true,
59570	//       "type": "string"
59571	//     },
59572	//     "requestId": {
59573	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59574	//       "location": "query",
59575	//       "type": "string"
59576	//     }
59577	//   },
59578	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
59579	//   "response": {
59580	//     "$ref": "Operation"
59581	//   },
59582	//   "scopes": [
59583	//     "https://www.googleapis.com/auth/cloud-platform",
59584	//     "https://www.googleapis.com/auth/compute"
59585	//   ]
59586	// }
59587
59588}
59589
59590// method id "compute.globalForwardingRules.get":
59591
59592type GlobalForwardingRulesGetCall struct {
59593	s              *Service
59594	project        string
59595	forwardingRule string
59596	urlParams_     gensupport.URLParams
59597	ifNoneMatch_   string
59598	ctx_           context.Context
59599	header_        http.Header
59600}
59601
59602// Get: Returns the specified GlobalForwardingRule resource. Gets a list
59603// of available forwarding rules by making a list() request.
59604// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/get
59605func (r *GlobalForwardingRulesService) Get(project string, forwardingRule string) *GlobalForwardingRulesGetCall {
59606	c := &GlobalForwardingRulesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59607	c.project = project
59608	c.forwardingRule = forwardingRule
59609	return c
59610}
59611
59612// Fields allows partial responses to be retrieved. See
59613// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59614// for more information.
59615func (c *GlobalForwardingRulesGetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesGetCall {
59616	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59617	return c
59618}
59619
59620// IfNoneMatch sets the optional parameter which makes the operation
59621// fail if the object's ETag matches the given value. This is useful for
59622// getting updates only after the object has changed since the last
59623// request. Use googleapi.IsNotModified to check whether the response
59624// error from Do is the result of In-None-Match.
59625func (c *GlobalForwardingRulesGetCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesGetCall {
59626	c.ifNoneMatch_ = entityTag
59627	return c
59628}
59629
59630// Context sets the context to be used in this call's Do method. Any
59631// pending HTTP request will be aborted if the provided context is
59632// canceled.
59633func (c *GlobalForwardingRulesGetCall) Context(ctx context.Context) *GlobalForwardingRulesGetCall {
59634	c.ctx_ = ctx
59635	return c
59636}
59637
59638// Header returns an http.Header that can be modified by the caller to
59639// add HTTP headers to the request.
59640func (c *GlobalForwardingRulesGetCall) Header() http.Header {
59641	if c.header_ == nil {
59642		c.header_ = make(http.Header)
59643	}
59644	return c.header_
59645}
59646
59647func (c *GlobalForwardingRulesGetCall) doRequest(alt string) (*http.Response, error) {
59648	reqHeaders := make(http.Header)
59649	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59650	for k, v := range c.header_ {
59651		reqHeaders[k] = v
59652	}
59653	reqHeaders.Set("User-Agent", c.s.userAgent())
59654	if c.ifNoneMatch_ != "" {
59655		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
59656	}
59657	var body io.Reader = nil
59658	c.urlParams_.Set("alt", alt)
59659	c.urlParams_.Set("prettyPrint", "false")
59660	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
59661	urls += "?" + c.urlParams_.Encode()
59662	req, err := http.NewRequest("GET", urls, body)
59663	if err != nil {
59664		return nil, err
59665	}
59666	req.Header = reqHeaders
59667	googleapi.Expand(req.URL, map[string]string{
59668		"project":        c.project,
59669		"forwardingRule": c.forwardingRule,
59670	})
59671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59672}
59673
59674// Do executes the "compute.globalForwardingRules.get" call.
59675// Exactly one of *ForwardingRule or error will be non-nil. Any non-2xx
59676// status code is an error. Response headers are in either
59677// *ForwardingRule.ServerResponse.Header or (if a response was returned
59678// at all) in error.(*googleapi.Error).Header. Use
59679// googleapi.IsNotModified to check whether the returned error was
59680// because http.StatusNotModified was returned.
59681func (c *GlobalForwardingRulesGetCall) Do(opts ...googleapi.CallOption) (*ForwardingRule, error) {
59682	gensupport.SetOptions(c.urlParams_, opts...)
59683	res, err := c.doRequest("json")
59684	if res != nil && res.StatusCode == http.StatusNotModified {
59685		if res.Body != nil {
59686			res.Body.Close()
59687		}
59688		return nil, &googleapi.Error{
59689			Code:   res.StatusCode,
59690			Header: res.Header,
59691		}
59692	}
59693	if err != nil {
59694		return nil, err
59695	}
59696	defer googleapi.CloseBody(res)
59697	if err := googleapi.CheckResponse(res); err != nil {
59698		return nil, err
59699	}
59700	ret := &ForwardingRule{
59701		ServerResponse: googleapi.ServerResponse{
59702			Header:         res.Header,
59703			HTTPStatusCode: res.StatusCode,
59704		},
59705	}
59706	target := &ret
59707	if err := gensupport.DecodeResponse(target, res); err != nil {
59708		return nil, err
59709	}
59710	return ret, nil
59711	// {
59712	//   "description": "Returns the specified GlobalForwardingRule resource. Gets a list of available forwarding rules by making a list() request.",
59713	//   "httpMethod": "GET",
59714	//   "id": "compute.globalForwardingRules.get",
59715	//   "parameterOrder": [
59716	//     "project",
59717	//     "forwardingRule"
59718	//   ],
59719	//   "parameters": {
59720	//     "forwardingRule": {
59721	//       "description": "Name of the ForwardingRule resource to return.",
59722	//       "location": "path",
59723	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
59724	//       "required": true,
59725	//       "type": "string"
59726	//     },
59727	//     "project": {
59728	//       "description": "Project ID for this request.",
59729	//       "location": "path",
59730	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59731	//       "required": true,
59732	//       "type": "string"
59733	//     }
59734	//   },
59735	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
59736	//   "response": {
59737	//     "$ref": "ForwardingRule"
59738	//   },
59739	//   "scopes": [
59740	//     "https://www.googleapis.com/auth/cloud-platform",
59741	//     "https://www.googleapis.com/auth/compute",
59742	//     "https://www.googleapis.com/auth/compute.readonly"
59743	//   ]
59744	// }
59745
59746}
59747
59748// method id "compute.globalForwardingRules.insert":
59749
59750type GlobalForwardingRulesInsertCall struct {
59751	s              *Service
59752	project        string
59753	forwardingrule *ForwardingRule
59754	urlParams_     gensupport.URLParams
59755	ctx_           context.Context
59756	header_        http.Header
59757}
59758
59759// Insert: Creates a GlobalForwardingRule resource in the specified
59760// project using the data included in the request.
59761// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/insert
59762func (r *GlobalForwardingRulesService) Insert(project string, forwardingrule *ForwardingRule) *GlobalForwardingRulesInsertCall {
59763	c := &GlobalForwardingRulesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59764	c.project = project
59765	c.forwardingrule = forwardingrule
59766	return c
59767}
59768
59769// RequestId sets the optional parameter "requestId": An optional
59770// request ID to identify requests. Specify a unique request ID so that
59771// if you must retry your request, the server will know to ignore the
59772// request if it has already been completed.
59773//
59774// For example, consider a situation where you make an initial request
59775// and the request times out. If you make the request again with the
59776// same request ID, the server can check if original operation with the
59777// same request ID was received, and if so, will ignore the second
59778// request. This prevents clients from accidentally creating duplicate
59779// commitments.
59780//
59781// The request ID must be a valid UUID with the exception that zero UUID
59782// is not supported (00000000-0000-0000-0000-000000000000).
59783func (c *GlobalForwardingRulesInsertCall) RequestId(requestId string) *GlobalForwardingRulesInsertCall {
59784	c.urlParams_.Set("requestId", requestId)
59785	return c
59786}
59787
59788// Fields allows partial responses to be retrieved. See
59789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59790// for more information.
59791func (c *GlobalForwardingRulesInsertCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesInsertCall {
59792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
59793	return c
59794}
59795
59796// Context sets the context to be used in this call's Do method. Any
59797// pending HTTP request will be aborted if the provided context is
59798// canceled.
59799func (c *GlobalForwardingRulesInsertCall) Context(ctx context.Context) *GlobalForwardingRulesInsertCall {
59800	c.ctx_ = ctx
59801	return c
59802}
59803
59804// Header returns an http.Header that can be modified by the caller to
59805// add HTTP headers to the request.
59806func (c *GlobalForwardingRulesInsertCall) Header() http.Header {
59807	if c.header_ == nil {
59808		c.header_ = make(http.Header)
59809	}
59810	return c.header_
59811}
59812
59813func (c *GlobalForwardingRulesInsertCall) doRequest(alt string) (*http.Response, error) {
59814	reqHeaders := make(http.Header)
59815	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
59816	for k, v := range c.header_ {
59817		reqHeaders[k] = v
59818	}
59819	reqHeaders.Set("User-Agent", c.s.userAgent())
59820	var body io.Reader = nil
59821	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
59822	if err != nil {
59823		return nil, err
59824	}
59825	reqHeaders.Set("Content-Type", "application/json")
59826	c.urlParams_.Set("alt", alt)
59827	c.urlParams_.Set("prettyPrint", "false")
59828	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
59829	urls += "?" + c.urlParams_.Encode()
59830	req, err := http.NewRequest("POST", urls, body)
59831	if err != nil {
59832		return nil, err
59833	}
59834	req.Header = reqHeaders
59835	googleapi.Expand(req.URL, map[string]string{
59836		"project": c.project,
59837	})
59838	return gensupport.SendRequest(c.ctx_, c.s.client, req)
59839}
59840
59841// Do executes the "compute.globalForwardingRules.insert" call.
59842// Exactly one of *Operation or error will be non-nil. Any non-2xx
59843// status code is an error. Response headers are in either
59844// *Operation.ServerResponse.Header or (if a response was returned at
59845// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
59846// to check whether the returned error was because
59847// http.StatusNotModified was returned.
59848func (c *GlobalForwardingRulesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
59849	gensupport.SetOptions(c.urlParams_, opts...)
59850	res, err := c.doRequest("json")
59851	if res != nil && res.StatusCode == http.StatusNotModified {
59852		if res.Body != nil {
59853			res.Body.Close()
59854		}
59855		return nil, &googleapi.Error{
59856			Code:   res.StatusCode,
59857			Header: res.Header,
59858		}
59859	}
59860	if err != nil {
59861		return nil, err
59862	}
59863	defer googleapi.CloseBody(res)
59864	if err := googleapi.CheckResponse(res); err != nil {
59865		return nil, err
59866	}
59867	ret := &Operation{
59868		ServerResponse: googleapi.ServerResponse{
59869			Header:         res.Header,
59870			HTTPStatusCode: res.StatusCode,
59871		},
59872	}
59873	target := &ret
59874	if err := gensupport.DecodeResponse(target, res); err != nil {
59875		return nil, err
59876	}
59877	return ret, nil
59878	// {
59879	//   "description": "Creates a GlobalForwardingRule resource in the specified project using the data included in the request.",
59880	//   "httpMethod": "POST",
59881	//   "id": "compute.globalForwardingRules.insert",
59882	//   "parameterOrder": [
59883	//     "project"
59884	//   ],
59885	//   "parameters": {
59886	//     "project": {
59887	//       "description": "Project ID for this request.",
59888	//       "location": "path",
59889	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
59890	//       "required": true,
59891	//       "type": "string"
59892	//     },
59893	//     "requestId": {
59894	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
59895	//       "location": "query",
59896	//       "type": "string"
59897	//     }
59898	//   },
59899	//   "path": "{project}/global/forwardingRules",
59900	//   "request": {
59901	//     "$ref": "ForwardingRule"
59902	//   },
59903	//   "response": {
59904	//     "$ref": "Operation"
59905	//   },
59906	//   "scopes": [
59907	//     "https://www.googleapis.com/auth/cloud-platform",
59908	//     "https://www.googleapis.com/auth/compute"
59909	//   ]
59910	// }
59911
59912}
59913
59914// method id "compute.globalForwardingRules.list":
59915
59916type GlobalForwardingRulesListCall struct {
59917	s            *Service
59918	project      string
59919	urlParams_   gensupport.URLParams
59920	ifNoneMatch_ string
59921	ctx_         context.Context
59922	header_      http.Header
59923}
59924
59925// List: Retrieves a list of GlobalForwardingRule resources available to
59926// the specified project.
59927// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/list
59928func (r *GlobalForwardingRulesService) List(project string) *GlobalForwardingRulesListCall {
59929	c := &GlobalForwardingRulesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
59930	c.project = project
59931	return c
59932}
59933
59934// Filter sets the optional parameter "filter": A filter expression that
59935// filters resources listed in the response. The expression must specify
59936// the field name, a comparison operator, and the value that you want to
59937// use for filtering. The value must be a string, a number, or a
59938// boolean. The comparison operator must be either =, !=, >, or <.
59939//
59940// For example, if you are filtering Compute Engine instances, you can
59941// exclude instances named example-instance by specifying name !=
59942// example-instance.
59943//
59944// You can also filter nested fields. For example, you could specify
59945// scheduling.automaticRestart = false to include instances only if they
59946// are not scheduled for automatic restarts. You can use filtering on
59947// nested fields to filter based on resource labels.
59948//
59949// To filter on multiple expressions, provide each separate expression
59950// within parentheses. For example, (scheduling.automaticRestart = true)
59951// (cpuPlatform = "Intel Skylake"). By default, each expression is an
59952// AND expression. However, you can include AND and OR expressions
59953// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
59954// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
59955// true).
59956func (c *GlobalForwardingRulesListCall) Filter(filter string) *GlobalForwardingRulesListCall {
59957	c.urlParams_.Set("filter", filter)
59958	return c
59959}
59960
59961// MaxResults sets the optional parameter "maxResults": The maximum
59962// number of results per page that should be returned. If the number of
59963// available results is larger than maxResults, Compute Engine returns a
59964// nextPageToken that can be used to get the next page of results in
59965// subsequent list requests. Acceptable values are 0 to 500, inclusive.
59966// (Default: 500)
59967func (c *GlobalForwardingRulesListCall) MaxResults(maxResults int64) *GlobalForwardingRulesListCall {
59968	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
59969	return c
59970}
59971
59972// OrderBy sets the optional parameter "orderBy": Sorts list results by
59973// a certain order. By default, results are returned in alphanumerical
59974// order based on the resource name.
59975//
59976// You can also sort results in descending order based on the creation
59977// timestamp using orderBy="creationTimestamp desc". This sorts results
59978// based on the creationTimestamp field in reverse chronological order
59979// (newest result first). Use this to sort resources like operations so
59980// that the newest operation is returned first.
59981//
59982// Currently, only sorting by name or creationTimestamp desc is
59983// supported.
59984func (c *GlobalForwardingRulesListCall) OrderBy(orderBy string) *GlobalForwardingRulesListCall {
59985	c.urlParams_.Set("orderBy", orderBy)
59986	return c
59987}
59988
59989// PageToken sets the optional parameter "pageToken": Specifies a page
59990// token to use. Set pageToken to the nextPageToken returned by a
59991// previous list request to get the next page of results.
59992func (c *GlobalForwardingRulesListCall) PageToken(pageToken string) *GlobalForwardingRulesListCall {
59993	c.urlParams_.Set("pageToken", pageToken)
59994	return c
59995}
59996
59997// Fields allows partial responses to be retrieved. See
59998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
59999// for more information.
60000func (c *GlobalForwardingRulesListCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesListCall {
60001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60002	return c
60003}
60004
60005// IfNoneMatch sets the optional parameter which makes the operation
60006// fail if the object's ETag matches the given value. This is useful for
60007// getting updates only after the object has changed since the last
60008// request. Use googleapi.IsNotModified to check whether the response
60009// error from Do is the result of In-None-Match.
60010func (c *GlobalForwardingRulesListCall) IfNoneMatch(entityTag string) *GlobalForwardingRulesListCall {
60011	c.ifNoneMatch_ = entityTag
60012	return c
60013}
60014
60015// Context sets the context to be used in this call's Do method. Any
60016// pending HTTP request will be aborted if the provided context is
60017// canceled.
60018func (c *GlobalForwardingRulesListCall) Context(ctx context.Context) *GlobalForwardingRulesListCall {
60019	c.ctx_ = ctx
60020	return c
60021}
60022
60023// Header returns an http.Header that can be modified by the caller to
60024// add HTTP headers to the request.
60025func (c *GlobalForwardingRulesListCall) Header() http.Header {
60026	if c.header_ == nil {
60027		c.header_ = make(http.Header)
60028	}
60029	return c.header_
60030}
60031
60032func (c *GlobalForwardingRulesListCall) doRequest(alt string) (*http.Response, error) {
60033	reqHeaders := make(http.Header)
60034	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60035	for k, v := range c.header_ {
60036		reqHeaders[k] = v
60037	}
60038	reqHeaders.Set("User-Agent", c.s.userAgent())
60039	if c.ifNoneMatch_ != "" {
60040		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
60041	}
60042	var body io.Reader = nil
60043	c.urlParams_.Set("alt", alt)
60044	c.urlParams_.Set("prettyPrint", "false")
60045	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules")
60046	urls += "?" + c.urlParams_.Encode()
60047	req, err := http.NewRequest("GET", urls, body)
60048	if err != nil {
60049		return nil, err
60050	}
60051	req.Header = reqHeaders
60052	googleapi.Expand(req.URL, map[string]string{
60053		"project": c.project,
60054	})
60055	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60056}
60057
60058// Do executes the "compute.globalForwardingRules.list" call.
60059// Exactly one of *ForwardingRuleList or error will be non-nil. Any
60060// non-2xx status code is an error. Response headers are in either
60061// *ForwardingRuleList.ServerResponse.Header or (if a response was
60062// returned at all) in error.(*googleapi.Error).Header. Use
60063// googleapi.IsNotModified to check whether the returned error was
60064// because http.StatusNotModified was returned.
60065func (c *GlobalForwardingRulesListCall) Do(opts ...googleapi.CallOption) (*ForwardingRuleList, error) {
60066	gensupport.SetOptions(c.urlParams_, opts...)
60067	res, err := c.doRequest("json")
60068	if res != nil && res.StatusCode == http.StatusNotModified {
60069		if res.Body != nil {
60070			res.Body.Close()
60071		}
60072		return nil, &googleapi.Error{
60073			Code:   res.StatusCode,
60074			Header: res.Header,
60075		}
60076	}
60077	if err != nil {
60078		return nil, err
60079	}
60080	defer googleapi.CloseBody(res)
60081	if err := googleapi.CheckResponse(res); err != nil {
60082		return nil, err
60083	}
60084	ret := &ForwardingRuleList{
60085		ServerResponse: googleapi.ServerResponse{
60086			Header:         res.Header,
60087			HTTPStatusCode: res.StatusCode,
60088		},
60089	}
60090	target := &ret
60091	if err := gensupport.DecodeResponse(target, res); err != nil {
60092		return nil, err
60093	}
60094	return ret, nil
60095	// {
60096	//   "description": "Retrieves a list of GlobalForwardingRule resources available to the specified project.",
60097	//   "httpMethod": "GET",
60098	//   "id": "compute.globalForwardingRules.list",
60099	//   "parameterOrder": [
60100	//     "project"
60101	//   ],
60102	//   "parameters": {
60103	//     "filter": {
60104	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
60105	//       "location": "query",
60106	//       "type": "string"
60107	//     },
60108	//     "maxResults": {
60109	//       "default": "500",
60110	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
60111	//       "format": "uint32",
60112	//       "location": "query",
60113	//       "minimum": "0",
60114	//       "type": "integer"
60115	//     },
60116	//     "orderBy": {
60117	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
60118	//       "location": "query",
60119	//       "type": "string"
60120	//     },
60121	//     "pageToken": {
60122	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
60123	//       "location": "query",
60124	//       "type": "string"
60125	//     },
60126	//     "project": {
60127	//       "description": "Project ID for this request.",
60128	//       "location": "path",
60129	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60130	//       "required": true,
60131	//       "type": "string"
60132	//     }
60133	//   },
60134	//   "path": "{project}/global/forwardingRules",
60135	//   "response": {
60136	//     "$ref": "ForwardingRuleList"
60137	//   },
60138	//   "scopes": [
60139	//     "https://www.googleapis.com/auth/cloud-platform",
60140	//     "https://www.googleapis.com/auth/compute",
60141	//     "https://www.googleapis.com/auth/compute.readonly"
60142	//   ]
60143	// }
60144
60145}
60146
60147// Pages invokes f for each page of results.
60148// A non-nil error returned from f will halt the iteration.
60149// The provided context supersedes any context provided to the Context method.
60150func (c *GlobalForwardingRulesListCall) Pages(ctx context.Context, f func(*ForwardingRuleList) error) error {
60151	c.ctx_ = ctx
60152	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
60153	for {
60154		x, err := c.Do()
60155		if err != nil {
60156			return err
60157		}
60158		if err := f(x); err != nil {
60159			return err
60160		}
60161		if x.NextPageToken == "" {
60162			return nil
60163		}
60164		c.PageToken(x.NextPageToken)
60165	}
60166}
60167
60168// method id "compute.globalForwardingRules.patch":
60169
60170type GlobalForwardingRulesPatchCall struct {
60171	s              *Service
60172	project        string
60173	forwardingRule string
60174	forwardingrule *ForwardingRule
60175	urlParams_     gensupport.URLParams
60176	ctx_           context.Context
60177	header_        http.Header
60178}
60179
60180// Patch: Updates the specified forwarding rule with the data included
60181// in the request. This method supports PATCH semantics and uses the
60182// JSON merge patch format and processing rules. Currently, you can only
60183// patch the network_tier field.
60184func (r *GlobalForwardingRulesService) Patch(project string, forwardingRule string, forwardingrule *ForwardingRule) *GlobalForwardingRulesPatchCall {
60185	c := &GlobalForwardingRulesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60186	c.project = project
60187	c.forwardingRule = forwardingRule
60188	c.forwardingrule = forwardingrule
60189	return c
60190}
60191
60192// RequestId sets the optional parameter "requestId": An optional
60193// request ID to identify requests. Specify a unique request ID so that
60194// if you must retry your request, the server will know to ignore the
60195// request if it has already been completed.
60196//
60197// For example, consider a situation where you make an initial request
60198// and the request times out. If you make the request again with the
60199// same request ID, the server can check if original operation with the
60200// same request ID was received, and if so, will ignore the second
60201// request. This prevents clients from accidentally creating duplicate
60202// commitments.
60203//
60204// The request ID must be a valid UUID with the exception that zero UUID
60205// is not supported (00000000-0000-0000-0000-000000000000).
60206func (c *GlobalForwardingRulesPatchCall) RequestId(requestId string) *GlobalForwardingRulesPatchCall {
60207	c.urlParams_.Set("requestId", requestId)
60208	return c
60209}
60210
60211// Fields allows partial responses to be retrieved. See
60212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60213// for more information.
60214func (c *GlobalForwardingRulesPatchCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesPatchCall {
60215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60216	return c
60217}
60218
60219// Context sets the context to be used in this call's Do method. Any
60220// pending HTTP request will be aborted if the provided context is
60221// canceled.
60222func (c *GlobalForwardingRulesPatchCall) Context(ctx context.Context) *GlobalForwardingRulesPatchCall {
60223	c.ctx_ = ctx
60224	return c
60225}
60226
60227// Header returns an http.Header that can be modified by the caller to
60228// add HTTP headers to the request.
60229func (c *GlobalForwardingRulesPatchCall) Header() http.Header {
60230	if c.header_ == nil {
60231		c.header_ = make(http.Header)
60232	}
60233	return c.header_
60234}
60235
60236func (c *GlobalForwardingRulesPatchCall) doRequest(alt string) (*http.Response, error) {
60237	reqHeaders := make(http.Header)
60238	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60239	for k, v := range c.header_ {
60240		reqHeaders[k] = v
60241	}
60242	reqHeaders.Set("User-Agent", c.s.userAgent())
60243	var body io.Reader = nil
60244	body, err := googleapi.WithoutDataWrapper.JSONReader(c.forwardingrule)
60245	if err != nil {
60246		return nil, err
60247	}
60248	reqHeaders.Set("Content-Type", "application/json")
60249	c.urlParams_.Set("alt", alt)
60250	c.urlParams_.Set("prettyPrint", "false")
60251	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}")
60252	urls += "?" + c.urlParams_.Encode()
60253	req, err := http.NewRequest("PATCH", urls, body)
60254	if err != nil {
60255		return nil, err
60256	}
60257	req.Header = reqHeaders
60258	googleapi.Expand(req.URL, map[string]string{
60259		"project":        c.project,
60260		"forwardingRule": c.forwardingRule,
60261	})
60262	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60263}
60264
60265// Do executes the "compute.globalForwardingRules.patch" call.
60266// Exactly one of *Operation or error will be non-nil. Any non-2xx
60267// status code is an error. Response headers are in either
60268// *Operation.ServerResponse.Header or (if a response was returned at
60269// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60270// to check whether the returned error was because
60271// http.StatusNotModified was returned.
60272func (c *GlobalForwardingRulesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60273	gensupport.SetOptions(c.urlParams_, opts...)
60274	res, err := c.doRequest("json")
60275	if res != nil && res.StatusCode == http.StatusNotModified {
60276		if res.Body != nil {
60277			res.Body.Close()
60278		}
60279		return nil, &googleapi.Error{
60280			Code:   res.StatusCode,
60281			Header: res.Header,
60282		}
60283	}
60284	if err != nil {
60285		return nil, err
60286	}
60287	defer googleapi.CloseBody(res)
60288	if err := googleapi.CheckResponse(res); err != nil {
60289		return nil, err
60290	}
60291	ret := &Operation{
60292		ServerResponse: googleapi.ServerResponse{
60293			Header:         res.Header,
60294			HTTPStatusCode: res.StatusCode,
60295		},
60296	}
60297	target := &ret
60298	if err := gensupport.DecodeResponse(target, res); err != nil {
60299		return nil, err
60300	}
60301	return ret, nil
60302	// {
60303	//   "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.",
60304	//   "httpMethod": "PATCH",
60305	//   "id": "compute.globalForwardingRules.patch",
60306	//   "parameterOrder": [
60307	//     "project",
60308	//     "forwardingRule"
60309	//   ],
60310	//   "parameters": {
60311	//     "forwardingRule": {
60312	//       "description": "Name of the ForwardingRule resource to patch.",
60313	//       "location": "path",
60314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60315	//       "required": true,
60316	//       "type": "string"
60317	//     },
60318	//     "project": {
60319	//       "description": "Project ID for this request.",
60320	//       "location": "path",
60321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60322	//       "required": true,
60323	//       "type": "string"
60324	//     },
60325	//     "requestId": {
60326	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60327	//       "location": "query",
60328	//       "type": "string"
60329	//     }
60330	//   },
60331	//   "path": "{project}/global/forwardingRules/{forwardingRule}",
60332	//   "request": {
60333	//     "$ref": "ForwardingRule"
60334	//   },
60335	//   "response": {
60336	//     "$ref": "Operation"
60337	//   },
60338	//   "scopes": [
60339	//     "https://www.googleapis.com/auth/cloud-platform",
60340	//     "https://www.googleapis.com/auth/compute"
60341	//   ]
60342	// }
60343
60344}
60345
60346// method id "compute.globalForwardingRules.setLabels":
60347
60348type GlobalForwardingRulesSetLabelsCall struct {
60349	s                      *Service
60350	project                string
60351	resource               string
60352	globalsetlabelsrequest *GlobalSetLabelsRequest
60353	urlParams_             gensupport.URLParams
60354	ctx_                   context.Context
60355	header_                http.Header
60356}
60357
60358// SetLabels: Sets the labels on the specified resource. To learn more
60359// about labels, read the Labeling Resources documentation.
60360func (r *GlobalForwardingRulesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *GlobalForwardingRulesSetLabelsCall {
60361	c := &GlobalForwardingRulesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60362	c.project = project
60363	c.resource = resource
60364	c.globalsetlabelsrequest = globalsetlabelsrequest
60365	return c
60366}
60367
60368// Fields allows partial responses to be retrieved. See
60369// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60370// for more information.
60371func (c *GlobalForwardingRulesSetLabelsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetLabelsCall {
60372	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60373	return c
60374}
60375
60376// Context sets the context to be used in this call's Do method. Any
60377// pending HTTP request will be aborted if the provided context is
60378// canceled.
60379func (c *GlobalForwardingRulesSetLabelsCall) Context(ctx context.Context) *GlobalForwardingRulesSetLabelsCall {
60380	c.ctx_ = ctx
60381	return c
60382}
60383
60384// Header returns an http.Header that can be modified by the caller to
60385// add HTTP headers to the request.
60386func (c *GlobalForwardingRulesSetLabelsCall) Header() http.Header {
60387	if c.header_ == nil {
60388		c.header_ = make(http.Header)
60389	}
60390	return c.header_
60391}
60392
60393func (c *GlobalForwardingRulesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
60394	reqHeaders := make(http.Header)
60395	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60396	for k, v := range c.header_ {
60397		reqHeaders[k] = v
60398	}
60399	reqHeaders.Set("User-Agent", c.s.userAgent())
60400	var body io.Reader = nil
60401	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
60402	if err != nil {
60403		return nil, err
60404	}
60405	reqHeaders.Set("Content-Type", "application/json")
60406	c.urlParams_.Set("alt", alt)
60407	c.urlParams_.Set("prettyPrint", "false")
60408	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/setLabels")
60409	urls += "?" + c.urlParams_.Encode()
60410	req, err := http.NewRequest("POST", urls, body)
60411	if err != nil {
60412		return nil, err
60413	}
60414	req.Header = reqHeaders
60415	googleapi.Expand(req.URL, map[string]string{
60416		"project":  c.project,
60417		"resource": c.resource,
60418	})
60419	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60420}
60421
60422// Do executes the "compute.globalForwardingRules.setLabels" call.
60423// Exactly one of *Operation or error will be non-nil. Any non-2xx
60424// status code is an error. Response headers are in either
60425// *Operation.ServerResponse.Header or (if a response was returned at
60426// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60427// to check whether the returned error was because
60428// http.StatusNotModified was returned.
60429func (c *GlobalForwardingRulesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60430	gensupport.SetOptions(c.urlParams_, opts...)
60431	res, err := c.doRequest("json")
60432	if res != nil && res.StatusCode == http.StatusNotModified {
60433		if res.Body != nil {
60434			res.Body.Close()
60435		}
60436		return nil, &googleapi.Error{
60437			Code:   res.StatusCode,
60438			Header: res.Header,
60439		}
60440	}
60441	if err != nil {
60442		return nil, err
60443	}
60444	defer googleapi.CloseBody(res)
60445	if err := googleapi.CheckResponse(res); err != nil {
60446		return nil, err
60447	}
60448	ret := &Operation{
60449		ServerResponse: googleapi.ServerResponse{
60450			Header:         res.Header,
60451			HTTPStatusCode: res.StatusCode,
60452		},
60453	}
60454	target := &ret
60455	if err := gensupport.DecodeResponse(target, res); err != nil {
60456		return nil, err
60457	}
60458	return ret, nil
60459	// {
60460	//   "description": "Sets the labels on the specified resource. To learn more about labels, read the Labeling Resources documentation.",
60461	//   "httpMethod": "POST",
60462	//   "id": "compute.globalForwardingRules.setLabels",
60463	//   "parameterOrder": [
60464	//     "project",
60465	//     "resource"
60466	//   ],
60467	//   "parameters": {
60468	//     "project": {
60469	//       "description": "Project ID for this request.",
60470	//       "location": "path",
60471	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60472	//       "required": true,
60473	//       "type": "string"
60474	//     },
60475	//     "resource": {
60476	//       "description": "Name or id of the resource for this request.",
60477	//       "location": "path",
60478	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60479	//       "required": true,
60480	//       "type": "string"
60481	//     }
60482	//   },
60483	//   "path": "{project}/global/forwardingRules/{resource}/setLabels",
60484	//   "request": {
60485	//     "$ref": "GlobalSetLabelsRequest"
60486	//   },
60487	//   "response": {
60488	//     "$ref": "Operation"
60489	//   },
60490	//   "scopes": [
60491	//     "https://www.googleapis.com/auth/cloud-platform",
60492	//     "https://www.googleapis.com/auth/compute"
60493	//   ]
60494	// }
60495
60496}
60497
60498// method id "compute.globalForwardingRules.setTarget":
60499
60500type GlobalForwardingRulesSetTargetCall struct {
60501	s               *Service
60502	project         string
60503	forwardingRule  string
60504	targetreference *TargetReference
60505	urlParams_      gensupport.URLParams
60506	ctx_            context.Context
60507	header_         http.Header
60508}
60509
60510// SetTarget: Changes target URL for the GlobalForwardingRule resource.
60511// The new target should be of the same type as the old target.
60512// For details, see https://cloud.google.com/compute/docs/reference/latest/globalForwardingRules/setTarget
60513func (r *GlobalForwardingRulesService) SetTarget(project string, forwardingRule string, targetreference *TargetReference) *GlobalForwardingRulesSetTargetCall {
60514	c := &GlobalForwardingRulesSetTargetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60515	c.project = project
60516	c.forwardingRule = forwardingRule
60517	c.targetreference = targetreference
60518	return c
60519}
60520
60521// RequestId sets the optional parameter "requestId": An optional
60522// request ID to identify requests. Specify a unique request ID so that
60523// if you must retry your request, the server will know to ignore the
60524// request if it has already been completed.
60525//
60526// For example, consider a situation where you make an initial request
60527// and the request times out. If you make the request again with the
60528// same request ID, the server can check if original operation with the
60529// same request ID was received, and if so, will ignore the second
60530// request. This prevents clients from accidentally creating duplicate
60531// commitments.
60532//
60533// The request ID must be a valid UUID with the exception that zero UUID
60534// is not supported (00000000-0000-0000-0000-000000000000).
60535func (c *GlobalForwardingRulesSetTargetCall) RequestId(requestId string) *GlobalForwardingRulesSetTargetCall {
60536	c.urlParams_.Set("requestId", requestId)
60537	return c
60538}
60539
60540// Fields allows partial responses to be retrieved. See
60541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60542// for more information.
60543func (c *GlobalForwardingRulesSetTargetCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesSetTargetCall {
60544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60545	return c
60546}
60547
60548// Context sets the context to be used in this call's Do method. Any
60549// pending HTTP request will be aborted if the provided context is
60550// canceled.
60551func (c *GlobalForwardingRulesSetTargetCall) Context(ctx context.Context) *GlobalForwardingRulesSetTargetCall {
60552	c.ctx_ = ctx
60553	return c
60554}
60555
60556// Header returns an http.Header that can be modified by the caller to
60557// add HTTP headers to the request.
60558func (c *GlobalForwardingRulesSetTargetCall) Header() http.Header {
60559	if c.header_ == nil {
60560		c.header_ = make(http.Header)
60561	}
60562	return c.header_
60563}
60564
60565func (c *GlobalForwardingRulesSetTargetCall) doRequest(alt string) (*http.Response, error) {
60566	reqHeaders := make(http.Header)
60567	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60568	for k, v := range c.header_ {
60569		reqHeaders[k] = v
60570	}
60571	reqHeaders.Set("User-Agent", c.s.userAgent())
60572	var body io.Reader = nil
60573	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
60574	if err != nil {
60575		return nil, err
60576	}
60577	reqHeaders.Set("Content-Type", "application/json")
60578	c.urlParams_.Set("alt", alt)
60579	c.urlParams_.Set("prettyPrint", "false")
60580	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{forwardingRule}/setTarget")
60581	urls += "?" + c.urlParams_.Encode()
60582	req, err := http.NewRequest("POST", urls, body)
60583	if err != nil {
60584		return nil, err
60585	}
60586	req.Header = reqHeaders
60587	googleapi.Expand(req.URL, map[string]string{
60588		"project":        c.project,
60589		"forwardingRule": c.forwardingRule,
60590	})
60591	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60592}
60593
60594// Do executes the "compute.globalForwardingRules.setTarget" call.
60595// Exactly one of *Operation or error will be non-nil. Any non-2xx
60596// status code is an error. Response headers are in either
60597// *Operation.ServerResponse.Header or (if a response was returned at
60598// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60599// to check whether the returned error was because
60600// http.StatusNotModified was returned.
60601func (c *GlobalForwardingRulesSetTargetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60602	gensupport.SetOptions(c.urlParams_, opts...)
60603	res, err := c.doRequest("json")
60604	if res != nil && res.StatusCode == http.StatusNotModified {
60605		if res.Body != nil {
60606			res.Body.Close()
60607		}
60608		return nil, &googleapi.Error{
60609			Code:   res.StatusCode,
60610			Header: res.Header,
60611		}
60612	}
60613	if err != nil {
60614		return nil, err
60615	}
60616	defer googleapi.CloseBody(res)
60617	if err := googleapi.CheckResponse(res); err != nil {
60618		return nil, err
60619	}
60620	ret := &Operation{
60621		ServerResponse: googleapi.ServerResponse{
60622			Header:         res.Header,
60623			HTTPStatusCode: res.StatusCode,
60624		},
60625	}
60626	target := &ret
60627	if err := gensupport.DecodeResponse(target, res); err != nil {
60628		return nil, err
60629	}
60630	return ret, nil
60631	// {
60632	//   "description": "Changes target URL for the GlobalForwardingRule resource. The new target should be of the same type as the old target.",
60633	//   "httpMethod": "POST",
60634	//   "id": "compute.globalForwardingRules.setTarget",
60635	//   "parameterOrder": [
60636	//     "project",
60637	//     "forwardingRule"
60638	//   ],
60639	//   "parameters": {
60640	//     "forwardingRule": {
60641	//       "description": "Name of the ForwardingRule resource in which target is to be set.",
60642	//       "location": "path",
60643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60644	//       "required": true,
60645	//       "type": "string"
60646	//     },
60647	//     "project": {
60648	//       "description": "Project ID for this request.",
60649	//       "location": "path",
60650	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60651	//       "required": true,
60652	//       "type": "string"
60653	//     },
60654	//     "requestId": {
60655	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60656	//       "location": "query",
60657	//       "type": "string"
60658	//     }
60659	//   },
60660	//   "path": "{project}/global/forwardingRules/{forwardingRule}/setTarget",
60661	//   "request": {
60662	//     "$ref": "TargetReference"
60663	//   },
60664	//   "response": {
60665	//     "$ref": "Operation"
60666	//   },
60667	//   "scopes": [
60668	//     "https://www.googleapis.com/auth/cloud-platform",
60669	//     "https://www.googleapis.com/auth/compute"
60670	//   ]
60671	// }
60672
60673}
60674
60675// method id "compute.globalForwardingRules.testIamPermissions":
60676
60677type GlobalForwardingRulesTestIamPermissionsCall struct {
60678	s                      *Service
60679	project                string
60680	resource               string
60681	testpermissionsrequest *TestPermissionsRequest
60682	urlParams_             gensupport.URLParams
60683	ctx_                   context.Context
60684	header_                http.Header
60685}
60686
60687// TestIamPermissions: Returns permissions that a caller has on the
60688// specified resource.
60689func (r *GlobalForwardingRulesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *GlobalForwardingRulesTestIamPermissionsCall {
60690	c := &GlobalForwardingRulesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60691	c.project = project
60692	c.resource = resource
60693	c.testpermissionsrequest = testpermissionsrequest
60694	return c
60695}
60696
60697// Fields allows partial responses to be retrieved. See
60698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60699// for more information.
60700func (c *GlobalForwardingRulesTestIamPermissionsCall) Fields(s ...googleapi.Field) *GlobalForwardingRulesTestIamPermissionsCall {
60701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60702	return c
60703}
60704
60705// Context sets the context to be used in this call's Do method. Any
60706// pending HTTP request will be aborted if the provided context is
60707// canceled.
60708func (c *GlobalForwardingRulesTestIamPermissionsCall) Context(ctx context.Context) *GlobalForwardingRulesTestIamPermissionsCall {
60709	c.ctx_ = ctx
60710	return c
60711}
60712
60713// Header returns an http.Header that can be modified by the caller to
60714// add HTTP headers to the request.
60715func (c *GlobalForwardingRulesTestIamPermissionsCall) Header() http.Header {
60716	if c.header_ == nil {
60717		c.header_ = make(http.Header)
60718	}
60719	return c.header_
60720}
60721
60722func (c *GlobalForwardingRulesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
60723	reqHeaders := make(http.Header)
60724	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60725	for k, v := range c.header_ {
60726		reqHeaders[k] = v
60727	}
60728	reqHeaders.Set("User-Agent", c.s.userAgent())
60729	var body io.Reader = nil
60730	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
60731	if err != nil {
60732		return nil, err
60733	}
60734	reqHeaders.Set("Content-Type", "application/json")
60735	c.urlParams_.Set("alt", alt)
60736	c.urlParams_.Set("prettyPrint", "false")
60737	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/forwardingRules/{resource}/testIamPermissions")
60738	urls += "?" + c.urlParams_.Encode()
60739	req, err := http.NewRequest("POST", urls, body)
60740	if err != nil {
60741		return nil, err
60742	}
60743	req.Header = reqHeaders
60744	googleapi.Expand(req.URL, map[string]string{
60745		"project":  c.project,
60746		"resource": c.resource,
60747	})
60748	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60749}
60750
60751// Do executes the "compute.globalForwardingRules.testIamPermissions" call.
60752// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
60753// non-2xx status code is an error. Response headers are in either
60754// *TestPermissionsResponse.ServerResponse.Header or (if a response was
60755// returned at all) in error.(*googleapi.Error).Header. Use
60756// googleapi.IsNotModified to check whether the returned error was
60757// because http.StatusNotModified was returned.
60758func (c *GlobalForwardingRulesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
60759	gensupport.SetOptions(c.urlParams_, opts...)
60760	res, err := c.doRequest("json")
60761	if res != nil && res.StatusCode == http.StatusNotModified {
60762		if res.Body != nil {
60763			res.Body.Close()
60764		}
60765		return nil, &googleapi.Error{
60766			Code:   res.StatusCode,
60767			Header: res.Header,
60768		}
60769	}
60770	if err != nil {
60771		return nil, err
60772	}
60773	defer googleapi.CloseBody(res)
60774	if err := googleapi.CheckResponse(res); err != nil {
60775		return nil, err
60776	}
60777	ret := &TestPermissionsResponse{
60778		ServerResponse: googleapi.ServerResponse{
60779			Header:         res.Header,
60780			HTTPStatusCode: res.StatusCode,
60781		},
60782	}
60783	target := &ret
60784	if err := gensupport.DecodeResponse(target, res); err != nil {
60785		return nil, err
60786	}
60787	return ret, nil
60788	// {
60789	//   "description": "Returns permissions that a caller has on the specified resource.",
60790	//   "httpMethod": "POST",
60791	//   "id": "compute.globalForwardingRules.testIamPermissions",
60792	//   "parameterOrder": [
60793	//     "project",
60794	//     "resource"
60795	//   ],
60796	//   "parameters": {
60797	//     "project": {
60798	//       "description": "Project ID for this request.",
60799	//       "location": "path",
60800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60801	//       "required": true,
60802	//       "type": "string"
60803	//     },
60804	//     "resource": {
60805	//       "description": "Name or id of the resource for this request.",
60806	//       "location": "path",
60807	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
60808	//       "required": true,
60809	//       "type": "string"
60810	//     }
60811	//   },
60812	//   "path": "{project}/global/forwardingRules/{resource}/testIamPermissions",
60813	//   "request": {
60814	//     "$ref": "TestPermissionsRequest"
60815	//   },
60816	//   "response": {
60817	//     "$ref": "TestPermissionsResponse"
60818	//   },
60819	//   "scopes": [
60820	//     "https://www.googleapis.com/auth/cloud-platform",
60821	//     "https://www.googleapis.com/auth/compute",
60822	//     "https://www.googleapis.com/auth/compute.readonly"
60823	//   ]
60824	// }
60825
60826}
60827
60828// method id "compute.globalNetworkEndpointGroups.attachNetworkEndpoints":
60829
60830type GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall struct {
60831	s                                                 *Service
60832	project                                           string
60833	networkEndpointGroup                              string
60834	globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest
60835	urlParams_                                        gensupport.URLParams
60836	ctx_                                              context.Context
60837	header_                                           http.Header
60838}
60839
60840// AttachNetworkEndpoints: Attach a network endpoint to the specified
60841// network endpoint group.
60842func (r *GlobalNetworkEndpointGroupsService) AttachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsattachendpointsrequest *GlobalNetworkEndpointGroupsAttachEndpointsRequest) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
60843	c := &GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
60844	c.project = project
60845	c.networkEndpointGroup = networkEndpointGroup
60846	c.globalnetworkendpointgroupsattachendpointsrequest = globalnetworkendpointgroupsattachendpointsrequest
60847	return c
60848}
60849
60850// RequestId sets the optional parameter "requestId": An optional
60851// request ID to identify requests. Specify a unique request ID so that
60852// if you must retry your request, the server will know to ignore the
60853// request if it has already been completed.
60854//
60855// For example, consider a situation where you make an initial request
60856// and the request times out. If you make the request again with the
60857// same request ID, the server can check if original operation with the
60858// same request ID was received, and if so, will ignore the second
60859// request. This prevents clients from accidentally creating duplicate
60860// commitments.
60861//
60862// The request ID must be a valid UUID with the exception that zero UUID
60863// is not supported (00000000-0000-0000-0000-000000000000).
60864func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
60865	c.urlParams_.Set("requestId", requestId)
60866	return c
60867}
60868
60869// Fields allows partial responses to be retrieved. See
60870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
60871// for more information.
60872func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
60873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
60874	return c
60875}
60876
60877// Context sets the context to be used in this call's Do method. Any
60878// pending HTTP request will be aborted if the provided context is
60879// canceled.
60880func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall {
60881	c.ctx_ = ctx
60882	return c
60883}
60884
60885// Header returns an http.Header that can be modified by the caller to
60886// add HTTP headers to the request.
60887func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
60888	if c.header_ == nil {
60889		c.header_ = make(http.Header)
60890	}
60891	return c.header_
60892}
60893
60894func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
60895	reqHeaders := make(http.Header)
60896	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
60897	for k, v := range c.header_ {
60898		reqHeaders[k] = v
60899	}
60900	reqHeaders.Set("User-Agent", c.s.userAgent())
60901	var body io.Reader = nil
60902	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsattachendpointsrequest)
60903	if err != nil {
60904		return nil, err
60905	}
60906	reqHeaders.Set("Content-Type", "application/json")
60907	c.urlParams_.Set("alt", alt)
60908	c.urlParams_.Set("prettyPrint", "false")
60909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
60910	urls += "?" + c.urlParams_.Encode()
60911	req, err := http.NewRequest("POST", urls, body)
60912	if err != nil {
60913		return nil, err
60914	}
60915	req.Header = reqHeaders
60916	googleapi.Expand(req.URL, map[string]string{
60917		"project":              c.project,
60918		"networkEndpointGroup": c.networkEndpointGroup,
60919	})
60920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
60921}
60922
60923// Do executes the "compute.globalNetworkEndpointGroups.attachNetworkEndpoints" call.
60924// Exactly one of *Operation or error will be non-nil. Any non-2xx
60925// status code is an error. Response headers are in either
60926// *Operation.ServerResponse.Header or (if a response was returned at
60927// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
60928// to check whether the returned error was because
60929// http.StatusNotModified was returned.
60930func (c *GlobalNetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
60931	gensupport.SetOptions(c.urlParams_, opts...)
60932	res, err := c.doRequest("json")
60933	if res != nil && res.StatusCode == http.StatusNotModified {
60934		if res.Body != nil {
60935			res.Body.Close()
60936		}
60937		return nil, &googleapi.Error{
60938			Code:   res.StatusCode,
60939			Header: res.Header,
60940		}
60941	}
60942	if err != nil {
60943		return nil, err
60944	}
60945	defer googleapi.CloseBody(res)
60946	if err := googleapi.CheckResponse(res); err != nil {
60947		return nil, err
60948	}
60949	ret := &Operation{
60950		ServerResponse: googleapi.ServerResponse{
60951			Header:         res.Header,
60952			HTTPStatusCode: res.StatusCode,
60953		},
60954	}
60955	target := &ret
60956	if err := gensupport.DecodeResponse(target, res); err != nil {
60957		return nil, err
60958	}
60959	return ret, nil
60960	// {
60961	//   "description": "Attach a network endpoint to the specified network endpoint group.",
60962	//   "httpMethod": "POST",
60963	//   "id": "compute.globalNetworkEndpointGroups.attachNetworkEndpoints",
60964	//   "parameterOrder": [
60965	//     "project",
60966	//     "networkEndpointGroup"
60967	//   ],
60968	//   "parameters": {
60969	//     "networkEndpointGroup": {
60970	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
60971	//       "location": "path",
60972	//       "required": true,
60973	//       "type": "string"
60974	//     },
60975	//     "project": {
60976	//       "description": "Project ID for this request.",
60977	//       "location": "path",
60978	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
60979	//       "required": true,
60980	//       "type": "string"
60981	//     },
60982	//     "requestId": {
60983	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
60984	//       "location": "query",
60985	//       "type": "string"
60986	//     }
60987	//   },
60988	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
60989	//   "request": {
60990	//     "$ref": "GlobalNetworkEndpointGroupsAttachEndpointsRequest"
60991	//   },
60992	//   "response": {
60993	//     "$ref": "Operation"
60994	//   },
60995	//   "scopes": [
60996	//     "https://www.googleapis.com/auth/cloud-platform",
60997	//     "https://www.googleapis.com/auth/compute"
60998	//   ]
60999	// }
61000
61001}
61002
61003// method id "compute.globalNetworkEndpointGroups.delete":
61004
61005type GlobalNetworkEndpointGroupsDeleteCall struct {
61006	s                    *Service
61007	project              string
61008	networkEndpointGroup string
61009	urlParams_           gensupport.URLParams
61010	ctx_                 context.Context
61011	header_              http.Header
61012}
61013
61014// Delete: Deletes the specified network endpoint group.Note that the
61015// NEG cannot be deleted if there are backend services referencing it.
61016func (r *GlobalNetworkEndpointGroupsService) Delete(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsDeleteCall {
61017	c := &GlobalNetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61018	c.project = project
61019	c.networkEndpointGroup = networkEndpointGroup
61020	return c
61021}
61022
61023// RequestId sets the optional parameter "requestId": An optional
61024// request ID to identify requests. Specify a unique request ID so that
61025// if you must retry your request, the server will know to ignore the
61026// request if it has already been completed.
61027//
61028// For example, consider a situation where you make an initial request
61029// and the request times out. If you make the request again with the
61030// same request ID, the server can check if original operation with the
61031// same request ID was received, and if so, will ignore the second
61032// request. This prevents clients from accidentally creating duplicate
61033// commitments.
61034//
61035// The request ID must be a valid UUID with the exception that zero UUID
61036// is not supported (00000000-0000-0000-0000-000000000000).
61037func (c *GlobalNetworkEndpointGroupsDeleteCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDeleteCall {
61038	c.urlParams_.Set("requestId", requestId)
61039	return c
61040}
61041
61042// Fields allows partial responses to be retrieved. See
61043// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61044// for more information.
61045func (c *GlobalNetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDeleteCall {
61046	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61047	return c
61048}
61049
61050// Context sets the context to be used in this call's Do method. Any
61051// pending HTTP request will be aborted if the provided context is
61052// canceled.
61053func (c *GlobalNetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDeleteCall {
61054	c.ctx_ = ctx
61055	return c
61056}
61057
61058// Header returns an http.Header that can be modified by the caller to
61059// add HTTP headers to the request.
61060func (c *GlobalNetworkEndpointGroupsDeleteCall) Header() http.Header {
61061	if c.header_ == nil {
61062		c.header_ = make(http.Header)
61063	}
61064	return c.header_
61065}
61066
61067func (c *GlobalNetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
61068	reqHeaders := make(http.Header)
61069	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61070	for k, v := range c.header_ {
61071		reqHeaders[k] = v
61072	}
61073	reqHeaders.Set("User-Agent", c.s.userAgent())
61074	var body io.Reader = nil
61075	c.urlParams_.Set("alt", alt)
61076	c.urlParams_.Set("prettyPrint", "false")
61077	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
61078	urls += "?" + c.urlParams_.Encode()
61079	req, err := http.NewRequest("DELETE", urls, body)
61080	if err != nil {
61081		return nil, err
61082	}
61083	req.Header = reqHeaders
61084	googleapi.Expand(req.URL, map[string]string{
61085		"project":              c.project,
61086		"networkEndpointGroup": c.networkEndpointGroup,
61087	})
61088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61089}
61090
61091// Do executes the "compute.globalNetworkEndpointGroups.delete" call.
61092// Exactly one of *Operation or error will be non-nil. Any non-2xx
61093// status code is an error. Response headers are in either
61094// *Operation.ServerResponse.Header or (if a response was returned at
61095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61096// to check whether the returned error was because
61097// http.StatusNotModified was returned.
61098func (c *GlobalNetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61099	gensupport.SetOptions(c.urlParams_, opts...)
61100	res, err := c.doRequest("json")
61101	if res != nil && res.StatusCode == http.StatusNotModified {
61102		if res.Body != nil {
61103			res.Body.Close()
61104		}
61105		return nil, &googleapi.Error{
61106			Code:   res.StatusCode,
61107			Header: res.Header,
61108		}
61109	}
61110	if err != nil {
61111		return nil, err
61112	}
61113	defer googleapi.CloseBody(res)
61114	if err := googleapi.CheckResponse(res); err != nil {
61115		return nil, err
61116	}
61117	ret := &Operation{
61118		ServerResponse: googleapi.ServerResponse{
61119			Header:         res.Header,
61120			HTTPStatusCode: res.StatusCode,
61121		},
61122	}
61123	target := &ret
61124	if err := gensupport.DecodeResponse(target, res); err != nil {
61125		return nil, err
61126	}
61127	return ret, nil
61128	// {
61129	//   "description": "Deletes the specified network endpoint group.Note that the NEG cannot be deleted if there are backend services referencing it.",
61130	//   "httpMethod": "DELETE",
61131	//   "id": "compute.globalNetworkEndpointGroups.delete",
61132	//   "parameterOrder": [
61133	//     "project",
61134	//     "networkEndpointGroup"
61135	//   ],
61136	//   "parameters": {
61137	//     "networkEndpointGroup": {
61138	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
61139	//       "location": "path",
61140	//       "required": true,
61141	//       "type": "string"
61142	//     },
61143	//     "project": {
61144	//       "description": "Project ID for this request.",
61145	//       "location": "path",
61146	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61147	//       "required": true,
61148	//       "type": "string"
61149	//     },
61150	//     "requestId": {
61151	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61152	//       "location": "query",
61153	//       "type": "string"
61154	//     }
61155	//   },
61156	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
61157	//   "response": {
61158	//     "$ref": "Operation"
61159	//   },
61160	//   "scopes": [
61161	//     "https://www.googleapis.com/auth/cloud-platform",
61162	//     "https://www.googleapis.com/auth/compute"
61163	//   ]
61164	// }
61165
61166}
61167
61168// method id "compute.globalNetworkEndpointGroups.detachNetworkEndpoints":
61169
61170type GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall struct {
61171	s                                                 *Service
61172	project                                           string
61173	networkEndpointGroup                              string
61174	globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest
61175	urlParams_                                        gensupport.URLParams
61176	ctx_                                              context.Context
61177	header_                                           http.Header
61178}
61179
61180// DetachNetworkEndpoints: Detach the network endpoint from the
61181// specified network endpoint group.
61182func (r *GlobalNetworkEndpointGroupsService) DetachNetworkEndpoints(project string, networkEndpointGroup string, globalnetworkendpointgroupsdetachendpointsrequest *GlobalNetworkEndpointGroupsDetachEndpointsRequest) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
61183	c := &GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61184	c.project = project
61185	c.networkEndpointGroup = networkEndpointGroup
61186	c.globalnetworkendpointgroupsdetachendpointsrequest = globalnetworkendpointgroupsdetachendpointsrequest
61187	return c
61188}
61189
61190// RequestId sets the optional parameter "requestId": An optional
61191// request ID to identify requests. Specify a unique request ID so that
61192// if you must retry your request, the server will know to ignore the
61193// request if it has already been completed.
61194//
61195// For example, consider a situation where you make an initial request
61196// and the request times out. If you make the request again with the
61197// same request ID, the server can check if original operation with the
61198// same request ID was received, and if so, will ignore the second
61199// request. This prevents clients from accidentally creating duplicate
61200// commitments.
61201//
61202// The request ID must be a valid UUID with the exception that zero UUID
61203// is not supported (00000000-0000-0000-0000-000000000000).
61204func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
61205	c.urlParams_.Set("requestId", requestId)
61206	return c
61207}
61208
61209// Fields allows partial responses to be retrieved. See
61210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61211// for more information.
61212func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
61213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61214	return c
61215}
61216
61217// Context sets the context to be used in this call's Do method. Any
61218// pending HTTP request will be aborted if the provided context is
61219// canceled.
61220func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall {
61221	c.ctx_ = ctx
61222	return c
61223}
61224
61225// Header returns an http.Header that can be modified by the caller to
61226// add HTTP headers to the request.
61227func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
61228	if c.header_ == nil {
61229		c.header_ = make(http.Header)
61230	}
61231	return c.header_
61232}
61233
61234func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
61235	reqHeaders := make(http.Header)
61236	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61237	for k, v := range c.header_ {
61238		reqHeaders[k] = v
61239	}
61240	reqHeaders.Set("User-Agent", c.s.userAgent())
61241	var body io.Reader = nil
61242	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalnetworkendpointgroupsdetachendpointsrequest)
61243	if err != nil {
61244		return nil, err
61245	}
61246	reqHeaders.Set("Content-Type", "application/json")
61247	c.urlParams_.Set("alt", alt)
61248	c.urlParams_.Set("prettyPrint", "false")
61249	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
61250	urls += "?" + c.urlParams_.Encode()
61251	req, err := http.NewRequest("POST", urls, body)
61252	if err != nil {
61253		return nil, err
61254	}
61255	req.Header = reqHeaders
61256	googleapi.Expand(req.URL, map[string]string{
61257		"project":              c.project,
61258		"networkEndpointGroup": c.networkEndpointGroup,
61259	})
61260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61261}
61262
61263// Do executes the "compute.globalNetworkEndpointGroups.detachNetworkEndpoints" call.
61264// Exactly one of *Operation or error will be non-nil. Any non-2xx
61265// status code is an error. Response headers are in either
61266// *Operation.ServerResponse.Header or (if a response was returned at
61267// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61268// to check whether the returned error was because
61269// http.StatusNotModified was returned.
61270func (c *GlobalNetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61271	gensupport.SetOptions(c.urlParams_, opts...)
61272	res, err := c.doRequest("json")
61273	if res != nil && res.StatusCode == http.StatusNotModified {
61274		if res.Body != nil {
61275			res.Body.Close()
61276		}
61277		return nil, &googleapi.Error{
61278			Code:   res.StatusCode,
61279			Header: res.Header,
61280		}
61281	}
61282	if err != nil {
61283		return nil, err
61284	}
61285	defer googleapi.CloseBody(res)
61286	if err := googleapi.CheckResponse(res); err != nil {
61287		return nil, err
61288	}
61289	ret := &Operation{
61290		ServerResponse: googleapi.ServerResponse{
61291			Header:         res.Header,
61292			HTTPStatusCode: res.StatusCode,
61293		},
61294	}
61295	target := &ret
61296	if err := gensupport.DecodeResponse(target, res); err != nil {
61297		return nil, err
61298	}
61299	return ret, nil
61300	// {
61301	//   "description": "Detach the network endpoint from the specified network endpoint group.",
61302	//   "httpMethod": "POST",
61303	//   "id": "compute.globalNetworkEndpointGroups.detachNetworkEndpoints",
61304	//   "parameterOrder": [
61305	//     "project",
61306	//     "networkEndpointGroup"
61307	//   ],
61308	//   "parameters": {
61309	//     "networkEndpointGroup": {
61310	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
61311	//       "location": "path",
61312	//       "required": true,
61313	//       "type": "string"
61314	//     },
61315	//     "project": {
61316	//       "description": "Project ID for this request.",
61317	//       "location": "path",
61318	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61319	//       "required": true,
61320	//       "type": "string"
61321	//     },
61322	//     "requestId": {
61323	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61324	//       "location": "query",
61325	//       "type": "string"
61326	//     }
61327	//   },
61328	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
61329	//   "request": {
61330	//     "$ref": "GlobalNetworkEndpointGroupsDetachEndpointsRequest"
61331	//   },
61332	//   "response": {
61333	//     "$ref": "Operation"
61334	//   },
61335	//   "scopes": [
61336	//     "https://www.googleapis.com/auth/cloud-platform",
61337	//     "https://www.googleapis.com/auth/compute"
61338	//   ]
61339	// }
61340
61341}
61342
61343// method id "compute.globalNetworkEndpointGroups.get":
61344
61345type GlobalNetworkEndpointGroupsGetCall struct {
61346	s                    *Service
61347	project              string
61348	networkEndpointGroup string
61349	urlParams_           gensupport.URLParams
61350	ifNoneMatch_         string
61351	ctx_                 context.Context
61352	header_              http.Header
61353}
61354
61355// Get: Returns the specified network endpoint group. Gets a list of
61356// available network endpoint groups by making a list() request.
61357func (r *GlobalNetworkEndpointGroupsService) Get(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsGetCall {
61358	c := &GlobalNetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61359	c.project = project
61360	c.networkEndpointGroup = networkEndpointGroup
61361	return c
61362}
61363
61364// Fields allows partial responses to be retrieved. See
61365// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61366// for more information.
61367func (c *GlobalNetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsGetCall {
61368	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61369	return c
61370}
61371
61372// IfNoneMatch sets the optional parameter which makes the operation
61373// fail if the object's ETag matches the given value. This is useful for
61374// getting updates only after the object has changed since the last
61375// request. Use googleapi.IsNotModified to check whether the response
61376// error from Do is the result of In-None-Match.
61377func (c *GlobalNetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsGetCall {
61378	c.ifNoneMatch_ = entityTag
61379	return c
61380}
61381
61382// Context sets the context to be used in this call's Do method. Any
61383// pending HTTP request will be aborted if the provided context is
61384// canceled.
61385func (c *GlobalNetworkEndpointGroupsGetCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsGetCall {
61386	c.ctx_ = ctx
61387	return c
61388}
61389
61390// Header returns an http.Header that can be modified by the caller to
61391// add HTTP headers to the request.
61392func (c *GlobalNetworkEndpointGroupsGetCall) Header() http.Header {
61393	if c.header_ == nil {
61394		c.header_ = make(http.Header)
61395	}
61396	return c.header_
61397}
61398
61399func (c *GlobalNetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
61400	reqHeaders := make(http.Header)
61401	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61402	for k, v := range c.header_ {
61403		reqHeaders[k] = v
61404	}
61405	reqHeaders.Set("User-Agent", c.s.userAgent())
61406	if c.ifNoneMatch_ != "" {
61407		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61408	}
61409	var body io.Reader = nil
61410	c.urlParams_.Set("alt", alt)
61411	c.urlParams_.Set("prettyPrint", "false")
61412	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}")
61413	urls += "?" + c.urlParams_.Encode()
61414	req, err := http.NewRequest("GET", urls, body)
61415	if err != nil {
61416		return nil, err
61417	}
61418	req.Header = reqHeaders
61419	googleapi.Expand(req.URL, map[string]string{
61420		"project":              c.project,
61421		"networkEndpointGroup": c.networkEndpointGroup,
61422	})
61423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61424}
61425
61426// Do executes the "compute.globalNetworkEndpointGroups.get" call.
61427// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
61428// non-2xx status code is an error. Response headers are in either
61429// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
61430// returned at all) in error.(*googleapi.Error).Header. Use
61431// googleapi.IsNotModified to check whether the returned error was
61432// because http.StatusNotModified was returned.
61433func (c *GlobalNetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
61434	gensupport.SetOptions(c.urlParams_, opts...)
61435	res, err := c.doRequest("json")
61436	if res != nil && res.StatusCode == http.StatusNotModified {
61437		if res.Body != nil {
61438			res.Body.Close()
61439		}
61440		return nil, &googleapi.Error{
61441			Code:   res.StatusCode,
61442			Header: res.Header,
61443		}
61444	}
61445	if err != nil {
61446		return nil, err
61447	}
61448	defer googleapi.CloseBody(res)
61449	if err := googleapi.CheckResponse(res); err != nil {
61450		return nil, err
61451	}
61452	ret := &NetworkEndpointGroup{
61453		ServerResponse: googleapi.ServerResponse{
61454			Header:         res.Header,
61455			HTTPStatusCode: res.StatusCode,
61456		},
61457	}
61458	target := &ret
61459	if err := gensupport.DecodeResponse(target, res); err != nil {
61460		return nil, err
61461	}
61462	return ret, nil
61463	// {
61464	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
61465	//   "httpMethod": "GET",
61466	//   "id": "compute.globalNetworkEndpointGroups.get",
61467	//   "parameterOrder": [
61468	//     "project",
61469	//     "networkEndpointGroup"
61470	//   ],
61471	//   "parameters": {
61472	//     "networkEndpointGroup": {
61473	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
61474	//       "location": "path",
61475	//       "required": true,
61476	//       "type": "string"
61477	//     },
61478	//     "project": {
61479	//       "description": "Project ID for this request.",
61480	//       "location": "path",
61481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61482	//       "required": true,
61483	//       "type": "string"
61484	//     }
61485	//   },
61486	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}",
61487	//   "response": {
61488	//     "$ref": "NetworkEndpointGroup"
61489	//   },
61490	//   "scopes": [
61491	//     "https://www.googleapis.com/auth/cloud-platform",
61492	//     "https://www.googleapis.com/auth/compute",
61493	//     "https://www.googleapis.com/auth/compute.readonly"
61494	//   ]
61495	// }
61496
61497}
61498
61499// method id "compute.globalNetworkEndpointGroups.insert":
61500
61501type GlobalNetworkEndpointGroupsInsertCall struct {
61502	s                    *Service
61503	project              string
61504	networkendpointgroup *NetworkEndpointGroup
61505	urlParams_           gensupport.URLParams
61506	ctx_                 context.Context
61507	header_              http.Header
61508}
61509
61510// Insert: Creates a network endpoint group in the specified project
61511// using the parameters that are included in the request.
61512func (r *GlobalNetworkEndpointGroupsService) Insert(project string, networkendpointgroup *NetworkEndpointGroup) *GlobalNetworkEndpointGroupsInsertCall {
61513	c := &GlobalNetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61514	c.project = project
61515	c.networkendpointgroup = networkendpointgroup
61516	return c
61517}
61518
61519// RequestId sets the optional parameter "requestId": An optional
61520// request ID to identify requests. Specify a unique request ID so that
61521// if you must retry your request, the server will know to ignore the
61522// request if it has already been completed.
61523//
61524// For example, consider a situation where you make an initial request
61525// and the request times out. If you make the request again with the
61526// same request ID, the server can check if original operation with the
61527// same request ID was received, and if so, will ignore the second
61528// request. This prevents clients from accidentally creating duplicate
61529// commitments.
61530//
61531// The request ID must be a valid UUID with the exception that zero UUID
61532// is not supported (00000000-0000-0000-0000-000000000000).
61533func (c *GlobalNetworkEndpointGroupsInsertCall) RequestId(requestId string) *GlobalNetworkEndpointGroupsInsertCall {
61534	c.urlParams_.Set("requestId", requestId)
61535	return c
61536}
61537
61538// Fields allows partial responses to be retrieved. See
61539// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61540// for more information.
61541func (c *GlobalNetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsInsertCall {
61542	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61543	return c
61544}
61545
61546// Context sets the context to be used in this call's Do method. Any
61547// pending HTTP request will be aborted if the provided context is
61548// canceled.
61549func (c *GlobalNetworkEndpointGroupsInsertCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsInsertCall {
61550	c.ctx_ = ctx
61551	return c
61552}
61553
61554// Header returns an http.Header that can be modified by the caller to
61555// add HTTP headers to the request.
61556func (c *GlobalNetworkEndpointGroupsInsertCall) Header() http.Header {
61557	if c.header_ == nil {
61558		c.header_ = make(http.Header)
61559	}
61560	return c.header_
61561}
61562
61563func (c *GlobalNetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
61564	reqHeaders := make(http.Header)
61565	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61566	for k, v := range c.header_ {
61567		reqHeaders[k] = v
61568	}
61569	reqHeaders.Set("User-Agent", c.s.userAgent())
61570	var body io.Reader = nil
61571	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
61572	if err != nil {
61573		return nil, err
61574	}
61575	reqHeaders.Set("Content-Type", "application/json")
61576	c.urlParams_.Set("alt", alt)
61577	c.urlParams_.Set("prettyPrint", "false")
61578	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
61579	urls += "?" + c.urlParams_.Encode()
61580	req, err := http.NewRequest("POST", urls, body)
61581	if err != nil {
61582		return nil, err
61583	}
61584	req.Header = reqHeaders
61585	googleapi.Expand(req.URL, map[string]string{
61586		"project": c.project,
61587	})
61588	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61589}
61590
61591// Do executes the "compute.globalNetworkEndpointGroups.insert" call.
61592// Exactly one of *Operation or error will be non-nil. Any non-2xx
61593// status code is an error. Response headers are in either
61594// *Operation.ServerResponse.Header or (if a response was returned at
61595// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
61596// to check whether the returned error was because
61597// http.StatusNotModified was returned.
61598func (c *GlobalNetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
61599	gensupport.SetOptions(c.urlParams_, opts...)
61600	res, err := c.doRequest("json")
61601	if res != nil && res.StatusCode == http.StatusNotModified {
61602		if res.Body != nil {
61603			res.Body.Close()
61604		}
61605		return nil, &googleapi.Error{
61606			Code:   res.StatusCode,
61607			Header: res.Header,
61608		}
61609	}
61610	if err != nil {
61611		return nil, err
61612	}
61613	defer googleapi.CloseBody(res)
61614	if err := googleapi.CheckResponse(res); err != nil {
61615		return nil, err
61616	}
61617	ret := &Operation{
61618		ServerResponse: googleapi.ServerResponse{
61619			Header:         res.Header,
61620			HTTPStatusCode: res.StatusCode,
61621		},
61622	}
61623	target := &ret
61624	if err := gensupport.DecodeResponse(target, res); err != nil {
61625		return nil, err
61626	}
61627	return ret, nil
61628	// {
61629	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
61630	//   "httpMethod": "POST",
61631	//   "id": "compute.globalNetworkEndpointGroups.insert",
61632	//   "parameterOrder": [
61633	//     "project"
61634	//   ],
61635	//   "parameters": {
61636	//     "project": {
61637	//       "description": "Project ID for this request.",
61638	//       "location": "path",
61639	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61640	//       "required": true,
61641	//       "type": "string"
61642	//     },
61643	//     "requestId": {
61644	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
61645	//       "location": "query",
61646	//       "type": "string"
61647	//     }
61648	//   },
61649	//   "path": "{project}/global/networkEndpointGroups",
61650	//   "request": {
61651	//     "$ref": "NetworkEndpointGroup"
61652	//   },
61653	//   "response": {
61654	//     "$ref": "Operation"
61655	//   },
61656	//   "scopes": [
61657	//     "https://www.googleapis.com/auth/cloud-platform",
61658	//     "https://www.googleapis.com/auth/compute"
61659	//   ]
61660	// }
61661
61662}
61663
61664// method id "compute.globalNetworkEndpointGroups.list":
61665
61666type GlobalNetworkEndpointGroupsListCall struct {
61667	s            *Service
61668	project      string
61669	urlParams_   gensupport.URLParams
61670	ifNoneMatch_ string
61671	ctx_         context.Context
61672	header_      http.Header
61673}
61674
61675// List: Retrieves the list of network endpoint groups that are located
61676// in the specified project.
61677func (r *GlobalNetworkEndpointGroupsService) List(project string) *GlobalNetworkEndpointGroupsListCall {
61678	c := &GlobalNetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61679	c.project = project
61680	return c
61681}
61682
61683// Filter sets the optional parameter "filter": A filter expression that
61684// filters resources listed in the response. The expression must specify
61685// the field name, a comparison operator, and the value that you want to
61686// use for filtering. The value must be a string, a number, or a
61687// boolean. The comparison operator must be either =, !=, >, or <.
61688//
61689// For example, if you are filtering Compute Engine instances, you can
61690// exclude instances named example-instance by specifying name !=
61691// example-instance.
61692//
61693// You can also filter nested fields. For example, you could specify
61694// scheduling.automaticRestart = false to include instances only if they
61695// are not scheduled for automatic restarts. You can use filtering on
61696// nested fields to filter based on resource labels.
61697//
61698// To filter on multiple expressions, provide each separate expression
61699// within parentheses. For example, (scheduling.automaticRestart = true)
61700// (cpuPlatform = "Intel Skylake"). By default, each expression is an
61701// AND expression. However, you can include AND and OR expressions
61702// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
61703// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
61704// true).
61705func (c *GlobalNetworkEndpointGroupsListCall) Filter(filter string) *GlobalNetworkEndpointGroupsListCall {
61706	c.urlParams_.Set("filter", filter)
61707	return c
61708}
61709
61710// MaxResults sets the optional parameter "maxResults": The maximum
61711// number of results per page that should be returned. If the number of
61712// available results is larger than maxResults, Compute Engine returns a
61713// nextPageToken that can be used to get the next page of results in
61714// subsequent list requests. Acceptable values are 0 to 500, inclusive.
61715// (Default: 500)
61716func (c *GlobalNetworkEndpointGroupsListCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListCall {
61717	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61718	return c
61719}
61720
61721// OrderBy sets the optional parameter "orderBy": Sorts list results by
61722// a certain order. By default, results are returned in alphanumerical
61723// order based on the resource name.
61724//
61725// You can also sort results in descending order based on the creation
61726// timestamp using orderBy="creationTimestamp desc". This sorts results
61727// based on the creationTimestamp field in reverse chronological order
61728// (newest result first). Use this to sort resources like operations so
61729// that the newest operation is returned first.
61730//
61731// Currently, only sorting by name or creationTimestamp desc is
61732// supported.
61733func (c *GlobalNetworkEndpointGroupsListCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListCall {
61734	c.urlParams_.Set("orderBy", orderBy)
61735	return c
61736}
61737
61738// PageToken sets the optional parameter "pageToken": Specifies a page
61739// token to use. Set pageToken to the nextPageToken returned by a
61740// previous list request to get the next page of results.
61741func (c *GlobalNetworkEndpointGroupsListCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListCall {
61742	c.urlParams_.Set("pageToken", pageToken)
61743	return c
61744}
61745
61746// Fields allows partial responses to be retrieved. See
61747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
61748// for more information.
61749func (c *GlobalNetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListCall {
61750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
61751	return c
61752}
61753
61754// IfNoneMatch sets the optional parameter which makes the operation
61755// fail if the object's ETag matches the given value. This is useful for
61756// getting updates only after the object has changed since the last
61757// request. Use googleapi.IsNotModified to check whether the response
61758// error from Do is the result of In-None-Match.
61759func (c *GlobalNetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *GlobalNetworkEndpointGroupsListCall {
61760	c.ifNoneMatch_ = entityTag
61761	return c
61762}
61763
61764// Context sets the context to be used in this call's Do method. Any
61765// pending HTTP request will be aborted if the provided context is
61766// canceled.
61767func (c *GlobalNetworkEndpointGroupsListCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListCall {
61768	c.ctx_ = ctx
61769	return c
61770}
61771
61772// Header returns an http.Header that can be modified by the caller to
61773// add HTTP headers to the request.
61774func (c *GlobalNetworkEndpointGroupsListCall) Header() http.Header {
61775	if c.header_ == nil {
61776		c.header_ = make(http.Header)
61777	}
61778	return c.header_
61779}
61780
61781func (c *GlobalNetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
61782	reqHeaders := make(http.Header)
61783	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
61784	for k, v := range c.header_ {
61785		reqHeaders[k] = v
61786	}
61787	reqHeaders.Set("User-Agent", c.s.userAgent())
61788	if c.ifNoneMatch_ != "" {
61789		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
61790	}
61791	var body io.Reader = nil
61792	c.urlParams_.Set("alt", alt)
61793	c.urlParams_.Set("prettyPrint", "false")
61794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups")
61795	urls += "?" + c.urlParams_.Encode()
61796	req, err := http.NewRequest("GET", urls, body)
61797	if err != nil {
61798		return nil, err
61799	}
61800	req.Header = reqHeaders
61801	googleapi.Expand(req.URL, map[string]string{
61802		"project": c.project,
61803	})
61804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
61805}
61806
61807// Do executes the "compute.globalNetworkEndpointGroups.list" call.
61808// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
61809// Any non-2xx status code is an error. Response headers are in either
61810// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
61811// returned at all) in error.(*googleapi.Error).Header. Use
61812// googleapi.IsNotModified to check whether the returned error was
61813// because http.StatusNotModified was returned.
61814func (c *GlobalNetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
61815	gensupport.SetOptions(c.urlParams_, opts...)
61816	res, err := c.doRequest("json")
61817	if res != nil && res.StatusCode == http.StatusNotModified {
61818		if res.Body != nil {
61819			res.Body.Close()
61820		}
61821		return nil, &googleapi.Error{
61822			Code:   res.StatusCode,
61823			Header: res.Header,
61824		}
61825	}
61826	if err != nil {
61827		return nil, err
61828	}
61829	defer googleapi.CloseBody(res)
61830	if err := googleapi.CheckResponse(res); err != nil {
61831		return nil, err
61832	}
61833	ret := &NetworkEndpointGroupList{
61834		ServerResponse: googleapi.ServerResponse{
61835			Header:         res.Header,
61836			HTTPStatusCode: res.StatusCode,
61837		},
61838	}
61839	target := &ret
61840	if err := gensupport.DecodeResponse(target, res); err != nil {
61841		return nil, err
61842	}
61843	return ret, nil
61844	// {
61845	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project.",
61846	//   "httpMethod": "GET",
61847	//   "id": "compute.globalNetworkEndpointGroups.list",
61848	//   "parameterOrder": [
61849	//     "project"
61850	//   ],
61851	//   "parameters": {
61852	//     "filter": {
61853	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
61854	//       "location": "query",
61855	//       "type": "string"
61856	//     },
61857	//     "maxResults": {
61858	//       "default": "500",
61859	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
61860	//       "format": "uint32",
61861	//       "location": "query",
61862	//       "minimum": "0",
61863	//       "type": "integer"
61864	//     },
61865	//     "orderBy": {
61866	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
61867	//       "location": "query",
61868	//       "type": "string"
61869	//     },
61870	//     "pageToken": {
61871	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
61872	//       "location": "query",
61873	//       "type": "string"
61874	//     },
61875	//     "project": {
61876	//       "description": "Project ID for this request.",
61877	//       "location": "path",
61878	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
61879	//       "required": true,
61880	//       "type": "string"
61881	//     }
61882	//   },
61883	//   "path": "{project}/global/networkEndpointGroups",
61884	//   "response": {
61885	//     "$ref": "NetworkEndpointGroupList"
61886	//   },
61887	//   "scopes": [
61888	//     "https://www.googleapis.com/auth/cloud-platform",
61889	//     "https://www.googleapis.com/auth/compute",
61890	//     "https://www.googleapis.com/auth/compute.readonly"
61891	//   ]
61892	// }
61893
61894}
61895
61896// Pages invokes f for each page of results.
61897// A non-nil error returned from f will halt the iteration.
61898// The provided context supersedes any context provided to the Context method.
61899func (c *GlobalNetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
61900	c.ctx_ = ctx
61901	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
61902	for {
61903		x, err := c.Do()
61904		if err != nil {
61905			return err
61906		}
61907		if err := f(x); err != nil {
61908			return err
61909		}
61910		if x.NextPageToken == "" {
61911			return nil
61912		}
61913		c.PageToken(x.NextPageToken)
61914	}
61915}
61916
61917// method id "compute.globalNetworkEndpointGroups.listNetworkEndpoints":
61918
61919type GlobalNetworkEndpointGroupsListNetworkEndpointsCall struct {
61920	s                    *Service
61921	project              string
61922	networkEndpointGroup string
61923	urlParams_           gensupport.URLParams
61924	ctx_                 context.Context
61925	header_              http.Header
61926}
61927
61928// ListNetworkEndpoints: Lists the network endpoints in the specified
61929// network endpoint group.
61930func (r *GlobalNetworkEndpointGroupsService) ListNetworkEndpoints(project string, networkEndpointGroup string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
61931	c := &GlobalNetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
61932	c.project = project
61933	c.networkEndpointGroup = networkEndpointGroup
61934	return c
61935}
61936
61937// Filter sets the optional parameter "filter": A filter expression that
61938// filters resources listed in the response. The expression must specify
61939// the field name, a comparison operator, and the value that you want to
61940// use for filtering. The value must be a string, a number, or a
61941// boolean. The comparison operator must be either =, !=, >, or <.
61942//
61943// For example, if you are filtering Compute Engine instances, you can
61944// exclude instances named example-instance by specifying name !=
61945// example-instance.
61946//
61947// You can also filter nested fields. For example, you could specify
61948// scheduling.automaticRestart = false to include instances only if they
61949// are not scheduled for automatic restarts. You can use filtering on
61950// nested fields to filter based on resource labels.
61951//
61952// To filter on multiple expressions, provide each separate expression
61953// within parentheses. For example, (scheduling.automaticRestart = true)
61954// (cpuPlatform = "Intel Skylake"). By default, each expression is an
61955// AND expression. However, you can include AND and OR expressions
61956// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
61957// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
61958// true).
61959func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
61960	c.urlParams_.Set("filter", filter)
61961	return c
61962}
61963
61964// MaxResults sets the optional parameter "maxResults": The maximum
61965// number of results per page that should be returned. If the number of
61966// available results is larger than maxResults, Compute Engine returns a
61967// nextPageToken that can be used to get the next page of results in
61968// subsequent list requests. Acceptable values are 0 to 500, inclusive.
61969// (Default: 500)
61970func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
61971	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
61972	return c
61973}
61974
61975// OrderBy sets the optional parameter "orderBy": Sorts list results by
61976// a certain order. By default, results are returned in alphanumerical
61977// order based on the resource name.
61978//
61979// You can also sort results in descending order based on the creation
61980// timestamp using orderBy="creationTimestamp desc". This sorts results
61981// based on the creationTimestamp field in reverse chronological order
61982// (newest result first). Use this to sort resources like operations so
61983// that the newest operation is returned first.
61984//
61985// Currently, only sorting by name or creationTimestamp desc is
61986// supported.
61987func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
61988	c.urlParams_.Set("orderBy", orderBy)
61989	return c
61990}
61991
61992// PageToken sets the optional parameter "pageToken": Specifies a page
61993// token to use. Set pageToken to the nextPageToken returned by a
61994// previous list request to get the next page of results.
61995func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
61996	c.urlParams_.Set("pageToken", pageToken)
61997	return c
61998}
61999
62000// Fields allows partial responses to be retrieved. See
62001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62002// for more information.
62003func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
62004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62005	return c
62006}
62007
62008// Context sets the context to be used in this call's Do method. Any
62009// pending HTTP request will be aborted if the provided context is
62010// canceled.
62011func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *GlobalNetworkEndpointGroupsListNetworkEndpointsCall {
62012	c.ctx_ = ctx
62013	return c
62014}
62015
62016// Header returns an http.Header that can be modified by the caller to
62017// add HTTP headers to the request.
62018func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
62019	if c.header_ == nil {
62020		c.header_ = make(http.Header)
62021	}
62022	return c.header_
62023}
62024
62025func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
62026	reqHeaders := make(http.Header)
62027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62028	for k, v := range c.header_ {
62029		reqHeaders[k] = v
62030	}
62031	reqHeaders.Set("User-Agent", c.s.userAgent())
62032	var body io.Reader = nil
62033	c.urlParams_.Set("alt", alt)
62034	c.urlParams_.Set("prettyPrint", "false")
62035	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
62036	urls += "?" + c.urlParams_.Encode()
62037	req, err := http.NewRequest("POST", urls, body)
62038	if err != nil {
62039		return nil, err
62040	}
62041	req.Header = reqHeaders
62042	googleapi.Expand(req.URL, map[string]string{
62043		"project":              c.project,
62044		"networkEndpointGroup": c.networkEndpointGroup,
62045	})
62046	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62047}
62048
62049// Do executes the "compute.globalNetworkEndpointGroups.listNetworkEndpoints" call.
62050// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
62051// will be non-nil. Any non-2xx status code is an error. Response
62052// headers are in either
62053// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
62054// (if a response was returned at all) in
62055// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
62056// whether the returned error was because http.StatusNotModified was
62057// returned.
62058func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
62059	gensupport.SetOptions(c.urlParams_, opts...)
62060	res, err := c.doRequest("json")
62061	if res != nil && res.StatusCode == http.StatusNotModified {
62062		if res.Body != nil {
62063			res.Body.Close()
62064		}
62065		return nil, &googleapi.Error{
62066			Code:   res.StatusCode,
62067			Header: res.Header,
62068		}
62069	}
62070	if err != nil {
62071		return nil, err
62072	}
62073	defer googleapi.CloseBody(res)
62074	if err := googleapi.CheckResponse(res); err != nil {
62075		return nil, err
62076	}
62077	ret := &NetworkEndpointGroupsListNetworkEndpoints{
62078		ServerResponse: googleapi.ServerResponse{
62079			Header:         res.Header,
62080			HTTPStatusCode: res.StatusCode,
62081		},
62082	}
62083	target := &ret
62084	if err := gensupport.DecodeResponse(target, res); err != nil {
62085		return nil, err
62086	}
62087	return ret, nil
62088	// {
62089	//   "description": "Lists the network endpoints in the specified network endpoint group.",
62090	//   "httpMethod": "POST",
62091	//   "id": "compute.globalNetworkEndpointGroups.listNetworkEndpoints",
62092	//   "parameterOrder": [
62093	//     "project",
62094	//     "networkEndpointGroup"
62095	//   ],
62096	//   "parameters": {
62097	//     "filter": {
62098	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
62099	//       "location": "query",
62100	//       "type": "string"
62101	//     },
62102	//     "maxResults": {
62103	//       "default": "500",
62104	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62105	//       "format": "uint32",
62106	//       "location": "query",
62107	//       "minimum": "0",
62108	//       "type": "integer"
62109	//     },
62110	//     "networkEndpointGroup": {
62111	//       "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.",
62112	//       "location": "path",
62113	//       "required": true,
62114	//       "type": "string"
62115	//     },
62116	//     "orderBy": {
62117	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62118	//       "location": "query",
62119	//       "type": "string"
62120	//     },
62121	//     "pageToken": {
62122	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62123	//       "location": "query",
62124	//       "type": "string"
62125	//     },
62126	//     "project": {
62127	//       "description": "Project ID for this request.",
62128	//       "location": "path",
62129	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62130	//       "required": true,
62131	//       "type": "string"
62132	//     }
62133	//   },
62134	//   "path": "{project}/global/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
62135	//   "response": {
62136	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
62137	//   },
62138	//   "scopes": [
62139	//     "https://www.googleapis.com/auth/cloud-platform",
62140	//     "https://www.googleapis.com/auth/compute",
62141	//     "https://www.googleapis.com/auth/compute.readonly"
62142	//   ]
62143	// }
62144
62145}
62146
62147// Pages invokes f for each page of results.
62148// A non-nil error returned from f will halt the iteration.
62149// The provided context supersedes any context provided to the Context method.
62150func (c *GlobalNetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
62151	c.ctx_ = ctx
62152	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62153	for {
62154		x, err := c.Do()
62155		if err != nil {
62156			return err
62157		}
62158		if err := f(x); err != nil {
62159			return err
62160		}
62161		if x.NextPageToken == "" {
62162			return nil
62163		}
62164		c.PageToken(x.NextPageToken)
62165	}
62166}
62167
62168// method id "compute.globalOperations.aggregatedList":
62169
62170type GlobalOperationsAggregatedListCall struct {
62171	s            *Service
62172	project      string
62173	urlParams_   gensupport.URLParams
62174	ifNoneMatch_ string
62175	ctx_         context.Context
62176	header_      http.Header
62177}
62178
62179// AggregatedList: Retrieves an aggregated list of all operations.
62180// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/aggregatedList
62181func (r *GlobalOperationsService) AggregatedList(project string) *GlobalOperationsAggregatedListCall {
62182	c := &GlobalOperationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62183	c.project = project
62184	return c
62185}
62186
62187// Filter sets the optional parameter "filter": A filter expression that
62188// filters resources listed in the response. The expression must specify
62189// the field name, a comparison operator, and the value that you want to
62190// use for filtering. The value must be a string, a number, or a
62191// boolean. The comparison operator must be either =, !=, >, or <.
62192//
62193// For example, if you are filtering Compute Engine instances, you can
62194// exclude instances named example-instance by specifying name !=
62195// example-instance.
62196//
62197// You can also filter nested fields. For example, you could specify
62198// scheduling.automaticRestart = false to include instances only if they
62199// are not scheduled for automatic restarts. You can use filtering on
62200// nested fields to filter based on resource labels.
62201//
62202// To filter on multiple expressions, provide each separate expression
62203// within parentheses. For example, (scheduling.automaticRestart = true)
62204// (cpuPlatform = "Intel Skylake"). By default, each expression is an
62205// AND expression. However, you can include AND and OR expressions
62206// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
62207// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
62208// true).
62209func (c *GlobalOperationsAggregatedListCall) Filter(filter string) *GlobalOperationsAggregatedListCall {
62210	c.urlParams_.Set("filter", filter)
62211	return c
62212}
62213
62214// IncludeAllScopes sets the optional parameter "includeAllScopes":
62215// Indicates whether every visible scope for each scope type (zone,
62216// region, global) should be included in the response. For new resource
62217// types added after this field, the flag has no effect as new resource
62218// types will always include every visible scope for each scope type in
62219// response. For resource types which predate this field, if this flag
62220// is omitted or false, only scopes of the scope types where the
62221// resource type is expected to be found will be included.
62222func (c *GlobalOperationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *GlobalOperationsAggregatedListCall {
62223	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
62224	return c
62225}
62226
62227// MaxResults sets the optional parameter "maxResults": The maximum
62228// number of results per page that should be returned. If the number of
62229// available results is larger than maxResults, Compute Engine returns a
62230// nextPageToken that can be used to get the next page of results in
62231// subsequent list requests. Acceptable values are 0 to 500, inclusive.
62232// (Default: 500)
62233func (c *GlobalOperationsAggregatedListCall) MaxResults(maxResults int64) *GlobalOperationsAggregatedListCall {
62234	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62235	return c
62236}
62237
62238// OrderBy sets the optional parameter "orderBy": Sorts list results by
62239// a certain order. By default, results are returned in alphanumerical
62240// order based on the resource name.
62241//
62242// You can also sort results in descending order based on the creation
62243// timestamp using orderBy="creationTimestamp desc". This sorts results
62244// based on the creationTimestamp field in reverse chronological order
62245// (newest result first). Use this to sort resources like operations so
62246// that the newest operation is returned first.
62247//
62248// Currently, only sorting by name or creationTimestamp desc is
62249// supported.
62250func (c *GlobalOperationsAggregatedListCall) OrderBy(orderBy string) *GlobalOperationsAggregatedListCall {
62251	c.urlParams_.Set("orderBy", orderBy)
62252	return c
62253}
62254
62255// PageToken sets the optional parameter "pageToken": Specifies a page
62256// token to use. Set pageToken to the nextPageToken returned by a
62257// previous list request to get the next page of results.
62258func (c *GlobalOperationsAggregatedListCall) PageToken(pageToken string) *GlobalOperationsAggregatedListCall {
62259	c.urlParams_.Set("pageToken", pageToken)
62260	return c
62261}
62262
62263// Fields allows partial responses to be retrieved. See
62264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62265// for more information.
62266func (c *GlobalOperationsAggregatedListCall) Fields(s ...googleapi.Field) *GlobalOperationsAggregatedListCall {
62267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62268	return c
62269}
62270
62271// IfNoneMatch sets the optional parameter which makes the operation
62272// fail if the object's ETag matches the given value. This is useful for
62273// getting updates only after the object has changed since the last
62274// request. Use googleapi.IsNotModified to check whether the response
62275// error from Do is the result of In-None-Match.
62276func (c *GlobalOperationsAggregatedListCall) IfNoneMatch(entityTag string) *GlobalOperationsAggregatedListCall {
62277	c.ifNoneMatch_ = entityTag
62278	return c
62279}
62280
62281// Context sets the context to be used in this call's Do method. Any
62282// pending HTTP request will be aborted if the provided context is
62283// canceled.
62284func (c *GlobalOperationsAggregatedListCall) Context(ctx context.Context) *GlobalOperationsAggregatedListCall {
62285	c.ctx_ = ctx
62286	return c
62287}
62288
62289// Header returns an http.Header that can be modified by the caller to
62290// add HTTP headers to the request.
62291func (c *GlobalOperationsAggregatedListCall) Header() http.Header {
62292	if c.header_ == nil {
62293		c.header_ = make(http.Header)
62294	}
62295	return c.header_
62296}
62297
62298func (c *GlobalOperationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
62299	reqHeaders := make(http.Header)
62300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62301	for k, v := range c.header_ {
62302		reqHeaders[k] = v
62303	}
62304	reqHeaders.Set("User-Agent", c.s.userAgent())
62305	if c.ifNoneMatch_ != "" {
62306		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62307	}
62308	var body io.Reader = nil
62309	c.urlParams_.Set("alt", alt)
62310	c.urlParams_.Set("prettyPrint", "false")
62311	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/operations")
62312	urls += "?" + c.urlParams_.Encode()
62313	req, err := http.NewRequest("GET", urls, body)
62314	if err != nil {
62315		return nil, err
62316	}
62317	req.Header = reqHeaders
62318	googleapi.Expand(req.URL, map[string]string{
62319		"project": c.project,
62320	})
62321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62322}
62323
62324// Do executes the "compute.globalOperations.aggregatedList" call.
62325// Exactly one of *OperationAggregatedList or error will be non-nil. Any
62326// non-2xx status code is an error. Response headers are in either
62327// *OperationAggregatedList.ServerResponse.Header or (if a response was
62328// returned at all) in error.(*googleapi.Error).Header. Use
62329// googleapi.IsNotModified to check whether the returned error was
62330// because http.StatusNotModified was returned.
62331func (c *GlobalOperationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*OperationAggregatedList, error) {
62332	gensupport.SetOptions(c.urlParams_, opts...)
62333	res, err := c.doRequest("json")
62334	if res != nil && res.StatusCode == http.StatusNotModified {
62335		if res.Body != nil {
62336			res.Body.Close()
62337		}
62338		return nil, &googleapi.Error{
62339			Code:   res.StatusCode,
62340			Header: res.Header,
62341		}
62342	}
62343	if err != nil {
62344		return nil, err
62345	}
62346	defer googleapi.CloseBody(res)
62347	if err := googleapi.CheckResponse(res); err != nil {
62348		return nil, err
62349	}
62350	ret := &OperationAggregatedList{
62351		ServerResponse: googleapi.ServerResponse{
62352			Header:         res.Header,
62353			HTTPStatusCode: res.StatusCode,
62354		},
62355	}
62356	target := &ret
62357	if err := gensupport.DecodeResponse(target, res); err != nil {
62358		return nil, err
62359	}
62360	return ret, nil
62361	// {
62362	//   "description": "Retrieves an aggregated list of all operations.",
62363	//   "httpMethod": "GET",
62364	//   "id": "compute.globalOperations.aggregatedList",
62365	//   "parameterOrder": [
62366	//     "project"
62367	//   ],
62368	//   "parameters": {
62369	//     "filter": {
62370	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
62371	//       "location": "query",
62372	//       "type": "string"
62373	//     },
62374	//     "includeAllScopes": {
62375	//       "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.",
62376	//       "location": "query",
62377	//       "type": "boolean"
62378	//     },
62379	//     "maxResults": {
62380	//       "default": "500",
62381	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62382	//       "format": "uint32",
62383	//       "location": "query",
62384	//       "minimum": "0",
62385	//       "type": "integer"
62386	//     },
62387	//     "orderBy": {
62388	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62389	//       "location": "query",
62390	//       "type": "string"
62391	//     },
62392	//     "pageToken": {
62393	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62394	//       "location": "query",
62395	//       "type": "string"
62396	//     },
62397	//     "project": {
62398	//       "description": "Project ID for this request.",
62399	//       "location": "path",
62400	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62401	//       "required": true,
62402	//       "type": "string"
62403	//     }
62404	//   },
62405	//   "path": "{project}/aggregated/operations",
62406	//   "response": {
62407	//     "$ref": "OperationAggregatedList"
62408	//   },
62409	//   "scopes": [
62410	//     "https://www.googleapis.com/auth/cloud-platform",
62411	//     "https://www.googleapis.com/auth/compute",
62412	//     "https://www.googleapis.com/auth/compute.readonly"
62413	//   ]
62414	// }
62415
62416}
62417
62418// Pages invokes f for each page of results.
62419// A non-nil error returned from f will halt the iteration.
62420// The provided context supersedes any context provided to the Context method.
62421func (c *GlobalOperationsAggregatedListCall) Pages(ctx context.Context, f func(*OperationAggregatedList) error) error {
62422	c.ctx_ = ctx
62423	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62424	for {
62425		x, err := c.Do()
62426		if err != nil {
62427			return err
62428		}
62429		if err := f(x); err != nil {
62430			return err
62431		}
62432		if x.NextPageToken == "" {
62433			return nil
62434		}
62435		c.PageToken(x.NextPageToken)
62436	}
62437}
62438
62439// method id "compute.globalOperations.delete":
62440
62441type GlobalOperationsDeleteCall struct {
62442	s          *Service
62443	project    string
62444	operation  string
62445	urlParams_ gensupport.URLParams
62446	ctx_       context.Context
62447	header_    http.Header
62448}
62449
62450// Delete: Deletes the specified Operations resource.
62451// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/delete
62452func (r *GlobalOperationsService) Delete(project string, operation string) *GlobalOperationsDeleteCall {
62453	c := &GlobalOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62454	c.project = project
62455	c.operation = operation
62456	return c
62457}
62458
62459// Fields allows partial responses to be retrieved. See
62460// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62461// for more information.
62462func (c *GlobalOperationsDeleteCall) Fields(s ...googleapi.Field) *GlobalOperationsDeleteCall {
62463	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62464	return c
62465}
62466
62467// Context sets the context to be used in this call's Do method. Any
62468// pending HTTP request will be aborted if the provided context is
62469// canceled.
62470func (c *GlobalOperationsDeleteCall) Context(ctx context.Context) *GlobalOperationsDeleteCall {
62471	c.ctx_ = ctx
62472	return c
62473}
62474
62475// Header returns an http.Header that can be modified by the caller to
62476// add HTTP headers to the request.
62477func (c *GlobalOperationsDeleteCall) Header() http.Header {
62478	if c.header_ == nil {
62479		c.header_ = make(http.Header)
62480	}
62481	return c.header_
62482}
62483
62484func (c *GlobalOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
62485	reqHeaders := make(http.Header)
62486	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62487	for k, v := range c.header_ {
62488		reqHeaders[k] = v
62489	}
62490	reqHeaders.Set("User-Agent", c.s.userAgent())
62491	var body io.Reader = nil
62492	c.urlParams_.Set("alt", alt)
62493	c.urlParams_.Set("prettyPrint", "false")
62494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
62495	urls += "?" + c.urlParams_.Encode()
62496	req, err := http.NewRequest("DELETE", urls, body)
62497	if err != nil {
62498		return nil, err
62499	}
62500	req.Header = reqHeaders
62501	googleapi.Expand(req.URL, map[string]string{
62502		"project":   c.project,
62503		"operation": c.operation,
62504	})
62505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62506}
62507
62508// Do executes the "compute.globalOperations.delete" call.
62509func (c *GlobalOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
62510	gensupport.SetOptions(c.urlParams_, opts...)
62511	res, err := c.doRequest("json")
62512	if err != nil {
62513		return err
62514	}
62515	defer googleapi.CloseBody(res)
62516	if err := googleapi.CheckResponse(res); err != nil {
62517		return err
62518	}
62519	return nil
62520	// {
62521	//   "description": "Deletes the specified Operations resource.",
62522	//   "httpMethod": "DELETE",
62523	//   "id": "compute.globalOperations.delete",
62524	//   "parameterOrder": [
62525	//     "project",
62526	//     "operation"
62527	//   ],
62528	//   "parameters": {
62529	//     "operation": {
62530	//       "description": "Name of the Operations resource to delete.",
62531	//       "location": "path",
62532	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62533	//       "required": true,
62534	//       "type": "string"
62535	//     },
62536	//     "project": {
62537	//       "description": "Project ID for this request.",
62538	//       "location": "path",
62539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62540	//       "required": true,
62541	//       "type": "string"
62542	//     }
62543	//   },
62544	//   "path": "{project}/global/operations/{operation}",
62545	//   "scopes": [
62546	//     "https://www.googleapis.com/auth/cloud-platform",
62547	//     "https://www.googleapis.com/auth/compute"
62548	//   ]
62549	// }
62550
62551}
62552
62553// method id "compute.globalOperations.get":
62554
62555type GlobalOperationsGetCall struct {
62556	s            *Service
62557	project      string
62558	operation    string
62559	urlParams_   gensupport.URLParams
62560	ifNoneMatch_ string
62561	ctx_         context.Context
62562	header_      http.Header
62563}
62564
62565// Get: Retrieves the specified Operations resource. Gets a list of
62566// operations by making a list() request.
62567// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/get
62568func (r *GlobalOperationsService) Get(project string, operation string) *GlobalOperationsGetCall {
62569	c := &GlobalOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62570	c.project = project
62571	c.operation = operation
62572	return c
62573}
62574
62575// Fields allows partial responses to be retrieved. See
62576// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62577// for more information.
62578func (c *GlobalOperationsGetCall) Fields(s ...googleapi.Field) *GlobalOperationsGetCall {
62579	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62580	return c
62581}
62582
62583// IfNoneMatch sets the optional parameter which makes the operation
62584// fail if the object's ETag matches the given value. This is useful for
62585// getting updates only after the object has changed since the last
62586// request. Use googleapi.IsNotModified to check whether the response
62587// error from Do is the result of In-None-Match.
62588func (c *GlobalOperationsGetCall) IfNoneMatch(entityTag string) *GlobalOperationsGetCall {
62589	c.ifNoneMatch_ = entityTag
62590	return c
62591}
62592
62593// Context sets the context to be used in this call's Do method. Any
62594// pending HTTP request will be aborted if the provided context is
62595// canceled.
62596func (c *GlobalOperationsGetCall) Context(ctx context.Context) *GlobalOperationsGetCall {
62597	c.ctx_ = ctx
62598	return c
62599}
62600
62601// Header returns an http.Header that can be modified by the caller to
62602// add HTTP headers to the request.
62603func (c *GlobalOperationsGetCall) Header() http.Header {
62604	if c.header_ == nil {
62605		c.header_ = make(http.Header)
62606	}
62607	return c.header_
62608}
62609
62610func (c *GlobalOperationsGetCall) doRequest(alt string) (*http.Response, error) {
62611	reqHeaders := make(http.Header)
62612	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62613	for k, v := range c.header_ {
62614		reqHeaders[k] = v
62615	}
62616	reqHeaders.Set("User-Agent", c.s.userAgent())
62617	if c.ifNoneMatch_ != "" {
62618		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62619	}
62620	var body io.Reader = nil
62621	c.urlParams_.Set("alt", alt)
62622	c.urlParams_.Set("prettyPrint", "false")
62623	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}")
62624	urls += "?" + c.urlParams_.Encode()
62625	req, err := http.NewRequest("GET", urls, body)
62626	if err != nil {
62627		return nil, err
62628	}
62629	req.Header = reqHeaders
62630	googleapi.Expand(req.URL, map[string]string{
62631		"project":   c.project,
62632		"operation": c.operation,
62633	})
62634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62635}
62636
62637// Do executes the "compute.globalOperations.get" call.
62638// Exactly one of *Operation or error will be non-nil. Any non-2xx
62639// status code is an error. Response headers are in either
62640// *Operation.ServerResponse.Header or (if a response was returned at
62641// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
62642// to check whether the returned error was because
62643// http.StatusNotModified was returned.
62644func (c *GlobalOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
62645	gensupport.SetOptions(c.urlParams_, opts...)
62646	res, err := c.doRequest("json")
62647	if res != nil && res.StatusCode == http.StatusNotModified {
62648		if res.Body != nil {
62649			res.Body.Close()
62650		}
62651		return nil, &googleapi.Error{
62652			Code:   res.StatusCode,
62653			Header: res.Header,
62654		}
62655	}
62656	if err != nil {
62657		return nil, err
62658	}
62659	defer googleapi.CloseBody(res)
62660	if err := googleapi.CheckResponse(res); err != nil {
62661		return nil, err
62662	}
62663	ret := &Operation{
62664		ServerResponse: googleapi.ServerResponse{
62665			Header:         res.Header,
62666			HTTPStatusCode: res.StatusCode,
62667		},
62668	}
62669	target := &ret
62670	if err := gensupport.DecodeResponse(target, res); err != nil {
62671		return nil, err
62672	}
62673	return ret, nil
62674	// {
62675	//   "description": "Retrieves the specified Operations resource. Gets a list of operations by making a list() request.",
62676	//   "httpMethod": "GET",
62677	//   "id": "compute.globalOperations.get",
62678	//   "parameterOrder": [
62679	//     "project",
62680	//     "operation"
62681	//   ],
62682	//   "parameters": {
62683	//     "operation": {
62684	//       "description": "Name of the Operations resource to return.",
62685	//       "location": "path",
62686	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
62687	//       "required": true,
62688	//       "type": "string"
62689	//     },
62690	//     "project": {
62691	//       "description": "Project ID for this request.",
62692	//       "location": "path",
62693	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62694	//       "required": true,
62695	//       "type": "string"
62696	//     }
62697	//   },
62698	//   "path": "{project}/global/operations/{operation}",
62699	//   "response": {
62700	//     "$ref": "Operation"
62701	//   },
62702	//   "scopes": [
62703	//     "https://www.googleapis.com/auth/cloud-platform",
62704	//     "https://www.googleapis.com/auth/compute",
62705	//     "https://www.googleapis.com/auth/compute.readonly"
62706	//   ]
62707	// }
62708
62709}
62710
62711// method id "compute.globalOperations.list":
62712
62713type GlobalOperationsListCall struct {
62714	s            *Service
62715	project      string
62716	urlParams_   gensupport.URLParams
62717	ifNoneMatch_ string
62718	ctx_         context.Context
62719	header_      http.Header
62720}
62721
62722// List: Retrieves a list of Operation resources contained within the
62723// specified project.
62724// For details, see https://cloud.google.com/compute/docs/reference/latest/globalOperations/list
62725func (r *GlobalOperationsService) List(project string) *GlobalOperationsListCall {
62726	c := &GlobalOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62727	c.project = project
62728	return c
62729}
62730
62731// Filter sets the optional parameter "filter": A filter expression that
62732// filters resources listed in the response. The expression must specify
62733// the field name, a comparison operator, and the value that you want to
62734// use for filtering. The value must be a string, a number, or a
62735// boolean. The comparison operator must be either =, !=, >, or <.
62736//
62737// For example, if you are filtering Compute Engine instances, you can
62738// exclude instances named example-instance by specifying name !=
62739// example-instance.
62740//
62741// You can also filter nested fields. For example, you could specify
62742// scheduling.automaticRestart = false to include instances only if they
62743// are not scheduled for automatic restarts. You can use filtering on
62744// nested fields to filter based on resource labels.
62745//
62746// To filter on multiple expressions, provide each separate expression
62747// within parentheses. For example, (scheduling.automaticRestart = true)
62748// (cpuPlatform = "Intel Skylake"). By default, each expression is an
62749// AND expression. However, you can include AND and OR expressions
62750// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
62751// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
62752// true).
62753func (c *GlobalOperationsListCall) Filter(filter string) *GlobalOperationsListCall {
62754	c.urlParams_.Set("filter", filter)
62755	return c
62756}
62757
62758// MaxResults sets the optional parameter "maxResults": The maximum
62759// number of results per page that should be returned. If the number of
62760// available results is larger than maxResults, Compute Engine returns a
62761// nextPageToken that can be used to get the next page of results in
62762// subsequent list requests. Acceptable values are 0 to 500, inclusive.
62763// (Default: 500)
62764func (c *GlobalOperationsListCall) MaxResults(maxResults int64) *GlobalOperationsListCall {
62765	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
62766	return c
62767}
62768
62769// OrderBy sets the optional parameter "orderBy": Sorts list results by
62770// a certain order. By default, results are returned in alphanumerical
62771// order based on the resource name.
62772//
62773// You can also sort results in descending order based on the creation
62774// timestamp using orderBy="creationTimestamp desc". This sorts results
62775// based on the creationTimestamp field in reverse chronological order
62776// (newest result first). Use this to sort resources like operations so
62777// that the newest operation is returned first.
62778//
62779// Currently, only sorting by name or creationTimestamp desc is
62780// supported.
62781func (c *GlobalOperationsListCall) OrderBy(orderBy string) *GlobalOperationsListCall {
62782	c.urlParams_.Set("orderBy", orderBy)
62783	return c
62784}
62785
62786// PageToken sets the optional parameter "pageToken": Specifies a page
62787// token to use. Set pageToken to the nextPageToken returned by a
62788// previous list request to get the next page of results.
62789func (c *GlobalOperationsListCall) PageToken(pageToken string) *GlobalOperationsListCall {
62790	c.urlParams_.Set("pageToken", pageToken)
62791	return c
62792}
62793
62794// Fields allows partial responses to be retrieved. See
62795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62796// for more information.
62797func (c *GlobalOperationsListCall) Fields(s ...googleapi.Field) *GlobalOperationsListCall {
62798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
62799	return c
62800}
62801
62802// IfNoneMatch sets the optional parameter which makes the operation
62803// fail if the object's ETag matches the given value. This is useful for
62804// getting updates only after the object has changed since the last
62805// request. Use googleapi.IsNotModified to check whether the response
62806// error from Do is the result of In-None-Match.
62807func (c *GlobalOperationsListCall) IfNoneMatch(entityTag string) *GlobalOperationsListCall {
62808	c.ifNoneMatch_ = entityTag
62809	return c
62810}
62811
62812// Context sets the context to be used in this call's Do method. Any
62813// pending HTTP request will be aborted if the provided context is
62814// canceled.
62815func (c *GlobalOperationsListCall) Context(ctx context.Context) *GlobalOperationsListCall {
62816	c.ctx_ = ctx
62817	return c
62818}
62819
62820// Header returns an http.Header that can be modified by the caller to
62821// add HTTP headers to the request.
62822func (c *GlobalOperationsListCall) Header() http.Header {
62823	if c.header_ == nil {
62824		c.header_ = make(http.Header)
62825	}
62826	return c.header_
62827}
62828
62829func (c *GlobalOperationsListCall) doRequest(alt string) (*http.Response, error) {
62830	reqHeaders := make(http.Header)
62831	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
62832	for k, v := range c.header_ {
62833		reqHeaders[k] = v
62834	}
62835	reqHeaders.Set("User-Agent", c.s.userAgent())
62836	if c.ifNoneMatch_ != "" {
62837		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
62838	}
62839	var body io.Reader = nil
62840	c.urlParams_.Set("alt", alt)
62841	c.urlParams_.Set("prettyPrint", "false")
62842	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations")
62843	urls += "?" + c.urlParams_.Encode()
62844	req, err := http.NewRequest("GET", urls, body)
62845	if err != nil {
62846		return nil, err
62847	}
62848	req.Header = reqHeaders
62849	googleapi.Expand(req.URL, map[string]string{
62850		"project": c.project,
62851	})
62852	return gensupport.SendRequest(c.ctx_, c.s.client, req)
62853}
62854
62855// Do executes the "compute.globalOperations.list" call.
62856// Exactly one of *OperationList or error will be non-nil. Any non-2xx
62857// status code is an error. Response headers are in either
62858// *OperationList.ServerResponse.Header or (if a response was returned
62859// at all) in error.(*googleapi.Error).Header. Use
62860// googleapi.IsNotModified to check whether the returned error was
62861// because http.StatusNotModified was returned.
62862func (c *GlobalOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
62863	gensupport.SetOptions(c.urlParams_, opts...)
62864	res, err := c.doRequest("json")
62865	if res != nil && res.StatusCode == http.StatusNotModified {
62866		if res.Body != nil {
62867			res.Body.Close()
62868		}
62869		return nil, &googleapi.Error{
62870			Code:   res.StatusCode,
62871			Header: res.Header,
62872		}
62873	}
62874	if err != nil {
62875		return nil, err
62876	}
62877	defer googleapi.CloseBody(res)
62878	if err := googleapi.CheckResponse(res); err != nil {
62879		return nil, err
62880	}
62881	ret := &OperationList{
62882		ServerResponse: googleapi.ServerResponse{
62883			Header:         res.Header,
62884			HTTPStatusCode: res.StatusCode,
62885		},
62886	}
62887	target := &ret
62888	if err := gensupport.DecodeResponse(target, res); err != nil {
62889		return nil, err
62890	}
62891	return ret, nil
62892	// {
62893	//   "description": "Retrieves a list of Operation resources contained within the specified project.",
62894	//   "httpMethod": "GET",
62895	//   "id": "compute.globalOperations.list",
62896	//   "parameterOrder": [
62897	//     "project"
62898	//   ],
62899	//   "parameters": {
62900	//     "filter": {
62901	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
62902	//       "location": "query",
62903	//       "type": "string"
62904	//     },
62905	//     "maxResults": {
62906	//       "default": "500",
62907	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
62908	//       "format": "uint32",
62909	//       "location": "query",
62910	//       "minimum": "0",
62911	//       "type": "integer"
62912	//     },
62913	//     "orderBy": {
62914	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
62915	//       "location": "query",
62916	//       "type": "string"
62917	//     },
62918	//     "pageToken": {
62919	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
62920	//       "location": "query",
62921	//       "type": "string"
62922	//     },
62923	//     "project": {
62924	//       "description": "Project ID for this request.",
62925	//       "location": "path",
62926	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
62927	//       "required": true,
62928	//       "type": "string"
62929	//     }
62930	//   },
62931	//   "path": "{project}/global/operations",
62932	//   "response": {
62933	//     "$ref": "OperationList"
62934	//   },
62935	//   "scopes": [
62936	//     "https://www.googleapis.com/auth/cloud-platform",
62937	//     "https://www.googleapis.com/auth/compute",
62938	//     "https://www.googleapis.com/auth/compute.readonly"
62939	//   ]
62940	// }
62941
62942}
62943
62944// Pages invokes f for each page of results.
62945// A non-nil error returned from f will halt the iteration.
62946// The provided context supersedes any context provided to the Context method.
62947func (c *GlobalOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
62948	c.ctx_ = ctx
62949	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
62950	for {
62951		x, err := c.Do()
62952		if err != nil {
62953			return err
62954		}
62955		if err := f(x); err != nil {
62956			return err
62957		}
62958		if x.NextPageToken == "" {
62959			return nil
62960		}
62961		c.PageToken(x.NextPageToken)
62962	}
62963}
62964
62965// method id "compute.globalOperations.wait":
62966
62967type GlobalOperationsWaitCall struct {
62968	s          *Service
62969	project    string
62970	operation  string
62971	urlParams_ gensupport.URLParams
62972	ctx_       context.Context
62973	header_    http.Header
62974}
62975
62976// Wait: Waits for the specified Operation resource to return as DONE or
62977// for the request to approach the 2 minute deadline, and retrieves the
62978// specified Operation resource. This method differs from the GET method
62979// in that it waits for no more than the default deadline (2 minutes)
62980// and then returns the current state of the operation, which might be
62981// DONE or still in progress.
62982//
62983// This method is called on a best-effort basis. Specifically:
62984// - In uncommon cases, when the server is overloaded, the request might
62985// return before the default deadline is reached, or might return after
62986// zero seconds.
62987// - If the default deadline is reached, there is no guarantee that the
62988// operation is actually done when the method returns. Be prepared to
62989// retry if the operation is not DONE.
62990func (r *GlobalOperationsService) Wait(project string, operation string) *GlobalOperationsWaitCall {
62991	c := &GlobalOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
62992	c.project = project
62993	c.operation = operation
62994	return c
62995}
62996
62997// Fields allows partial responses to be retrieved. See
62998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
62999// for more information.
63000func (c *GlobalOperationsWaitCall) Fields(s ...googleapi.Field) *GlobalOperationsWaitCall {
63001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63002	return c
63003}
63004
63005// Context sets the context to be used in this call's Do method. Any
63006// pending HTTP request will be aborted if the provided context is
63007// canceled.
63008func (c *GlobalOperationsWaitCall) Context(ctx context.Context) *GlobalOperationsWaitCall {
63009	c.ctx_ = ctx
63010	return c
63011}
63012
63013// Header returns an http.Header that can be modified by the caller to
63014// add HTTP headers to the request.
63015func (c *GlobalOperationsWaitCall) Header() http.Header {
63016	if c.header_ == nil {
63017		c.header_ = make(http.Header)
63018	}
63019	return c.header_
63020}
63021
63022func (c *GlobalOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
63023	reqHeaders := make(http.Header)
63024	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63025	for k, v := range c.header_ {
63026		reqHeaders[k] = v
63027	}
63028	reqHeaders.Set("User-Agent", c.s.userAgent())
63029	var body io.Reader = nil
63030	c.urlParams_.Set("alt", alt)
63031	c.urlParams_.Set("prettyPrint", "false")
63032	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/operations/{operation}/wait")
63033	urls += "?" + c.urlParams_.Encode()
63034	req, err := http.NewRequest("POST", urls, body)
63035	if err != nil {
63036		return nil, err
63037	}
63038	req.Header = reqHeaders
63039	googleapi.Expand(req.URL, map[string]string{
63040		"project":   c.project,
63041		"operation": c.operation,
63042	})
63043	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63044}
63045
63046// Do executes the "compute.globalOperations.wait" call.
63047// Exactly one of *Operation or error will be non-nil. Any non-2xx
63048// status code is an error. Response headers are in either
63049// *Operation.ServerResponse.Header or (if a response was returned at
63050// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63051// to check whether the returned error was because
63052// http.StatusNotModified was returned.
63053func (c *GlobalOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63054	gensupport.SetOptions(c.urlParams_, opts...)
63055	res, err := c.doRequest("json")
63056	if res != nil && res.StatusCode == http.StatusNotModified {
63057		if res.Body != nil {
63058			res.Body.Close()
63059		}
63060		return nil, &googleapi.Error{
63061			Code:   res.StatusCode,
63062			Header: res.Header,
63063		}
63064	}
63065	if err != nil {
63066		return nil, err
63067	}
63068	defer googleapi.CloseBody(res)
63069	if err := googleapi.CheckResponse(res); err != nil {
63070		return nil, err
63071	}
63072	ret := &Operation{
63073		ServerResponse: googleapi.ServerResponse{
63074			Header:         res.Header,
63075			HTTPStatusCode: res.StatusCode,
63076		},
63077	}
63078	target := &ret
63079	if err := gensupport.DecodeResponse(target, res); err != nil {
63080		return nil, err
63081	}
63082	return ret, nil
63083	// {
63084	//   "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.",
63085	//   "httpMethod": "POST",
63086	//   "id": "compute.globalOperations.wait",
63087	//   "parameterOrder": [
63088	//     "project",
63089	//     "operation"
63090	//   ],
63091	//   "parameters": {
63092	//     "operation": {
63093	//       "description": "Name of the Operations resource to return.",
63094	//       "location": "path",
63095	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63096	//       "required": true,
63097	//       "type": "string"
63098	//     },
63099	//     "project": {
63100	//       "description": "Project ID for this request.",
63101	//       "location": "path",
63102	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63103	//       "required": true,
63104	//       "type": "string"
63105	//     }
63106	//   },
63107	//   "path": "{project}/global/operations/{operation}/wait",
63108	//   "response": {
63109	//     "$ref": "Operation"
63110	//   },
63111	//   "scopes": [
63112	//     "https://www.googleapis.com/auth/cloud-platform",
63113	//     "https://www.googleapis.com/auth/compute",
63114	//     "https://www.googleapis.com/auth/compute.readonly"
63115	//   ]
63116	// }
63117
63118}
63119
63120// method id "compute.healthChecks.aggregatedList":
63121
63122type HealthChecksAggregatedListCall struct {
63123	s            *Service
63124	project      string
63125	urlParams_   gensupport.URLParams
63126	ifNoneMatch_ string
63127	ctx_         context.Context
63128	header_      http.Header
63129}
63130
63131// AggregatedList: Retrieves the list of all HealthCheck resources,
63132// regional and global, available to the specified project.
63133func (r *HealthChecksService) AggregatedList(project string) *HealthChecksAggregatedListCall {
63134	c := &HealthChecksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63135	c.project = project
63136	return c
63137}
63138
63139// Filter sets the optional parameter "filter": A filter expression that
63140// filters resources listed in the response. The expression must specify
63141// the field name, a comparison operator, and the value that you want to
63142// use for filtering. The value must be a string, a number, or a
63143// boolean. The comparison operator must be either =, !=, >, or <.
63144//
63145// For example, if you are filtering Compute Engine instances, you can
63146// exclude instances named example-instance by specifying name !=
63147// example-instance.
63148//
63149// You can also filter nested fields. For example, you could specify
63150// scheduling.automaticRestart = false to include instances only if they
63151// are not scheduled for automatic restarts. You can use filtering on
63152// nested fields to filter based on resource labels.
63153//
63154// To filter on multiple expressions, provide each separate expression
63155// within parentheses. For example, (scheduling.automaticRestart = true)
63156// (cpuPlatform = "Intel Skylake"). By default, each expression is an
63157// AND expression. However, you can include AND and OR expressions
63158// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
63159// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
63160// true).
63161func (c *HealthChecksAggregatedListCall) Filter(filter string) *HealthChecksAggregatedListCall {
63162	c.urlParams_.Set("filter", filter)
63163	return c
63164}
63165
63166// IncludeAllScopes sets the optional parameter "includeAllScopes":
63167// Indicates whether every visible scope for each scope type (zone,
63168// region, global) should be included in the response. For new resource
63169// types added after this field, the flag has no effect as new resource
63170// types will always include every visible scope for each scope type in
63171// response. For resource types which predate this field, if this flag
63172// is omitted or false, only scopes of the scope types where the
63173// resource type is expected to be found will be included.
63174func (c *HealthChecksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *HealthChecksAggregatedListCall {
63175	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
63176	return c
63177}
63178
63179// MaxResults sets the optional parameter "maxResults": The maximum
63180// number of results per page that should be returned. If the number of
63181// available results is larger than maxResults, Compute Engine returns a
63182// nextPageToken that can be used to get the next page of results in
63183// subsequent list requests. Acceptable values are 0 to 500, inclusive.
63184// (Default: 500)
63185func (c *HealthChecksAggregatedListCall) MaxResults(maxResults int64) *HealthChecksAggregatedListCall {
63186	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63187	return c
63188}
63189
63190// OrderBy sets the optional parameter "orderBy": Sorts list results by
63191// a certain order. By default, results are returned in alphanumerical
63192// order based on the resource name.
63193//
63194// You can also sort results in descending order based on the creation
63195// timestamp using orderBy="creationTimestamp desc". This sorts results
63196// based on the creationTimestamp field in reverse chronological order
63197// (newest result first). Use this to sort resources like operations so
63198// that the newest operation is returned first.
63199//
63200// Currently, only sorting by name or creationTimestamp desc is
63201// supported.
63202func (c *HealthChecksAggregatedListCall) OrderBy(orderBy string) *HealthChecksAggregatedListCall {
63203	c.urlParams_.Set("orderBy", orderBy)
63204	return c
63205}
63206
63207// PageToken sets the optional parameter "pageToken": Specifies a page
63208// token to use. Set pageToken to the nextPageToken returned by a
63209// previous list request to get the next page of results.
63210func (c *HealthChecksAggregatedListCall) PageToken(pageToken string) *HealthChecksAggregatedListCall {
63211	c.urlParams_.Set("pageToken", pageToken)
63212	return c
63213}
63214
63215// Fields allows partial responses to be retrieved. See
63216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63217// for more information.
63218func (c *HealthChecksAggregatedListCall) Fields(s ...googleapi.Field) *HealthChecksAggregatedListCall {
63219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63220	return c
63221}
63222
63223// IfNoneMatch sets the optional parameter which makes the operation
63224// fail if the object's ETag matches the given value. This is useful for
63225// getting updates only after the object has changed since the last
63226// request. Use googleapi.IsNotModified to check whether the response
63227// error from Do is the result of In-None-Match.
63228func (c *HealthChecksAggregatedListCall) IfNoneMatch(entityTag string) *HealthChecksAggregatedListCall {
63229	c.ifNoneMatch_ = entityTag
63230	return c
63231}
63232
63233// Context sets the context to be used in this call's Do method. Any
63234// pending HTTP request will be aborted if the provided context is
63235// canceled.
63236func (c *HealthChecksAggregatedListCall) Context(ctx context.Context) *HealthChecksAggregatedListCall {
63237	c.ctx_ = ctx
63238	return c
63239}
63240
63241// Header returns an http.Header that can be modified by the caller to
63242// add HTTP headers to the request.
63243func (c *HealthChecksAggregatedListCall) Header() http.Header {
63244	if c.header_ == nil {
63245		c.header_ = make(http.Header)
63246	}
63247	return c.header_
63248}
63249
63250func (c *HealthChecksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
63251	reqHeaders := make(http.Header)
63252	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63253	for k, v := range c.header_ {
63254		reqHeaders[k] = v
63255	}
63256	reqHeaders.Set("User-Agent", c.s.userAgent())
63257	if c.ifNoneMatch_ != "" {
63258		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63259	}
63260	var body io.Reader = nil
63261	c.urlParams_.Set("alt", alt)
63262	c.urlParams_.Set("prettyPrint", "false")
63263	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/healthChecks")
63264	urls += "?" + c.urlParams_.Encode()
63265	req, err := http.NewRequest("GET", urls, body)
63266	if err != nil {
63267		return nil, err
63268	}
63269	req.Header = reqHeaders
63270	googleapi.Expand(req.URL, map[string]string{
63271		"project": c.project,
63272	})
63273	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63274}
63275
63276// Do executes the "compute.healthChecks.aggregatedList" call.
63277// Exactly one of *HealthChecksAggregatedList or error will be non-nil.
63278// Any non-2xx status code is an error. Response headers are in either
63279// *HealthChecksAggregatedList.ServerResponse.Header or (if a response
63280// was returned at all) in error.(*googleapi.Error).Header. Use
63281// googleapi.IsNotModified to check whether the returned error was
63282// because http.StatusNotModified was returned.
63283func (c *HealthChecksAggregatedListCall) Do(opts ...googleapi.CallOption) (*HealthChecksAggregatedList, error) {
63284	gensupport.SetOptions(c.urlParams_, opts...)
63285	res, err := c.doRequest("json")
63286	if res != nil && res.StatusCode == http.StatusNotModified {
63287		if res.Body != nil {
63288			res.Body.Close()
63289		}
63290		return nil, &googleapi.Error{
63291			Code:   res.StatusCode,
63292			Header: res.Header,
63293		}
63294	}
63295	if err != nil {
63296		return nil, err
63297	}
63298	defer googleapi.CloseBody(res)
63299	if err := googleapi.CheckResponse(res); err != nil {
63300		return nil, err
63301	}
63302	ret := &HealthChecksAggregatedList{
63303		ServerResponse: googleapi.ServerResponse{
63304			Header:         res.Header,
63305			HTTPStatusCode: res.StatusCode,
63306		},
63307	}
63308	target := &ret
63309	if err := gensupport.DecodeResponse(target, res); err != nil {
63310		return nil, err
63311	}
63312	return ret, nil
63313	// {
63314	//   "description": "Retrieves the list of all HealthCheck resources, regional and global, available to the specified project.",
63315	//   "httpMethod": "GET",
63316	//   "id": "compute.healthChecks.aggregatedList",
63317	//   "parameterOrder": [
63318	//     "project"
63319	//   ],
63320	//   "parameters": {
63321	//     "filter": {
63322	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
63323	//       "location": "query",
63324	//       "type": "string"
63325	//     },
63326	//     "includeAllScopes": {
63327	//       "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.",
63328	//       "location": "query",
63329	//       "type": "boolean"
63330	//     },
63331	//     "maxResults": {
63332	//       "default": "500",
63333	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
63334	//       "format": "uint32",
63335	//       "location": "query",
63336	//       "minimum": "0",
63337	//       "type": "integer"
63338	//     },
63339	//     "orderBy": {
63340	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
63341	//       "location": "query",
63342	//       "type": "string"
63343	//     },
63344	//     "pageToken": {
63345	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
63346	//       "location": "query",
63347	//       "type": "string"
63348	//     },
63349	//     "project": {
63350	//       "description": "Name of the project scoping this request.",
63351	//       "location": "path",
63352	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63353	//       "required": true,
63354	//       "type": "string"
63355	//     }
63356	//   },
63357	//   "path": "{project}/aggregated/healthChecks",
63358	//   "response": {
63359	//     "$ref": "HealthChecksAggregatedList"
63360	//   },
63361	//   "scopes": [
63362	//     "https://www.googleapis.com/auth/cloud-platform",
63363	//     "https://www.googleapis.com/auth/compute",
63364	//     "https://www.googleapis.com/auth/compute.readonly"
63365	//   ]
63366	// }
63367
63368}
63369
63370// Pages invokes f for each page of results.
63371// A non-nil error returned from f will halt the iteration.
63372// The provided context supersedes any context provided to the Context method.
63373func (c *HealthChecksAggregatedListCall) Pages(ctx context.Context, f func(*HealthChecksAggregatedList) error) error {
63374	c.ctx_ = ctx
63375	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
63376	for {
63377		x, err := c.Do()
63378		if err != nil {
63379			return err
63380		}
63381		if err := f(x); err != nil {
63382			return err
63383		}
63384		if x.NextPageToken == "" {
63385			return nil
63386		}
63387		c.PageToken(x.NextPageToken)
63388	}
63389}
63390
63391// method id "compute.healthChecks.delete":
63392
63393type HealthChecksDeleteCall struct {
63394	s           *Service
63395	project     string
63396	healthCheck string
63397	urlParams_  gensupport.URLParams
63398	ctx_        context.Context
63399	header_     http.Header
63400}
63401
63402// Delete: Deletes the specified HealthCheck resource.
63403func (r *HealthChecksService) Delete(project string, healthCheck string) *HealthChecksDeleteCall {
63404	c := &HealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63405	c.project = project
63406	c.healthCheck = healthCheck
63407	return c
63408}
63409
63410// RequestId sets the optional parameter "requestId": An optional
63411// request ID to identify requests. Specify a unique request ID so that
63412// if you must retry your request, the server will know to ignore the
63413// request if it has already been completed.
63414//
63415// For example, consider a situation where you make an initial request
63416// and the request times out. If you make the request again with the
63417// same request ID, the server can check if original operation with the
63418// same request ID was received, and if so, will ignore the second
63419// request. This prevents clients from accidentally creating duplicate
63420// commitments.
63421//
63422// The request ID must be a valid UUID with the exception that zero UUID
63423// is not supported (00000000-0000-0000-0000-000000000000).
63424func (c *HealthChecksDeleteCall) RequestId(requestId string) *HealthChecksDeleteCall {
63425	c.urlParams_.Set("requestId", requestId)
63426	return c
63427}
63428
63429// Fields allows partial responses to be retrieved. See
63430// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63431// for more information.
63432func (c *HealthChecksDeleteCall) Fields(s ...googleapi.Field) *HealthChecksDeleteCall {
63433	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63434	return c
63435}
63436
63437// Context sets the context to be used in this call's Do method. Any
63438// pending HTTP request will be aborted if the provided context is
63439// canceled.
63440func (c *HealthChecksDeleteCall) Context(ctx context.Context) *HealthChecksDeleteCall {
63441	c.ctx_ = ctx
63442	return c
63443}
63444
63445// Header returns an http.Header that can be modified by the caller to
63446// add HTTP headers to the request.
63447func (c *HealthChecksDeleteCall) Header() http.Header {
63448	if c.header_ == nil {
63449		c.header_ = make(http.Header)
63450	}
63451	return c.header_
63452}
63453
63454func (c *HealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
63455	reqHeaders := make(http.Header)
63456	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63457	for k, v := range c.header_ {
63458		reqHeaders[k] = v
63459	}
63460	reqHeaders.Set("User-Agent", c.s.userAgent())
63461	var body io.Reader = nil
63462	c.urlParams_.Set("alt", alt)
63463	c.urlParams_.Set("prettyPrint", "false")
63464	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
63465	urls += "?" + c.urlParams_.Encode()
63466	req, err := http.NewRequest("DELETE", urls, body)
63467	if err != nil {
63468		return nil, err
63469	}
63470	req.Header = reqHeaders
63471	googleapi.Expand(req.URL, map[string]string{
63472		"project":     c.project,
63473		"healthCheck": c.healthCheck,
63474	})
63475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63476}
63477
63478// Do executes the "compute.healthChecks.delete" call.
63479// Exactly one of *Operation or error will be non-nil. Any non-2xx
63480// status code is an error. Response headers are in either
63481// *Operation.ServerResponse.Header or (if a response was returned at
63482// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63483// to check whether the returned error was because
63484// http.StatusNotModified was returned.
63485func (c *HealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63486	gensupport.SetOptions(c.urlParams_, opts...)
63487	res, err := c.doRequest("json")
63488	if res != nil && res.StatusCode == http.StatusNotModified {
63489		if res.Body != nil {
63490			res.Body.Close()
63491		}
63492		return nil, &googleapi.Error{
63493			Code:   res.StatusCode,
63494			Header: res.Header,
63495		}
63496	}
63497	if err != nil {
63498		return nil, err
63499	}
63500	defer googleapi.CloseBody(res)
63501	if err := googleapi.CheckResponse(res); err != nil {
63502		return nil, err
63503	}
63504	ret := &Operation{
63505		ServerResponse: googleapi.ServerResponse{
63506			Header:         res.Header,
63507			HTTPStatusCode: res.StatusCode,
63508		},
63509	}
63510	target := &ret
63511	if err := gensupport.DecodeResponse(target, res); err != nil {
63512		return nil, err
63513	}
63514	return ret, nil
63515	// {
63516	//   "description": "Deletes the specified HealthCheck resource.",
63517	//   "httpMethod": "DELETE",
63518	//   "id": "compute.healthChecks.delete",
63519	//   "parameterOrder": [
63520	//     "project",
63521	//     "healthCheck"
63522	//   ],
63523	//   "parameters": {
63524	//     "healthCheck": {
63525	//       "description": "Name of the HealthCheck resource to delete.",
63526	//       "location": "path",
63527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63528	//       "required": true,
63529	//       "type": "string"
63530	//     },
63531	//     "project": {
63532	//       "description": "Project ID for this request.",
63533	//       "location": "path",
63534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63535	//       "required": true,
63536	//       "type": "string"
63537	//     },
63538	//     "requestId": {
63539	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63540	//       "location": "query",
63541	//       "type": "string"
63542	//     }
63543	//   },
63544	//   "path": "{project}/global/healthChecks/{healthCheck}",
63545	//   "response": {
63546	//     "$ref": "Operation"
63547	//   },
63548	//   "scopes": [
63549	//     "https://www.googleapis.com/auth/cloud-platform",
63550	//     "https://www.googleapis.com/auth/compute"
63551	//   ]
63552	// }
63553
63554}
63555
63556// method id "compute.healthChecks.get":
63557
63558type HealthChecksGetCall struct {
63559	s            *Service
63560	project      string
63561	healthCheck  string
63562	urlParams_   gensupport.URLParams
63563	ifNoneMatch_ string
63564	ctx_         context.Context
63565	header_      http.Header
63566}
63567
63568// Get: Returns the specified HealthCheck resource. Gets a list of
63569// available health checks by making a list() request.
63570func (r *HealthChecksService) Get(project string, healthCheck string) *HealthChecksGetCall {
63571	c := &HealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63572	c.project = project
63573	c.healthCheck = healthCheck
63574	return c
63575}
63576
63577// Fields allows partial responses to be retrieved. See
63578// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63579// for more information.
63580func (c *HealthChecksGetCall) Fields(s ...googleapi.Field) *HealthChecksGetCall {
63581	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63582	return c
63583}
63584
63585// IfNoneMatch sets the optional parameter which makes the operation
63586// fail if the object's ETag matches the given value. This is useful for
63587// getting updates only after the object has changed since the last
63588// request. Use googleapi.IsNotModified to check whether the response
63589// error from Do is the result of In-None-Match.
63590func (c *HealthChecksGetCall) IfNoneMatch(entityTag string) *HealthChecksGetCall {
63591	c.ifNoneMatch_ = entityTag
63592	return c
63593}
63594
63595// Context sets the context to be used in this call's Do method. Any
63596// pending HTTP request will be aborted if the provided context is
63597// canceled.
63598func (c *HealthChecksGetCall) Context(ctx context.Context) *HealthChecksGetCall {
63599	c.ctx_ = ctx
63600	return c
63601}
63602
63603// Header returns an http.Header that can be modified by the caller to
63604// add HTTP headers to the request.
63605func (c *HealthChecksGetCall) Header() http.Header {
63606	if c.header_ == nil {
63607		c.header_ = make(http.Header)
63608	}
63609	return c.header_
63610}
63611
63612func (c *HealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
63613	reqHeaders := make(http.Header)
63614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63615	for k, v := range c.header_ {
63616		reqHeaders[k] = v
63617	}
63618	reqHeaders.Set("User-Agent", c.s.userAgent())
63619	if c.ifNoneMatch_ != "" {
63620		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
63621	}
63622	var body io.Reader = nil
63623	c.urlParams_.Set("alt", alt)
63624	c.urlParams_.Set("prettyPrint", "false")
63625	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
63626	urls += "?" + c.urlParams_.Encode()
63627	req, err := http.NewRequest("GET", urls, body)
63628	if err != nil {
63629		return nil, err
63630	}
63631	req.Header = reqHeaders
63632	googleapi.Expand(req.URL, map[string]string{
63633		"project":     c.project,
63634		"healthCheck": c.healthCheck,
63635	})
63636	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63637}
63638
63639// Do executes the "compute.healthChecks.get" call.
63640// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
63641// status code is an error. Response headers are in either
63642// *HealthCheck.ServerResponse.Header or (if a response was returned at
63643// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63644// to check whether the returned error was because
63645// http.StatusNotModified was returned.
63646func (c *HealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
63647	gensupport.SetOptions(c.urlParams_, opts...)
63648	res, err := c.doRequest("json")
63649	if res != nil && res.StatusCode == http.StatusNotModified {
63650		if res.Body != nil {
63651			res.Body.Close()
63652		}
63653		return nil, &googleapi.Error{
63654			Code:   res.StatusCode,
63655			Header: res.Header,
63656		}
63657	}
63658	if err != nil {
63659		return nil, err
63660	}
63661	defer googleapi.CloseBody(res)
63662	if err := googleapi.CheckResponse(res); err != nil {
63663		return nil, err
63664	}
63665	ret := &HealthCheck{
63666		ServerResponse: googleapi.ServerResponse{
63667			Header:         res.Header,
63668			HTTPStatusCode: res.StatusCode,
63669		},
63670	}
63671	target := &ret
63672	if err := gensupport.DecodeResponse(target, res); err != nil {
63673		return nil, err
63674	}
63675	return ret, nil
63676	// {
63677	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
63678	//   "httpMethod": "GET",
63679	//   "id": "compute.healthChecks.get",
63680	//   "parameterOrder": [
63681	//     "project",
63682	//     "healthCheck"
63683	//   ],
63684	//   "parameters": {
63685	//     "healthCheck": {
63686	//       "description": "Name of the HealthCheck resource to return.",
63687	//       "location": "path",
63688	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
63689	//       "required": true,
63690	//       "type": "string"
63691	//     },
63692	//     "project": {
63693	//       "description": "Project ID for this request.",
63694	//       "location": "path",
63695	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63696	//       "required": true,
63697	//       "type": "string"
63698	//     }
63699	//   },
63700	//   "path": "{project}/global/healthChecks/{healthCheck}",
63701	//   "response": {
63702	//     "$ref": "HealthCheck"
63703	//   },
63704	//   "scopes": [
63705	//     "https://www.googleapis.com/auth/cloud-platform",
63706	//     "https://www.googleapis.com/auth/compute",
63707	//     "https://www.googleapis.com/auth/compute.readonly"
63708	//   ]
63709	// }
63710
63711}
63712
63713// method id "compute.healthChecks.insert":
63714
63715type HealthChecksInsertCall struct {
63716	s           *Service
63717	project     string
63718	healthcheck *HealthCheck
63719	urlParams_  gensupport.URLParams
63720	ctx_        context.Context
63721	header_     http.Header
63722}
63723
63724// Insert: Creates a HealthCheck resource in the specified project using
63725// the data included in the request.
63726func (r *HealthChecksService) Insert(project string, healthcheck *HealthCheck) *HealthChecksInsertCall {
63727	c := &HealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63728	c.project = project
63729	c.healthcheck = healthcheck
63730	return c
63731}
63732
63733// RequestId sets the optional parameter "requestId": An optional
63734// request ID to identify requests. Specify a unique request ID so that
63735// if you must retry your request, the server will know to ignore the
63736// request if it has already been completed.
63737//
63738// For example, consider a situation where you make an initial request
63739// and the request times out. If you make the request again with the
63740// same request ID, the server can check if original operation with the
63741// same request ID was received, and if so, will ignore the second
63742// request. This prevents clients from accidentally creating duplicate
63743// commitments.
63744//
63745// The request ID must be a valid UUID with the exception that zero UUID
63746// is not supported (00000000-0000-0000-0000-000000000000).
63747func (c *HealthChecksInsertCall) RequestId(requestId string) *HealthChecksInsertCall {
63748	c.urlParams_.Set("requestId", requestId)
63749	return c
63750}
63751
63752// Fields allows partial responses to be retrieved. See
63753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63754// for more information.
63755func (c *HealthChecksInsertCall) Fields(s ...googleapi.Field) *HealthChecksInsertCall {
63756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63757	return c
63758}
63759
63760// Context sets the context to be used in this call's Do method. Any
63761// pending HTTP request will be aborted if the provided context is
63762// canceled.
63763func (c *HealthChecksInsertCall) Context(ctx context.Context) *HealthChecksInsertCall {
63764	c.ctx_ = ctx
63765	return c
63766}
63767
63768// Header returns an http.Header that can be modified by the caller to
63769// add HTTP headers to the request.
63770func (c *HealthChecksInsertCall) Header() http.Header {
63771	if c.header_ == nil {
63772		c.header_ = make(http.Header)
63773	}
63774	return c.header_
63775}
63776
63777func (c *HealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
63778	reqHeaders := make(http.Header)
63779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63780	for k, v := range c.header_ {
63781		reqHeaders[k] = v
63782	}
63783	reqHeaders.Set("User-Agent", c.s.userAgent())
63784	var body io.Reader = nil
63785	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
63786	if err != nil {
63787		return nil, err
63788	}
63789	reqHeaders.Set("Content-Type", "application/json")
63790	c.urlParams_.Set("alt", alt)
63791	c.urlParams_.Set("prettyPrint", "false")
63792	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
63793	urls += "?" + c.urlParams_.Encode()
63794	req, err := http.NewRequest("POST", urls, body)
63795	if err != nil {
63796		return nil, err
63797	}
63798	req.Header = reqHeaders
63799	googleapi.Expand(req.URL, map[string]string{
63800		"project": c.project,
63801	})
63802	return gensupport.SendRequest(c.ctx_, c.s.client, req)
63803}
63804
63805// Do executes the "compute.healthChecks.insert" call.
63806// Exactly one of *Operation or error will be non-nil. Any non-2xx
63807// status code is an error. Response headers are in either
63808// *Operation.ServerResponse.Header or (if a response was returned at
63809// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
63810// to check whether the returned error was because
63811// http.StatusNotModified was returned.
63812func (c *HealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
63813	gensupport.SetOptions(c.urlParams_, opts...)
63814	res, err := c.doRequest("json")
63815	if res != nil && res.StatusCode == http.StatusNotModified {
63816		if res.Body != nil {
63817			res.Body.Close()
63818		}
63819		return nil, &googleapi.Error{
63820			Code:   res.StatusCode,
63821			Header: res.Header,
63822		}
63823	}
63824	if err != nil {
63825		return nil, err
63826	}
63827	defer googleapi.CloseBody(res)
63828	if err := googleapi.CheckResponse(res); err != nil {
63829		return nil, err
63830	}
63831	ret := &Operation{
63832		ServerResponse: googleapi.ServerResponse{
63833			Header:         res.Header,
63834			HTTPStatusCode: res.StatusCode,
63835		},
63836	}
63837	target := &ret
63838	if err := gensupport.DecodeResponse(target, res); err != nil {
63839		return nil, err
63840	}
63841	return ret, nil
63842	// {
63843	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
63844	//   "httpMethod": "POST",
63845	//   "id": "compute.healthChecks.insert",
63846	//   "parameterOrder": [
63847	//     "project"
63848	//   ],
63849	//   "parameters": {
63850	//     "project": {
63851	//       "description": "Project ID for this request.",
63852	//       "location": "path",
63853	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
63854	//       "required": true,
63855	//       "type": "string"
63856	//     },
63857	//     "requestId": {
63858	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
63859	//       "location": "query",
63860	//       "type": "string"
63861	//     }
63862	//   },
63863	//   "path": "{project}/global/healthChecks",
63864	//   "request": {
63865	//     "$ref": "HealthCheck"
63866	//   },
63867	//   "response": {
63868	//     "$ref": "Operation"
63869	//   },
63870	//   "scopes": [
63871	//     "https://www.googleapis.com/auth/cloud-platform",
63872	//     "https://www.googleapis.com/auth/compute"
63873	//   ]
63874	// }
63875
63876}
63877
63878// method id "compute.healthChecks.list":
63879
63880type HealthChecksListCall struct {
63881	s            *Service
63882	project      string
63883	urlParams_   gensupport.URLParams
63884	ifNoneMatch_ string
63885	ctx_         context.Context
63886	header_      http.Header
63887}
63888
63889// List: Retrieves the list of HealthCheck resources available to the
63890// specified project.
63891func (r *HealthChecksService) List(project string) *HealthChecksListCall {
63892	c := &HealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
63893	c.project = project
63894	return c
63895}
63896
63897// Filter sets the optional parameter "filter": A filter expression that
63898// filters resources listed in the response. The expression must specify
63899// the field name, a comparison operator, and the value that you want to
63900// use for filtering. The value must be a string, a number, or a
63901// boolean. The comparison operator must be either =, !=, >, or <.
63902//
63903// For example, if you are filtering Compute Engine instances, you can
63904// exclude instances named example-instance by specifying name !=
63905// example-instance.
63906//
63907// You can also filter nested fields. For example, you could specify
63908// scheduling.automaticRestart = false to include instances only if they
63909// are not scheduled for automatic restarts. You can use filtering on
63910// nested fields to filter based on resource labels.
63911//
63912// To filter on multiple expressions, provide each separate expression
63913// within parentheses. For example, (scheduling.automaticRestart = true)
63914// (cpuPlatform = "Intel Skylake"). By default, each expression is an
63915// AND expression. However, you can include AND and OR expressions
63916// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
63917// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
63918// true).
63919func (c *HealthChecksListCall) Filter(filter string) *HealthChecksListCall {
63920	c.urlParams_.Set("filter", filter)
63921	return c
63922}
63923
63924// MaxResults sets the optional parameter "maxResults": The maximum
63925// number of results per page that should be returned. If the number of
63926// available results is larger than maxResults, Compute Engine returns a
63927// nextPageToken that can be used to get the next page of results in
63928// subsequent list requests. Acceptable values are 0 to 500, inclusive.
63929// (Default: 500)
63930func (c *HealthChecksListCall) MaxResults(maxResults int64) *HealthChecksListCall {
63931	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
63932	return c
63933}
63934
63935// OrderBy sets the optional parameter "orderBy": Sorts list results by
63936// a certain order. By default, results are returned in alphanumerical
63937// order based on the resource name.
63938//
63939// You can also sort results in descending order based on the creation
63940// timestamp using orderBy="creationTimestamp desc". This sorts results
63941// based on the creationTimestamp field in reverse chronological order
63942// (newest result first). Use this to sort resources like operations so
63943// that the newest operation is returned first.
63944//
63945// Currently, only sorting by name or creationTimestamp desc is
63946// supported.
63947func (c *HealthChecksListCall) OrderBy(orderBy string) *HealthChecksListCall {
63948	c.urlParams_.Set("orderBy", orderBy)
63949	return c
63950}
63951
63952// PageToken sets the optional parameter "pageToken": Specifies a page
63953// token to use. Set pageToken to the nextPageToken returned by a
63954// previous list request to get the next page of results.
63955func (c *HealthChecksListCall) PageToken(pageToken string) *HealthChecksListCall {
63956	c.urlParams_.Set("pageToken", pageToken)
63957	return c
63958}
63959
63960// Fields allows partial responses to be retrieved. See
63961// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
63962// for more information.
63963func (c *HealthChecksListCall) Fields(s ...googleapi.Field) *HealthChecksListCall {
63964	c.urlParams_.Set("fields", googleapi.CombineFields(s))
63965	return c
63966}
63967
63968// IfNoneMatch sets the optional parameter which makes the operation
63969// fail if the object's ETag matches the given value. This is useful for
63970// getting updates only after the object has changed since the last
63971// request. Use googleapi.IsNotModified to check whether the response
63972// error from Do is the result of In-None-Match.
63973func (c *HealthChecksListCall) IfNoneMatch(entityTag string) *HealthChecksListCall {
63974	c.ifNoneMatch_ = entityTag
63975	return c
63976}
63977
63978// Context sets the context to be used in this call's Do method. Any
63979// pending HTTP request will be aborted if the provided context is
63980// canceled.
63981func (c *HealthChecksListCall) Context(ctx context.Context) *HealthChecksListCall {
63982	c.ctx_ = ctx
63983	return c
63984}
63985
63986// Header returns an http.Header that can be modified by the caller to
63987// add HTTP headers to the request.
63988func (c *HealthChecksListCall) Header() http.Header {
63989	if c.header_ == nil {
63990		c.header_ = make(http.Header)
63991	}
63992	return c.header_
63993}
63994
63995func (c *HealthChecksListCall) doRequest(alt string) (*http.Response, error) {
63996	reqHeaders := make(http.Header)
63997	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
63998	for k, v := range c.header_ {
63999		reqHeaders[k] = v
64000	}
64001	reqHeaders.Set("User-Agent", c.s.userAgent())
64002	if c.ifNoneMatch_ != "" {
64003		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64004	}
64005	var body io.Reader = nil
64006	c.urlParams_.Set("alt", alt)
64007	c.urlParams_.Set("prettyPrint", "false")
64008	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks")
64009	urls += "?" + c.urlParams_.Encode()
64010	req, err := http.NewRequest("GET", urls, body)
64011	if err != nil {
64012		return nil, err
64013	}
64014	req.Header = reqHeaders
64015	googleapi.Expand(req.URL, map[string]string{
64016		"project": c.project,
64017	})
64018	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64019}
64020
64021// Do executes the "compute.healthChecks.list" call.
64022// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
64023// status code is an error. Response headers are in either
64024// *HealthCheckList.ServerResponse.Header or (if a response was returned
64025// at all) in error.(*googleapi.Error).Header. Use
64026// googleapi.IsNotModified to check whether the returned error was
64027// because http.StatusNotModified was returned.
64028func (c *HealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
64029	gensupport.SetOptions(c.urlParams_, opts...)
64030	res, err := c.doRequest("json")
64031	if res != nil && res.StatusCode == http.StatusNotModified {
64032		if res.Body != nil {
64033			res.Body.Close()
64034		}
64035		return nil, &googleapi.Error{
64036			Code:   res.StatusCode,
64037			Header: res.Header,
64038		}
64039	}
64040	if err != nil {
64041		return nil, err
64042	}
64043	defer googleapi.CloseBody(res)
64044	if err := googleapi.CheckResponse(res); err != nil {
64045		return nil, err
64046	}
64047	ret := &HealthCheckList{
64048		ServerResponse: googleapi.ServerResponse{
64049			Header:         res.Header,
64050			HTTPStatusCode: res.StatusCode,
64051		},
64052	}
64053	target := &ret
64054	if err := gensupport.DecodeResponse(target, res); err != nil {
64055		return nil, err
64056	}
64057	return ret, nil
64058	// {
64059	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
64060	//   "httpMethod": "GET",
64061	//   "id": "compute.healthChecks.list",
64062	//   "parameterOrder": [
64063	//     "project"
64064	//   ],
64065	//   "parameters": {
64066	//     "filter": {
64067	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
64068	//       "location": "query",
64069	//       "type": "string"
64070	//     },
64071	//     "maxResults": {
64072	//       "default": "500",
64073	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
64074	//       "format": "uint32",
64075	//       "location": "query",
64076	//       "minimum": "0",
64077	//       "type": "integer"
64078	//     },
64079	//     "orderBy": {
64080	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
64081	//       "location": "query",
64082	//       "type": "string"
64083	//     },
64084	//     "pageToken": {
64085	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
64086	//       "location": "query",
64087	//       "type": "string"
64088	//     },
64089	//     "project": {
64090	//       "description": "Project ID for this request.",
64091	//       "location": "path",
64092	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64093	//       "required": true,
64094	//       "type": "string"
64095	//     }
64096	//   },
64097	//   "path": "{project}/global/healthChecks",
64098	//   "response": {
64099	//     "$ref": "HealthCheckList"
64100	//   },
64101	//   "scopes": [
64102	//     "https://www.googleapis.com/auth/cloud-platform",
64103	//     "https://www.googleapis.com/auth/compute",
64104	//     "https://www.googleapis.com/auth/compute.readonly"
64105	//   ]
64106	// }
64107
64108}
64109
64110// Pages invokes f for each page of results.
64111// A non-nil error returned from f will halt the iteration.
64112// The provided context supersedes any context provided to the Context method.
64113func (c *HealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
64114	c.ctx_ = ctx
64115	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
64116	for {
64117		x, err := c.Do()
64118		if err != nil {
64119			return err
64120		}
64121		if err := f(x); err != nil {
64122			return err
64123		}
64124		if x.NextPageToken == "" {
64125			return nil
64126		}
64127		c.PageToken(x.NextPageToken)
64128	}
64129}
64130
64131// method id "compute.healthChecks.patch":
64132
64133type HealthChecksPatchCall struct {
64134	s           *Service
64135	project     string
64136	healthCheck string
64137	healthcheck *HealthCheck
64138	urlParams_  gensupport.URLParams
64139	ctx_        context.Context
64140	header_     http.Header
64141}
64142
64143// Patch: Updates a HealthCheck resource in the specified project using
64144// the data included in the request. This method supports PATCH
64145// semantics and uses the JSON merge patch format and processing rules.
64146func (r *HealthChecksService) Patch(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksPatchCall {
64147	c := &HealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64148	c.project = project
64149	c.healthCheck = healthCheck
64150	c.healthcheck = healthcheck
64151	return c
64152}
64153
64154// RequestId sets the optional parameter "requestId": An optional
64155// request ID to identify requests. Specify a unique request ID so that
64156// if you must retry your request, the server will know to ignore the
64157// request if it has already been completed.
64158//
64159// For example, consider a situation where you make an initial request
64160// and the request times out. If you make the request again with the
64161// same request ID, the server can check if original operation with the
64162// same request ID was received, and if so, will ignore the second
64163// request. This prevents clients from accidentally creating duplicate
64164// commitments.
64165//
64166// The request ID must be a valid UUID with the exception that zero UUID
64167// is not supported (00000000-0000-0000-0000-000000000000).
64168func (c *HealthChecksPatchCall) RequestId(requestId string) *HealthChecksPatchCall {
64169	c.urlParams_.Set("requestId", requestId)
64170	return c
64171}
64172
64173// Fields allows partial responses to be retrieved. See
64174// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64175// for more information.
64176func (c *HealthChecksPatchCall) Fields(s ...googleapi.Field) *HealthChecksPatchCall {
64177	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64178	return c
64179}
64180
64181// Context sets the context to be used in this call's Do method. Any
64182// pending HTTP request will be aborted if the provided context is
64183// canceled.
64184func (c *HealthChecksPatchCall) Context(ctx context.Context) *HealthChecksPatchCall {
64185	c.ctx_ = ctx
64186	return c
64187}
64188
64189// Header returns an http.Header that can be modified by the caller to
64190// add HTTP headers to the request.
64191func (c *HealthChecksPatchCall) Header() http.Header {
64192	if c.header_ == nil {
64193		c.header_ = make(http.Header)
64194	}
64195	return c.header_
64196}
64197
64198func (c *HealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
64199	reqHeaders := make(http.Header)
64200	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64201	for k, v := range c.header_ {
64202		reqHeaders[k] = v
64203	}
64204	reqHeaders.Set("User-Agent", c.s.userAgent())
64205	var body io.Reader = nil
64206	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
64207	if err != nil {
64208		return nil, err
64209	}
64210	reqHeaders.Set("Content-Type", "application/json")
64211	c.urlParams_.Set("alt", alt)
64212	c.urlParams_.Set("prettyPrint", "false")
64213	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
64214	urls += "?" + c.urlParams_.Encode()
64215	req, err := http.NewRequest("PATCH", urls, body)
64216	if err != nil {
64217		return nil, err
64218	}
64219	req.Header = reqHeaders
64220	googleapi.Expand(req.URL, map[string]string{
64221		"project":     c.project,
64222		"healthCheck": c.healthCheck,
64223	})
64224	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64225}
64226
64227// Do executes the "compute.healthChecks.patch" call.
64228// Exactly one of *Operation or error will be non-nil. Any non-2xx
64229// status code is an error. Response headers are in either
64230// *Operation.ServerResponse.Header or (if a response was returned at
64231// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64232// to check whether the returned error was because
64233// http.StatusNotModified was returned.
64234func (c *HealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64235	gensupport.SetOptions(c.urlParams_, opts...)
64236	res, err := c.doRequest("json")
64237	if res != nil && res.StatusCode == http.StatusNotModified {
64238		if res.Body != nil {
64239			res.Body.Close()
64240		}
64241		return nil, &googleapi.Error{
64242			Code:   res.StatusCode,
64243			Header: res.Header,
64244		}
64245	}
64246	if err != nil {
64247		return nil, err
64248	}
64249	defer googleapi.CloseBody(res)
64250	if err := googleapi.CheckResponse(res); err != nil {
64251		return nil, err
64252	}
64253	ret := &Operation{
64254		ServerResponse: googleapi.ServerResponse{
64255			Header:         res.Header,
64256			HTTPStatusCode: res.StatusCode,
64257		},
64258	}
64259	target := &ret
64260	if err := gensupport.DecodeResponse(target, res); err != nil {
64261		return nil, err
64262	}
64263	return ret, nil
64264	// {
64265	//   "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.",
64266	//   "httpMethod": "PATCH",
64267	//   "id": "compute.healthChecks.patch",
64268	//   "parameterOrder": [
64269	//     "project",
64270	//     "healthCheck"
64271	//   ],
64272	//   "parameters": {
64273	//     "healthCheck": {
64274	//       "description": "Name of the HealthCheck resource to patch.",
64275	//       "location": "path",
64276	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64277	//       "required": true,
64278	//       "type": "string"
64279	//     },
64280	//     "project": {
64281	//       "description": "Project ID for this request.",
64282	//       "location": "path",
64283	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64284	//       "required": true,
64285	//       "type": "string"
64286	//     },
64287	//     "requestId": {
64288	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64289	//       "location": "query",
64290	//       "type": "string"
64291	//     }
64292	//   },
64293	//   "path": "{project}/global/healthChecks/{healthCheck}",
64294	//   "request": {
64295	//     "$ref": "HealthCheck"
64296	//   },
64297	//   "response": {
64298	//     "$ref": "Operation"
64299	//   },
64300	//   "scopes": [
64301	//     "https://www.googleapis.com/auth/cloud-platform",
64302	//     "https://www.googleapis.com/auth/compute"
64303	//   ]
64304	// }
64305
64306}
64307
64308// method id "compute.healthChecks.testIamPermissions":
64309
64310type HealthChecksTestIamPermissionsCall struct {
64311	s                      *Service
64312	project                string
64313	resource               string
64314	testpermissionsrequest *TestPermissionsRequest
64315	urlParams_             gensupport.URLParams
64316	ctx_                   context.Context
64317	header_                http.Header
64318}
64319
64320// TestIamPermissions: Returns permissions that a caller has on the
64321// specified resource.
64322func (r *HealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HealthChecksTestIamPermissionsCall {
64323	c := &HealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64324	c.project = project
64325	c.resource = resource
64326	c.testpermissionsrequest = testpermissionsrequest
64327	return c
64328}
64329
64330// Fields allows partial responses to be retrieved. See
64331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64332// for more information.
64333func (c *HealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HealthChecksTestIamPermissionsCall {
64334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64335	return c
64336}
64337
64338// Context sets the context to be used in this call's Do method. Any
64339// pending HTTP request will be aborted if the provided context is
64340// canceled.
64341func (c *HealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HealthChecksTestIamPermissionsCall {
64342	c.ctx_ = ctx
64343	return c
64344}
64345
64346// Header returns an http.Header that can be modified by the caller to
64347// add HTTP headers to the request.
64348func (c *HealthChecksTestIamPermissionsCall) Header() http.Header {
64349	if c.header_ == nil {
64350		c.header_ = make(http.Header)
64351	}
64352	return c.header_
64353}
64354
64355func (c *HealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
64356	reqHeaders := make(http.Header)
64357	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64358	for k, v := range c.header_ {
64359		reqHeaders[k] = v
64360	}
64361	reqHeaders.Set("User-Agent", c.s.userAgent())
64362	var body io.Reader = nil
64363	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
64364	if err != nil {
64365		return nil, err
64366	}
64367	reqHeaders.Set("Content-Type", "application/json")
64368	c.urlParams_.Set("alt", alt)
64369	c.urlParams_.Set("prettyPrint", "false")
64370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{resource}/testIamPermissions")
64371	urls += "?" + c.urlParams_.Encode()
64372	req, err := http.NewRequest("POST", urls, body)
64373	if err != nil {
64374		return nil, err
64375	}
64376	req.Header = reqHeaders
64377	googleapi.Expand(req.URL, map[string]string{
64378		"project":  c.project,
64379		"resource": c.resource,
64380	})
64381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64382}
64383
64384// Do executes the "compute.healthChecks.testIamPermissions" call.
64385// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
64386// non-2xx status code is an error. Response headers are in either
64387// *TestPermissionsResponse.ServerResponse.Header or (if a response was
64388// returned at all) in error.(*googleapi.Error).Header. Use
64389// googleapi.IsNotModified to check whether the returned error was
64390// because http.StatusNotModified was returned.
64391func (c *HealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
64392	gensupport.SetOptions(c.urlParams_, opts...)
64393	res, err := c.doRequest("json")
64394	if res != nil && res.StatusCode == http.StatusNotModified {
64395		if res.Body != nil {
64396			res.Body.Close()
64397		}
64398		return nil, &googleapi.Error{
64399			Code:   res.StatusCode,
64400			Header: res.Header,
64401		}
64402	}
64403	if err != nil {
64404		return nil, err
64405	}
64406	defer googleapi.CloseBody(res)
64407	if err := googleapi.CheckResponse(res); err != nil {
64408		return nil, err
64409	}
64410	ret := &TestPermissionsResponse{
64411		ServerResponse: googleapi.ServerResponse{
64412			Header:         res.Header,
64413			HTTPStatusCode: res.StatusCode,
64414		},
64415	}
64416	target := &ret
64417	if err := gensupport.DecodeResponse(target, res); err != nil {
64418		return nil, err
64419	}
64420	return ret, nil
64421	// {
64422	//   "description": "Returns permissions that a caller has on the specified resource.",
64423	//   "httpMethod": "POST",
64424	//   "id": "compute.healthChecks.testIamPermissions",
64425	//   "parameterOrder": [
64426	//     "project",
64427	//     "resource"
64428	//   ],
64429	//   "parameters": {
64430	//     "project": {
64431	//       "description": "Project ID for this request.",
64432	//       "location": "path",
64433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64434	//       "required": true,
64435	//       "type": "string"
64436	//     },
64437	//     "resource": {
64438	//       "description": "Name or id of the resource for this request.",
64439	//       "location": "path",
64440	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64441	//       "required": true,
64442	//       "type": "string"
64443	//     }
64444	//   },
64445	//   "path": "{project}/global/healthChecks/{resource}/testIamPermissions",
64446	//   "request": {
64447	//     "$ref": "TestPermissionsRequest"
64448	//   },
64449	//   "response": {
64450	//     "$ref": "TestPermissionsResponse"
64451	//   },
64452	//   "scopes": [
64453	//     "https://www.googleapis.com/auth/cloud-platform",
64454	//     "https://www.googleapis.com/auth/compute",
64455	//     "https://www.googleapis.com/auth/compute.readonly"
64456	//   ]
64457	// }
64458
64459}
64460
64461// method id "compute.healthChecks.update":
64462
64463type HealthChecksUpdateCall struct {
64464	s           *Service
64465	project     string
64466	healthCheck string
64467	healthcheck *HealthCheck
64468	urlParams_  gensupport.URLParams
64469	ctx_        context.Context
64470	header_     http.Header
64471}
64472
64473// Update: Updates a HealthCheck resource in the specified project using
64474// the data included in the request.
64475func (r *HealthChecksService) Update(project string, healthCheck string, healthcheck *HealthCheck) *HealthChecksUpdateCall {
64476	c := &HealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64477	c.project = project
64478	c.healthCheck = healthCheck
64479	c.healthcheck = healthcheck
64480	return c
64481}
64482
64483// RequestId sets the optional parameter "requestId": An optional
64484// request ID to identify requests. Specify a unique request ID so that
64485// if you must retry your request, the server will know to ignore the
64486// request if it has already been completed.
64487//
64488// For example, consider a situation where you make an initial request
64489// and the request times out. If you make the request again with the
64490// same request ID, the server can check if original operation with the
64491// same request ID was received, and if so, will ignore the second
64492// request. This prevents clients from accidentally creating duplicate
64493// commitments.
64494//
64495// The request ID must be a valid UUID with the exception that zero UUID
64496// is not supported (00000000-0000-0000-0000-000000000000).
64497func (c *HealthChecksUpdateCall) RequestId(requestId string) *HealthChecksUpdateCall {
64498	c.urlParams_.Set("requestId", requestId)
64499	return c
64500}
64501
64502// Fields allows partial responses to be retrieved. See
64503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64504// for more information.
64505func (c *HealthChecksUpdateCall) Fields(s ...googleapi.Field) *HealthChecksUpdateCall {
64506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64507	return c
64508}
64509
64510// Context sets the context to be used in this call's Do method. Any
64511// pending HTTP request will be aborted if the provided context is
64512// canceled.
64513func (c *HealthChecksUpdateCall) Context(ctx context.Context) *HealthChecksUpdateCall {
64514	c.ctx_ = ctx
64515	return c
64516}
64517
64518// Header returns an http.Header that can be modified by the caller to
64519// add HTTP headers to the request.
64520func (c *HealthChecksUpdateCall) Header() http.Header {
64521	if c.header_ == nil {
64522		c.header_ = make(http.Header)
64523	}
64524	return c.header_
64525}
64526
64527func (c *HealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
64528	reqHeaders := make(http.Header)
64529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64530	for k, v := range c.header_ {
64531		reqHeaders[k] = v
64532	}
64533	reqHeaders.Set("User-Agent", c.s.userAgent())
64534	var body io.Reader = nil
64535	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
64536	if err != nil {
64537		return nil, err
64538	}
64539	reqHeaders.Set("Content-Type", "application/json")
64540	c.urlParams_.Set("alt", alt)
64541	c.urlParams_.Set("prettyPrint", "false")
64542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/healthChecks/{healthCheck}")
64543	urls += "?" + c.urlParams_.Encode()
64544	req, err := http.NewRequest("PUT", urls, body)
64545	if err != nil {
64546		return nil, err
64547	}
64548	req.Header = reqHeaders
64549	googleapi.Expand(req.URL, map[string]string{
64550		"project":     c.project,
64551		"healthCheck": c.healthCheck,
64552	})
64553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64554}
64555
64556// Do executes the "compute.healthChecks.update" call.
64557// Exactly one of *Operation or error will be non-nil. Any non-2xx
64558// status code is an error. Response headers are in either
64559// *Operation.ServerResponse.Header or (if a response was returned at
64560// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64561// to check whether the returned error was because
64562// http.StatusNotModified was returned.
64563func (c *HealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64564	gensupport.SetOptions(c.urlParams_, opts...)
64565	res, err := c.doRequest("json")
64566	if res != nil && res.StatusCode == http.StatusNotModified {
64567		if res.Body != nil {
64568			res.Body.Close()
64569		}
64570		return nil, &googleapi.Error{
64571			Code:   res.StatusCode,
64572			Header: res.Header,
64573		}
64574	}
64575	if err != nil {
64576		return nil, err
64577	}
64578	defer googleapi.CloseBody(res)
64579	if err := googleapi.CheckResponse(res); err != nil {
64580		return nil, err
64581	}
64582	ret := &Operation{
64583		ServerResponse: googleapi.ServerResponse{
64584			Header:         res.Header,
64585			HTTPStatusCode: res.StatusCode,
64586		},
64587	}
64588	target := &ret
64589	if err := gensupport.DecodeResponse(target, res); err != nil {
64590		return nil, err
64591	}
64592	return ret, nil
64593	// {
64594	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
64595	//   "httpMethod": "PUT",
64596	//   "id": "compute.healthChecks.update",
64597	//   "parameterOrder": [
64598	//     "project",
64599	//     "healthCheck"
64600	//   ],
64601	//   "parameters": {
64602	//     "healthCheck": {
64603	//       "description": "Name of the HealthCheck resource to update.",
64604	//       "location": "path",
64605	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64606	//       "required": true,
64607	//       "type": "string"
64608	//     },
64609	//     "project": {
64610	//       "description": "Project ID for this request.",
64611	//       "location": "path",
64612	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64613	//       "required": true,
64614	//       "type": "string"
64615	//     },
64616	//     "requestId": {
64617	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64618	//       "location": "query",
64619	//       "type": "string"
64620	//     }
64621	//   },
64622	//   "path": "{project}/global/healthChecks/{healthCheck}",
64623	//   "request": {
64624	//     "$ref": "HealthCheck"
64625	//   },
64626	//   "response": {
64627	//     "$ref": "Operation"
64628	//   },
64629	//   "scopes": [
64630	//     "https://www.googleapis.com/auth/cloud-platform",
64631	//     "https://www.googleapis.com/auth/compute"
64632	//   ]
64633	// }
64634
64635}
64636
64637// method id "compute.httpHealthChecks.delete":
64638
64639type HttpHealthChecksDeleteCall struct {
64640	s               *Service
64641	project         string
64642	httpHealthCheck string
64643	urlParams_      gensupport.URLParams
64644	ctx_            context.Context
64645	header_         http.Header
64646}
64647
64648// Delete: Deletes the specified HttpHealthCheck resource.
64649// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/delete
64650func (r *HttpHealthChecksService) Delete(project string, httpHealthCheck string) *HttpHealthChecksDeleteCall {
64651	c := &HttpHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64652	c.project = project
64653	c.httpHealthCheck = httpHealthCheck
64654	return c
64655}
64656
64657// RequestId sets the optional parameter "requestId": An optional
64658// request ID to identify requests. Specify a unique request ID so that
64659// if you must retry your request, the server will know to ignore the
64660// request if it has already been completed.
64661//
64662// For example, consider a situation where you make an initial request
64663// and the request times out. If you make the request again with the
64664// same request ID, the server can check if original operation with the
64665// same request ID was received, and if so, will ignore the second
64666// request. This prevents clients from accidentally creating duplicate
64667// commitments.
64668//
64669// The request ID must be a valid UUID with the exception that zero UUID
64670// is not supported (00000000-0000-0000-0000-000000000000).
64671func (c *HttpHealthChecksDeleteCall) RequestId(requestId string) *HttpHealthChecksDeleteCall {
64672	c.urlParams_.Set("requestId", requestId)
64673	return c
64674}
64675
64676// Fields allows partial responses to be retrieved. See
64677// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64678// for more information.
64679func (c *HttpHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpHealthChecksDeleteCall {
64680	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64681	return c
64682}
64683
64684// Context sets the context to be used in this call's Do method. Any
64685// pending HTTP request will be aborted if the provided context is
64686// canceled.
64687func (c *HttpHealthChecksDeleteCall) Context(ctx context.Context) *HttpHealthChecksDeleteCall {
64688	c.ctx_ = ctx
64689	return c
64690}
64691
64692// Header returns an http.Header that can be modified by the caller to
64693// add HTTP headers to the request.
64694func (c *HttpHealthChecksDeleteCall) Header() http.Header {
64695	if c.header_ == nil {
64696		c.header_ = make(http.Header)
64697	}
64698	return c.header_
64699}
64700
64701func (c *HttpHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
64702	reqHeaders := make(http.Header)
64703	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64704	for k, v := range c.header_ {
64705		reqHeaders[k] = v
64706	}
64707	reqHeaders.Set("User-Agent", c.s.userAgent())
64708	var body io.Reader = nil
64709	c.urlParams_.Set("alt", alt)
64710	c.urlParams_.Set("prettyPrint", "false")
64711	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
64712	urls += "?" + c.urlParams_.Encode()
64713	req, err := http.NewRequest("DELETE", urls, body)
64714	if err != nil {
64715		return nil, err
64716	}
64717	req.Header = reqHeaders
64718	googleapi.Expand(req.URL, map[string]string{
64719		"project":         c.project,
64720		"httpHealthCheck": c.httpHealthCheck,
64721	})
64722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64723}
64724
64725// Do executes the "compute.httpHealthChecks.delete" call.
64726// Exactly one of *Operation or error will be non-nil. Any non-2xx
64727// status code is an error. Response headers are in either
64728// *Operation.ServerResponse.Header or (if a response was returned at
64729// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
64730// to check whether the returned error was because
64731// http.StatusNotModified was returned.
64732func (c *HttpHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
64733	gensupport.SetOptions(c.urlParams_, opts...)
64734	res, err := c.doRequest("json")
64735	if res != nil && res.StatusCode == http.StatusNotModified {
64736		if res.Body != nil {
64737			res.Body.Close()
64738		}
64739		return nil, &googleapi.Error{
64740			Code:   res.StatusCode,
64741			Header: res.Header,
64742		}
64743	}
64744	if err != nil {
64745		return nil, err
64746	}
64747	defer googleapi.CloseBody(res)
64748	if err := googleapi.CheckResponse(res); err != nil {
64749		return nil, err
64750	}
64751	ret := &Operation{
64752		ServerResponse: googleapi.ServerResponse{
64753			Header:         res.Header,
64754			HTTPStatusCode: res.StatusCode,
64755		},
64756	}
64757	target := &ret
64758	if err := gensupport.DecodeResponse(target, res); err != nil {
64759		return nil, err
64760	}
64761	return ret, nil
64762	// {
64763	//   "description": "Deletes the specified HttpHealthCheck resource.",
64764	//   "httpMethod": "DELETE",
64765	//   "id": "compute.httpHealthChecks.delete",
64766	//   "parameterOrder": [
64767	//     "project",
64768	//     "httpHealthCheck"
64769	//   ],
64770	//   "parameters": {
64771	//     "httpHealthCheck": {
64772	//       "description": "Name of the HttpHealthCheck resource to delete.",
64773	//       "location": "path",
64774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64775	//       "required": true,
64776	//       "type": "string"
64777	//     },
64778	//     "project": {
64779	//       "description": "Project ID for this request.",
64780	//       "location": "path",
64781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64782	//       "required": true,
64783	//       "type": "string"
64784	//     },
64785	//     "requestId": {
64786	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
64787	//       "location": "query",
64788	//       "type": "string"
64789	//     }
64790	//   },
64791	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
64792	//   "response": {
64793	//     "$ref": "Operation"
64794	//   },
64795	//   "scopes": [
64796	//     "https://www.googleapis.com/auth/cloud-platform",
64797	//     "https://www.googleapis.com/auth/compute"
64798	//   ]
64799	// }
64800
64801}
64802
64803// method id "compute.httpHealthChecks.get":
64804
64805type HttpHealthChecksGetCall struct {
64806	s               *Service
64807	project         string
64808	httpHealthCheck string
64809	urlParams_      gensupport.URLParams
64810	ifNoneMatch_    string
64811	ctx_            context.Context
64812	header_         http.Header
64813}
64814
64815// Get: Returns the specified HttpHealthCheck resource. Gets a list of
64816// available HTTP health checks by making a list() request.
64817// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/get
64818func (r *HttpHealthChecksService) Get(project string, httpHealthCheck string) *HttpHealthChecksGetCall {
64819	c := &HttpHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64820	c.project = project
64821	c.httpHealthCheck = httpHealthCheck
64822	return c
64823}
64824
64825// Fields allows partial responses to be retrieved. See
64826// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
64827// for more information.
64828func (c *HttpHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpHealthChecksGetCall {
64829	c.urlParams_.Set("fields", googleapi.CombineFields(s))
64830	return c
64831}
64832
64833// IfNoneMatch sets the optional parameter which makes the operation
64834// fail if the object's ETag matches the given value. This is useful for
64835// getting updates only after the object has changed since the last
64836// request. Use googleapi.IsNotModified to check whether the response
64837// error from Do is the result of In-None-Match.
64838func (c *HttpHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpHealthChecksGetCall {
64839	c.ifNoneMatch_ = entityTag
64840	return c
64841}
64842
64843// Context sets the context to be used in this call's Do method. Any
64844// pending HTTP request will be aborted if the provided context is
64845// canceled.
64846func (c *HttpHealthChecksGetCall) Context(ctx context.Context) *HttpHealthChecksGetCall {
64847	c.ctx_ = ctx
64848	return c
64849}
64850
64851// Header returns an http.Header that can be modified by the caller to
64852// add HTTP headers to the request.
64853func (c *HttpHealthChecksGetCall) Header() http.Header {
64854	if c.header_ == nil {
64855		c.header_ = make(http.Header)
64856	}
64857	return c.header_
64858}
64859
64860func (c *HttpHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
64861	reqHeaders := make(http.Header)
64862	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
64863	for k, v := range c.header_ {
64864		reqHeaders[k] = v
64865	}
64866	reqHeaders.Set("User-Agent", c.s.userAgent())
64867	if c.ifNoneMatch_ != "" {
64868		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
64869	}
64870	var body io.Reader = nil
64871	c.urlParams_.Set("alt", alt)
64872	c.urlParams_.Set("prettyPrint", "false")
64873	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
64874	urls += "?" + c.urlParams_.Encode()
64875	req, err := http.NewRequest("GET", urls, body)
64876	if err != nil {
64877		return nil, err
64878	}
64879	req.Header = reqHeaders
64880	googleapi.Expand(req.URL, map[string]string{
64881		"project":         c.project,
64882		"httpHealthCheck": c.httpHealthCheck,
64883	})
64884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
64885}
64886
64887// Do executes the "compute.httpHealthChecks.get" call.
64888// Exactly one of *HttpHealthCheck or error will be non-nil. Any non-2xx
64889// status code is an error. Response headers are in either
64890// *HttpHealthCheck.ServerResponse.Header or (if a response was returned
64891// at all) in error.(*googleapi.Error).Header. Use
64892// googleapi.IsNotModified to check whether the returned error was
64893// because http.StatusNotModified was returned.
64894func (c *HttpHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheck, error) {
64895	gensupport.SetOptions(c.urlParams_, opts...)
64896	res, err := c.doRequest("json")
64897	if res != nil && res.StatusCode == http.StatusNotModified {
64898		if res.Body != nil {
64899			res.Body.Close()
64900		}
64901		return nil, &googleapi.Error{
64902			Code:   res.StatusCode,
64903			Header: res.Header,
64904		}
64905	}
64906	if err != nil {
64907		return nil, err
64908	}
64909	defer googleapi.CloseBody(res)
64910	if err := googleapi.CheckResponse(res); err != nil {
64911		return nil, err
64912	}
64913	ret := &HttpHealthCheck{
64914		ServerResponse: googleapi.ServerResponse{
64915			Header:         res.Header,
64916			HTTPStatusCode: res.StatusCode,
64917		},
64918	}
64919	target := &ret
64920	if err := gensupport.DecodeResponse(target, res); err != nil {
64921		return nil, err
64922	}
64923	return ret, nil
64924	// {
64925	//   "description": "Returns the specified HttpHealthCheck resource. Gets a list of available HTTP health checks by making a list() request.",
64926	//   "httpMethod": "GET",
64927	//   "id": "compute.httpHealthChecks.get",
64928	//   "parameterOrder": [
64929	//     "project",
64930	//     "httpHealthCheck"
64931	//   ],
64932	//   "parameters": {
64933	//     "httpHealthCheck": {
64934	//       "description": "Name of the HttpHealthCheck resource to return.",
64935	//       "location": "path",
64936	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
64937	//       "required": true,
64938	//       "type": "string"
64939	//     },
64940	//     "project": {
64941	//       "description": "Project ID for this request.",
64942	//       "location": "path",
64943	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
64944	//       "required": true,
64945	//       "type": "string"
64946	//     }
64947	//   },
64948	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
64949	//   "response": {
64950	//     "$ref": "HttpHealthCheck"
64951	//   },
64952	//   "scopes": [
64953	//     "https://www.googleapis.com/auth/cloud-platform",
64954	//     "https://www.googleapis.com/auth/compute",
64955	//     "https://www.googleapis.com/auth/compute.readonly"
64956	//   ]
64957	// }
64958
64959}
64960
64961// method id "compute.httpHealthChecks.insert":
64962
64963type HttpHealthChecksInsertCall struct {
64964	s               *Service
64965	project         string
64966	httphealthcheck *HttpHealthCheck
64967	urlParams_      gensupport.URLParams
64968	ctx_            context.Context
64969	header_         http.Header
64970}
64971
64972// Insert: Creates a HttpHealthCheck resource in the specified project
64973// using the data included in the request.
64974// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/insert
64975func (r *HttpHealthChecksService) Insert(project string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksInsertCall {
64976	c := &HttpHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
64977	c.project = project
64978	c.httphealthcheck = httphealthcheck
64979	return c
64980}
64981
64982// RequestId sets the optional parameter "requestId": An optional
64983// request ID to identify requests. Specify a unique request ID so that
64984// if you must retry your request, the server will know to ignore the
64985// request if it has already been completed.
64986//
64987// For example, consider a situation where you make an initial request
64988// and the request times out. If you make the request again with the
64989// same request ID, the server can check if original operation with the
64990// same request ID was received, and if so, will ignore the second
64991// request. This prevents clients from accidentally creating duplicate
64992// commitments.
64993//
64994// The request ID must be a valid UUID with the exception that zero UUID
64995// is not supported (00000000-0000-0000-0000-000000000000).
64996func (c *HttpHealthChecksInsertCall) RequestId(requestId string) *HttpHealthChecksInsertCall {
64997	c.urlParams_.Set("requestId", requestId)
64998	return c
64999}
65000
65001// Fields allows partial responses to be retrieved. See
65002// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65003// for more information.
65004func (c *HttpHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpHealthChecksInsertCall {
65005	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65006	return c
65007}
65008
65009// Context sets the context to be used in this call's Do method. Any
65010// pending HTTP request will be aborted if the provided context is
65011// canceled.
65012func (c *HttpHealthChecksInsertCall) Context(ctx context.Context) *HttpHealthChecksInsertCall {
65013	c.ctx_ = ctx
65014	return c
65015}
65016
65017// Header returns an http.Header that can be modified by the caller to
65018// add HTTP headers to the request.
65019func (c *HttpHealthChecksInsertCall) Header() http.Header {
65020	if c.header_ == nil {
65021		c.header_ = make(http.Header)
65022	}
65023	return c.header_
65024}
65025
65026func (c *HttpHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
65027	reqHeaders := make(http.Header)
65028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65029	for k, v := range c.header_ {
65030		reqHeaders[k] = v
65031	}
65032	reqHeaders.Set("User-Agent", c.s.userAgent())
65033	var body io.Reader = nil
65034	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
65035	if err != nil {
65036		return nil, err
65037	}
65038	reqHeaders.Set("Content-Type", "application/json")
65039	c.urlParams_.Set("alt", alt)
65040	c.urlParams_.Set("prettyPrint", "false")
65041	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
65042	urls += "?" + c.urlParams_.Encode()
65043	req, err := http.NewRequest("POST", urls, body)
65044	if err != nil {
65045		return nil, err
65046	}
65047	req.Header = reqHeaders
65048	googleapi.Expand(req.URL, map[string]string{
65049		"project": c.project,
65050	})
65051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65052}
65053
65054// Do executes the "compute.httpHealthChecks.insert" call.
65055// Exactly one of *Operation or error will be non-nil. Any non-2xx
65056// status code is an error. Response headers are in either
65057// *Operation.ServerResponse.Header or (if a response was returned at
65058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65059// to check whether the returned error was because
65060// http.StatusNotModified was returned.
65061func (c *HttpHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65062	gensupport.SetOptions(c.urlParams_, opts...)
65063	res, err := c.doRequest("json")
65064	if res != nil && res.StatusCode == http.StatusNotModified {
65065		if res.Body != nil {
65066			res.Body.Close()
65067		}
65068		return nil, &googleapi.Error{
65069			Code:   res.StatusCode,
65070			Header: res.Header,
65071		}
65072	}
65073	if err != nil {
65074		return nil, err
65075	}
65076	defer googleapi.CloseBody(res)
65077	if err := googleapi.CheckResponse(res); err != nil {
65078		return nil, err
65079	}
65080	ret := &Operation{
65081		ServerResponse: googleapi.ServerResponse{
65082			Header:         res.Header,
65083			HTTPStatusCode: res.StatusCode,
65084		},
65085	}
65086	target := &ret
65087	if err := gensupport.DecodeResponse(target, res); err != nil {
65088		return nil, err
65089	}
65090	return ret, nil
65091	// {
65092	//   "description": "Creates a HttpHealthCheck resource in the specified project using the data included in the request.",
65093	//   "httpMethod": "POST",
65094	//   "id": "compute.httpHealthChecks.insert",
65095	//   "parameterOrder": [
65096	//     "project"
65097	//   ],
65098	//   "parameters": {
65099	//     "project": {
65100	//       "description": "Project ID for this request.",
65101	//       "location": "path",
65102	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65103	//       "required": true,
65104	//       "type": "string"
65105	//     },
65106	//     "requestId": {
65107	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65108	//       "location": "query",
65109	//       "type": "string"
65110	//     }
65111	//   },
65112	//   "path": "{project}/global/httpHealthChecks",
65113	//   "request": {
65114	//     "$ref": "HttpHealthCheck"
65115	//   },
65116	//   "response": {
65117	//     "$ref": "Operation"
65118	//   },
65119	//   "scopes": [
65120	//     "https://www.googleapis.com/auth/cloud-platform",
65121	//     "https://www.googleapis.com/auth/compute"
65122	//   ]
65123	// }
65124
65125}
65126
65127// method id "compute.httpHealthChecks.list":
65128
65129type HttpHealthChecksListCall struct {
65130	s            *Service
65131	project      string
65132	urlParams_   gensupport.URLParams
65133	ifNoneMatch_ string
65134	ctx_         context.Context
65135	header_      http.Header
65136}
65137
65138// List: Retrieves the list of HttpHealthCheck resources available to
65139// the specified project.
65140// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/list
65141func (r *HttpHealthChecksService) List(project string) *HttpHealthChecksListCall {
65142	c := &HttpHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65143	c.project = project
65144	return c
65145}
65146
65147// Filter sets the optional parameter "filter": A filter expression that
65148// filters resources listed in the response. The expression must specify
65149// the field name, a comparison operator, and the value that you want to
65150// use for filtering. The value must be a string, a number, or a
65151// boolean. The comparison operator must be either =, !=, >, or <.
65152//
65153// For example, if you are filtering Compute Engine instances, you can
65154// exclude instances named example-instance by specifying name !=
65155// example-instance.
65156//
65157// You can also filter nested fields. For example, you could specify
65158// scheduling.automaticRestart = false to include instances only if they
65159// are not scheduled for automatic restarts. You can use filtering on
65160// nested fields to filter based on resource labels.
65161//
65162// To filter on multiple expressions, provide each separate expression
65163// within parentheses. For example, (scheduling.automaticRestart = true)
65164// (cpuPlatform = "Intel Skylake"). By default, each expression is an
65165// AND expression. However, you can include AND and OR expressions
65166// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
65167// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
65168// true).
65169func (c *HttpHealthChecksListCall) Filter(filter string) *HttpHealthChecksListCall {
65170	c.urlParams_.Set("filter", filter)
65171	return c
65172}
65173
65174// MaxResults sets the optional parameter "maxResults": The maximum
65175// number of results per page that should be returned. If the number of
65176// available results is larger than maxResults, Compute Engine returns a
65177// nextPageToken that can be used to get the next page of results in
65178// subsequent list requests. Acceptable values are 0 to 500, inclusive.
65179// (Default: 500)
65180func (c *HttpHealthChecksListCall) MaxResults(maxResults int64) *HttpHealthChecksListCall {
65181	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
65182	return c
65183}
65184
65185// OrderBy sets the optional parameter "orderBy": Sorts list results by
65186// a certain order. By default, results are returned in alphanumerical
65187// order based on the resource name.
65188//
65189// You can also sort results in descending order based on the creation
65190// timestamp using orderBy="creationTimestamp desc". This sorts results
65191// based on the creationTimestamp field in reverse chronological order
65192// (newest result first). Use this to sort resources like operations so
65193// that the newest operation is returned first.
65194//
65195// Currently, only sorting by name or creationTimestamp desc is
65196// supported.
65197func (c *HttpHealthChecksListCall) OrderBy(orderBy string) *HttpHealthChecksListCall {
65198	c.urlParams_.Set("orderBy", orderBy)
65199	return c
65200}
65201
65202// PageToken sets the optional parameter "pageToken": Specifies a page
65203// token to use. Set pageToken to the nextPageToken returned by a
65204// previous list request to get the next page of results.
65205func (c *HttpHealthChecksListCall) PageToken(pageToken string) *HttpHealthChecksListCall {
65206	c.urlParams_.Set("pageToken", pageToken)
65207	return c
65208}
65209
65210// Fields allows partial responses to be retrieved. See
65211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65212// for more information.
65213func (c *HttpHealthChecksListCall) Fields(s ...googleapi.Field) *HttpHealthChecksListCall {
65214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65215	return c
65216}
65217
65218// IfNoneMatch sets the optional parameter which makes the operation
65219// fail if the object's ETag matches the given value. This is useful for
65220// getting updates only after the object has changed since the last
65221// request. Use googleapi.IsNotModified to check whether the response
65222// error from Do is the result of In-None-Match.
65223func (c *HttpHealthChecksListCall) IfNoneMatch(entityTag string) *HttpHealthChecksListCall {
65224	c.ifNoneMatch_ = entityTag
65225	return c
65226}
65227
65228// Context sets the context to be used in this call's Do method. Any
65229// pending HTTP request will be aborted if the provided context is
65230// canceled.
65231func (c *HttpHealthChecksListCall) Context(ctx context.Context) *HttpHealthChecksListCall {
65232	c.ctx_ = ctx
65233	return c
65234}
65235
65236// Header returns an http.Header that can be modified by the caller to
65237// add HTTP headers to the request.
65238func (c *HttpHealthChecksListCall) Header() http.Header {
65239	if c.header_ == nil {
65240		c.header_ = make(http.Header)
65241	}
65242	return c.header_
65243}
65244
65245func (c *HttpHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
65246	reqHeaders := make(http.Header)
65247	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65248	for k, v := range c.header_ {
65249		reqHeaders[k] = v
65250	}
65251	reqHeaders.Set("User-Agent", c.s.userAgent())
65252	if c.ifNoneMatch_ != "" {
65253		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
65254	}
65255	var body io.Reader = nil
65256	c.urlParams_.Set("alt", alt)
65257	c.urlParams_.Set("prettyPrint", "false")
65258	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks")
65259	urls += "?" + c.urlParams_.Encode()
65260	req, err := http.NewRequest("GET", urls, body)
65261	if err != nil {
65262		return nil, err
65263	}
65264	req.Header = reqHeaders
65265	googleapi.Expand(req.URL, map[string]string{
65266		"project": c.project,
65267	})
65268	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65269}
65270
65271// Do executes the "compute.httpHealthChecks.list" call.
65272// Exactly one of *HttpHealthCheckList or error will be non-nil. Any
65273// non-2xx status code is an error. Response headers are in either
65274// *HttpHealthCheckList.ServerResponse.Header or (if a response was
65275// returned at all) in error.(*googleapi.Error).Header. Use
65276// googleapi.IsNotModified to check whether the returned error was
65277// because http.StatusNotModified was returned.
65278func (c *HttpHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpHealthCheckList, error) {
65279	gensupport.SetOptions(c.urlParams_, opts...)
65280	res, err := c.doRequest("json")
65281	if res != nil && res.StatusCode == http.StatusNotModified {
65282		if res.Body != nil {
65283			res.Body.Close()
65284		}
65285		return nil, &googleapi.Error{
65286			Code:   res.StatusCode,
65287			Header: res.Header,
65288		}
65289	}
65290	if err != nil {
65291		return nil, err
65292	}
65293	defer googleapi.CloseBody(res)
65294	if err := googleapi.CheckResponse(res); err != nil {
65295		return nil, err
65296	}
65297	ret := &HttpHealthCheckList{
65298		ServerResponse: googleapi.ServerResponse{
65299			Header:         res.Header,
65300			HTTPStatusCode: res.StatusCode,
65301		},
65302	}
65303	target := &ret
65304	if err := gensupport.DecodeResponse(target, res); err != nil {
65305		return nil, err
65306	}
65307	return ret, nil
65308	// {
65309	//   "description": "Retrieves the list of HttpHealthCheck resources available to the specified project.",
65310	//   "httpMethod": "GET",
65311	//   "id": "compute.httpHealthChecks.list",
65312	//   "parameterOrder": [
65313	//     "project"
65314	//   ],
65315	//   "parameters": {
65316	//     "filter": {
65317	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
65318	//       "location": "query",
65319	//       "type": "string"
65320	//     },
65321	//     "maxResults": {
65322	//       "default": "500",
65323	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
65324	//       "format": "uint32",
65325	//       "location": "query",
65326	//       "minimum": "0",
65327	//       "type": "integer"
65328	//     },
65329	//     "orderBy": {
65330	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
65331	//       "location": "query",
65332	//       "type": "string"
65333	//     },
65334	//     "pageToken": {
65335	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
65336	//       "location": "query",
65337	//       "type": "string"
65338	//     },
65339	//     "project": {
65340	//       "description": "Project ID for this request.",
65341	//       "location": "path",
65342	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65343	//       "required": true,
65344	//       "type": "string"
65345	//     }
65346	//   },
65347	//   "path": "{project}/global/httpHealthChecks",
65348	//   "response": {
65349	//     "$ref": "HttpHealthCheckList"
65350	//   },
65351	//   "scopes": [
65352	//     "https://www.googleapis.com/auth/cloud-platform",
65353	//     "https://www.googleapis.com/auth/compute",
65354	//     "https://www.googleapis.com/auth/compute.readonly"
65355	//   ]
65356	// }
65357
65358}
65359
65360// Pages invokes f for each page of results.
65361// A non-nil error returned from f will halt the iteration.
65362// The provided context supersedes any context provided to the Context method.
65363func (c *HttpHealthChecksListCall) Pages(ctx context.Context, f func(*HttpHealthCheckList) error) error {
65364	c.ctx_ = ctx
65365	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
65366	for {
65367		x, err := c.Do()
65368		if err != nil {
65369			return err
65370		}
65371		if err := f(x); err != nil {
65372			return err
65373		}
65374		if x.NextPageToken == "" {
65375			return nil
65376		}
65377		c.PageToken(x.NextPageToken)
65378	}
65379}
65380
65381// method id "compute.httpHealthChecks.patch":
65382
65383type HttpHealthChecksPatchCall struct {
65384	s               *Service
65385	project         string
65386	httpHealthCheck string
65387	httphealthcheck *HttpHealthCheck
65388	urlParams_      gensupport.URLParams
65389	ctx_            context.Context
65390	header_         http.Header
65391}
65392
65393// Patch: Updates a HttpHealthCheck resource in the specified project
65394// using the data included in the request. This method supports PATCH
65395// semantics and uses the JSON merge patch format and processing rules.
65396// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/patch
65397func (r *HttpHealthChecksService) Patch(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksPatchCall {
65398	c := &HttpHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65399	c.project = project
65400	c.httpHealthCheck = httpHealthCheck
65401	c.httphealthcheck = httphealthcheck
65402	return c
65403}
65404
65405// RequestId sets the optional parameter "requestId": An optional
65406// request ID to identify requests. Specify a unique request ID so that
65407// if you must retry your request, the server will know to ignore the
65408// request if it has already been completed.
65409//
65410// For example, consider a situation where you make an initial request
65411// and the request times out. If you make the request again with the
65412// same request ID, the server can check if original operation with the
65413// same request ID was received, and if so, will ignore the second
65414// request. This prevents clients from accidentally creating duplicate
65415// commitments.
65416//
65417// The request ID must be a valid UUID with the exception that zero UUID
65418// is not supported (00000000-0000-0000-0000-000000000000).
65419func (c *HttpHealthChecksPatchCall) RequestId(requestId string) *HttpHealthChecksPatchCall {
65420	c.urlParams_.Set("requestId", requestId)
65421	return c
65422}
65423
65424// Fields allows partial responses to be retrieved. See
65425// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65426// for more information.
65427func (c *HttpHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpHealthChecksPatchCall {
65428	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65429	return c
65430}
65431
65432// Context sets the context to be used in this call's Do method. Any
65433// pending HTTP request will be aborted if the provided context is
65434// canceled.
65435func (c *HttpHealthChecksPatchCall) Context(ctx context.Context) *HttpHealthChecksPatchCall {
65436	c.ctx_ = ctx
65437	return c
65438}
65439
65440// Header returns an http.Header that can be modified by the caller to
65441// add HTTP headers to the request.
65442func (c *HttpHealthChecksPatchCall) Header() http.Header {
65443	if c.header_ == nil {
65444		c.header_ = make(http.Header)
65445	}
65446	return c.header_
65447}
65448
65449func (c *HttpHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
65450	reqHeaders := make(http.Header)
65451	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65452	for k, v := range c.header_ {
65453		reqHeaders[k] = v
65454	}
65455	reqHeaders.Set("User-Agent", c.s.userAgent())
65456	var body io.Reader = nil
65457	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
65458	if err != nil {
65459		return nil, err
65460	}
65461	reqHeaders.Set("Content-Type", "application/json")
65462	c.urlParams_.Set("alt", alt)
65463	c.urlParams_.Set("prettyPrint", "false")
65464	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
65465	urls += "?" + c.urlParams_.Encode()
65466	req, err := http.NewRequest("PATCH", urls, body)
65467	if err != nil {
65468		return nil, err
65469	}
65470	req.Header = reqHeaders
65471	googleapi.Expand(req.URL, map[string]string{
65472		"project":         c.project,
65473		"httpHealthCheck": c.httpHealthCheck,
65474	})
65475	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65476}
65477
65478// Do executes the "compute.httpHealthChecks.patch" call.
65479// Exactly one of *Operation or error will be non-nil. Any non-2xx
65480// status code is an error. Response headers are in either
65481// *Operation.ServerResponse.Header or (if a response was returned at
65482// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65483// to check whether the returned error was because
65484// http.StatusNotModified was returned.
65485func (c *HttpHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65486	gensupport.SetOptions(c.urlParams_, opts...)
65487	res, err := c.doRequest("json")
65488	if res != nil && res.StatusCode == http.StatusNotModified {
65489		if res.Body != nil {
65490			res.Body.Close()
65491		}
65492		return nil, &googleapi.Error{
65493			Code:   res.StatusCode,
65494			Header: res.Header,
65495		}
65496	}
65497	if err != nil {
65498		return nil, err
65499	}
65500	defer googleapi.CloseBody(res)
65501	if err := googleapi.CheckResponse(res); err != nil {
65502		return nil, err
65503	}
65504	ret := &Operation{
65505		ServerResponse: googleapi.ServerResponse{
65506			Header:         res.Header,
65507			HTTPStatusCode: res.StatusCode,
65508		},
65509	}
65510	target := &ret
65511	if err := gensupport.DecodeResponse(target, res); err != nil {
65512		return nil, err
65513	}
65514	return ret, nil
65515	// {
65516	//   "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.",
65517	//   "httpMethod": "PATCH",
65518	//   "id": "compute.httpHealthChecks.patch",
65519	//   "parameterOrder": [
65520	//     "project",
65521	//     "httpHealthCheck"
65522	//   ],
65523	//   "parameters": {
65524	//     "httpHealthCheck": {
65525	//       "description": "Name of the HttpHealthCheck resource to patch.",
65526	//       "location": "path",
65527	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65528	//       "required": true,
65529	//       "type": "string"
65530	//     },
65531	//     "project": {
65532	//       "description": "Project ID for this request.",
65533	//       "location": "path",
65534	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65535	//       "required": true,
65536	//       "type": "string"
65537	//     },
65538	//     "requestId": {
65539	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65540	//       "location": "query",
65541	//       "type": "string"
65542	//     }
65543	//   },
65544	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
65545	//   "request": {
65546	//     "$ref": "HttpHealthCheck"
65547	//   },
65548	//   "response": {
65549	//     "$ref": "Operation"
65550	//   },
65551	//   "scopes": [
65552	//     "https://www.googleapis.com/auth/cloud-platform",
65553	//     "https://www.googleapis.com/auth/compute"
65554	//   ]
65555	// }
65556
65557}
65558
65559// method id "compute.httpHealthChecks.testIamPermissions":
65560
65561type HttpHealthChecksTestIamPermissionsCall struct {
65562	s                      *Service
65563	project                string
65564	resource               string
65565	testpermissionsrequest *TestPermissionsRequest
65566	urlParams_             gensupport.URLParams
65567	ctx_                   context.Context
65568	header_                http.Header
65569}
65570
65571// TestIamPermissions: Returns permissions that a caller has on the
65572// specified resource.
65573func (r *HttpHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpHealthChecksTestIamPermissionsCall {
65574	c := &HttpHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65575	c.project = project
65576	c.resource = resource
65577	c.testpermissionsrequest = testpermissionsrequest
65578	return c
65579}
65580
65581// Fields allows partial responses to be retrieved. See
65582// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65583// for more information.
65584func (c *HttpHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpHealthChecksTestIamPermissionsCall {
65585	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65586	return c
65587}
65588
65589// Context sets the context to be used in this call's Do method. Any
65590// pending HTTP request will be aborted if the provided context is
65591// canceled.
65592func (c *HttpHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpHealthChecksTestIamPermissionsCall {
65593	c.ctx_ = ctx
65594	return c
65595}
65596
65597// Header returns an http.Header that can be modified by the caller to
65598// add HTTP headers to the request.
65599func (c *HttpHealthChecksTestIamPermissionsCall) Header() http.Header {
65600	if c.header_ == nil {
65601		c.header_ = make(http.Header)
65602	}
65603	return c.header_
65604}
65605
65606func (c *HttpHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
65607	reqHeaders := make(http.Header)
65608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65609	for k, v := range c.header_ {
65610		reqHeaders[k] = v
65611	}
65612	reqHeaders.Set("User-Agent", c.s.userAgent())
65613	var body io.Reader = nil
65614	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
65615	if err != nil {
65616		return nil, err
65617	}
65618	reqHeaders.Set("Content-Type", "application/json")
65619	c.urlParams_.Set("alt", alt)
65620	c.urlParams_.Set("prettyPrint", "false")
65621	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{resource}/testIamPermissions")
65622	urls += "?" + c.urlParams_.Encode()
65623	req, err := http.NewRequest("POST", urls, body)
65624	if err != nil {
65625		return nil, err
65626	}
65627	req.Header = reqHeaders
65628	googleapi.Expand(req.URL, map[string]string{
65629		"project":  c.project,
65630		"resource": c.resource,
65631	})
65632	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65633}
65634
65635// Do executes the "compute.httpHealthChecks.testIamPermissions" call.
65636// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
65637// non-2xx status code is an error. Response headers are in either
65638// *TestPermissionsResponse.ServerResponse.Header or (if a response was
65639// returned at all) in error.(*googleapi.Error).Header. Use
65640// googleapi.IsNotModified to check whether the returned error was
65641// because http.StatusNotModified was returned.
65642func (c *HttpHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
65643	gensupport.SetOptions(c.urlParams_, opts...)
65644	res, err := c.doRequest("json")
65645	if res != nil && res.StatusCode == http.StatusNotModified {
65646		if res.Body != nil {
65647			res.Body.Close()
65648		}
65649		return nil, &googleapi.Error{
65650			Code:   res.StatusCode,
65651			Header: res.Header,
65652		}
65653	}
65654	if err != nil {
65655		return nil, err
65656	}
65657	defer googleapi.CloseBody(res)
65658	if err := googleapi.CheckResponse(res); err != nil {
65659		return nil, err
65660	}
65661	ret := &TestPermissionsResponse{
65662		ServerResponse: googleapi.ServerResponse{
65663			Header:         res.Header,
65664			HTTPStatusCode: res.StatusCode,
65665		},
65666	}
65667	target := &ret
65668	if err := gensupport.DecodeResponse(target, res); err != nil {
65669		return nil, err
65670	}
65671	return ret, nil
65672	// {
65673	//   "description": "Returns permissions that a caller has on the specified resource.",
65674	//   "httpMethod": "POST",
65675	//   "id": "compute.httpHealthChecks.testIamPermissions",
65676	//   "parameterOrder": [
65677	//     "project",
65678	//     "resource"
65679	//   ],
65680	//   "parameters": {
65681	//     "project": {
65682	//       "description": "Project ID for this request.",
65683	//       "location": "path",
65684	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65685	//       "required": true,
65686	//       "type": "string"
65687	//     },
65688	//     "resource": {
65689	//       "description": "Name or id of the resource for this request.",
65690	//       "location": "path",
65691	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65692	//       "required": true,
65693	//       "type": "string"
65694	//     }
65695	//   },
65696	//   "path": "{project}/global/httpHealthChecks/{resource}/testIamPermissions",
65697	//   "request": {
65698	//     "$ref": "TestPermissionsRequest"
65699	//   },
65700	//   "response": {
65701	//     "$ref": "TestPermissionsResponse"
65702	//   },
65703	//   "scopes": [
65704	//     "https://www.googleapis.com/auth/cloud-platform",
65705	//     "https://www.googleapis.com/auth/compute",
65706	//     "https://www.googleapis.com/auth/compute.readonly"
65707	//   ]
65708	// }
65709
65710}
65711
65712// method id "compute.httpHealthChecks.update":
65713
65714type HttpHealthChecksUpdateCall struct {
65715	s               *Service
65716	project         string
65717	httpHealthCheck string
65718	httphealthcheck *HttpHealthCheck
65719	urlParams_      gensupport.URLParams
65720	ctx_            context.Context
65721	header_         http.Header
65722}
65723
65724// Update: Updates a HttpHealthCheck resource in the specified project
65725// using the data included in the request.
65726// For details, see https://cloud.google.com/compute/docs/reference/latest/httpHealthChecks/update
65727func (r *HttpHealthChecksService) Update(project string, httpHealthCheck string, httphealthcheck *HttpHealthCheck) *HttpHealthChecksUpdateCall {
65728	c := &HttpHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65729	c.project = project
65730	c.httpHealthCheck = httpHealthCheck
65731	c.httphealthcheck = httphealthcheck
65732	return c
65733}
65734
65735// RequestId sets the optional parameter "requestId": An optional
65736// request ID to identify requests. Specify a unique request ID so that
65737// if you must retry your request, the server will know to ignore the
65738// request if it has already been completed.
65739//
65740// For example, consider a situation where you make an initial request
65741// and the request times out. If you make the request again with the
65742// same request ID, the server can check if original operation with the
65743// same request ID was received, and if so, will ignore the second
65744// request. This prevents clients from accidentally creating duplicate
65745// commitments.
65746//
65747// The request ID must be a valid UUID with the exception that zero UUID
65748// is not supported (00000000-0000-0000-0000-000000000000).
65749func (c *HttpHealthChecksUpdateCall) RequestId(requestId string) *HttpHealthChecksUpdateCall {
65750	c.urlParams_.Set("requestId", requestId)
65751	return c
65752}
65753
65754// Fields allows partial responses to be retrieved. See
65755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65756// for more information.
65757func (c *HttpHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpHealthChecksUpdateCall {
65758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65759	return c
65760}
65761
65762// Context sets the context to be used in this call's Do method. Any
65763// pending HTTP request will be aborted if the provided context is
65764// canceled.
65765func (c *HttpHealthChecksUpdateCall) Context(ctx context.Context) *HttpHealthChecksUpdateCall {
65766	c.ctx_ = ctx
65767	return c
65768}
65769
65770// Header returns an http.Header that can be modified by the caller to
65771// add HTTP headers to the request.
65772func (c *HttpHealthChecksUpdateCall) Header() http.Header {
65773	if c.header_ == nil {
65774		c.header_ = make(http.Header)
65775	}
65776	return c.header_
65777}
65778
65779func (c *HttpHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
65780	reqHeaders := make(http.Header)
65781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65782	for k, v := range c.header_ {
65783		reqHeaders[k] = v
65784	}
65785	reqHeaders.Set("User-Agent", c.s.userAgent())
65786	var body io.Reader = nil
65787	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httphealthcheck)
65788	if err != nil {
65789		return nil, err
65790	}
65791	reqHeaders.Set("Content-Type", "application/json")
65792	c.urlParams_.Set("alt", alt)
65793	c.urlParams_.Set("prettyPrint", "false")
65794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpHealthChecks/{httpHealthCheck}")
65795	urls += "?" + c.urlParams_.Encode()
65796	req, err := http.NewRequest("PUT", urls, body)
65797	if err != nil {
65798		return nil, err
65799	}
65800	req.Header = reqHeaders
65801	googleapi.Expand(req.URL, map[string]string{
65802		"project":         c.project,
65803		"httpHealthCheck": c.httpHealthCheck,
65804	})
65805	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65806}
65807
65808// Do executes the "compute.httpHealthChecks.update" call.
65809// Exactly one of *Operation or error will be non-nil. Any non-2xx
65810// status code is an error. Response headers are in either
65811// *Operation.ServerResponse.Header or (if a response was returned at
65812// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65813// to check whether the returned error was because
65814// http.StatusNotModified was returned.
65815func (c *HttpHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65816	gensupport.SetOptions(c.urlParams_, opts...)
65817	res, err := c.doRequest("json")
65818	if res != nil && res.StatusCode == http.StatusNotModified {
65819		if res.Body != nil {
65820			res.Body.Close()
65821		}
65822		return nil, &googleapi.Error{
65823			Code:   res.StatusCode,
65824			Header: res.Header,
65825		}
65826	}
65827	if err != nil {
65828		return nil, err
65829	}
65830	defer googleapi.CloseBody(res)
65831	if err := googleapi.CheckResponse(res); err != nil {
65832		return nil, err
65833	}
65834	ret := &Operation{
65835		ServerResponse: googleapi.ServerResponse{
65836			Header:         res.Header,
65837			HTTPStatusCode: res.StatusCode,
65838		},
65839	}
65840	target := &ret
65841	if err := gensupport.DecodeResponse(target, res); err != nil {
65842		return nil, err
65843	}
65844	return ret, nil
65845	// {
65846	//   "description": "Updates a HttpHealthCheck resource in the specified project using the data included in the request.",
65847	//   "httpMethod": "PUT",
65848	//   "id": "compute.httpHealthChecks.update",
65849	//   "parameterOrder": [
65850	//     "project",
65851	//     "httpHealthCheck"
65852	//   ],
65853	//   "parameters": {
65854	//     "httpHealthCheck": {
65855	//       "description": "Name of the HttpHealthCheck resource to update.",
65856	//       "location": "path",
65857	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
65858	//       "required": true,
65859	//       "type": "string"
65860	//     },
65861	//     "project": {
65862	//       "description": "Project ID for this request.",
65863	//       "location": "path",
65864	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
65865	//       "required": true,
65866	//       "type": "string"
65867	//     },
65868	//     "requestId": {
65869	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
65870	//       "location": "query",
65871	//       "type": "string"
65872	//     }
65873	//   },
65874	//   "path": "{project}/global/httpHealthChecks/{httpHealthCheck}",
65875	//   "request": {
65876	//     "$ref": "HttpHealthCheck"
65877	//   },
65878	//   "response": {
65879	//     "$ref": "Operation"
65880	//   },
65881	//   "scopes": [
65882	//     "https://www.googleapis.com/auth/cloud-platform",
65883	//     "https://www.googleapis.com/auth/compute"
65884	//   ]
65885	// }
65886
65887}
65888
65889// method id "compute.httpsHealthChecks.delete":
65890
65891type HttpsHealthChecksDeleteCall struct {
65892	s                *Service
65893	project          string
65894	httpsHealthCheck string
65895	urlParams_       gensupport.URLParams
65896	ctx_             context.Context
65897	header_          http.Header
65898}
65899
65900// Delete: Deletes the specified HttpsHealthCheck resource.
65901func (r *HttpsHealthChecksService) Delete(project string, httpsHealthCheck string) *HttpsHealthChecksDeleteCall {
65902	c := &HttpsHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
65903	c.project = project
65904	c.httpsHealthCheck = httpsHealthCheck
65905	return c
65906}
65907
65908// RequestId sets the optional parameter "requestId": An optional
65909// request ID to identify requests. Specify a unique request ID so that
65910// if you must retry your request, the server will know to ignore the
65911// request if it has already been completed.
65912//
65913// For example, consider a situation where you make an initial request
65914// and the request times out. If you make the request again with the
65915// same request ID, the server can check if original operation with the
65916// same request ID was received, and if so, will ignore the second
65917// request. This prevents clients from accidentally creating duplicate
65918// commitments.
65919//
65920// The request ID must be a valid UUID with the exception that zero UUID
65921// is not supported (00000000-0000-0000-0000-000000000000).
65922func (c *HttpsHealthChecksDeleteCall) RequestId(requestId string) *HttpsHealthChecksDeleteCall {
65923	c.urlParams_.Set("requestId", requestId)
65924	return c
65925}
65926
65927// Fields allows partial responses to be retrieved. See
65928// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
65929// for more information.
65930func (c *HttpsHealthChecksDeleteCall) Fields(s ...googleapi.Field) *HttpsHealthChecksDeleteCall {
65931	c.urlParams_.Set("fields", googleapi.CombineFields(s))
65932	return c
65933}
65934
65935// Context sets the context to be used in this call's Do method. Any
65936// pending HTTP request will be aborted if the provided context is
65937// canceled.
65938func (c *HttpsHealthChecksDeleteCall) Context(ctx context.Context) *HttpsHealthChecksDeleteCall {
65939	c.ctx_ = ctx
65940	return c
65941}
65942
65943// Header returns an http.Header that can be modified by the caller to
65944// add HTTP headers to the request.
65945func (c *HttpsHealthChecksDeleteCall) Header() http.Header {
65946	if c.header_ == nil {
65947		c.header_ = make(http.Header)
65948	}
65949	return c.header_
65950}
65951
65952func (c *HttpsHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
65953	reqHeaders := make(http.Header)
65954	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
65955	for k, v := range c.header_ {
65956		reqHeaders[k] = v
65957	}
65958	reqHeaders.Set("User-Agent", c.s.userAgent())
65959	var body io.Reader = nil
65960	c.urlParams_.Set("alt", alt)
65961	c.urlParams_.Set("prettyPrint", "false")
65962	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
65963	urls += "?" + c.urlParams_.Encode()
65964	req, err := http.NewRequest("DELETE", urls, body)
65965	if err != nil {
65966		return nil, err
65967	}
65968	req.Header = reqHeaders
65969	googleapi.Expand(req.URL, map[string]string{
65970		"project":          c.project,
65971		"httpsHealthCheck": c.httpsHealthCheck,
65972	})
65973	return gensupport.SendRequest(c.ctx_, c.s.client, req)
65974}
65975
65976// Do executes the "compute.httpsHealthChecks.delete" call.
65977// Exactly one of *Operation or error will be non-nil. Any non-2xx
65978// status code is an error. Response headers are in either
65979// *Operation.ServerResponse.Header or (if a response was returned at
65980// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
65981// to check whether the returned error was because
65982// http.StatusNotModified was returned.
65983func (c *HttpsHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
65984	gensupport.SetOptions(c.urlParams_, opts...)
65985	res, err := c.doRequest("json")
65986	if res != nil && res.StatusCode == http.StatusNotModified {
65987		if res.Body != nil {
65988			res.Body.Close()
65989		}
65990		return nil, &googleapi.Error{
65991			Code:   res.StatusCode,
65992			Header: res.Header,
65993		}
65994	}
65995	if err != nil {
65996		return nil, err
65997	}
65998	defer googleapi.CloseBody(res)
65999	if err := googleapi.CheckResponse(res); err != nil {
66000		return nil, err
66001	}
66002	ret := &Operation{
66003		ServerResponse: googleapi.ServerResponse{
66004			Header:         res.Header,
66005			HTTPStatusCode: res.StatusCode,
66006		},
66007	}
66008	target := &ret
66009	if err := gensupport.DecodeResponse(target, res); err != nil {
66010		return nil, err
66011	}
66012	return ret, nil
66013	// {
66014	//   "description": "Deletes the specified HttpsHealthCheck resource.",
66015	//   "httpMethod": "DELETE",
66016	//   "id": "compute.httpsHealthChecks.delete",
66017	//   "parameterOrder": [
66018	//     "project",
66019	//     "httpsHealthCheck"
66020	//   ],
66021	//   "parameters": {
66022	//     "httpsHealthCheck": {
66023	//       "description": "Name of the HttpsHealthCheck resource to delete.",
66024	//       "location": "path",
66025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66026	//       "required": true,
66027	//       "type": "string"
66028	//     },
66029	//     "project": {
66030	//       "description": "Project ID for this request.",
66031	//       "location": "path",
66032	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66033	//       "required": true,
66034	//       "type": "string"
66035	//     },
66036	//     "requestId": {
66037	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66038	//       "location": "query",
66039	//       "type": "string"
66040	//     }
66041	//   },
66042	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
66043	//   "response": {
66044	//     "$ref": "Operation"
66045	//   },
66046	//   "scopes": [
66047	//     "https://www.googleapis.com/auth/cloud-platform",
66048	//     "https://www.googleapis.com/auth/compute"
66049	//   ]
66050	// }
66051
66052}
66053
66054// method id "compute.httpsHealthChecks.get":
66055
66056type HttpsHealthChecksGetCall struct {
66057	s                *Service
66058	project          string
66059	httpsHealthCheck string
66060	urlParams_       gensupport.URLParams
66061	ifNoneMatch_     string
66062	ctx_             context.Context
66063	header_          http.Header
66064}
66065
66066// Get: Returns the specified HttpsHealthCheck resource. Gets a list of
66067// available HTTPS health checks by making a list() request.
66068func (r *HttpsHealthChecksService) Get(project string, httpsHealthCheck string) *HttpsHealthChecksGetCall {
66069	c := &HttpsHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66070	c.project = project
66071	c.httpsHealthCheck = httpsHealthCheck
66072	return c
66073}
66074
66075// Fields allows partial responses to be retrieved. See
66076// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66077// for more information.
66078func (c *HttpsHealthChecksGetCall) Fields(s ...googleapi.Field) *HttpsHealthChecksGetCall {
66079	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66080	return c
66081}
66082
66083// IfNoneMatch sets the optional parameter which makes the operation
66084// fail if the object's ETag matches the given value. This is useful for
66085// getting updates only after the object has changed since the last
66086// request. Use googleapi.IsNotModified to check whether the response
66087// error from Do is the result of In-None-Match.
66088func (c *HttpsHealthChecksGetCall) IfNoneMatch(entityTag string) *HttpsHealthChecksGetCall {
66089	c.ifNoneMatch_ = entityTag
66090	return c
66091}
66092
66093// Context sets the context to be used in this call's Do method. Any
66094// pending HTTP request will be aborted if the provided context is
66095// canceled.
66096func (c *HttpsHealthChecksGetCall) Context(ctx context.Context) *HttpsHealthChecksGetCall {
66097	c.ctx_ = ctx
66098	return c
66099}
66100
66101// Header returns an http.Header that can be modified by the caller to
66102// add HTTP headers to the request.
66103func (c *HttpsHealthChecksGetCall) Header() http.Header {
66104	if c.header_ == nil {
66105		c.header_ = make(http.Header)
66106	}
66107	return c.header_
66108}
66109
66110func (c *HttpsHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
66111	reqHeaders := make(http.Header)
66112	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66113	for k, v := range c.header_ {
66114		reqHeaders[k] = v
66115	}
66116	reqHeaders.Set("User-Agent", c.s.userAgent())
66117	if c.ifNoneMatch_ != "" {
66118		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66119	}
66120	var body io.Reader = nil
66121	c.urlParams_.Set("alt", alt)
66122	c.urlParams_.Set("prettyPrint", "false")
66123	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
66124	urls += "?" + c.urlParams_.Encode()
66125	req, err := http.NewRequest("GET", urls, body)
66126	if err != nil {
66127		return nil, err
66128	}
66129	req.Header = reqHeaders
66130	googleapi.Expand(req.URL, map[string]string{
66131		"project":          c.project,
66132		"httpsHealthCheck": c.httpsHealthCheck,
66133	})
66134	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66135}
66136
66137// Do executes the "compute.httpsHealthChecks.get" call.
66138// Exactly one of *HttpsHealthCheck or error will be non-nil. Any
66139// non-2xx status code is an error. Response headers are in either
66140// *HttpsHealthCheck.ServerResponse.Header or (if a response was
66141// returned at all) in error.(*googleapi.Error).Header. Use
66142// googleapi.IsNotModified to check whether the returned error was
66143// because http.StatusNotModified was returned.
66144func (c *HttpsHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheck, error) {
66145	gensupport.SetOptions(c.urlParams_, opts...)
66146	res, err := c.doRequest("json")
66147	if res != nil && res.StatusCode == http.StatusNotModified {
66148		if res.Body != nil {
66149			res.Body.Close()
66150		}
66151		return nil, &googleapi.Error{
66152			Code:   res.StatusCode,
66153			Header: res.Header,
66154		}
66155	}
66156	if err != nil {
66157		return nil, err
66158	}
66159	defer googleapi.CloseBody(res)
66160	if err := googleapi.CheckResponse(res); err != nil {
66161		return nil, err
66162	}
66163	ret := &HttpsHealthCheck{
66164		ServerResponse: googleapi.ServerResponse{
66165			Header:         res.Header,
66166			HTTPStatusCode: res.StatusCode,
66167		},
66168	}
66169	target := &ret
66170	if err := gensupport.DecodeResponse(target, res); err != nil {
66171		return nil, err
66172	}
66173	return ret, nil
66174	// {
66175	//   "description": "Returns the specified HttpsHealthCheck resource. Gets a list of available HTTPS health checks by making a list() request.",
66176	//   "httpMethod": "GET",
66177	//   "id": "compute.httpsHealthChecks.get",
66178	//   "parameterOrder": [
66179	//     "project",
66180	//     "httpsHealthCheck"
66181	//   ],
66182	//   "parameters": {
66183	//     "httpsHealthCheck": {
66184	//       "description": "Name of the HttpsHealthCheck resource to return.",
66185	//       "location": "path",
66186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66187	//       "required": true,
66188	//       "type": "string"
66189	//     },
66190	//     "project": {
66191	//       "description": "Project ID for this request.",
66192	//       "location": "path",
66193	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66194	//       "required": true,
66195	//       "type": "string"
66196	//     }
66197	//   },
66198	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
66199	//   "response": {
66200	//     "$ref": "HttpsHealthCheck"
66201	//   },
66202	//   "scopes": [
66203	//     "https://www.googleapis.com/auth/cloud-platform",
66204	//     "https://www.googleapis.com/auth/compute",
66205	//     "https://www.googleapis.com/auth/compute.readonly"
66206	//   ]
66207	// }
66208
66209}
66210
66211// method id "compute.httpsHealthChecks.insert":
66212
66213type HttpsHealthChecksInsertCall struct {
66214	s                *Service
66215	project          string
66216	httpshealthcheck *HttpsHealthCheck
66217	urlParams_       gensupport.URLParams
66218	ctx_             context.Context
66219	header_          http.Header
66220}
66221
66222// Insert: Creates a HttpsHealthCheck resource in the specified project
66223// using the data included in the request.
66224func (r *HttpsHealthChecksService) Insert(project string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksInsertCall {
66225	c := &HttpsHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66226	c.project = project
66227	c.httpshealthcheck = httpshealthcheck
66228	return c
66229}
66230
66231// RequestId sets the optional parameter "requestId": An optional
66232// request ID to identify requests. Specify a unique request ID so that
66233// if you must retry your request, the server will know to ignore the
66234// request if it has already been completed.
66235//
66236// For example, consider a situation where you make an initial request
66237// and the request times out. If you make the request again with the
66238// same request ID, the server can check if original operation with the
66239// same request ID was received, and if so, will ignore the second
66240// request. This prevents clients from accidentally creating duplicate
66241// commitments.
66242//
66243// The request ID must be a valid UUID with the exception that zero UUID
66244// is not supported (00000000-0000-0000-0000-000000000000).
66245func (c *HttpsHealthChecksInsertCall) RequestId(requestId string) *HttpsHealthChecksInsertCall {
66246	c.urlParams_.Set("requestId", requestId)
66247	return c
66248}
66249
66250// Fields allows partial responses to be retrieved. See
66251// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66252// for more information.
66253func (c *HttpsHealthChecksInsertCall) Fields(s ...googleapi.Field) *HttpsHealthChecksInsertCall {
66254	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66255	return c
66256}
66257
66258// Context sets the context to be used in this call's Do method. Any
66259// pending HTTP request will be aborted if the provided context is
66260// canceled.
66261func (c *HttpsHealthChecksInsertCall) Context(ctx context.Context) *HttpsHealthChecksInsertCall {
66262	c.ctx_ = ctx
66263	return c
66264}
66265
66266// Header returns an http.Header that can be modified by the caller to
66267// add HTTP headers to the request.
66268func (c *HttpsHealthChecksInsertCall) Header() http.Header {
66269	if c.header_ == nil {
66270		c.header_ = make(http.Header)
66271	}
66272	return c.header_
66273}
66274
66275func (c *HttpsHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
66276	reqHeaders := make(http.Header)
66277	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66278	for k, v := range c.header_ {
66279		reqHeaders[k] = v
66280	}
66281	reqHeaders.Set("User-Agent", c.s.userAgent())
66282	var body io.Reader = nil
66283	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
66284	if err != nil {
66285		return nil, err
66286	}
66287	reqHeaders.Set("Content-Type", "application/json")
66288	c.urlParams_.Set("alt", alt)
66289	c.urlParams_.Set("prettyPrint", "false")
66290	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
66291	urls += "?" + c.urlParams_.Encode()
66292	req, err := http.NewRequest("POST", urls, body)
66293	if err != nil {
66294		return nil, err
66295	}
66296	req.Header = reqHeaders
66297	googleapi.Expand(req.URL, map[string]string{
66298		"project": c.project,
66299	})
66300	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66301}
66302
66303// Do executes the "compute.httpsHealthChecks.insert" call.
66304// Exactly one of *Operation or error will be non-nil. Any non-2xx
66305// status code is an error. Response headers are in either
66306// *Operation.ServerResponse.Header or (if a response was returned at
66307// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66308// to check whether the returned error was because
66309// http.StatusNotModified was returned.
66310func (c *HttpsHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66311	gensupport.SetOptions(c.urlParams_, opts...)
66312	res, err := c.doRequest("json")
66313	if res != nil && res.StatusCode == http.StatusNotModified {
66314		if res.Body != nil {
66315			res.Body.Close()
66316		}
66317		return nil, &googleapi.Error{
66318			Code:   res.StatusCode,
66319			Header: res.Header,
66320		}
66321	}
66322	if err != nil {
66323		return nil, err
66324	}
66325	defer googleapi.CloseBody(res)
66326	if err := googleapi.CheckResponse(res); err != nil {
66327		return nil, err
66328	}
66329	ret := &Operation{
66330		ServerResponse: googleapi.ServerResponse{
66331			Header:         res.Header,
66332			HTTPStatusCode: res.StatusCode,
66333		},
66334	}
66335	target := &ret
66336	if err := gensupport.DecodeResponse(target, res); err != nil {
66337		return nil, err
66338	}
66339	return ret, nil
66340	// {
66341	//   "description": "Creates a HttpsHealthCheck resource in the specified project using the data included in the request.",
66342	//   "httpMethod": "POST",
66343	//   "id": "compute.httpsHealthChecks.insert",
66344	//   "parameterOrder": [
66345	//     "project"
66346	//   ],
66347	//   "parameters": {
66348	//     "project": {
66349	//       "description": "Project ID for this request.",
66350	//       "location": "path",
66351	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66352	//       "required": true,
66353	//       "type": "string"
66354	//     },
66355	//     "requestId": {
66356	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66357	//       "location": "query",
66358	//       "type": "string"
66359	//     }
66360	//   },
66361	//   "path": "{project}/global/httpsHealthChecks",
66362	//   "request": {
66363	//     "$ref": "HttpsHealthCheck"
66364	//   },
66365	//   "response": {
66366	//     "$ref": "Operation"
66367	//   },
66368	//   "scopes": [
66369	//     "https://www.googleapis.com/auth/cloud-platform",
66370	//     "https://www.googleapis.com/auth/compute"
66371	//   ]
66372	// }
66373
66374}
66375
66376// method id "compute.httpsHealthChecks.list":
66377
66378type HttpsHealthChecksListCall struct {
66379	s            *Service
66380	project      string
66381	urlParams_   gensupport.URLParams
66382	ifNoneMatch_ string
66383	ctx_         context.Context
66384	header_      http.Header
66385}
66386
66387// List: Retrieves the list of HttpsHealthCheck resources available to
66388// the specified project.
66389func (r *HttpsHealthChecksService) List(project string) *HttpsHealthChecksListCall {
66390	c := &HttpsHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66391	c.project = project
66392	return c
66393}
66394
66395// Filter sets the optional parameter "filter": A filter expression that
66396// filters resources listed in the response. The expression must specify
66397// the field name, a comparison operator, and the value that you want to
66398// use for filtering. The value must be a string, a number, or a
66399// boolean. The comparison operator must be either =, !=, >, or <.
66400//
66401// For example, if you are filtering Compute Engine instances, you can
66402// exclude instances named example-instance by specifying name !=
66403// example-instance.
66404//
66405// You can also filter nested fields. For example, you could specify
66406// scheduling.automaticRestart = false to include instances only if they
66407// are not scheduled for automatic restarts. You can use filtering on
66408// nested fields to filter based on resource labels.
66409//
66410// To filter on multiple expressions, provide each separate expression
66411// within parentheses. For example, (scheduling.automaticRestart = true)
66412// (cpuPlatform = "Intel Skylake"). By default, each expression is an
66413// AND expression. However, you can include AND and OR expressions
66414// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
66415// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
66416// true).
66417func (c *HttpsHealthChecksListCall) Filter(filter string) *HttpsHealthChecksListCall {
66418	c.urlParams_.Set("filter", filter)
66419	return c
66420}
66421
66422// MaxResults sets the optional parameter "maxResults": The maximum
66423// number of results per page that should be returned. If the number of
66424// available results is larger than maxResults, Compute Engine returns a
66425// nextPageToken that can be used to get the next page of results in
66426// subsequent list requests. Acceptable values are 0 to 500, inclusive.
66427// (Default: 500)
66428func (c *HttpsHealthChecksListCall) MaxResults(maxResults int64) *HttpsHealthChecksListCall {
66429	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
66430	return c
66431}
66432
66433// OrderBy sets the optional parameter "orderBy": Sorts list results by
66434// a certain order. By default, results are returned in alphanumerical
66435// order based on the resource name.
66436//
66437// You can also sort results in descending order based on the creation
66438// timestamp using orderBy="creationTimestamp desc". This sorts results
66439// based on the creationTimestamp field in reverse chronological order
66440// (newest result first). Use this to sort resources like operations so
66441// that the newest operation is returned first.
66442//
66443// Currently, only sorting by name or creationTimestamp desc is
66444// supported.
66445func (c *HttpsHealthChecksListCall) OrderBy(orderBy string) *HttpsHealthChecksListCall {
66446	c.urlParams_.Set("orderBy", orderBy)
66447	return c
66448}
66449
66450// PageToken sets the optional parameter "pageToken": Specifies a page
66451// token to use. Set pageToken to the nextPageToken returned by a
66452// previous list request to get the next page of results.
66453func (c *HttpsHealthChecksListCall) PageToken(pageToken string) *HttpsHealthChecksListCall {
66454	c.urlParams_.Set("pageToken", pageToken)
66455	return c
66456}
66457
66458// Fields allows partial responses to be retrieved. See
66459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66460// for more information.
66461func (c *HttpsHealthChecksListCall) Fields(s ...googleapi.Field) *HttpsHealthChecksListCall {
66462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66463	return c
66464}
66465
66466// IfNoneMatch sets the optional parameter which makes the operation
66467// fail if the object's ETag matches the given value. This is useful for
66468// getting updates only after the object has changed since the last
66469// request. Use googleapi.IsNotModified to check whether the response
66470// error from Do is the result of In-None-Match.
66471func (c *HttpsHealthChecksListCall) IfNoneMatch(entityTag string) *HttpsHealthChecksListCall {
66472	c.ifNoneMatch_ = entityTag
66473	return c
66474}
66475
66476// Context sets the context to be used in this call's Do method. Any
66477// pending HTTP request will be aborted if the provided context is
66478// canceled.
66479func (c *HttpsHealthChecksListCall) Context(ctx context.Context) *HttpsHealthChecksListCall {
66480	c.ctx_ = ctx
66481	return c
66482}
66483
66484// Header returns an http.Header that can be modified by the caller to
66485// add HTTP headers to the request.
66486func (c *HttpsHealthChecksListCall) Header() http.Header {
66487	if c.header_ == nil {
66488		c.header_ = make(http.Header)
66489	}
66490	return c.header_
66491}
66492
66493func (c *HttpsHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
66494	reqHeaders := make(http.Header)
66495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66496	for k, v := range c.header_ {
66497		reqHeaders[k] = v
66498	}
66499	reqHeaders.Set("User-Agent", c.s.userAgent())
66500	if c.ifNoneMatch_ != "" {
66501		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
66502	}
66503	var body io.Reader = nil
66504	c.urlParams_.Set("alt", alt)
66505	c.urlParams_.Set("prettyPrint", "false")
66506	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks")
66507	urls += "?" + c.urlParams_.Encode()
66508	req, err := http.NewRequest("GET", urls, body)
66509	if err != nil {
66510		return nil, err
66511	}
66512	req.Header = reqHeaders
66513	googleapi.Expand(req.URL, map[string]string{
66514		"project": c.project,
66515	})
66516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66517}
66518
66519// Do executes the "compute.httpsHealthChecks.list" call.
66520// Exactly one of *HttpsHealthCheckList or error will be non-nil. Any
66521// non-2xx status code is an error. Response headers are in either
66522// *HttpsHealthCheckList.ServerResponse.Header or (if a response was
66523// returned at all) in error.(*googleapi.Error).Header. Use
66524// googleapi.IsNotModified to check whether the returned error was
66525// because http.StatusNotModified was returned.
66526func (c *HttpsHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HttpsHealthCheckList, error) {
66527	gensupport.SetOptions(c.urlParams_, opts...)
66528	res, err := c.doRequest("json")
66529	if res != nil && res.StatusCode == http.StatusNotModified {
66530		if res.Body != nil {
66531			res.Body.Close()
66532		}
66533		return nil, &googleapi.Error{
66534			Code:   res.StatusCode,
66535			Header: res.Header,
66536		}
66537	}
66538	if err != nil {
66539		return nil, err
66540	}
66541	defer googleapi.CloseBody(res)
66542	if err := googleapi.CheckResponse(res); err != nil {
66543		return nil, err
66544	}
66545	ret := &HttpsHealthCheckList{
66546		ServerResponse: googleapi.ServerResponse{
66547			Header:         res.Header,
66548			HTTPStatusCode: res.StatusCode,
66549		},
66550	}
66551	target := &ret
66552	if err := gensupport.DecodeResponse(target, res); err != nil {
66553		return nil, err
66554	}
66555	return ret, nil
66556	// {
66557	//   "description": "Retrieves the list of HttpsHealthCheck resources available to the specified project.",
66558	//   "httpMethod": "GET",
66559	//   "id": "compute.httpsHealthChecks.list",
66560	//   "parameterOrder": [
66561	//     "project"
66562	//   ],
66563	//   "parameters": {
66564	//     "filter": {
66565	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
66566	//       "location": "query",
66567	//       "type": "string"
66568	//     },
66569	//     "maxResults": {
66570	//       "default": "500",
66571	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
66572	//       "format": "uint32",
66573	//       "location": "query",
66574	//       "minimum": "0",
66575	//       "type": "integer"
66576	//     },
66577	//     "orderBy": {
66578	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
66579	//       "location": "query",
66580	//       "type": "string"
66581	//     },
66582	//     "pageToken": {
66583	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
66584	//       "location": "query",
66585	//       "type": "string"
66586	//     },
66587	//     "project": {
66588	//       "description": "Project ID for this request.",
66589	//       "location": "path",
66590	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66591	//       "required": true,
66592	//       "type": "string"
66593	//     }
66594	//   },
66595	//   "path": "{project}/global/httpsHealthChecks",
66596	//   "response": {
66597	//     "$ref": "HttpsHealthCheckList"
66598	//   },
66599	//   "scopes": [
66600	//     "https://www.googleapis.com/auth/cloud-platform",
66601	//     "https://www.googleapis.com/auth/compute",
66602	//     "https://www.googleapis.com/auth/compute.readonly"
66603	//   ]
66604	// }
66605
66606}
66607
66608// Pages invokes f for each page of results.
66609// A non-nil error returned from f will halt the iteration.
66610// The provided context supersedes any context provided to the Context method.
66611func (c *HttpsHealthChecksListCall) Pages(ctx context.Context, f func(*HttpsHealthCheckList) error) error {
66612	c.ctx_ = ctx
66613	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
66614	for {
66615		x, err := c.Do()
66616		if err != nil {
66617			return err
66618		}
66619		if err := f(x); err != nil {
66620			return err
66621		}
66622		if x.NextPageToken == "" {
66623			return nil
66624		}
66625		c.PageToken(x.NextPageToken)
66626	}
66627}
66628
66629// method id "compute.httpsHealthChecks.patch":
66630
66631type HttpsHealthChecksPatchCall struct {
66632	s                *Service
66633	project          string
66634	httpsHealthCheck string
66635	httpshealthcheck *HttpsHealthCheck
66636	urlParams_       gensupport.URLParams
66637	ctx_             context.Context
66638	header_          http.Header
66639}
66640
66641// Patch: Updates a HttpsHealthCheck resource in the specified project
66642// using the data included in the request. This method supports PATCH
66643// semantics and uses the JSON merge patch format and processing rules.
66644func (r *HttpsHealthChecksService) Patch(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksPatchCall {
66645	c := &HttpsHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66646	c.project = project
66647	c.httpsHealthCheck = httpsHealthCheck
66648	c.httpshealthcheck = httpshealthcheck
66649	return c
66650}
66651
66652// RequestId sets the optional parameter "requestId": An optional
66653// request ID to identify requests. Specify a unique request ID so that
66654// if you must retry your request, the server will know to ignore the
66655// request if it has already been completed.
66656//
66657// For example, consider a situation where you make an initial request
66658// and the request times out. If you make the request again with the
66659// same request ID, the server can check if original operation with the
66660// same request ID was received, and if so, will ignore the second
66661// request. This prevents clients from accidentally creating duplicate
66662// commitments.
66663//
66664// The request ID must be a valid UUID with the exception that zero UUID
66665// is not supported (00000000-0000-0000-0000-000000000000).
66666func (c *HttpsHealthChecksPatchCall) RequestId(requestId string) *HttpsHealthChecksPatchCall {
66667	c.urlParams_.Set("requestId", requestId)
66668	return c
66669}
66670
66671// Fields allows partial responses to be retrieved. See
66672// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66673// for more information.
66674func (c *HttpsHealthChecksPatchCall) Fields(s ...googleapi.Field) *HttpsHealthChecksPatchCall {
66675	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66676	return c
66677}
66678
66679// Context sets the context to be used in this call's Do method. Any
66680// pending HTTP request will be aborted if the provided context is
66681// canceled.
66682func (c *HttpsHealthChecksPatchCall) Context(ctx context.Context) *HttpsHealthChecksPatchCall {
66683	c.ctx_ = ctx
66684	return c
66685}
66686
66687// Header returns an http.Header that can be modified by the caller to
66688// add HTTP headers to the request.
66689func (c *HttpsHealthChecksPatchCall) Header() http.Header {
66690	if c.header_ == nil {
66691		c.header_ = make(http.Header)
66692	}
66693	return c.header_
66694}
66695
66696func (c *HttpsHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
66697	reqHeaders := make(http.Header)
66698	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66699	for k, v := range c.header_ {
66700		reqHeaders[k] = v
66701	}
66702	reqHeaders.Set("User-Agent", c.s.userAgent())
66703	var body io.Reader = nil
66704	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
66705	if err != nil {
66706		return nil, err
66707	}
66708	reqHeaders.Set("Content-Type", "application/json")
66709	c.urlParams_.Set("alt", alt)
66710	c.urlParams_.Set("prettyPrint", "false")
66711	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
66712	urls += "?" + c.urlParams_.Encode()
66713	req, err := http.NewRequest("PATCH", urls, body)
66714	if err != nil {
66715		return nil, err
66716	}
66717	req.Header = reqHeaders
66718	googleapi.Expand(req.URL, map[string]string{
66719		"project":          c.project,
66720		"httpsHealthCheck": c.httpsHealthCheck,
66721	})
66722	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66723}
66724
66725// Do executes the "compute.httpsHealthChecks.patch" call.
66726// Exactly one of *Operation or error will be non-nil. Any non-2xx
66727// status code is an error. Response headers are in either
66728// *Operation.ServerResponse.Header or (if a response was returned at
66729// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
66730// to check whether the returned error was because
66731// http.StatusNotModified was returned.
66732func (c *HttpsHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
66733	gensupport.SetOptions(c.urlParams_, opts...)
66734	res, err := c.doRequest("json")
66735	if res != nil && res.StatusCode == http.StatusNotModified {
66736		if res.Body != nil {
66737			res.Body.Close()
66738		}
66739		return nil, &googleapi.Error{
66740			Code:   res.StatusCode,
66741			Header: res.Header,
66742		}
66743	}
66744	if err != nil {
66745		return nil, err
66746	}
66747	defer googleapi.CloseBody(res)
66748	if err := googleapi.CheckResponse(res); err != nil {
66749		return nil, err
66750	}
66751	ret := &Operation{
66752		ServerResponse: googleapi.ServerResponse{
66753			Header:         res.Header,
66754			HTTPStatusCode: res.StatusCode,
66755		},
66756	}
66757	target := &ret
66758	if err := gensupport.DecodeResponse(target, res); err != nil {
66759		return nil, err
66760	}
66761	return ret, nil
66762	// {
66763	//   "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.",
66764	//   "httpMethod": "PATCH",
66765	//   "id": "compute.httpsHealthChecks.patch",
66766	//   "parameterOrder": [
66767	//     "project",
66768	//     "httpsHealthCheck"
66769	//   ],
66770	//   "parameters": {
66771	//     "httpsHealthCheck": {
66772	//       "description": "Name of the HttpsHealthCheck resource to patch.",
66773	//       "location": "path",
66774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66775	//       "required": true,
66776	//       "type": "string"
66777	//     },
66778	//     "project": {
66779	//       "description": "Project ID for this request.",
66780	//       "location": "path",
66781	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66782	//       "required": true,
66783	//       "type": "string"
66784	//     },
66785	//     "requestId": {
66786	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
66787	//       "location": "query",
66788	//       "type": "string"
66789	//     }
66790	//   },
66791	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
66792	//   "request": {
66793	//     "$ref": "HttpsHealthCheck"
66794	//   },
66795	//   "response": {
66796	//     "$ref": "Operation"
66797	//   },
66798	//   "scopes": [
66799	//     "https://www.googleapis.com/auth/cloud-platform",
66800	//     "https://www.googleapis.com/auth/compute"
66801	//   ]
66802	// }
66803
66804}
66805
66806// method id "compute.httpsHealthChecks.testIamPermissions":
66807
66808type HttpsHealthChecksTestIamPermissionsCall struct {
66809	s                      *Service
66810	project                string
66811	resource               string
66812	testpermissionsrequest *TestPermissionsRequest
66813	urlParams_             gensupport.URLParams
66814	ctx_                   context.Context
66815	header_                http.Header
66816}
66817
66818// TestIamPermissions: Returns permissions that a caller has on the
66819// specified resource.
66820func (r *HttpsHealthChecksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *HttpsHealthChecksTestIamPermissionsCall {
66821	c := &HttpsHealthChecksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66822	c.project = project
66823	c.resource = resource
66824	c.testpermissionsrequest = testpermissionsrequest
66825	return c
66826}
66827
66828// Fields allows partial responses to be retrieved. See
66829// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
66830// for more information.
66831func (c *HttpsHealthChecksTestIamPermissionsCall) Fields(s ...googleapi.Field) *HttpsHealthChecksTestIamPermissionsCall {
66832	c.urlParams_.Set("fields", googleapi.CombineFields(s))
66833	return c
66834}
66835
66836// Context sets the context to be used in this call's Do method. Any
66837// pending HTTP request will be aborted if the provided context is
66838// canceled.
66839func (c *HttpsHealthChecksTestIamPermissionsCall) Context(ctx context.Context) *HttpsHealthChecksTestIamPermissionsCall {
66840	c.ctx_ = ctx
66841	return c
66842}
66843
66844// Header returns an http.Header that can be modified by the caller to
66845// add HTTP headers to the request.
66846func (c *HttpsHealthChecksTestIamPermissionsCall) Header() http.Header {
66847	if c.header_ == nil {
66848		c.header_ = make(http.Header)
66849	}
66850	return c.header_
66851}
66852
66853func (c *HttpsHealthChecksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
66854	reqHeaders := make(http.Header)
66855	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
66856	for k, v := range c.header_ {
66857		reqHeaders[k] = v
66858	}
66859	reqHeaders.Set("User-Agent", c.s.userAgent())
66860	var body io.Reader = nil
66861	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
66862	if err != nil {
66863		return nil, err
66864	}
66865	reqHeaders.Set("Content-Type", "application/json")
66866	c.urlParams_.Set("alt", alt)
66867	c.urlParams_.Set("prettyPrint", "false")
66868	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{resource}/testIamPermissions")
66869	urls += "?" + c.urlParams_.Encode()
66870	req, err := http.NewRequest("POST", urls, body)
66871	if err != nil {
66872		return nil, err
66873	}
66874	req.Header = reqHeaders
66875	googleapi.Expand(req.URL, map[string]string{
66876		"project":  c.project,
66877		"resource": c.resource,
66878	})
66879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
66880}
66881
66882// Do executes the "compute.httpsHealthChecks.testIamPermissions" call.
66883// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
66884// non-2xx status code is an error. Response headers are in either
66885// *TestPermissionsResponse.ServerResponse.Header or (if a response was
66886// returned at all) in error.(*googleapi.Error).Header. Use
66887// googleapi.IsNotModified to check whether the returned error was
66888// because http.StatusNotModified was returned.
66889func (c *HttpsHealthChecksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
66890	gensupport.SetOptions(c.urlParams_, opts...)
66891	res, err := c.doRequest("json")
66892	if res != nil && res.StatusCode == http.StatusNotModified {
66893		if res.Body != nil {
66894			res.Body.Close()
66895		}
66896		return nil, &googleapi.Error{
66897			Code:   res.StatusCode,
66898			Header: res.Header,
66899		}
66900	}
66901	if err != nil {
66902		return nil, err
66903	}
66904	defer googleapi.CloseBody(res)
66905	if err := googleapi.CheckResponse(res); err != nil {
66906		return nil, err
66907	}
66908	ret := &TestPermissionsResponse{
66909		ServerResponse: googleapi.ServerResponse{
66910			Header:         res.Header,
66911			HTTPStatusCode: res.StatusCode,
66912		},
66913	}
66914	target := &ret
66915	if err := gensupport.DecodeResponse(target, res); err != nil {
66916		return nil, err
66917	}
66918	return ret, nil
66919	// {
66920	//   "description": "Returns permissions that a caller has on the specified resource.",
66921	//   "httpMethod": "POST",
66922	//   "id": "compute.httpsHealthChecks.testIamPermissions",
66923	//   "parameterOrder": [
66924	//     "project",
66925	//     "resource"
66926	//   ],
66927	//   "parameters": {
66928	//     "project": {
66929	//       "description": "Project ID for this request.",
66930	//       "location": "path",
66931	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
66932	//       "required": true,
66933	//       "type": "string"
66934	//     },
66935	//     "resource": {
66936	//       "description": "Name or id of the resource for this request.",
66937	//       "location": "path",
66938	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
66939	//       "required": true,
66940	//       "type": "string"
66941	//     }
66942	//   },
66943	//   "path": "{project}/global/httpsHealthChecks/{resource}/testIamPermissions",
66944	//   "request": {
66945	//     "$ref": "TestPermissionsRequest"
66946	//   },
66947	//   "response": {
66948	//     "$ref": "TestPermissionsResponse"
66949	//   },
66950	//   "scopes": [
66951	//     "https://www.googleapis.com/auth/cloud-platform",
66952	//     "https://www.googleapis.com/auth/compute",
66953	//     "https://www.googleapis.com/auth/compute.readonly"
66954	//   ]
66955	// }
66956
66957}
66958
66959// method id "compute.httpsHealthChecks.update":
66960
66961type HttpsHealthChecksUpdateCall struct {
66962	s                *Service
66963	project          string
66964	httpsHealthCheck string
66965	httpshealthcheck *HttpsHealthCheck
66966	urlParams_       gensupport.URLParams
66967	ctx_             context.Context
66968	header_          http.Header
66969}
66970
66971// Update: Updates a HttpsHealthCheck resource in the specified project
66972// using the data included in the request.
66973func (r *HttpsHealthChecksService) Update(project string, httpsHealthCheck string, httpshealthcheck *HttpsHealthCheck) *HttpsHealthChecksUpdateCall {
66974	c := &HttpsHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
66975	c.project = project
66976	c.httpsHealthCheck = httpsHealthCheck
66977	c.httpshealthcheck = httpshealthcheck
66978	return c
66979}
66980
66981// RequestId sets the optional parameter "requestId": An optional
66982// request ID to identify requests. Specify a unique request ID so that
66983// if you must retry your request, the server will know to ignore the
66984// request if it has already been completed.
66985//
66986// For example, consider a situation where you make an initial request
66987// and the request times out. If you make the request again with the
66988// same request ID, the server can check if original operation with the
66989// same request ID was received, and if so, will ignore the second
66990// request. This prevents clients from accidentally creating duplicate
66991// commitments.
66992//
66993// The request ID must be a valid UUID with the exception that zero UUID
66994// is not supported (00000000-0000-0000-0000-000000000000).
66995func (c *HttpsHealthChecksUpdateCall) RequestId(requestId string) *HttpsHealthChecksUpdateCall {
66996	c.urlParams_.Set("requestId", requestId)
66997	return c
66998}
66999
67000// Fields allows partial responses to be retrieved. See
67001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67002// for more information.
67003func (c *HttpsHealthChecksUpdateCall) Fields(s ...googleapi.Field) *HttpsHealthChecksUpdateCall {
67004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67005	return c
67006}
67007
67008// Context sets the context to be used in this call's Do method. Any
67009// pending HTTP request will be aborted if the provided context is
67010// canceled.
67011func (c *HttpsHealthChecksUpdateCall) Context(ctx context.Context) *HttpsHealthChecksUpdateCall {
67012	c.ctx_ = ctx
67013	return c
67014}
67015
67016// Header returns an http.Header that can be modified by the caller to
67017// add HTTP headers to the request.
67018func (c *HttpsHealthChecksUpdateCall) Header() http.Header {
67019	if c.header_ == nil {
67020		c.header_ = make(http.Header)
67021	}
67022	return c.header_
67023}
67024
67025func (c *HttpsHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
67026	reqHeaders := make(http.Header)
67027	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67028	for k, v := range c.header_ {
67029		reqHeaders[k] = v
67030	}
67031	reqHeaders.Set("User-Agent", c.s.userAgent())
67032	var body io.Reader = nil
67033	body, err := googleapi.WithoutDataWrapper.JSONReader(c.httpshealthcheck)
67034	if err != nil {
67035		return nil, err
67036	}
67037	reqHeaders.Set("Content-Type", "application/json")
67038	c.urlParams_.Set("alt", alt)
67039	c.urlParams_.Set("prettyPrint", "false")
67040	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/httpsHealthChecks/{httpsHealthCheck}")
67041	urls += "?" + c.urlParams_.Encode()
67042	req, err := http.NewRequest("PUT", urls, body)
67043	if err != nil {
67044		return nil, err
67045	}
67046	req.Header = reqHeaders
67047	googleapi.Expand(req.URL, map[string]string{
67048		"project":          c.project,
67049		"httpsHealthCheck": c.httpsHealthCheck,
67050	})
67051	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67052}
67053
67054// Do executes the "compute.httpsHealthChecks.update" call.
67055// Exactly one of *Operation or error will be non-nil. Any non-2xx
67056// status code is an error. Response headers are in either
67057// *Operation.ServerResponse.Header or (if a response was returned at
67058// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67059// to check whether the returned error was because
67060// http.StatusNotModified was returned.
67061func (c *HttpsHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67062	gensupport.SetOptions(c.urlParams_, opts...)
67063	res, err := c.doRequest("json")
67064	if res != nil && res.StatusCode == http.StatusNotModified {
67065		if res.Body != nil {
67066			res.Body.Close()
67067		}
67068		return nil, &googleapi.Error{
67069			Code:   res.StatusCode,
67070			Header: res.Header,
67071		}
67072	}
67073	if err != nil {
67074		return nil, err
67075	}
67076	defer googleapi.CloseBody(res)
67077	if err := googleapi.CheckResponse(res); err != nil {
67078		return nil, err
67079	}
67080	ret := &Operation{
67081		ServerResponse: googleapi.ServerResponse{
67082			Header:         res.Header,
67083			HTTPStatusCode: res.StatusCode,
67084		},
67085	}
67086	target := &ret
67087	if err := gensupport.DecodeResponse(target, res); err != nil {
67088		return nil, err
67089	}
67090	return ret, nil
67091	// {
67092	//   "description": "Updates a HttpsHealthCheck resource in the specified project using the data included in the request.",
67093	//   "httpMethod": "PUT",
67094	//   "id": "compute.httpsHealthChecks.update",
67095	//   "parameterOrder": [
67096	//     "project",
67097	//     "httpsHealthCheck"
67098	//   ],
67099	//   "parameters": {
67100	//     "httpsHealthCheck": {
67101	//       "description": "Name of the HttpsHealthCheck resource to update.",
67102	//       "location": "path",
67103	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67104	//       "required": true,
67105	//       "type": "string"
67106	//     },
67107	//     "project": {
67108	//       "description": "Project ID for this request.",
67109	//       "location": "path",
67110	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67111	//       "required": true,
67112	//       "type": "string"
67113	//     },
67114	//     "requestId": {
67115	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67116	//       "location": "query",
67117	//       "type": "string"
67118	//     }
67119	//   },
67120	//   "path": "{project}/global/httpsHealthChecks/{httpsHealthCheck}",
67121	//   "request": {
67122	//     "$ref": "HttpsHealthCheck"
67123	//   },
67124	//   "response": {
67125	//     "$ref": "Operation"
67126	//   },
67127	//   "scopes": [
67128	//     "https://www.googleapis.com/auth/cloud-platform",
67129	//     "https://www.googleapis.com/auth/compute"
67130	//   ]
67131	// }
67132
67133}
67134
67135// method id "compute.images.delete":
67136
67137type ImagesDeleteCall struct {
67138	s          *Service
67139	project    string
67140	image      string
67141	urlParams_ gensupport.URLParams
67142	ctx_       context.Context
67143	header_    http.Header
67144}
67145
67146// Delete: Deletes the specified image.
67147// For details, see https://cloud.google.com/compute/docs/reference/latest/images/delete
67148func (r *ImagesService) Delete(project string, image string) *ImagesDeleteCall {
67149	c := &ImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67150	c.project = project
67151	c.image = image
67152	return c
67153}
67154
67155// RequestId sets the optional parameter "requestId": An optional
67156// request ID to identify requests. Specify a unique request ID so that
67157// if you must retry your request, the server will know to ignore the
67158// request if it has already been completed.
67159//
67160// For example, consider a situation where you make an initial request
67161// and the request times out. If you make the request again with the
67162// same request ID, the server can check if original operation with the
67163// same request ID was received, and if so, will ignore the second
67164// request. This prevents clients from accidentally creating duplicate
67165// commitments.
67166//
67167// The request ID must be a valid UUID with the exception that zero UUID
67168// is not supported (00000000-0000-0000-0000-000000000000).
67169func (c *ImagesDeleteCall) RequestId(requestId string) *ImagesDeleteCall {
67170	c.urlParams_.Set("requestId", requestId)
67171	return c
67172}
67173
67174// Fields allows partial responses to be retrieved. See
67175// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67176// for more information.
67177func (c *ImagesDeleteCall) Fields(s ...googleapi.Field) *ImagesDeleteCall {
67178	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67179	return c
67180}
67181
67182// Context sets the context to be used in this call's Do method. Any
67183// pending HTTP request will be aborted if the provided context is
67184// canceled.
67185func (c *ImagesDeleteCall) Context(ctx context.Context) *ImagesDeleteCall {
67186	c.ctx_ = ctx
67187	return c
67188}
67189
67190// Header returns an http.Header that can be modified by the caller to
67191// add HTTP headers to the request.
67192func (c *ImagesDeleteCall) Header() http.Header {
67193	if c.header_ == nil {
67194		c.header_ = make(http.Header)
67195	}
67196	return c.header_
67197}
67198
67199func (c *ImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
67200	reqHeaders := make(http.Header)
67201	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67202	for k, v := range c.header_ {
67203		reqHeaders[k] = v
67204	}
67205	reqHeaders.Set("User-Agent", c.s.userAgent())
67206	var body io.Reader = nil
67207	c.urlParams_.Set("alt", alt)
67208	c.urlParams_.Set("prettyPrint", "false")
67209	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
67210	urls += "?" + c.urlParams_.Encode()
67211	req, err := http.NewRequest("DELETE", urls, body)
67212	if err != nil {
67213		return nil, err
67214	}
67215	req.Header = reqHeaders
67216	googleapi.Expand(req.URL, map[string]string{
67217		"project": c.project,
67218		"image":   c.image,
67219	})
67220	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67221}
67222
67223// Do executes the "compute.images.delete" call.
67224// Exactly one of *Operation or error will be non-nil. Any non-2xx
67225// status code is an error. Response headers are in either
67226// *Operation.ServerResponse.Header or (if a response was returned at
67227// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67228// to check whether the returned error was because
67229// http.StatusNotModified was returned.
67230func (c *ImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67231	gensupport.SetOptions(c.urlParams_, opts...)
67232	res, err := c.doRequest("json")
67233	if res != nil && res.StatusCode == http.StatusNotModified {
67234		if res.Body != nil {
67235			res.Body.Close()
67236		}
67237		return nil, &googleapi.Error{
67238			Code:   res.StatusCode,
67239			Header: res.Header,
67240		}
67241	}
67242	if err != nil {
67243		return nil, err
67244	}
67245	defer googleapi.CloseBody(res)
67246	if err := googleapi.CheckResponse(res); err != nil {
67247		return nil, err
67248	}
67249	ret := &Operation{
67250		ServerResponse: googleapi.ServerResponse{
67251			Header:         res.Header,
67252			HTTPStatusCode: res.StatusCode,
67253		},
67254	}
67255	target := &ret
67256	if err := gensupport.DecodeResponse(target, res); err != nil {
67257		return nil, err
67258	}
67259	return ret, nil
67260	// {
67261	//   "description": "Deletes the specified image.",
67262	//   "httpMethod": "DELETE",
67263	//   "id": "compute.images.delete",
67264	//   "parameterOrder": [
67265	//     "project",
67266	//     "image"
67267	//   ],
67268	//   "parameters": {
67269	//     "image": {
67270	//       "description": "Name of the image resource to delete.",
67271	//       "location": "path",
67272	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67273	//       "required": true,
67274	//       "type": "string"
67275	//     },
67276	//     "project": {
67277	//       "description": "Project ID for this request.",
67278	//       "location": "path",
67279	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67280	//       "required": true,
67281	//       "type": "string"
67282	//     },
67283	//     "requestId": {
67284	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67285	//       "location": "query",
67286	//       "type": "string"
67287	//     }
67288	//   },
67289	//   "path": "{project}/global/images/{image}",
67290	//   "response": {
67291	//     "$ref": "Operation"
67292	//   },
67293	//   "scopes": [
67294	//     "https://www.googleapis.com/auth/cloud-platform",
67295	//     "https://www.googleapis.com/auth/compute"
67296	//   ]
67297	// }
67298
67299}
67300
67301// method id "compute.images.deprecate":
67302
67303type ImagesDeprecateCall struct {
67304	s                 *Service
67305	project           string
67306	image             string
67307	deprecationstatus *DeprecationStatus
67308	urlParams_        gensupport.URLParams
67309	ctx_              context.Context
67310	header_           http.Header
67311}
67312
67313// Deprecate: Sets the deprecation status of an image.
67314//
67315// If an empty request body is given, clears the deprecation status
67316// instead.
67317// For details, see https://cloud.google.com/compute/docs/reference/latest/images/deprecate
67318func (r *ImagesService) Deprecate(project string, image string, deprecationstatus *DeprecationStatus) *ImagesDeprecateCall {
67319	c := &ImagesDeprecateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67320	c.project = project
67321	c.image = image
67322	c.deprecationstatus = deprecationstatus
67323	return c
67324}
67325
67326// RequestId sets the optional parameter "requestId": An optional
67327// request ID to identify requests. Specify a unique request ID so that
67328// if you must retry your request, the server will know to ignore the
67329// request if it has already been completed.
67330//
67331// For example, consider a situation where you make an initial request
67332// and the request times out. If you make the request again with the
67333// same request ID, the server can check if original operation with the
67334// same request ID was received, and if so, will ignore the second
67335// request. This prevents clients from accidentally creating duplicate
67336// commitments.
67337//
67338// The request ID must be a valid UUID with the exception that zero UUID
67339// is not supported (00000000-0000-0000-0000-000000000000).
67340func (c *ImagesDeprecateCall) RequestId(requestId string) *ImagesDeprecateCall {
67341	c.urlParams_.Set("requestId", requestId)
67342	return c
67343}
67344
67345// Fields allows partial responses to be retrieved. See
67346// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67347// for more information.
67348func (c *ImagesDeprecateCall) Fields(s ...googleapi.Field) *ImagesDeprecateCall {
67349	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67350	return c
67351}
67352
67353// Context sets the context to be used in this call's Do method. Any
67354// pending HTTP request will be aborted if the provided context is
67355// canceled.
67356func (c *ImagesDeprecateCall) Context(ctx context.Context) *ImagesDeprecateCall {
67357	c.ctx_ = ctx
67358	return c
67359}
67360
67361// Header returns an http.Header that can be modified by the caller to
67362// add HTTP headers to the request.
67363func (c *ImagesDeprecateCall) Header() http.Header {
67364	if c.header_ == nil {
67365		c.header_ = make(http.Header)
67366	}
67367	return c.header_
67368}
67369
67370func (c *ImagesDeprecateCall) doRequest(alt string) (*http.Response, error) {
67371	reqHeaders := make(http.Header)
67372	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67373	for k, v := range c.header_ {
67374		reqHeaders[k] = v
67375	}
67376	reqHeaders.Set("User-Agent", c.s.userAgent())
67377	var body io.Reader = nil
67378	body, err := googleapi.WithoutDataWrapper.JSONReader(c.deprecationstatus)
67379	if err != nil {
67380		return nil, err
67381	}
67382	reqHeaders.Set("Content-Type", "application/json")
67383	c.urlParams_.Set("alt", alt)
67384	c.urlParams_.Set("prettyPrint", "false")
67385	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}/deprecate")
67386	urls += "?" + c.urlParams_.Encode()
67387	req, err := http.NewRequest("POST", urls, body)
67388	if err != nil {
67389		return nil, err
67390	}
67391	req.Header = reqHeaders
67392	googleapi.Expand(req.URL, map[string]string{
67393		"project": c.project,
67394		"image":   c.image,
67395	})
67396	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67397}
67398
67399// Do executes the "compute.images.deprecate" call.
67400// Exactly one of *Operation or error will be non-nil. Any non-2xx
67401// status code is an error. Response headers are in either
67402// *Operation.ServerResponse.Header or (if a response was returned at
67403// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
67404// to check whether the returned error was because
67405// http.StatusNotModified was returned.
67406func (c *ImagesDeprecateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
67407	gensupport.SetOptions(c.urlParams_, opts...)
67408	res, err := c.doRequest("json")
67409	if res != nil && res.StatusCode == http.StatusNotModified {
67410		if res.Body != nil {
67411			res.Body.Close()
67412		}
67413		return nil, &googleapi.Error{
67414			Code:   res.StatusCode,
67415			Header: res.Header,
67416		}
67417	}
67418	if err != nil {
67419		return nil, err
67420	}
67421	defer googleapi.CloseBody(res)
67422	if err := googleapi.CheckResponse(res); err != nil {
67423		return nil, err
67424	}
67425	ret := &Operation{
67426		ServerResponse: googleapi.ServerResponse{
67427			Header:         res.Header,
67428			HTTPStatusCode: res.StatusCode,
67429		},
67430	}
67431	target := &ret
67432	if err := gensupport.DecodeResponse(target, res); err != nil {
67433		return nil, err
67434	}
67435	return ret, nil
67436	// {
67437	//   "description": "Sets the deprecation status of an image.\n\nIf an empty request body is given, clears the deprecation status instead.",
67438	//   "httpMethod": "POST",
67439	//   "id": "compute.images.deprecate",
67440	//   "parameterOrder": [
67441	//     "project",
67442	//     "image"
67443	//   ],
67444	//   "parameters": {
67445	//     "image": {
67446	//       "description": "Image name.",
67447	//       "location": "path",
67448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67449	//       "required": true,
67450	//       "type": "string"
67451	//     },
67452	//     "project": {
67453	//       "description": "Project ID for this request.",
67454	//       "location": "path",
67455	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67456	//       "required": true,
67457	//       "type": "string"
67458	//     },
67459	//     "requestId": {
67460	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
67461	//       "location": "query",
67462	//       "type": "string"
67463	//     }
67464	//   },
67465	//   "path": "{project}/global/images/{image}/deprecate",
67466	//   "request": {
67467	//     "$ref": "DeprecationStatus"
67468	//   },
67469	//   "response": {
67470	//     "$ref": "Operation"
67471	//   },
67472	//   "scopes": [
67473	//     "https://www.googleapis.com/auth/cloud-platform",
67474	//     "https://www.googleapis.com/auth/compute"
67475	//   ]
67476	// }
67477
67478}
67479
67480// method id "compute.images.get":
67481
67482type ImagesGetCall struct {
67483	s            *Service
67484	project      string
67485	image        string
67486	urlParams_   gensupport.URLParams
67487	ifNoneMatch_ string
67488	ctx_         context.Context
67489	header_      http.Header
67490}
67491
67492// Get: Returns the specified image. Gets a list of available images by
67493// making a list() request.
67494// For details, see https://cloud.google.com/compute/docs/reference/latest/images/get
67495func (r *ImagesService) Get(project string, image string) *ImagesGetCall {
67496	c := &ImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67497	c.project = project
67498	c.image = image
67499	return c
67500}
67501
67502// Fields allows partial responses to be retrieved. See
67503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67504// for more information.
67505func (c *ImagesGetCall) Fields(s ...googleapi.Field) *ImagesGetCall {
67506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67507	return c
67508}
67509
67510// IfNoneMatch sets the optional parameter which makes the operation
67511// fail if the object's ETag matches the given value. This is useful for
67512// getting updates only after the object has changed since the last
67513// request. Use googleapi.IsNotModified to check whether the response
67514// error from Do is the result of In-None-Match.
67515func (c *ImagesGetCall) IfNoneMatch(entityTag string) *ImagesGetCall {
67516	c.ifNoneMatch_ = entityTag
67517	return c
67518}
67519
67520// Context sets the context to be used in this call's Do method. Any
67521// pending HTTP request will be aborted if the provided context is
67522// canceled.
67523func (c *ImagesGetCall) Context(ctx context.Context) *ImagesGetCall {
67524	c.ctx_ = ctx
67525	return c
67526}
67527
67528// Header returns an http.Header that can be modified by the caller to
67529// add HTTP headers to the request.
67530func (c *ImagesGetCall) Header() http.Header {
67531	if c.header_ == nil {
67532		c.header_ = make(http.Header)
67533	}
67534	return c.header_
67535}
67536
67537func (c *ImagesGetCall) doRequest(alt string) (*http.Response, error) {
67538	reqHeaders := make(http.Header)
67539	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67540	for k, v := range c.header_ {
67541		reqHeaders[k] = v
67542	}
67543	reqHeaders.Set("User-Agent", c.s.userAgent())
67544	if c.ifNoneMatch_ != "" {
67545		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67546	}
67547	var body io.Reader = nil
67548	c.urlParams_.Set("alt", alt)
67549	c.urlParams_.Set("prettyPrint", "false")
67550	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{image}")
67551	urls += "?" + c.urlParams_.Encode()
67552	req, err := http.NewRequest("GET", urls, body)
67553	if err != nil {
67554		return nil, err
67555	}
67556	req.Header = reqHeaders
67557	googleapi.Expand(req.URL, map[string]string{
67558		"project": c.project,
67559		"image":   c.image,
67560	})
67561	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67562}
67563
67564// Do executes the "compute.images.get" call.
67565// Exactly one of *Image or error will be non-nil. Any non-2xx status
67566// code is an error. Response headers are in either
67567// *Image.ServerResponse.Header or (if a response was returned at all)
67568// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
67569// check whether the returned error was because http.StatusNotModified
67570// was returned.
67571func (c *ImagesGetCall) Do(opts ...googleapi.CallOption) (*Image, error) {
67572	gensupport.SetOptions(c.urlParams_, opts...)
67573	res, err := c.doRequest("json")
67574	if res != nil && res.StatusCode == http.StatusNotModified {
67575		if res.Body != nil {
67576			res.Body.Close()
67577		}
67578		return nil, &googleapi.Error{
67579			Code:   res.StatusCode,
67580			Header: res.Header,
67581		}
67582	}
67583	if err != nil {
67584		return nil, err
67585	}
67586	defer googleapi.CloseBody(res)
67587	if err := googleapi.CheckResponse(res); err != nil {
67588		return nil, err
67589	}
67590	ret := &Image{
67591		ServerResponse: googleapi.ServerResponse{
67592			Header:         res.Header,
67593			HTTPStatusCode: res.StatusCode,
67594		},
67595	}
67596	target := &ret
67597	if err := gensupport.DecodeResponse(target, res); err != nil {
67598		return nil, err
67599	}
67600	return ret, nil
67601	// {
67602	//   "description": "Returns the specified image. Gets a list of available images by making a list() request.",
67603	//   "httpMethod": "GET",
67604	//   "id": "compute.images.get",
67605	//   "parameterOrder": [
67606	//     "project",
67607	//     "image"
67608	//   ],
67609	//   "parameters": {
67610	//     "image": {
67611	//       "description": "Name of the image resource to return.",
67612	//       "location": "path",
67613	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67614	//       "required": true,
67615	//       "type": "string"
67616	//     },
67617	//     "project": {
67618	//       "description": "Project ID for this request.",
67619	//       "location": "path",
67620	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67621	//       "required": true,
67622	//       "type": "string"
67623	//     }
67624	//   },
67625	//   "path": "{project}/global/images/{image}",
67626	//   "response": {
67627	//     "$ref": "Image"
67628	//   },
67629	//   "scopes": [
67630	//     "https://www.googleapis.com/auth/cloud-platform",
67631	//     "https://www.googleapis.com/auth/compute",
67632	//     "https://www.googleapis.com/auth/compute.readonly"
67633	//   ]
67634	// }
67635
67636}
67637
67638// method id "compute.images.getFromFamily":
67639
67640type ImagesGetFromFamilyCall struct {
67641	s            *Service
67642	project      string
67643	family       string
67644	urlParams_   gensupport.URLParams
67645	ifNoneMatch_ string
67646	ctx_         context.Context
67647	header_      http.Header
67648}
67649
67650// GetFromFamily: Returns the latest image that is part of an image
67651// family and is not deprecated.
67652func (r *ImagesService) GetFromFamily(project string, family string) *ImagesGetFromFamilyCall {
67653	c := &ImagesGetFromFamilyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67654	c.project = project
67655	c.family = family
67656	return c
67657}
67658
67659// Fields allows partial responses to be retrieved. See
67660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67661// for more information.
67662func (c *ImagesGetFromFamilyCall) Fields(s ...googleapi.Field) *ImagesGetFromFamilyCall {
67663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67664	return c
67665}
67666
67667// IfNoneMatch sets the optional parameter which makes the operation
67668// fail if the object's ETag matches the given value. This is useful for
67669// getting updates only after the object has changed since the last
67670// request. Use googleapi.IsNotModified to check whether the response
67671// error from Do is the result of In-None-Match.
67672func (c *ImagesGetFromFamilyCall) IfNoneMatch(entityTag string) *ImagesGetFromFamilyCall {
67673	c.ifNoneMatch_ = entityTag
67674	return c
67675}
67676
67677// Context sets the context to be used in this call's Do method. Any
67678// pending HTTP request will be aborted if the provided context is
67679// canceled.
67680func (c *ImagesGetFromFamilyCall) Context(ctx context.Context) *ImagesGetFromFamilyCall {
67681	c.ctx_ = ctx
67682	return c
67683}
67684
67685// Header returns an http.Header that can be modified by the caller to
67686// add HTTP headers to the request.
67687func (c *ImagesGetFromFamilyCall) Header() http.Header {
67688	if c.header_ == nil {
67689		c.header_ = make(http.Header)
67690	}
67691	return c.header_
67692}
67693
67694func (c *ImagesGetFromFamilyCall) doRequest(alt string) (*http.Response, error) {
67695	reqHeaders := make(http.Header)
67696	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67697	for k, v := range c.header_ {
67698		reqHeaders[k] = v
67699	}
67700	reqHeaders.Set("User-Agent", c.s.userAgent())
67701	if c.ifNoneMatch_ != "" {
67702		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67703	}
67704	var body io.Reader = nil
67705	c.urlParams_.Set("alt", alt)
67706	c.urlParams_.Set("prettyPrint", "false")
67707	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/family/{family}")
67708	urls += "?" + c.urlParams_.Encode()
67709	req, err := http.NewRequest("GET", urls, body)
67710	if err != nil {
67711		return nil, err
67712	}
67713	req.Header = reqHeaders
67714	googleapi.Expand(req.URL, map[string]string{
67715		"project": c.project,
67716		"family":  c.family,
67717	})
67718	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67719}
67720
67721// Do executes the "compute.images.getFromFamily" call.
67722// Exactly one of *Image or error will be non-nil. Any non-2xx status
67723// code is an error. Response headers are in either
67724// *Image.ServerResponse.Header or (if a response was returned at all)
67725// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
67726// check whether the returned error was because http.StatusNotModified
67727// was returned.
67728func (c *ImagesGetFromFamilyCall) Do(opts ...googleapi.CallOption) (*Image, error) {
67729	gensupport.SetOptions(c.urlParams_, opts...)
67730	res, err := c.doRequest("json")
67731	if res != nil && res.StatusCode == http.StatusNotModified {
67732		if res.Body != nil {
67733			res.Body.Close()
67734		}
67735		return nil, &googleapi.Error{
67736			Code:   res.StatusCode,
67737			Header: res.Header,
67738		}
67739	}
67740	if err != nil {
67741		return nil, err
67742	}
67743	defer googleapi.CloseBody(res)
67744	if err := googleapi.CheckResponse(res); err != nil {
67745		return nil, err
67746	}
67747	ret := &Image{
67748		ServerResponse: googleapi.ServerResponse{
67749			Header:         res.Header,
67750			HTTPStatusCode: res.StatusCode,
67751		},
67752	}
67753	target := &ret
67754	if err := gensupport.DecodeResponse(target, res); err != nil {
67755		return nil, err
67756	}
67757	return ret, nil
67758	// {
67759	//   "description": "Returns the latest image that is part of an image family and is not deprecated.",
67760	//   "httpMethod": "GET",
67761	//   "id": "compute.images.getFromFamily",
67762	//   "parameterOrder": [
67763	//     "project",
67764	//     "family"
67765	//   ],
67766	//   "parameters": {
67767	//     "family": {
67768	//       "description": "Name of the image family to search for.",
67769	//       "location": "path",
67770	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67771	//       "required": true,
67772	//       "type": "string"
67773	//     },
67774	//     "project": {
67775	//       "description": "Project ID for this request.",
67776	//       "location": "path",
67777	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67778	//       "required": true,
67779	//       "type": "string"
67780	//     }
67781	//   },
67782	//   "path": "{project}/global/images/family/{family}",
67783	//   "response": {
67784	//     "$ref": "Image"
67785	//   },
67786	//   "scopes": [
67787	//     "https://www.googleapis.com/auth/cloud-platform",
67788	//     "https://www.googleapis.com/auth/compute",
67789	//     "https://www.googleapis.com/auth/compute.readonly"
67790	//   ]
67791	// }
67792
67793}
67794
67795// method id "compute.images.getIamPolicy":
67796
67797type ImagesGetIamPolicyCall struct {
67798	s            *Service
67799	project      string
67800	resource     string
67801	urlParams_   gensupport.URLParams
67802	ifNoneMatch_ string
67803	ctx_         context.Context
67804	header_      http.Header
67805}
67806
67807// GetIamPolicy: Gets the access control policy for a resource. May be
67808// empty if no such policy or resource exists.
67809func (r *ImagesService) GetIamPolicy(project string, resource string) *ImagesGetIamPolicyCall {
67810	c := &ImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67811	c.project = project
67812	c.resource = resource
67813	return c
67814}
67815
67816// OptionsRequestedPolicyVersion sets the optional parameter
67817// "optionsRequestedPolicyVersion": Requested IAM Policy version.
67818func (c *ImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ImagesGetIamPolicyCall {
67819	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
67820	return c
67821}
67822
67823// Fields allows partial responses to be retrieved. See
67824// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
67825// for more information.
67826func (c *ImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesGetIamPolicyCall {
67827	c.urlParams_.Set("fields", googleapi.CombineFields(s))
67828	return c
67829}
67830
67831// IfNoneMatch sets the optional parameter which makes the operation
67832// fail if the object's ETag matches the given value. This is useful for
67833// getting updates only after the object has changed since the last
67834// request. Use googleapi.IsNotModified to check whether the response
67835// error from Do is the result of In-None-Match.
67836func (c *ImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *ImagesGetIamPolicyCall {
67837	c.ifNoneMatch_ = entityTag
67838	return c
67839}
67840
67841// Context sets the context to be used in this call's Do method. Any
67842// pending HTTP request will be aborted if the provided context is
67843// canceled.
67844func (c *ImagesGetIamPolicyCall) Context(ctx context.Context) *ImagesGetIamPolicyCall {
67845	c.ctx_ = ctx
67846	return c
67847}
67848
67849// Header returns an http.Header that can be modified by the caller to
67850// add HTTP headers to the request.
67851func (c *ImagesGetIamPolicyCall) Header() http.Header {
67852	if c.header_ == nil {
67853		c.header_ = make(http.Header)
67854	}
67855	return c.header_
67856}
67857
67858func (c *ImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
67859	reqHeaders := make(http.Header)
67860	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
67861	for k, v := range c.header_ {
67862		reqHeaders[k] = v
67863	}
67864	reqHeaders.Set("User-Agent", c.s.userAgent())
67865	if c.ifNoneMatch_ != "" {
67866		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
67867	}
67868	var body io.Reader = nil
67869	c.urlParams_.Set("alt", alt)
67870	c.urlParams_.Set("prettyPrint", "false")
67871	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/getIamPolicy")
67872	urls += "?" + c.urlParams_.Encode()
67873	req, err := http.NewRequest("GET", urls, body)
67874	if err != nil {
67875		return nil, err
67876	}
67877	req.Header = reqHeaders
67878	googleapi.Expand(req.URL, map[string]string{
67879		"project":  c.project,
67880		"resource": c.resource,
67881	})
67882	return gensupport.SendRequest(c.ctx_, c.s.client, req)
67883}
67884
67885// Do executes the "compute.images.getIamPolicy" call.
67886// Exactly one of *Policy or error will be non-nil. Any non-2xx status
67887// code is an error. Response headers are in either
67888// *Policy.ServerResponse.Header or (if a response was returned at all)
67889// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
67890// check whether the returned error was because http.StatusNotModified
67891// was returned.
67892func (c *ImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
67893	gensupport.SetOptions(c.urlParams_, opts...)
67894	res, err := c.doRequest("json")
67895	if res != nil && res.StatusCode == http.StatusNotModified {
67896		if res.Body != nil {
67897			res.Body.Close()
67898		}
67899		return nil, &googleapi.Error{
67900			Code:   res.StatusCode,
67901			Header: res.Header,
67902		}
67903	}
67904	if err != nil {
67905		return nil, err
67906	}
67907	defer googleapi.CloseBody(res)
67908	if err := googleapi.CheckResponse(res); err != nil {
67909		return nil, err
67910	}
67911	ret := &Policy{
67912		ServerResponse: googleapi.ServerResponse{
67913			Header:         res.Header,
67914			HTTPStatusCode: res.StatusCode,
67915		},
67916	}
67917	target := &ret
67918	if err := gensupport.DecodeResponse(target, res); err != nil {
67919		return nil, err
67920	}
67921	return ret, nil
67922	// {
67923	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
67924	//   "httpMethod": "GET",
67925	//   "id": "compute.images.getIamPolicy",
67926	//   "parameterOrder": [
67927	//     "project",
67928	//     "resource"
67929	//   ],
67930	//   "parameters": {
67931	//     "optionsRequestedPolicyVersion": {
67932	//       "description": "Requested IAM Policy version.",
67933	//       "format": "int32",
67934	//       "location": "query",
67935	//       "type": "integer"
67936	//     },
67937	//     "project": {
67938	//       "description": "Project ID for this request.",
67939	//       "location": "path",
67940	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
67941	//       "required": true,
67942	//       "type": "string"
67943	//     },
67944	//     "resource": {
67945	//       "description": "Name or id of the resource for this request.",
67946	//       "location": "path",
67947	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
67948	//       "required": true,
67949	//       "type": "string"
67950	//     }
67951	//   },
67952	//   "path": "{project}/global/images/{resource}/getIamPolicy",
67953	//   "response": {
67954	//     "$ref": "Policy"
67955	//   },
67956	//   "scopes": [
67957	//     "https://www.googleapis.com/auth/cloud-platform",
67958	//     "https://www.googleapis.com/auth/compute",
67959	//     "https://www.googleapis.com/auth/compute.readonly"
67960	//   ]
67961	// }
67962
67963}
67964
67965// method id "compute.images.insert":
67966
67967type ImagesInsertCall struct {
67968	s          *Service
67969	project    string
67970	image      *Image
67971	urlParams_ gensupport.URLParams
67972	ctx_       context.Context
67973	header_    http.Header
67974}
67975
67976// Insert: Creates an image in the specified project using the data
67977// included in the request.
67978// For details, see https://cloud.google.com/compute/docs/reference/latest/images/insert
67979func (r *ImagesService) Insert(project string, image *Image) *ImagesInsertCall {
67980	c := &ImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
67981	c.project = project
67982	c.image = image
67983	return c
67984}
67985
67986// ForceCreate sets the optional parameter "forceCreate": Force image
67987// creation if true.
67988func (c *ImagesInsertCall) ForceCreate(forceCreate bool) *ImagesInsertCall {
67989	c.urlParams_.Set("forceCreate", fmt.Sprint(forceCreate))
67990	return c
67991}
67992
67993// RequestId sets the optional parameter "requestId": An optional
67994// request ID to identify requests. Specify a unique request ID so that
67995// if you must retry your request, the server will know to ignore the
67996// request if it has already been completed.
67997//
67998// For example, consider a situation where you make an initial request
67999// and the request times out. If you make the request again with the
68000// same request ID, the server can check if original operation with the
68001// same request ID was received, and if so, will ignore the second
68002// request. This prevents clients from accidentally creating duplicate
68003// commitments.
68004//
68005// The request ID must be a valid UUID with the exception that zero UUID
68006// is not supported (00000000-0000-0000-0000-000000000000).
68007func (c *ImagesInsertCall) RequestId(requestId string) *ImagesInsertCall {
68008	c.urlParams_.Set("requestId", requestId)
68009	return c
68010}
68011
68012// Fields allows partial responses to be retrieved. See
68013// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68014// for more information.
68015func (c *ImagesInsertCall) Fields(s ...googleapi.Field) *ImagesInsertCall {
68016	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68017	return c
68018}
68019
68020// Context sets the context to be used in this call's Do method. Any
68021// pending HTTP request will be aborted if the provided context is
68022// canceled.
68023func (c *ImagesInsertCall) Context(ctx context.Context) *ImagesInsertCall {
68024	c.ctx_ = ctx
68025	return c
68026}
68027
68028// Header returns an http.Header that can be modified by the caller to
68029// add HTTP headers to the request.
68030func (c *ImagesInsertCall) Header() http.Header {
68031	if c.header_ == nil {
68032		c.header_ = make(http.Header)
68033	}
68034	return c.header_
68035}
68036
68037func (c *ImagesInsertCall) doRequest(alt string) (*http.Response, error) {
68038	reqHeaders := make(http.Header)
68039	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68040	for k, v := range c.header_ {
68041		reqHeaders[k] = v
68042	}
68043	reqHeaders.Set("User-Agent", c.s.userAgent())
68044	var body io.Reader = nil
68045	body, err := googleapi.WithoutDataWrapper.JSONReader(c.image)
68046	if err != nil {
68047		return nil, err
68048	}
68049	reqHeaders.Set("Content-Type", "application/json")
68050	c.urlParams_.Set("alt", alt)
68051	c.urlParams_.Set("prettyPrint", "false")
68052	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
68053	urls += "?" + c.urlParams_.Encode()
68054	req, err := http.NewRequest("POST", urls, body)
68055	if err != nil {
68056		return nil, err
68057	}
68058	req.Header = reqHeaders
68059	googleapi.Expand(req.URL, map[string]string{
68060		"project": c.project,
68061	})
68062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68063}
68064
68065// Do executes the "compute.images.insert" call.
68066// Exactly one of *Operation or error will be non-nil. Any non-2xx
68067// status code is an error. Response headers are in either
68068// *Operation.ServerResponse.Header or (if a response was returned at
68069// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68070// to check whether the returned error was because
68071// http.StatusNotModified was returned.
68072func (c *ImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68073	gensupport.SetOptions(c.urlParams_, opts...)
68074	res, err := c.doRequest("json")
68075	if res != nil && res.StatusCode == http.StatusNotModified {
68076		if res.Body != nil {
68077			res.Body.Close()
68078		}
68079		return nil, &googleapi.Error{
68080			Code:   res.StatusCode,
68081			Header: res.Header,
68082		}
68083	}
68084	if err != nil {
68085		return nil, err
68086	}
68087	defer googleapi.CloseBody(res)
68088	if err := googleapi.CheckResponse(res); err != nil {
68089		return nil, err
68090	}
68091	ret := &Operation{
68092		ServerResponse: googleapi.ServerResponse{
68093			Header:         res.Header,
68094			HTTPStatusCode: res.StatusCode,
68095		},
68096	}
68097	target := &ret
68098	if err := gensupport.DecodeResponse(target, res); err != nil {
68099		return nil, err
68100	}
68101	return ret, nil
68102	// {
68103	//   "description": "Creates an image in the specified project using the data included in the request.",
68104	//   "httpMethod": "POST",
68105	//   "id": "compute.images.insert",
68106	//   "parameterOrder": [
68107	//     "project"
68108	//   ],
68109	//   "parameters": {
68110	//     "forceCreate": {
68111	//       "description": "Force image creation if true.",
68112	//       "location": "query",
68113	//       "type": "boolean"
68114	//     },
68115	//     "project": {
68116	//       "description": "Project ID for this request.",
68117	//       "location": "path",
68118	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68119	//       "required": true,
68120	//       "type": "string"
68121	//     },
68122	//     "requestId": {
68123	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
68124	//       "location": "query",
68125	//       "type": "string"
68126	//     }
68127	//   },
68128	//   "path": "{project}/global/images",
68129	//   "request": {
68130	//     "$ref": "Image"
68131	//   },
68132	//   "response": {
68133	//     "$ref": "Operation"
68134	//   },
68135	//   "scopes": [
68136	//     "https://www.googleapis.com/auth/cloud-platform",
68137	//     "https://www.googleapis.com/auth/compute",
68138	//     "https://www.googleapis.com/auth/devstorage.full_control",
68139	//     "https://www.googleapis.com/auth/devstorage.read_only",
68140	//     "https://www.googleapis.com/auth/devstorage.read_write"
68141	//   ]
68142	// }
68143
68144}
68145
68146// method id "compute.images.list":
68147
68148type ImagesListCall struct {
68149	s            *Service
68150	project      string
68151	urlParams_   gensupport.URLParams
68152	ifNoneMatch_ string
68153	ctx_         context.Context
68154	header_      http.Header
68155}
68156
68157// List: Retrieves the list of custom images available to the specified
68158// project. Custom images are images you create that belong to your
68159// project. This method does not get any images that belong to other
68160// projects, including publicly-available images, like Debian 8. If you
68161// want to get a list of publicly-available images, use this method to
68162// make a request to the respective image project, such as debian-cloud
68163// or windows-cloud.
68164// For details, see https://cloud.google.com/compute/docs/reference/latest/images/list
68165func (r *ImagesService) List(project string) *ImagesListCall {
68166	c := &ImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68167	c.project = project
68168	return c
68169}
68170
68171// Filter sets the optional parameter "filter": A filter expression that
68172// filters resources listed in the response. The expression must specify
68173// the field name, a comparison operator, and the value that you want to
68174// use for filtering. The value must be a string, a number, or a
68175// boolean. The comparison operator must be either =, !=, >, or <.
68176//
68177// For example, if you are filtering Compute Engine instances, you can
68178// exclude instances named example-instance by specifying name !=
68179// example-instance.
68180//
68181// You can also filter nested fields. For example, you could specify
68182// scheduling.automaticRestart = false to include instances only if they
68183// are not scheduled for automatic restarts. You can use filtering on
68184// nested fields to filter based on resource labels.
68185//
68186// To filter on multiple expressions, provide each separate expression
68187// within parentheses. For example, (scheduling.automaticRestart = true)
68188// (cpuPlatform = "Intel Skylake"). By default, each expression is an
68189// AND expression. However, you can include AND and OR expressions
68190// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
68191// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
68192// true).
68193func (c *ImagesListCall) Filter(filter string) *ImagesListCall {
68194	c.urlParams_.Set("filter", filter)
68195	return c
68196}
68197
68198// MaxResults sets the optional parameter "maxResults": The maximum
68199// number of results per page that should be returned. If the number of
68200// available results is larger than maxResults, Compute Engine returns a
68201// nextPageToken that can be used to get the next page of results in
68202// subsequent list requests. Acceptable values are 0 to 500, inclusive.
68203// (Default: 500)
68204func (c *ImagesListCall) MaxResults(maxResults int64) *ImagesListCall {
68205	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
68206	return c
68207}
68208
68209// OrderBy sets the optional parameter "orderBy": Sorts list results by
68210// a certain order. By default, results are returned in alphanumerical
68211// order based on the resource name.
68212//
68213// You can also sort results in descending order based on the creation
68214// timestamp using orderBy="creationTimestamp desc". This sorts results
68215// based on the creationTimestamp field in reverse chronological order
68216// (newest result first). Use this to sort resources like operations so
68217// that the newest operation is returned first.
68218//
68219// Currently, only sorting by name or creationTimestamp desc is
68220// supported.
68221func (c *ImagesListCall) OrderBy(orderBy string) *ImagesListCall {
68222	c.urlParams_.Set("orderBy", orderBy)
68223	return c
68224}
68225
68226// PageToken sets the optional parameter "pageToken": Specifies a page
68227// token to use. Set pageToken to the nextPageToken returned by a
68228// previous list request to get the next page of results.
68229func (c *ImagesListCall) PageToken(pageToken string) *ImagesListCall {
68230	c.urlParams_.Set("pageToken", pageToken)
68231	return c
68232}
68233
68234// Fields allows partial responses to be retrieved. See
68235// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68236// for more information.
68237func (c *ImagesListCall) Fields(s ...googleapi.Field) *ImagesListCall {
68238	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68239	return c
68240}
68241
68242// IfNoneMatch sets the optional parameter which makes the operation
68243// fail if the object's ETag matches the given value. This is useful for
68244// getting updates only after the object has changed since the last
68245// request. Use googleapi.IsNotModified to check whether the response
68246// error from Do is the result of In-None-Match.
68247func (c *ImagesListCall) IfNoneMatch(entityTag string) *ImagesListCall {
68248	c.ifNoneMatch_ = entityTag
68249	return c
68250}
68251
68252// Context sets the context to be used in this call's Do method. Any
68253// pending HTTP request will be aborted if the provided context is
68254// canceled.
68255func (c *ImagesListCall) Context(ctx context.Context) *ImagesListCall {
68256	c.ctx_ = ctx
68257	return c
68258}
68259
68260// Header returns an http.Header that can be modified by the caller to
68261// add HTTP headers to the request.
68262func (c *ImagesListCall) Header() http.Header {
68263	if c.header_ == nil {
68264		c.header_ = make(http.Header)
68265	}
68266	return c.header_
68267}
68268
68269func (c *ImagesListCall) doRequest(alt string) (*http.Response, error) {
68270	reqHeaders := make(http.Header)
68271	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68272	for k, v := range c.header_ {
68273		reqHeaders[k] = v
68274	}
68275	reqHeaders.Set("User-Agent", c.s.userAgent())
68276	if c.ifNoneMatch_ != "" {
68277		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
68278	}
68279	var body io.Reader = nil
68280	c.urlParams_.Set("alt", alt)
68281	c.urlParams_.Set("prettyPrint", "false")
68282	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images")
68283	urls += "?" + c.urlParams_.Encode()
68284	req, err := http.NewRequest("GET", urls, body)
68285	if err != nil {
68286		return nil, err
68287	}
68288	req.Header = reqHeaders
68289	googleapi.Expand(req.URL, map[string]string{
68290		"project": c.project,
68291	})
68292	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68293}
68294
68295// Do executes the "compute.images.list" call.
68296// Exactly one of *ImageList or error will be non-nil. Any non-2xx
68297// status code is an error. Response headers are in either
68298// *ImageList.ServerResponse.Header or (if a response was returned at
68299// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68300// to check whether the returned error was because
68301// http.StatusNotModified was returned.
68302func (c *ImagesListCall) Do(opts ...googleapi.CallOption) (*ImageList, error) {
68303	gensupport.SetOptions(c.urlParams_, opts...)
68304	res, err := c.doRequest("json")
68305	if res != nil && res.StatusCode == http.StatusNotModified {
68306		if res.Body != nil {
68307			res.Body.Close()
68308		}
68309		return nil, &googleapi.Error{
68310			Code:   res.StatusCode,
68311			Header: res.Header,
68312		}
68313	}
68314	if err != nil {
68315		return nil, err
68316	}
68317	defer googleapi.CloseBody(res)
68318	if err := googleapi.CheckResponse(res); err != nil {
68319		return nil, err
68320	}
68321	ret := &ImageList{
68322		ServerResponse: googleapi.ServerResponse{
68323			Header:         res.Header,
68324			HTTPStatusCode: res.StatusCode,
68325		},
68326	}
68327	target := &ret
68328	if err := gensupport.DecodeResponse(target, res); err != nil {
68329		return nil, err
68330	}
68331	return ret, nil
68332	// {
68333	//   "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.",
68334	//   "httpMethod": "GET",
68335	//   "id": "compute.images.list",
68336	//   "parameterOrder": [
68337	//     "project"
68338	//   ],
68339	//   "parameters": {
68340	//     "filter": {
68341	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
68342	//       "location": "query",
68343	//       "type": "string"
68344	//     },
68345	//     "maxResults": {
68346	//       "default": "500",
68347	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
68348	//       "format": "uint32",
68349	//       "location": "query",
68350	//       "minimum": "0",
68351	//       "type": "integer"
68352	//     },
68353	//     "orderBy": {
68354	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
68355	//       "location": "query",
68356	//       "type": "string"
68357	//     },
68358	//     "pageToken": {
68359	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
68360	//       "location": "query",
68361	//       "type": "string"
68362	//     },
68363	//     "project": {
68364	//       "description": "Project ID for this request.",
68365	//       "location": "path",
68366	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68367	//       "required": true,
68368	//       "type": "string"
68369	//     }
68370	//   },
68371	//   "path": "{project}/global/images",
68372	//   "response": {
68373	//     "$ref": "ImageList"
68374	//   },
68375	//   "scopes": [
68376	//     "https://www.googleapis.com/auth/cloud-platform",
68377	//     "https://www.googleapis.com/auth/compute",
68378	//     "https://www.googleapis.com/auth/compute.readonly"
68379	//   ]
68380	// }
68381
68382}
68383
68384// Pages invokes f for each page of results.
68385// A non-nil error returned from f will halt the iteration.
68386// The provided context supersedes any context provided to the Context method.
68387func (c *ImagesListCall) Pages(ctx context.Context, f func(*ImageList) error) error {
68388	c.ctx_ = ctx
68389	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
68390	for {
68391		x, err := c.Do()
68392		if err != nil {
68393			return err
68394		}
68395		if err := f(x); err != nil {
68396			return err
68397		}
68398		if x.NextPageToken == "" {
68399			return nil
68400		}
68401		c.PageToken(x.NextPageToken)
68402	}
68403}
68404
68405// method id "compute.images.setIamPolicy":
68406
68407type ImagesSetIamPolicyCall struct {
68408	s                      *Service
68409	project                string
68410	resource               string
68411	globalsetpolicyrequest *GlobalSetPolicyRequest
68412	urlParams_             gensupport.URLParams
68413	ctx_                   context.Context
68414	header_                http.Header
68415}
68416
68417// SetIamPolicy: Sets the access control policy on the specified
68418// resource. Replaces any existing policy.
68419func (r *ImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *ImagesSetIamPolicyCall {
68420	c := &ImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68421	c.project = project
68422	c.resource = resource
68423	c.globalsetpolicyrequest = globalsetpolicyrequest
68424	return c
68425}
68426
68427// Fields allows partial responses to be retrieved. See
68428// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68429// for more information.
68430func (c *ImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *ImagesSetIamPolicyCall {
68431	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68432	return c
68433}
68434
68435// Context sets the context to be used in this call's Do method. Any
68436// pending HTTP request will be aborted if the provided context is
68437// canceled.
68438func (c *ImagesSetIamPolicyCall) Context(ctx context.Context) *ImagesSetIamPolicyCall {
68439	c.ctx_ = ctx
68440	return c
68441}
68442
68443// Header returns an http.Header that can be modified by the caller to
68444// add HTTP headers to the request.
68445func (c *ImagesSetIamPolicyCall) Header() http.Header {
68446	if c.header_ == nil {
68447		c.header_ = make(http.Header)
68448	}
68449	return c.header_
68450}
68451
68452func (c *ImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
68453	reqHeaders := make(http.Header)
68454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68455	for k, v := range c.header_ {
68456		reqHeaders[k] = v
68457	}
68458	reqHeaders.Set("User-Agent", c.s.userAgent())
68459	var body io.Reader = nil
68460	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
68461	if err != nil {
68462		return nil, err
68463	}
68464	reqHeaders.Set("Content-Type", "application/json")
68465	c.urlParams_.Set("alt", alt)
68466	c.urlParams_.Set("prettyPrint", "false")
68467	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setIamPolicy")
68468	urls += "?" + c.urlParams_.Encode()
68469	req, err := http.NewRequest("POST", urls, body)
68470	if err != nil {
68471		return nil, err
68472	}
68473	req.Header = reqHeaders
68474	googleapi.Expand(req.URL, map[string]string{
68475		"project":  c.project,
68476		"resource": c.resource,
68477	})
68478	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68479}
68480
68481// Do executes the "compute.images.setIamPolicy" call.
68482// Exactly one of *Policy or error will be non-nil. Any non-2xx status
68483// code is an error. Response headers are in either
68484// *Policy.ServerResponse.Header or (if a response was returned at all)
68485// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
68486// check whether the returned error was because http.StatusNotModified
68487// was returned.
68488func (c *ImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
68489	gensupport.SetOptions(c.urlParams_, opts...)
68490	res, err := c.doRequest("json")
68491	if res != nil && res.StatusCode == http.StatusNotModified {
68492		if res.Body != nil {
68493			res.Body.Close()
68494		}
68495		return nil, &googleapi.Error{
68496			Code:   res.StatusCode,
68497			Header: res.Header,
68498		}
68499	}
68500	if err != nil {
68501		return nil, err
68502	}
68503	defer googleapi.CloseBody(res)
68504	if err := googleapi.CheckResponse(res); err != nil {
68505		return nil, err
68506	}
68507	ret := &Policy{
68508		ServerResponse: googleapi.ServerResponse{
68509			Header:         res.Header,
68510			HTTPStatusCode: res.StatusCode,
68511		},
68512	}
68513	target := &ret
68514	if err := gensupport.DecodeResponse(target, res); err != nil {
68515		return nil, err
68516	}
68517	return ret, nil
68518	// {
68519	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
68520	//   "httpMethod": "POST",
68521	//   "id": "compute.images.setIamPolicy",
68522	//   "parameterOrder": [
68523	//     "project",
68524	//     "resource"
68525	//   ],
68526	//   "parameters": {
68527	//     "project": {
68528	//       "description": "Project ID for this request.",
68529	//       "location": "path",
68530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68531	//       "required": true,
68532	//       "type": "string"
68533	//     },
68534	//     "resource": {
68535	//       "description": "Name or id of the resource for this request.",
68536	//       "location": "path",
68537	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68538	//       "required": true,
68539	//       "type": "string"
68540	//     }
68541	//   },
68542	//   "path": "{project}/global/images/{resource}/setIamPolicy",
68543	//   "request": {
68544	//     "$ref": "GlobalSetPolicyRequest"
68545	//   },
68546	//   "response": {
68547	//     "$ref": "Policy"
68548	//   },
68549	//   "scopes": [
68550	//     "https://www.googleapis.com/auth/cloud-platform",
68551	//     "https://www.googleapis.com/auth/compute"
68552	//   ]
68553	// }
68554
68555}
68556
68557// method id "compute.images.setLabels":
68558
68559type ImagesSetLabelsCall struct {
68560	s                      *Service
68561	project                string
68562	resource               string
68563	globalsetlabelsrequest *GlobalSetLabelsRequest
68564	urlParams_             gensupport.URLParams
68565	ctx_                   context.Context
68566	header_                http.Header
68567}
68568
68569// SetLabels: Sets the labels on an image. To learn more about labels,
68570// read the Labeling Resources documentation.
68571func (r *ImagesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *ImagesSetLabelsCall {
68572	c := &ImagesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68573	c.project = project
68574	c.resource = resource
68575	c.globalsetlabelsrequest = globalsetlabelsrequest
68576	return c
68577}
68578
68579// Fields allows partial responses to be retrieved. See
68580// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68581// for more information.
68582func (c *ImagesSetLabelsCall) Fields(s ...googleapi.Field) *ImagesSetLabelsCall {
68583	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68584	return c
68585}
68586
68587// Context sets the context to be used in this call's Do method. Any
68588// pending HTTP request will be aborted if the provided context is
68589// canceled.
68590func (c *ImagesSetLabelsCall) Context(ctx context.Context) *ImagesSetLabelsCall {
68591	c.ctx_ = ctx
68592	return c
68593}
68594
68595// Header returns an http.Header that can be modified by the caller to
68596// add HTTP headers to the request.
68597func (c *ImagesSetLabelsCall) Header() http.Header {
68598	if c.header_ == nil {
68599		c.header_ = make(http.Header)
68600	}
68601	return c.header_
68602}
68603
68604func (c *ImagesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
68605	reqHeaders := make(http.Header)
68606	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68607	for k, v := range c.header_ {
68608		reqHeaders[k] = v
68609	}
68610	reqHeaders.Set("User-Agent", c.s.userAgent())
68611	var body io.Reader = nil
68612	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
68613	if err != nil {
68614		return nil, err
68615	}
68616	reqHeaders.Set("Content-Type", "application/json")
68617	c.urlParams_.Set("alt", alt)
68618	c.urlParams_.Set("prettyPrint", "false")
68619	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/setLabels")
68620	urls += "?" + c.urlParams_.Encode()
68621	req, err := http.NewRequest("POST", urls, body)
68622	if err != nil {
68623		return nil, err
68624	}
68625	req.Header = reqHeaders
68626	googleapi.Expand(req.URL, map[string]string{
68627		"project":  c.project,
68628		"resource": c.resource,
68629	})
68630	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68631}
68632
68633// Do executes the "compute.images.setLabels" call.
68634// Exactly one of *Operation or error will be non-nil. Any non-2xx
68635// status code is an error. Response headers are in either
68636// *Operation.ServerResponse.Header or (if a response was returned at
68637// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68638// to check whether the returned error was because
68639// http.StatusNotModified was returned.
68640func (c *ImagesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68641	gensupport.SetOptions(c.urlParams_, opts...)
68642	res, err := c.doRequest("json")
68643	if res != nil && res.StatusCode == http.StatusNotModified {
68644		if res.Body != nil {
68645			res.Body.Close()
68646		}
68647		return nil, &googleapi.Error{
68648			Code:   res.StatusCode,
68649			Header: res.Header,
68650		}
68651	}
68652	if err != nil {
68653		return nil, err
68654	}
68655	defer googleapi.CloseBody(res)
68656	if err := googleapi.CheckResponse(res); err != nil {
68657		return nil, err
68658	}
68659	ret := &Operation{
68660		ServerResponse: googleapi.ServerResponse{
68661			Header:         res.Header,
68662			HTTPStatusCode: res.StatusCode,
68663		},
68664	}
68665	target := &ret
68666	if err := gensupport.DecodeResponse(target, res); err != nil {
68667		return nil, err
68668	}
68669	return ret, nil
68670	// {
68671	//   "description": "Sets the labels on an image. To learn more about labels, read the Labeling Resources documentation.",
68672	//   "httpMethod": "POST",
68673	//   "id": "compute.images.setLabels",
68674	//   "parameterOrder": [
68675	//     "project",
68676	//     "resource"
68677	//   ],
68678	//   "parameters": {
68679	//     "project": {
68680	//       "description": "Project ID for this request.",
68681	//       "location": "path",
68682	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68683	//       "required": true,
68684	//       "type": "string"
68685	//     },
68686	//     "resource": {
68687	//       "description": "Name or id of the resource for this request.",
68688	//       "location": "path",
68689	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68690	//       "required": true,
68691	//       "type": "string"
68692	//     }
68693	//   },
68694	//   "path": "{project}/global/images/{resource}/setLabels",
68695	//   "request": {
68696	//     "$ref": "GlobalSetLabelsRequest"
68697	//   },
68698	//   "response": {
68699	//     "$ref": "Operation"
68700	//   },
68701	//   "scopes": [
68702	//     "https://www.googleapis.com/auth/cloud-platform",
68703	//     "https://www.googleapis.com/auth/compute"
68704	//   ]
68705	// }
68706
68707}
68708
68709// method id "compute.images.testIamPermissions":
68710
68711type ImagesTestIamPermissionsCall struct {
68712	s                      *Service
68713	project                string
68714	resource               string
68715	testpermissionsrequest *TestPermissionsRequest
68716	urlParams_             gensupport.URLParams
68717	ctx_                   context.Context
68718	header_                http.Header
68719}
68720
68721// TestIamPermissions: Returns permissions that a caller has on the
68722// specified resource.
68723func (r *ImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *ImagesTestIamPermissionsCall {
68724	c := &ImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68725	c.project = project
68726	c.resource = resource
68727	c.testpermissionsrequest = testpermissionsrequest
68728	return c
68729}
68730
68731// Fields allows partial responses to be retrieved. See
68732// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68733// for more information.
68734func (c *ImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ImagesTestIamPermissionsCall {
68735	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68736	return c
68737}
68738
68739// Context sets the context to be used in this call's Do method. Any
68740// pending HTTP request will be aborted if the provided context is
68741// canceled.
68742func (c *ImagesTestIamPermissionsCall) Context(ctx context.Context) *ImagesTestIamPermissionsCall {
68743	c.ctx_ = ctx
68744	return c
68745}
68746
68747// Header returns an http.Header that can be modified by the caller to
68748// add HTTP headers to the request.
68749func (c *ImagesTestIamPermissionsCall) Header() http.Header {
68750	if c.header_ == nil {
68751		c.header_ = make(http.Header)
68752	}
68753	return c.header_
68754}
68755
68756func (c *ImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
68757	reqHeaders := make(http.Header)
68758	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68759	for k, v := range c.header_ {
68760		reqHeaders[k] = v
68761	}
68762	reqHeaders.Set("User-Agent", c.s.userAgent())
68763	var body io.Reader = nil
68764	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
68765	if err != nil {
68766		return nil, err
68767	}
68768	reqHeaders.Set("Content-Type", "application/json")
68769	c.urlParams_.Set("alt", alt)
68770	c.urlParams_.Set("prettyPrint", "false")
68771	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/images/{resource}/testIamPermissions")
68772	urls += "?" + c.urlParams_.Encode()
68773	req, err := http.NewRequest("POST", urls, body)
68774	if err != nil {
68775		return nil, err
68776	}
68777	req.Header = reqHeaders
68778	googleapi.Expand(req.URL, map[string]string{
68779		"project":  c.project,
68780		"resource": c.resource,
68781	})
68782	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68783}
68784
68785// Do executes the "compute.images.testIamPermissions" call.
68786// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
68787// non-2xx status code is an error. Response headers are in either
68788// *TestPermissionsResponse.ServerResponse.Header or (if a response was
68789// returned at all) in error.(*googleapi.Error).Header. Use
68790// googleapi.IsNotModified to check whether the returned error was
68791// because http.StatusNotModified was returned.
68792func (c *ImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
68793	gensupport.SetOptions(c.urlParams_, opts...)
68794	res, err := c.doRequest("json")
68795	if res != nil && res.StatusCode == http.StatusNotModified {
68796		if res.Body != nil {
68797			res.Body.Close()
68798		}
68799		return nil, &googleapi.Error{
68800			Code:   res.StatusCode,
68801			Header: res.Header,
68802		}
68803	}
68804	if err != nil {
68805		return nil, err
68806	}
68807	defer googleapi.CloseBody(res)
68808	if err := googleapi.CheckResponse(res); err != nil {
68809		return nil, err
68810	}
68811	ret := &TestPermissionsResponse{
68812		ServerResponse: googleapi.ServerResponse{
68813			Header:         res.Header,
68814			HTTPStatusCode: res.StatusCode,
68815		},
68816	}
68817	target := &ret
68818	if err := gensupport.DecodeResponse(target, res); err != nil {
68819		return nil, err
68820	}
68821	return ret, nil
68822	// {
68823	//   "description": "Returns permissions that a caller has on the specified resource.",
68824	//   "httpMethod": "POST",
68825	//   "id": "compute.images.testIamPermissions",
68826	//   "parameterOrder": [
68827	//     "project",
68828	//     "resource"
68829	//   ],
68830	//   "parameters": {
68831	//     "project": {
68832	//       "description": "Project ID for this request.",
68833	//       "location": "path",
68834	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
68835	//       "required": true,
68836	//       "type": "string"
68837	//     },
68838	//     "resource": {
68839	//       "description": "Name or id of the resource for this request.",
68840	//       "location": "path",
68841	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
68842	//       "required": true,
68843	//       "type": "string"
68844	//     }
68845	//   },
68846	//   "path": "{project}/global/images/{resource}/testIamPermissions",
68847	//   "request": {
68848	//     "$ref": "TestPermissionsRequest"
68849	//   },
68850	//   "response": {
68851	//     "$ref": "TestPermissionsResponse"
68852	//   },
68853	//   "scopes": [
68854	//     "https://www.googleapis.com/auth/cloud-platform",
68855	//     "https://www.googleapis.com/auth/compute",
68856	//     "https://www.googleapis.com/auth/compute.readonly"
68857	//   ]
68858	// }
68859
68860}
68861
68862// method id "compute.instanceGroupManagers.abandonInstances":
68863
68864type InstanceGroupManagersAbandonInstancesCall struct {
68865	s                                            *Service
68866	project                                      string
68867	zone                                         string
68868	instanceGroupManager                         string
68869	instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest
68870	urlParams_                                   gensupport.URLParams
68871	ctx_                                         context.Context
68872	header_                                      http.Header
68873}
68874
68875// AbandonInstances: Flags the specified instances to be removed from
68876// the managed instance group. Abandoning an instance does not delete
68877// the instance, but it does remove the instance from any target pools
68878// that are applied by the managed instance group. This method reduces
68879// the targetSize of the managed instance group by the number of
68880// instances that you abandon. This operation is marked as DONE when the
68881// action is scheduled even if the instances have not yet been removed
68882// from the group. You must separately verify the status of the
68883// abandoning action with the listmanagedinstances method.
68884//
68885// If the group is part of a backend service that has enabled connection
68886// draining, it can take up to 60 seconds after the connection draining
68887// duration has elapsed before the VM instance is removed or
68888// deleted.
68889//
68890// You can specify a maximum of 1000 instances with this method per
68891// request.
68892func (r *InstanceGroupManagersService) AbandonInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersabandoninstancesrequest *InstanceGroupManagersAbandonInstancesRequest) *InstanceGroupManagersAbandonInstancesCall {
68893	c := &InstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
68894	c.project = project
68895	c.zone = zone
68896	c.instanceGroupManager = instanceGroupManager
68897	c.instancegroupmanagersabandoninstancesrequest = instancegroupmanagersabandoninstancesrequest
68898	return c
68899}
68900
68901// RequestId sets the optional parameter "requestId": An optional
68902// request ID to identify requests. Specify a unique request ID so that
68903// if you must retry your request, the server will know to ignore the
68904// request if it has already been completed.
68905//
68906// For example, consider a situation where you make an initial request
68907// and the request times out. If you make the request again with the
68908// same request ID, the server can check if original operation with the
68909// same request ID was received, and if so, will ignore the second
68910// request. This prevents clients from accidentally creating duplicate
68911// commitments.
68912//
68913// The request ID must be a valid UUID with the exception that zero UUID
68914// is not supported (00000000-0000-0000-0000-000000000000).
68915func (c *InstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *InstanceGroupManagersAbandonInstancesCall {
68916	c.urlParams_.Set("requestId", requestId)
68917	return c
68918}
68919
68920// Fields allows partial responses to be retrieved. See
68921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
68922// for more information.
68923func (c *InstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAbandonInstancesCall {
68924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
68925	return c
68926}
68927
68928// Context sets the context to be used in this call's Do method. Any
68929// pending HTTP request will be aborted if the provided context is
68930// canceled.
68931func (c *InstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *InstanceGroupManagersAbandonInstancesCall {
68932	c.ctx_ = ctx
68933	return c
68934}
68935
68936// Header returns an http.Header that can be modified by the caller to
68937// add HTTP headers to the request.
68938func (c *InstanceGroupManagersAbandonInstancesCall) Header() http.Header {
68939	if c.header_ == nil {
68940		c.header_ = make(http.Header)
68941	}
68942	return c.header_
68943}
68944
68945func (c *InstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
68946	reqHeaders := make(http.Header)
68947	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
68948	for k, v := range c.header_ {
68949		reqHeaders[k] = v
68950	}
68951	reqHeaders.Set("User-Agent", c.s.userAgent())
68952	var body io.Reader = nil
68953	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersabandoninstancesrequest)
68954	if err != nil {
68955		return nil, err
68956	}
68957	reqHeaders.Set("Content-Type", "application/json")
68958	c.urlParams_.Set("alt", alt)
68959	c.urlParams_.Set("prettyPrint", "false")
68960	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
68961	urls += "?" + c.urlParams_.Encode()
68962	req, err := http.NewRequest("POST", urls, body)
68963	if err != nil {
68964		return nil, err
68965	}
68966	req.Header = reqHeaders
68967	googleapi.Expand(req.URL, map[string]string{
68968		"project":              c.project,
68969		"zone":                 c.zone,
68970		"instanceGroupManager": c.instanceGroupManager,
68971	})
68972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
68973}
68974
68975// Do executes the "compute.instanceGroupManagers.abandonInstances" call.
68976// Exactly one of *Operation or error will be non-nil. Any non-2xx
68977// status code is an error. Response headers are in either
68978// *Operation.ServerResponse.Header or (if a response was returned at
68979// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
68980// to check whether the returned error was because
68981// http.StatusNotModified was returned.
68982func (c *InstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
68983	gensupport.SetOptions(c.urlParams_, opts...)
68984	res, err := c.doRequest("json")
68985	if res != nil && res.StatusCode == http.StatusNotModified {
68986		if res.Body != nil {
68987			res.Body.Close()
68988		}
68989		return nil, &googleapi.Error{
68990			Code:   res.StatusCode,
68991			Header: res.Header,
68992		}
68993	}
68994	if err != nil {
68995		return nil, err
68996	}
68997	defer googleapi.CloseBody(res)
68998	if err := googleapi.CheckResponse(res); err != nil {
68999		return nil, err
69000	}
69001	ret := &Operation{
69002		ServerResponse: googleapi.ServerResponse{
69003			Header:         res.Header,
69004			HTTPStatusCode: res.StatusCode,
69005		},
69006	}
69007	target := &ret
69008	if err := gensupport.DecodeResponse(target, res); err != nil {
69009		return nil, err
69010	}
69011	return ret, nil
69012	// {
69013	//   "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.",
69014	//   "httpMethod": "POST",
69015	//   "id": "compute.instanceGroupManagers.abandonInstances",
69016	//   "parameterOrder": [
69017	//     "project",
69018	//     "zone",
69019	//     "instanceGroupManager"
69020	//   ],
69021	//   "parameters": {
69022	//     "instanceGroupManager": {
69023	//       "description": "The name of the managed instance group.",
69024	//       "location": "path",
69025	//       "required": true,
69026	//       "type": "string"
69027	//     },
69028	//     "project": {
69029	//       "description": "Project ID for this request.",
69030	//       "location": "path",
69031	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69032	//       "required": true,
69033	//       "type": "string"
69034	//     },
69035	//     "requestId": {
69036	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69037	//       "location": "query",
69038	//       "type": "string"
69039	//     },
69040	//     "zone": {
69041	//       "description": "The name of the zone where the managed instance group is located.",
69042	//       "location": "path",
69043	//       "required": true,
69044	//       "type": "string"
69045	//     }
69046	//   },
69047	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
69048	//   "request": {
69049	//     "$ref": "InstanceGroupManagersAbandonInstancesRequest"
69050	//   },
69051	//   "response": {
69052	//     "$ref": "Operation"
69053	//   },
69054	//   "scopes": [
69055	//     "https://www.googleapis.com/auth/cloud-platform",
69056	//     "https://www.googleapis.com/auth/compute"
69057	//   ]
69058	// }
69059
69060}
69061
69062// method id "compute.instanceGroupManagers.aggregatedList":
69063
69064type InstanceGroupManagersAggregatedListCall struct {
69065	s            *Service
69066	project      string
69067	urlParams_   gensupport.URLParams
69068	ifNoneMatch_ string
69069	ctx_         context.Context
69070	header_      http.Header
69071}
69072
69073// AggregatedList: Retrieves the list of managed instance groups and
69074// groups them by zone.
69075func (r *InstanceGroupManagersService) AggregatedList(project string) *InstanceGroupManagersAggregatedListCall {
69076	c := &InstanceGroupManagersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69077	c.project = project
69078	return c
69079}
69080
69081// Filter sets the optional parameter "filter": A filter expression that
69082// filters resources listed in the response. The expression must specify
69083// the field name, a comparison operator, and the value that you want to
69084// use for filtering. The value must be a string, a number, or a
69085// boolean. The comparison operator must be either =, !=, >, or <.
69086//
69087// For example, if you are filtering Compute Engine instances, you can
69088// exclude instances named example-instance by specifying name !=
69089// example-instance.
69090//
69091// You can also filter nested fields. For example, you could specify
69092// scheduling.automaticRestart = false to include instances only if they
69093// are not scheduled for automatic restarts. You can use filtering on
69094// nested fields to filter based on resource labels.
69095//
69096// To filter on multiple expressions, provide each separate expression
69097// within parentheses. For example, (scheduling.automaticRestart = true)
69098// (cpuPlatform = "Intel Skylake"). By default, each expression is an
69099// AND expression. However, you can include AND and OR expressions
69100// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
69101// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
69102// true).
69103func (c *InstanceGroupManagersAggregatedListCall) Filter(filter string) *InstanceGroupManagersAggregatedListCall {
69104	c.urlParams_.Set("filter", filter)
69105	return c
69106}
69107
69108// IncludeAllScopes sets the optional parameter "includeAllScopes":
69109// Indicates whether every visible scope for each scope type (zone,
69110// region, global) should be included in the response. For new resource
69111// types added after this field, the flag has no effect as new resource
69112// types will always include every visible scope for each scope type in
69113// response. For resource types which predate this field, if this flag
69114// is omitted or false, only scopes of the scope types where the
69115// resource type is expected to be found will be included.
69116func (c *InstanceGroupManagersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupManagersAggregatedListCall {
69117	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
69118	return c
69119}
69120
69121// MaxResults sets the optional parameter "maxResults": The maximum
69122// number of results per page that should be returned. If the number of
69123// available results is larger than maxResults, Compute Engine returns a
69124// nextPageToken that can be used to get the next page of results in
69125// subsequent list requests. Acceptable values are 0 to 500, inclusive.
69126// (Default: 500)
69127func (c *InstanceGroupManagersAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupManagersAggregatedListCall {
69128	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
69129	return c
69130}
69131
69132// OrderBy sets the optional parameter "orderBy": Sorts list results by
69133// a certain order. By default, results are returned in alphanumerical
69134// order based on the resource name.
69135//
69136// You can also sort results in descending order based on the creation
69137// timestamp using orderBy="creationTimestamp desc". This sorts results
69138// based on the creationTimestamp field in reverse chronological order
69139// (newest result first). Use this to sort resources like operations so
69140// that the newest operation is returned first.
69141//
69142// Currently, only sorting by name or creationTimestamp desc is
69143// supported.
69144func (c *InstanceGroupManagersAggregatedListCall) OrderBy(orderBy string) *InstanceGroupManagersAggregatedListCall {
69145	c.urlParams_.Set("orderBy", orderBy)
69146	return c
69147}
69148
69149// PageToken sets the optional parameter "pageToken": Specifies a page
69150// token to use. Set pageToken to the nextPageToken returned by a
69151// previous list request to get the next page of results.
69152func (c *InstanceGroupManagersAggregatedListCall) PageToken(pageToken string) *InstanceGroupManagersAggregatedListCall {
69153	c.urlParams_.Set("pageToken", pageToken)
69154	return c
69155}
69156
69157// Fields allows partial responses to be retrieved. See
69158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69159// for more information.
69160func (c *InstanceGroupManagersAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersAggregatedListCall {
69161	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69162	return c
69163}
69164
69165// IfNoneMatch sets the optional parameter which makes the operation
69166// fail if the object's ETag matches the given value. This is useful for
69167// getting updates only after the object has changed since the last
69168// request. Use googleapi.IsNotModified to check whether the response
69169// error from Do is the result of In-None-Match.
69170func (c *InstanceGroupManagersAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersAggregatedListCall {
69171	c.ifNoneMatch_ = entityTag
69172	return c
69173}
69174
69175// Context sets the context to be used in this call's Do method. Any
69176// pending HTTP request will be aborted if the provided context is
69177// canceled.
69178func (c *InstanceGroupManagersAggregatedListCall) Context(ctx context.Context) *InstanceGroupManagersAggregatedListCall {
69179	c.ctx_ = ctx
69180	return c
69181}
69182
69183// Header returns an http.Header that can be modified by the caller to
69184// add HTTP headers to the request.
69185func (c *InstanceGroupManagersAggregatedListCall) Header() http.Header {
69186	if c.header_ == nil {
69187		c.header_ = make(http.Header)
69188	}
69189	return c.header_
69190}
69191
69192func (c *InstanceGroupManagersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
69193	reqHeaders := make(http.Header)
69194	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69195	for k, v := range c.header_ {
69196		reqHeaders[k] = v
69197	}
69198	reqHeaders.Set("User-Agent", c.s.userAgent())
69199	if c.ifNoneMatch_ != "" {
69200		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
69201	}
69202	var body io.Reader = nil
69203	c.urlParams_.Set("alt", alt)
69204	c.urlParams_.Set("prettyPrint", "false")
69205	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroupManagers")
69206	urls += "?" + c.urlParams_.Encode()
69207	req, err := http.NewRequest("GET", urls, body)
69208	if err != nil {
69209		return nil, err
69210	}
69211	req.Header = reqHeaders
69212	googleapi.Expand(req.URL, map[string]string{
69213		"project": c.project,
69214	})
69215	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69216}
69217
69218// Do executes the "compute.instanceGroupManagers.aggregatedList" call.
69219// Exactly one of *InstanceGroupManagerAggregatedList or error will be
69220// non-nil. Any non-2xx status code is an error. Response headers are in
69221// either *InstanceGroupManagerAggregatedList.ServerResponse.Header or
69222// (if a response was returned at all) in
69223// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
69224// whether the returned error was because http.StatusNotModified was
69225// returned.
69226func (c *InstanceGroupManagersAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerAggregatedList, error) {
69227	gensupport.SetOptions(c.urlParams_, opts...)
69228	res, err := c.doRequest("json")
69229	if res != nil && res.StatusCode == http.StatusNotModified {
69230		if res.Body != nil {
69231			res.Body.Close()
69232		}
69233		return nil, &googleapi.Error{
69234			Code:   res.StatusCode,
69235			Header: res.Header,
69236		}
69237	}
69238	if err != nil {
69239		return nil, err
69240	}
69241	defer googleapi.CloseBody(res)
69242	if err := googleapi.CheckResponse(res); err != nil {
69243		return nil, err
69244	}
69245	ret := &InstanceGroupManagerAggregatedList{
69246		ServerResponse: googleapi.ServerResponse{
69247			Header:         res.Header,
69248			HTTPStatusCode: res.StatusCode,
69249		},
69250	}
69251	target := &ret
69252	if err := gensupport.DecodeResponse(target, res); err != nil {
69253		return nil, err
69254	}
69255	return ret, nil
69256	// {
69257	//   "description": "Retrieves the list of managed instance groups and groups them by zone.",
69258	//   "httpMethod": "GET",
69259	//   "id": "compute.instanceGroupManagers.aggregatedList",
69260	//   "parameterOrder": [
69261	//     "project"
69262	//   ],
69263	//   "parameters": {
69264	//     "filter": {
69265	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
69266	//       "location": "query",
69267	//       "type": "string"
69268	//     },
69269	//     "includeAllScopes": {
69270	//       "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.",
69271	//       "location": "query",
69272	//       "type": "boolean"
69273	//     },
69274	//     "maxResults": {
69275	//       "default": "500",
69276	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
69277	//       "format": "uint32",
69278	//       "location": "query",
69279	//       "minimum": "0",
69280	//       "type": "integer"
69281	//     },
69282	//     "orderBy": {
69283	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
69284	//       "location": "query",
69285	//       "type": "string"
69286	//     },
69287	//     "pageToken": {
69288	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
69289	//       "location": "query",
69290	//       "type": "string"
69291	//     },
69292	//     "project": {
69293	//       "description": "Project ID for this request.",
69294	//       "location": "path",
69295	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69296	//       "required": true,
69297	//       "type": "string"
69298	//     }
69299	//   },
69300	//   "path": "{project}/aggregated/instanceGroupManagers",
69301	//   "response": {
69302	//     "$ref": "InstanceGroupManagerAggregatedList"
69303	//   },
69304	//   "scopes": [
69305	//     "https://www.googleapis.com/auth/cloud-platform",
69306	//     "https://www.googleapis.com/auth/compute",
69307	//     "https://www.googleapis.com/auth/compute.readonly"
69308	//   ]
69309	// }
69310
69311}
69312
69313// Pages invokes f for each page of results.
69314// A non-nil error returned from f will halt the iteration.
69315// The provided context supersedes any context provided to the Context method.
69316func (c *InstanceGroupManagersAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerAggregatedList) error) error {
69317	c.ctx_ = ctx
69318	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
69319	for {
69320		x, err := c.Do()
69321		if err != nil {
69322			return err
69323		}
69324		if err := f(x); err != nil {
69325			return err
69326		}
69327		if x.NextPageToken == "" {
69328			return nil
69329		}
69330		c.PageToken(x.NextPageToken)
69331	}
69332}
69333
69334// method id "compute.instanceGroupManagers.applyUpdatesToInstances":
69335
69336type InstanceGroupManagersApplyUpdatesToInstancesCall struct {
69337	s                                        *Service
69338	project                                  string
69339	zone                                     string
69340	instanceGroupManager                     string
69341	instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest
69342	urlParams_                               gensupport.URLParams
69343	ctx_                                     context.Context
69344	header_                                  http.Header
69345}
69346
69347// ApplyUpdatesToInstances: Apply changes to selected instances on the
69348// managed instance group. This method can be used to apply new
69349// overrides and/or new versions.
69350func (r *InstanceGroupManagersService) ApplyUpdatesToInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersapplyupdatesrequest *InstanceGroupManagersApplyUpdatesRequest) *InstanceGroupManagersApplyUpdatesToInstancesCall {
69351	c := &InstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69352	c.project = project
69353	c.zone = zone
69354	c.instanceGroupManager = instanceGroupManager
69355	c.instancegroupmanagersapplyupdatesrequest = instancegroupmanagersapplyupdatesrequest
69356	return c
69357}
69358
69359// Fields allows partial responses to be retrieved. See
69360// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69361// for more information.
69362func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersApplyUpdatesToInstancesCall {
69363	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69364	return c
69365}
69366
69367// Context sets the context to be used in this call's Do method. Any
69368// pending HTTP request will be aborted if the provided context is
69369// canceled.
69370func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *InstanceGroupManagersApplyUpdatesToInstancesCall {
69371	c.ctx_ = ctx
69372	return c
69373}
69374
69375// Header returns an http.Header that can be modified by the caller to
69376// add HTTP headers to the request.
69377func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
69378	if c.header_ == nil {
69379		c.header_ = make(http.Header)
69380	}
69381	return c.header_
69382}
69383
69384func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
69385	reqHeaders := make(http.Header)
69386	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69387	for k, v := range c.header_ {
69388		reqHeaders[k] = v
69389	}
69390	reqHeaders.Set("User-Agent", c.s.userAgent())
69391	var body io.Reader = nil
69392	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersapplyupdatesrequest)
69393	if err != nil {
69394		return nil, err
69395	}
69396	reqHeaders.Set("Content-Type", "application/json")
69397	c.urlParams_.Set("alt", alt)
69398	c.urlParams_.Set("prettyPrint", "false")
69399	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
69400	urls += "?" + c.urlParams_.Encode()
69401	req, err := http.NewRequest("POST", urls, body)
69402	if err != nil {
69403		return nil, err
69404	}
69405	req.Header = reqHeaders
69406	googleapi.Expand(req.URL, map[string]string{
69407		"project":              c.project,
69408		"zone":                 c.zone,
69409		"instanceGroupManager": c.instanceGroupManager,
69410	})
69411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69412}
69413
69414// Do executes the "compute.instanceGroupManagers.applyUpdatesToInstances" call.
69415// Exactly one of *Operation or error will be non-nil. Any non-2xx
69416// status code is an error. Response headers are in either
69417// *Operation.ServerResponse.Header or (if a response was returned at
69418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69419// to check whether the returned error was because
69420// http.StatusNotModified was returned.
69421func (c *InstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69422	gensupport.SetOptions(c.urlParams_, opts...)
69423	res, err := c.doRequest("json")
69424	if res != nil && res.StatusCode == http.StatusNotModified {
69425		if res.Body != nil {
69426			res.Body.Close()
69427		}
69428		return nil, &googleapi.Error{
69429			Code:   res.StatusCode,
69430			Header: res.Header,
69431		}
69432	}
69433	if err != nil {
69434		return nil, err
69435	}
69436	defer googleapi.CloseBody(res)
69437	if err := googleapi.CheckResponse(res); err != nil {
69438		return nil, err
69439	}
69440	ret := &Operation{
69441		ServerResponse: googleapi.ServerResponse{
69442			Header:         res.Header,
69443			HTTPStatusCode: res.StatusCode,
69444		},
69445	}
69446	target := &ret
69447	if err := gensupport.DecodeResponse(target, res); err != nil {
69448		return nil, err
69449	}
69450	return ret, nil
69451	// {
69452	//   "description": "Apply changes to selected instances on the managed instance group. This method can be used to apply new overrides and/or new versions.",
69453	//   "httpMethod": "POST",
69454	//   "id": "compute.instanceGroupManagers.applyUpdatesToInstances",
69455	//   "parameterOrder": [
69456	//     "project",
69457	//     "zone",
69458	//     "instanceGroupManager"
69459	//   ],
69460	//   "parameters": {
69461	//     "instanceGroupManager": {
69462	//       "description": "The name of the managed instance group, should conform to RFC1035.",
69463	//       "location": "path",
69464	//       "required": true,
69465	//       "type": "string"
69466	//     },
69467	//     "project": {
69468	//       "description": "Project ID for this request.",
69469	//       "location": "path",
69470	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69471	//       "required": true,
69472	//       "type": "string"
69473	//     },
69474	//     "zone": {
69475	//       "description": "The name of the zone where the managed instance group is located. Should conform to RFC1035.",
69476	//       "location": "path",
69477	//       "required": true,
69478	//       "type": "string"
69479	//     }
69480	//   },
69481	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
69482	//   "request": {
69483	//     "$ref": "InstanceGroupManagersApplyUpdatesRequest"
69484	//   },
69485	//   "response": {
69486	//     "$ref": "Operation"
69487	//   },
69488	//   "scopes": [
69489	//     "https://www.googleapis.com/auth/cloud-platform",
69490	//     "https://www.googleapis.com/auth/compute"
69491	//   ]
69492	// }
69493
69494}
69495
69496// method id "compute.instanceGroupManagers.createInstances":
69497
69498type InstanceGroupManagersCreateInstancesCall struct {
69499	s                                           *Service
69500	project                                     string
69501	zone                                        string
69502	instanceGroupManager                        string
69503	instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest
69504	urlParams_                                  gensupport.URLParams
69505	ctx_                                        context.Context
69506	header_                                     http.Header
69507}
69508
69509// CreateInstances: Creates instances with per-instance configs in this
69510// managed instance group. Instances are created using the current
69511// instance template. The create instances operation is marked DONE if
69512// the createInstances request is successful. The underlying actions
69513// take additional time. You must separately verify the status of the
69514// creating or actions with the listmanagedinstances method.
69515func (r *InstanceGroupManagersService) CreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagerscreateinstancesrequest *InstanceGroupManagersCreateInstancesRequest) *InstanceGroupManagersCreateInstancesCall {
69516	c := &InstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69517	c.project = project
69518	c.zone = zone
69519	c.instanceGroupManager = instanceGroupManager
69520	c.instancegroupmanagerscreateinstancesrequest = instancegroupmanagerscreateinstancesrequest
69521	return c
69522}
69523
69524// RequestId sets the optional parameter "requestId": An optional
69525// request ID to identify requests. Specify a unique request ID so that
69526// if you must retry your request, the server will know to ignore the
69527// request if it has already been completed.
69528//
69529// For example, consider a situation where you make an initial request
69530// and the request times out. If you make the request again with the
69531// same request ID, the server can check if original operation with the
69532// same request ID was received, and if so, will ignore the second
69533// request.
69534//
69535// The request ID must be a valid UUID with the exception that zero UUID
69536// is not supported (00000000-0000-0000-0000-000000000000).
69537func (c *InstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersCreateInstancesCall {
69538	c.urlParams_.Set("requestId", requestId)
69539	return c
69540}
69541
69542// Fields allows partial responses to be retrieved. See
69543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69544// for more information.
69545func (c *InstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersCreateInstancesCall {
69546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69547	return c
69548}
69549
69550// Context sets the context to be used in this call's Do method. Any
69551// pending HTTP request will be aborted if the provided context is
69552// canceled.
69553func (c *InstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersCreateInstancesCall {
69554	c.ctx_ = ctx
69555	return c
69556}
69557
69558// Header returns an http.Header that can be modified by the caller to
69559// add HTTP headers to the request.
69560func (c *InstanceGroupManagersCreateInstancesCall) Header() http.Header {
69561	if c.header_ == nil {
69562		c.header_ = make(http.Header)
69563	}
69564	return c.header_
69565}
69566
69567func (c *InstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
69568	reqHeaders := make(http.Header)
69569	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69570	for k, v := range c.header_ {
69571		reqHeaders[k] = v
69572	}
69573	reqHeaders.Set("User-Agent", c.s.userAgent())
69574	var body io.Reader = nil
69575	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerscreateinstancesrequest)
69576	if err != nil {
69577		return nil, err
69578	}
69579	reqHeaders.Set("Content-Type", "application/json")
69580	c.urlParams_.Set("alt", alt)
69581	c.urlParams_.Set("prettyPrint", "false")
69582	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances")
69583	urls += "?" + c.urlParams_.Encode()
69584	req, err := http.NewRequest("POST", urls, body)
69585	if err != nil {
69586		return nil, err
69587	}
69588	req.Header = reqHeaders
69589	googleapi.Expand(req.URL, map[string]string{
69590		"project":              c.project,
69591		"zone":                 c.zone,
69592		"instanceGroupManager": c.instanceGroupManager,
69593	})
69594	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69595}
69596
69597// Do executes the "compute.instanceGroupManagers.createInstances" call.
69598// Exactly one of *Operation or error will be non-nil. Any non-2xx
69599// status code is an error. Response headers are in either
69600// *Operation.ServerResponse.Header or (if a response was returned at
69601// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69602// to check whether the returned error was because
69603// http.StatusNotModified was returned.
69604func (c *InstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69605	gensupport.SetOptions(c.urlParams_, opts...)
69606	res, err := c.doRequest("json")
69607	if res != nil && res.StatusCode == http.StatusNotModified {
69608		if res.Body != nil {
69609			res.Body.Close()
69610		}
69611		return nil, &googleapi.Error{
69612			Code:   res.StatusCode,
69613			Header: res.Header,
69614		}
69615	}
69616	if err != nil {
69617		return nil, err
69618	}
69619	defer googleapi.CloseBody(res)
69620	if err := googleapi.CheckResponse(res); err != nil {
69621		return nil, err
69622	}
69623	ret := &Operation{
69624		ServerResponse: googleapi.ServerResponse{
69625			Header:         res.Header,
69626			HTTPStatusCode: res.StatusCode,
69627		},
69628	}
69629	target := &ret
69630	if err := gensupport.DecodeResponse(target, res); err != nil {
69631		return nil, err
69632	}
69633	return ret, nil
69634	// {
69635	//   "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.",
69636	//   "httpMethod": "POST",
69637	//   "id": "compute.instanceGroupManagers.createInstances",
69638	//   "parameterOrder": [
69639	//     "project",
69640	//     "zone",
69641	//     "instanceGroupManager"
69642	//   ],
69643	//   "parameters": {
69644	//     "instanceGroupManager": {
69645	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
69646	//       "location": "path",
69647	//       "required": true,
69648	//       "type": "string"
69649	//     },
69650	//     "project": {
69651	//       "description": "Project ID for this request.",
69652	//       "location": "path",
69653	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69654	//       "required": true,
69655	//       "type": "string"
69656	//     },
69657	//     "requestId": {
69658	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
69659	//       "location": "query",
69660	//       "type": "string"
69661	//     },
69662	//     "zone": {
69663	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
69664	//       "location": "path",
69665	//       "required": true,
69666	//       "type": "string"
69667	//     }
69668	//   },
69669	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/createInstances",
69670	//   "request": {
69671	//     "$ref": "InstanceGroupManagersCreateInstancesRequest"
69672	//   },
69673	//   "response": {
69674	//     "$ref": "Operation"
69675	//   },
69676	//   "scopes": [
69677	//     "https://www.googleapis.com/auth/cloud-platform",
69678	//     "https://www.googleapis.com/auth/compute"
69679	//   ]
69680	// }
69681
69682}
69683
69684// method id "compute.instanceGroupManagers.delete":
69685
69686type InstanceGroupManagersDeleteCall struct {
69687	s                    *Service
69688	project              string
69689	zone                 string
69690	instanceGroupManager string
69691	urlParams_           gensupport.URLParams
69692	ctx_                 context.Context
69693	header_              http.Header
69694}
69695
69696// Delete: Deletes the specified managed instance group and all of the
69697// instances in that group. Note that the instance group must not belong
69698// to a backend service. Read  Deleting an instance group for more
69699// information.
69700func (r *InstanceGroupManagersService) Delete(project string, zone string, instanceGroupManager string) *InstanceGroupManagersDeleteCall {
69701	c := &InstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69702	c.project = project
69703	c.zone = zone
69704	c.instanceGroupManager = instanceGroupManager
69705	return c
69706}
69707
69708// RequestId sets the optional parameter "requestId": An optional
69709// request ID to identify requests. Specify a unique request ID so that
69710// if you must retry your request, the server will know to ignore the
69711// request if it has already been completed.
69712//
69713// For example, consider a situation where you make an initial request
69714// and the request times out. If you make the request again with the
69715// same request ID, the server can check if original operation with the
69716// same request ID was received, and if so, will ignore the second
69717// request. This prevents clients from accidentally creating duplicate
69718// commitments.
69719//
69720// The request ID must be a valid UUID with the exception that zero UUID
69721// is not supported (00000000-0000-0000-0000-000000000000).
69722func (c *InstanceGroupManagersDeleteCall) RequestId(requestId string) *InstanceGroupManagersDeleteCall {
69723	c.urlParams_.Set("requestId", requestId)
69724	return c
69725}
69726
69727// Fields allows partial responses to be retrieved. See
69728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69729// for more information.
69730func (c *InstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteCall {
69731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69732	return c
69733}
69734
69735// Context sets the context to be used in this call's Do method. Any
69736// pending HTTP request will be aborted if the provided context is
69737// canceled.
69738func (c *InstanceGroupManagersDeleteCall) Context(ctx context.Context) *InstanceGroupManagersDeleteCall {
69739	c.ctx_ = ctx
69740	return c
69741}
69742
69743// Header returns an http.Header that can be modified by the caller to
69744// add HTTP headers to the request.
69745func (c *InstanceGroupManagersDeleteCall) Header() http.Header {
69746	if c.header_ == nil {
69747		c.header_ = make(http.Header)
69748	}
69749	return c.header_
69750}
69751
69752func (c *InstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
69753	reqHeaders := make(http.Header)
69754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69755	for k, v := range c.header_ {
69756		reqHeaders[k] = v
69757	}
69758	reqHeaders.Set("User-Agent", c.s.userAgent())
69759	var body io.Reader = nil
69760	c.urlParams_.Set("alt", alt)
69761	c.urlParams_.Set("prettyPrint", "false")
69762	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
69763	urls += "?" + c.urlParams_.Encode()
69764	req, err := http.NewRequest("DELETE", urls, body)
69765	if err != nil {
69766		return nil, err
69767	}
69768	req.Header = reqHeaders
69769	googleapi.Expand(req.URL, map[string]string{
69770		"project":              c.project,
69771		"zone":                 c.zone,
69772		"instanceGroupManager": c.instanceGroupManager,
69773	})
69774	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69775}
69776
69777// Do executes the "compute.instanceGroupManagers.delete" call.
69778// Exactly one of *Operation or error will be non-nil. Any non-2xx
69779// status code is an error. Response headers are in either
69780// *Operation.ServerResponse.Header or (if a response was returned at
69781// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69782// to check whether the returned error was because
69783// http.StatusNotModified was returned.
69784func (c *InstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69785	gensupport.SetOptions(c.urlParams_, opts...)
69786	res, err := c.doRequest("json")
69787	if res != nil && res.StatusCode == http.StatusNotModified {
69788		if res.Body != nil {
69789			res.Body.Close()
69790		}
69791		return nil, &googleapi.Error{
69792			Code:   res.StatusCode,
69793			Header: res.Header,
69794		}
69795	}
69796	if err != nil {
69797		return nil, err
69798	}
69799	defer googleapi.CloseBody(res)
69800	if err := googleapi.CheckResponse(res); err != nil {
69801		return nil, err
69802	}
69803	ret := &Operation{
69804		ServerResponse: googleapi.ServerResponse{
69805			Header:         res.Header,
69806			HTTPStatusCode: res.StatusCode,
69807		},
69808	}
69809	target := &ret
69810	if err := gensupport.DecodeResponse(target, res); err != nil {
69811		return nil, err
69812	}
69813	return ret, nil
69814	// {
69815	//   "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.",
69816	//   "httpMethod": "DELETE",
69817	//   "id": "compute.instanceGroupManagers.delete",
69818	//   "parameterOrder": [
69819	//     "project",
69820	//     "zone",
69821	//     "instanceGroupManager"
69822	//   ],
69823	//   "parameters": {
69824	//     "instanceGroupManager": {
69825	//       "description": "The name of the managed instance group to delete.",
69826	//       "location": "path",
69827	//       "required": true,
69828	//       "type": "string"
69829	//     },
69830	//     "project": {
69831	//       "description": "Project ID for this request.",
69832	//       "location": "path",
69833	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
69834	//       "required": true,
69835	//       "type": "string"
69836	//     },
69837	//     "requestId": {
69838	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
69839	//       "location": "query",
69840	//       "type": "string"
69841	//     },
69842	//     "zone": {
69843	//       "description": "The name of the zone where the managed instance group is located.",
69844	//       "location": "path",
69845	//       "required": true,
69846	//       "type": "string"
69847	//     }
69848	//   },
69849	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
69850	//   "response": {
69851	//     "$ref": "Operation"
69852	//   },
69853	//   "scopes": [
69854	//     "https://www.googleapis.com/auth/cloud-platform",
69855	//     "https://www.googleapis.com/auth/compute"
69856	//   ]
69857	// }
69858
69859}
69860
69861// method id "compute.instanceGroupManagers.deleteInstances":
69862
69863type InstanceGroupManagersDeleteInstancesCall struct {
69864	s                                           *Service
69865	project                                     string
69866	zone                                        string
69867	instanceGroupManager                        string
69868	instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest
69869	urlParams_                                  gensupport.URLParams
69870	ctx_                                        context.Context
69871	header_                                     http.Header
69872}
69873
69874// DeleteInstances: Flags the specified instances in the managed
69875// instance group for immediate deletion. The instances are also removed
69876// from any target pools of which they were a member. This method
69877// reduces the targetSize of the managed instance group by the number of
69878// instances that you delete. This operation is marked as DONE when the
69879// action is scheduled even if the instances are still being deleted.
69880// You must separately verify the status of the deleting action with the
69881// listmanagedinstances method.
69882//
69883// If the group is part of a backend service that has enabled connection
69884// draining, it can take up to 60 seconds after the connection draining
69885// duration has elapsed before the VM instance is removed or
69886// deleted.
69887//
69888// You can specify a maximum of 1000 instances with this method per
69889// request.
69890func (r *InstanceGroupManagersService) DeleteInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteinstancesrequest *InstanceGroupManagersDeleteInstancesRequest) *InstanceGroupManagersDeleteInstancesCall {
69891	c := &InstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
69892	c.project = project
69893	c.zone = zone
69894	c.instanceGroupManager = instanceGroupManager
69895	c.instancegroupmanagersdeleteinstancesrequest = instancegroupmanagersdeleteinstancesrequest
69896	return c
69897}
69898
69899// RequestId sets the optional parameter "requestId": An optional
69900// request ID to identify requests. Specify a unique request ID so that
69901// if you must retry your request, the server will know to ignore the
69902// request if it has already been completed.
69903//
69904// For example, consider a situation where you make an initial request
69905// and the request times out. If you make the request again with the
69906// same request ID, the server can check if original operation with the
69907// same request ID was received, and if so, will ignore the second
69908// request. This prevents clients from accidentally creating duplicate
69909// commitments.
69910//
69911// The request ID must be a valid UUID with the exception that zero UUID
69912// is not supported (00000000-0000-0000-0000-000000000000).
69913func (c *InstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *InstanceGroupManagersDeleteInstancesCall {
69914	c.urlParams_.Set("requestId", requestId)
69915	return c
69916}
69917
69918// Fields allows partial responses to be retrieved. See
69919// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
69920// for more information.
69921func (c *InstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeleteInstancesCall {
69922	c.urlParams_.Set("fields", googleapi.CombineFields(s))
69923	return c
69924}
69925
69926// Context sets the context to be used in this call's Do method. Any
69927// pending HTTP request will be aborted if the provided context is
69928// canceled.
69929func (c *InstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *InstanceGroupManagersDeleteInstancesCall {
69930	c.ctx_ = ctx
69931	return c
69932}
69933
69934// Header returns an http.Header that can be modified by the caller to
69935// add HTTP headers to the request.
69936func (c *InstanceGroupManagersDeleteInstancesCall) Header() http.Header {
69937	if c.header_ == nil {
69938		c.header_ = make(http.Header)
69939	}
69940	return c.header_
69941}
69942
69943func (c *InstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
69944	reqHeaders := make(http.Header)
69945	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
69946	for k, v := range c.header_ {
69947		reqHeaders[k] = v
69948	}
69949	reqHeaders.Set("User-Agent", c.s.userAgent())
69950	var body io.Reader = nil
69951	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteinstancesrequest)
69952	if err != nil {
69953		return nil, err
69954	}
69955	reqHeaders.Set("Content-Type", "application/json")
69956	c.urlParams_.Set("alt", alt)
69957	c.urlParams_.Set("prettyPrint", "false")
69958	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
69959	urls += "?" + c.urlParams_.Encode()
69960	req, err := http.NewRequest("POST", urls, body)
69961	if err != nil {
69962		return nil, err
69963	}
69964	req.Header = reqHeaders
69965	googleapi.Expand(req.URL, map[string]string{
69966		"project":              c.project,
69967		"zone":                 c.zone,
69968		"instanceGroupManager": c.instanceGroupManager,
69969	})
69970	return gensupport.SendRequest(c.ctx_, c.s.client, req)
69971}
69972
69973// Do executes the "compute.instanceGroupManagers.deleteInstances" call.
69974// Exactly one of *Operation or error will be non-nil. Any non-2xx
69975// status code is an error. Response headers are in either
69976// *Operation.ServerResponse.Header or (if a response was returned at
69977// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
69978// to check whether the returned error was because
69979// http.StatusNotModified was returned.
69980func (c *InstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
69981	gensupport.SetOptions(c.urlParams_, opts...)
69982	res, err := c.doRequest("json")
69983	if res != nil && res.StatusCode == http.StatusNotModified {
69984		if res.Body != nil {
69985			res.Body.Close()
69986		}
69987		return nil, &googleapi.Error{
69988			Code:   res.StatusCode,
69989			Header: res.Header,
69990		}
69991	}
69992	if err != nil {
69993		return nil, err
69994	}
69995	defer googleapi.CloseBody(res)
69996	if err := googleapi.CheckResponse(res); err != nil {
69997		return nil, err
69998	}
69999	ret := &Operation{
70000		ServerResponse: googleapi.ServerResponse{
70001			Header:         res.Header,
70002			HTTPStatusCode: res.StatusCode,
70003		},
70004	}
70005	target := &ret
70006	if err := gensupport.DecodeResponse(target, res); err != nil {
70007		return nil, err
70008	}
70009	return ret, nil
70010	// {
70011	//   "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.",
70012	//   "httpMethod": "POST",
70013	//   "id": "compute.instanceGroupManagers.deleteInstances",
70014	//   "parameterOrder": [
70015	//     "project",
70016	//     "zone",
70017	//     "instanceGroupManager"
70018	//   ],
70019	//   "parameters": {
70020	//     "instanceGroupManager": {
70021	//       "description": "The name of the managed instance group.",
70022	//       "location": "path",
70023	//       "required": true,
70024	//       "type": "string"
70025	//     },
70026	//     "project": {
70027	//       "description": "Project ID for this request.",
70028	//       "location": "path",
70029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70030	//       "required": true,
70031	//       "type": "string"
70032	//     },
70033	//     "requestId": {
70034	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70035	//       "location": "query",
70036	//       "type": "string"
70037	//     },
70038	//     "zone": {
70039	//       "description": "The name of the zone where the managed instance group is located.",
70040	//       "location": "path",
70041	//       "required": true,
70042	//       "type": "string"
70043	//     }
70044	//   },
70045	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
70046	//   "request": {
70047	//     "$ref": "InstanceGroupManagersDeleteInstancesRequest"
70048	//   },
70049	//   "response": {
70050	//     "$ref": "Operation"
70051	//   },
70052	//   "scopes": [
70053	//     "https://www.googleapis.com/auth/cloud-platform",
70054	//     "https://www.googleapis.com/auth/compute"
70055	//   ]
70056	// }
70057
70058}
70059
70060// method id "compute.instanceGroupManagers.deletePerInstanceConfigs":
70061
70062type InstanceGroupManagersDeletePerInstanceConfigsCall struct {
70063	s                                                *Service
70064	project                                          string
70065	zone                                             string
70066	instanceGroupManager                             string
70067	instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq
70068	urlParams_                                       gensupport.URLParams
70069	ctx_                                             context.Context
70070	header_                                          http.Header
70071}
70072
70073// DeletePerInstanceConfigs: Deletes selected per-instance configs for
70074// the managed instance group.
70075func (r *InstanceGroupManagersService) DeletePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersdeleteperinstanceconfigsreq *InstanceGroupManagersDeletePerInstanceConfigsReq) *InstanceGroupManagersDeletePerInstanceConfigsCall {
70076	c := &InstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70077	c.project = project
70078	c.zone = zone
70079	c.instanceGroupManager = instanceGroupManager
70080	c.instancegroupmanagersdeleteperinstanceconfigsreq = instancegroupmanagersdeleteperinstanceconfigsreq
70081	return c
70082}
70083
70084// Fields allows partial responses to be retrieved. See
70085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70086// for more information.
70087func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersDeletePerInstanceConfigsCall {
70088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70089	return c
70090}
70091
70092// Context sets the context to be used in this call's Do method. Any
70093// pending HTTP request will be aborted if the provided context is
70094// canceled.
70095func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersDeletePerInstanceConfigsCall {
70096	c.ctx_ = ctx
70097	return c
70098}
70099
70100// Header returns an http.Header that can be modified by the caller to
70101// add HTTP headers to the request.
70102func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
70103	if c.header_ == nil {
70104		c.header_ = make(http.Header)
70105	}
70106	return c.header_
70107}
70108
70109func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
70110	reqHeaders := make(http.Header)
70111	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70112	for k, v := range c.header_ {
70113		reqHeaders[k] = v
70114	}
70115	reqHeaders.Set("User-Agent", c.s.userAgent())
70116	var body io.Reader = nil
70117	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersdeleteperinstanceconfigsreq)
70118	if err != nil {
70119		return nil, err
70120	}
70121	reqHeaders.Set("Content-Type", "application/json")
70122	c.urlParams_.Set("alt", alt)
70123	c.urlParams_.Set("prettyPrint", "false")
70124	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
70125	urls += "?" + c.urlParams_.Encode()
70126	req, err := http.NewRequest("POST", urls, body)
70127	if err != nil {
70128		return nil, err
70129	}
70130	req.Header = reqHeaders
70131	googleapi.Expand(req.URL, map[string]string{
70132		"project":              c.project,
70133		"zone":                 c.zone,
70134		"instanceGroupManager": c.instanceGroupManager,
70135	})
70136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70137}
70138
70139// Do executes the "compute.instanceGroupManagers.deletePerInstanceConfigs" call.
70140// Exactly one of *Operation or error will be non-nil. Any non-2xx
70141// status code is an error. Response headers are in either
70142// *Operation.ServerResponse.Header or (if a response was returned at
70143// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70144// to check whether the returned error was because
70145// http.StatusNotModified was returned.
70146func (c *InstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70147	gensupport.SetOptions(c.urlParams_, opts...)
70148	res, err := c.doRequest("json")
70149	if res != nil && res.StatusCode == http.StatusNotModified {
70150		if res.Body != nil {
70151			res.Body.Close()
70152		}
70153		return nil, &googleapi.Error{
70154			Code:   res.StatusCode,
70155			Header: res.Header,
70156		}
70157	}
70158	if err != nil {
70159		return nil, err
70160	}
70161	defer googleapi.CloseBody(res)
70162	if err := googleapi.CheckResponse(res); err != nil {
70163		return nil, err
70164	}
70165	ret := &Operation{
70166		ServerResponse: googleapi.ServerResponse{
70167			Header:         res.Header,
70168			HTTPStatusCode: res.StatusCode,
70169		},
70170	}
70171	target := &ret
70172	if err := gensupport.DecodeResponse(target, res); err != nil {
70173		return nil, err
70174	}
70175	return ret, nil
70176	// {
70177	//   "description": "Deletes selected per-instance configs for the managed instance group.",
70178	//   "httpMethod": "POST",
70179	//   "id": "compute.instanceGroupManagers.deletePerInstanceConfigs",
70180	//   "parameterOrder": [
70181	//     "project",
70182	//     "zone",
70183	//     "instanceGroupManager"
70184	//   ],
70185	//   "parameters": {
70186	//     "instanceGroupManager": {
70187	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
70188	//       "location": "path",
70189	//       "required": true,
70190	//       "type": "string"
70191	//     },
70192	//     "project": {
70193	//       "description": "Project ID for this request.",
70194	//       "location": "path",
70195	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70196	//       "required": true,
70197	//       "type": "string"
70198	//     },
70199	//     "zone": {
70200	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
70201	//       "location": "path",
70202	//       "required": true,
70203	//       "type": "string"
70204	//     }
70205	//   },
70206	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
70207	//   "request": {
70208	//     "$ref": "InstanceGroupManagersDeletePerInstanceConfigsReq"
70209	//   },
70210	//   "response": {
70211	//     "$ref": "Operation"
70212	//   },
70213	//   "scopes": [
70214	//     "https://www.googleapis.com/auth/cloud-platform",
70215	//     "https://www.googleapis.com/auth/compute"
70216	//   ]
70217	// }
70218
70219}
70220
70221// method id "compute.instanceGroupManagers.get":
70222
70223type InstanceGroupManagersGetCall struct {
70224	s                    *Service
70225	project              string
70226	zone                 string
70227	instanceGroupManager string
70228	urlParams_           gensupport.URLParams
70229	ifNoneMatch_         string
70230	ctx_                 context.Context
70231	header_              http.Header
70232}
70233
70234// Get: Returns all of the details about the specified managed instance
70235// group. Gets a list of available managed instance groups by making a
70236// list() request.
70237func (r *InstanceGroupManagersService) Get(project string, zone string, instanceGroupManager string) *InstanceGroupManagersGetCall {
70238	c := &InstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70239	c.project = project
70240	c.zone = zone
70241	c.instanceGroupManager = instanceGroupManager
70242	return c
70243}
70244
70245// Fields allows partial responses to be retrieved. See
70246// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70247// for more information.
70248func (c *InstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *InstanceGroupManagersGetCall {
70249	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70250	return c
70251}
70252
70253// IfNoneMatch sets the optional parameter which makes the operation
70254// fail if the object's ETag matches the given value. This is useful for
70255// getting updates only after the object has changed since the last
70256// request. Use googleapi.IsNotModified to check whether the response
70257// error from Do is the result of In-None-Match.
70258func (c *InstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *InstanceGroupManagersGetCall {
70259	c.ifNoneMatch_ = entityTag
70260	return c
70261}
70262
70263// Context sets the context to be used in this call's Do method. Any
70264// pending HTTP request will be aborted if the provided context is
70265// canceled.
70266func (c *InstanceGroupManagersGetCall) Context(ctx context.Context) *InstanceGroupManagersGetCall {
70267	c.ctx_ = ctx
70268	return c
70269}
70270
70271// Header returns an http.Header that can be modified by the caller to
70272// add HTTP headers to the request.
70273func (c *InstanceGroupManagersGetCall) Header() http.Header {
70274	if c.header_ == nil {
70275		c.header_ = make(http.Header)
70276	}
70277	return c.header_
70278}
70279
70280func (c *InstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
70281	reqHeaders := make(http.Header)
70282	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70283	for k, v := range c.header_ {
70284		reqHeaders[k] = v
70285	}
70286	reqHeaders.Set("User-Agent", c.s.userAgent())
70287	if c.ifNoneMatch_ != "" {
70288		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70289	}
70290	var body io.Reader = nil
70291	c.urlParams_.Set("alt", alt)
70292	c.urlParams_.Set("prettyPrint", "false")
70293	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
70294	urls += "?" + c.urlParams_.Encode()
70295	req, err := http.NewRequest("GET", urls, body)
70296	if err != nil {
70297		return nil, err
70298	}
70299	req.Header = reqHeaders
70300	googleapi.Expand(req.URL, map[string]string{
70301		"project":              c.project,
70302		"zone":                 c.zone,
70303		"instanceGroupManager": c.instanceGroupManager,
70304	})
70305	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70306}
70307
70308// Do executes the "compute.instanceGroupManagers.get" call.
70309// Exactly one of *InstanceGroupManager or error will be non-nil. Any
70310// non-2xx status code is an error. Response headers are in either
70311// *InstanceGroupManager.ServerResponse.Header or (if a response was
70312// returned at all) in error.(*googleapi.Error).Header. Use
70313// googleapi.IsNotModified to check whether the returned error was
70314// because http.StatusNotModified was returned.
70315func (c *InstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
70316	gensupport.SetOptions(c.urlParams_, opts...)
70317	res, err := c.doRequest("json")
70318	if res != nil && res.StatusCode == http.StatusNotModified {
70319		if res.Body != nil {
70320			res.Body.Close()
70321		}
70322		return nil, &googleapi.Error{
70323			Code:   res.StatusCode,
70324			Header: res.Header,
70325		}
70326	}
70327	if err != nil {
70328		return nil, err
70329	}
70330	defer googleapi.CloseBody(res)
70331	if err := googleapi.CheckResponse(res); err != nil {
70332		return nil, err
70333	}
70334	ret := &InstanceGroupManager{
70335		ServerResponse: googleapi.ServerResponse{
70336			Header:         res.Header,
70337			HTTPStatusCode: res.StatusCode,
70338		},
70339	}
70340	target := &ret
70341	if err := gensupport.DecodeResponse(target, res); err != nil {
70342		return nil, err
70343	}
70344	return ret, nil
70345	// {
70346	//   "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.",
70347	//   "httpMethod": "GET",
70348	//   "id": "compute.instanceGroupManagers.get",
70349	//   "parameterOrder": [
70350	//     "project",
70351	//     "zone",
70352	//     "instanceGroupManager"
70353	//   ],
70354	//   "parameters": {
70355	//     "instanceGroupManager": {
70356	//       "description": "The name of the managed instance group.",
70357	//       "location": "path",
70358	//       "required": true,
70359	//       "type": "string"
70360	//     },
70361	//     "project": {
70362	//       "description": "Project ID for this request.",
70363	//       "location": "path",
70364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70365	//       "required": true,
70366	//       "type": "string"
70367	//     },
70368	//     "zone": {
70369	//       "description": "The name of the zone where the managed instance group is located.",
70370	//       "location": "path",
70371	//       "required": true,
70372	//       "type": "string"
70373	//     }
70374	//   },
70375	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
70376	//   "response": {
70377	//     "$ref": "InstanceGroupManager"
70378	//   },
70379	//   "scopes": [
70380	//     "https://www.googleapis.com/auth/cloud-platform",
70381	//     "https://www.googleapis.com/auth/compute",
70382	//     "https://www.googleapis.com/auth/compute.readonly"
70383	//   ]
70384	// }
70385
70386}
70387
70388// method id "compute.instanceGroupManagers.insert":
70389
70390type InstanceGroupManagersInsertCall struct {
70391	s                    *Service
70392	project              string
70393	zone                 string
70394	instancegroupmanager *InstanceGroupManager
70395	urlParams_           gensupport.URLParams
70396	ctx_                 context.Context
70397	header_              http.Header
70398}
70399
70400// Insert: Creates a managed instance group using the information that
70401// you specify in the request. After the group is created, instances in
70402// the group are created using the specified instance template. This
70403// operation is marked as DONE when the group is created even if the
70404// instances in the group have not yet been created. You must separately
70405// verify the status of the individual instances with the
70406// listmanagedinstances method.
70407//
70408// A managed instance group can have up to 1000 VM instances per group.
70409// Please contact Cloud Support if you need an increase in this limit.
70410func (r *InstanceGroupManagersService) Insert(project string, zone string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersInsertCall {
70411	c := &InstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70412	c.project = project
70413	c.zone = zone
70414	c.instancegroupmanager = instancegroupmanager
70415	return c
70416}
70417
70418// RequestId sets the optional parameter "requestId": An optional
70419// request ID to identify requests. Specify a unique request ID so that
70420// if you must retry your request, the server will know to ignore the
70421// request if it has already been completed.
70422//
70423// For example, consider a situation where you make an initial request
70424// and the request times out. If you make the request again with the
70425// same request ID, the server can check if original operation with the
70426// same request ID was received, and if so, will ignore the second
70427// request. This prevents clients from accidentally creating duplicate
70428// commitments.
70429//
70430// The request ID must be a valid UUID with the exception that zero UUID
70431// is not supported (00000000-0000-0000-0000-000000000000).
70432func (c *InstanceGroupManagersInsertCall) RequestId(requestId string) *InstanceGroupManagersInsertCall {
70433	c.urlParams_.Set("requestId", requestId)
70434	return c
70435}
70436
70437// Fields allows partial responses to be retrieved. See
70438// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70439// for more information.
70440func (c *InstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *InstanceGroupManagersInsertCall {
70441	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70442	return c
70443}
70444
70445// Context sets the context to be used in this call's Do method. Any
70446// pending HTTP request will be aborted if the provided context is
70447// canceled.
70448func (c *InstanceGroupManagersInsertCall) Context(ctx context.Context) *InstanceGroupManagersInsertCall {
70449	c.ctx_ = ctx
70450	return c
70451}
70452
70453// Header returns an http.Header that can be modified by the caller to
70454// add HTTP headers to the request.
70455func (c *InstanceGroupManagersInsertCall) Header() http.Header {
70456	if c.header_ == nil {
70457		c.header_ = make(http.Header)
70458	}
70459	return c.header_
70460}
70461
70462func (c *InstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
70463	reqHeaders := make(http.Header)
70464	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70465	for k, v := range c.header_ {
70466		reqHeaders[k] = v
70467	}
70468	reqHeaders.Set("User-Agent", c.s.userAgent())
70469	var body io.Reader = nil
70470	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
70471	if err != nil {
70472		return nil, err
70473	}
70474	reqHeaders.Set("Content-Type", "application/json")
70475	c.urlParams_.Set("alt", alt)
70476	c.urlParams_.Set("prettyPrint", "false")
70477	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
70478	urls += "?" + c.urlParams_.Encode()
70479	req, err := http.NewRequest("POST", urls, body)
70480	if err != nil {
70481		return nil, err
70482	}
70483	req.Header = reqHeaders
70484	googleapi.Expand(req.URL, map[string]string{
70485		"project": c.project,
70486		"zone":    c.zone,
70487	})
70488	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70489}
70490
70491// Do executes the "compute.instanceGroupManagers.insert" call.
70492// Exactly one of *Operation or error will be non-nil. Any non-2xx
70493// status code is an error. Response headers are in either
70494// *Operation.ServerResponse.Header or (if a response was returned at
70495// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
70496// to check whether the returned error was because
70497// http.StatusNotModified was returned.
70498func (c *InstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
70499	gensupport.SetOptions(c.urlParams_, opts...)
70500	res, err := c.doRequest("json")
70501	if res != nil && res.StatusCode == http.StatusNotModified {
70502		if res.Body != nil {
70503			res.Body.Close()
70504		}
70505		return nil, &googleapi.Error{
70506			Code:   res.StatusCode,
70507			Header: res.Header,
70508		}
70509	}
70510	if err != nil {
70511		return nil, err
70512	}
70513	defer googleapi.CloseBody(res)
70514	if err := googleapi.CheckResponse(res); err != nil {
70515		return nil, err
70516	}
70517	ret := &Operation{
70518		ServerResponse: googleapi.ServerResponse{
70519			Header:         res.Header,
70520			HTTPStatusCode: res.StatusCode,
70521		},
70522	}
70523	target := &ret
70524	if err := gensupport.DecodeResponse(target, res); err != nil {
70525		return nil, err
70526	}
70527	return ret, nil
70528	// {
70529	//   "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.",
70530	//   "httpMethod": "POST",
70531	//   "id": "compute.instanceGroupManagers.insert",
70532	//   "parameterOrder": [
70533	//     "project",
70534	//     "zone"
70535	//   ],
70536	//   "parameters": {
70537	//     "project": {
70538	//       "description": "Project ID for this request.",
70539	//       "location": "path",
70540	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70541	//       "required": true,
70542	//       "type": "string"
70543	//     },
70544	//     "requestId": {
70545	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
70546	//       "location": "query",
70547	//       "type": "string"
70548	//     },
70549	//     "zone": {
70550	//       "description": "The name of the zone where you want to create the managed instance group.",
70551	//       "location": "path",
70552	//       "required": true,
70553	//       "type": "string"
70554	//     }
70555	//   },
70556	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
70557	//   "request": {
70558	//     "$ref": "InstanceGroupManager"
70559	//   },
70560	//   "response": {
70561	//     "$ref": "Operation"
70562	//   },
70563	//   "scopes": [
70564	//     "https://www.googleapis.com/auth/cloud-platform",
70565	//     "https://www.googleapis.com/auth/compute"
70566	//   ]
70567	// }
70568
70569}
70570
70571// method id "compute.instanceGroupManagers.list":
70572
70573type InstanceGroupManagersListCall struct {
70574	s            *Service
70575	project      string
70576	zone         string
70577	urlParams_   gensupport.URLParams
70578	ifNoneMatch_ string
70579	ctx_         context.Context
70580	header_      http.Header
70581}
70582
70583// List: Retrieves a list of managed instance groups that are contained
70584// within the specified project and zone.
70585func (r *InstanceGroupManagersService) List(project string, zone string) *InstanceGroupManagersListCall {
70586	c := &InstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70587	c.project = project
70588	c.zone = zone
70589	return c
70590}
70591
70592// Filter sets the optional parameter "filter": A filter expression that
70593// filters resources listed in the response. The expression must specify
70594// the field name, a comparison operator, and the value that you want to
70595// use for filtering. The value must be a string, a number, or a
70596// boolean. The comparison operator must be either =, !=, >, or <.
70597//
70598// For example, if you are filtering Compute Engine instances, you can
70599// exclude instances named example-instance by specifying name !=
70600// example-instance.
70601//
70602// You can also filter nested fields. For example, you could specify
70603// scheduling.automaticRestart = false to include instances only if they
70604// are not scheduled for automatic restarts. You can use filtering on
70605// nested fields to filter based on resource labels.
70606//
70607// To filter on multiple expressions, provide each separate expression
70608// within parentheses. For example, (scheduling.automaticRestart = true)
70609// (cpuPlatform = "Intel Skylake"). By default, each expression is an
70610// AND expression. However, you can include AND and OR expressions
70611// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
70612// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
70613// true).
70614func (c *InstanceGroupManagersListCall) Filter(filter string) *InstanceGroupManagersListCall {
70615	c.urlParams_.Set("filter", filter)
70616	return c
70617}
70618
70619// MaxResults sets the optional parameter "maxResults": The maximum
70620// number of results per page that should be returned. If the number of
70621// available results is larger than maxResults, Compute Engine returns a
70622// nextPageToken that can be used to get the next page of results in
70623// subsequent list requests. Acceptable values are 0 to 500, inclusive.
70624// (Default: 500)
70625func (c *InstanceGroupManagersListCall) MaxResults(maxResults int64) *InstanceGroupManagersListCall {
70626	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70627	return c
70628}
70629
70630// OrderBy sets the optional parameter "orderBy": Sorts list results by
70631// a certain order. By default, results are returned in alphanumerical
70632// order based on the resource name.
70633//
70634// You can also sort results in descending order based on the creation
70635// timestamp using orderBy="creationTimestamp desc". This sorts results
70636// based on the creationTimestamp field in reverse chronological order
70637// (newest result first). Use this to sort resources like operations so
70638// that the newest operation is returned first.
70639//
70640// Currently, only sorting by name or creationTimestamp desc is
70641// supported.
70642func (c *InstanceGroupManagersListCall) OrderBy(orderBy string) *InstanceGroupManagersListCall {
70643	c.urlParams_.Set("orderBy", orderBy)
70644	return c
70645}
70646
70647// PageToken sets the optional parameter "pageToken": Specifies a page
70648// token to use. Set pageToken to the nextPageToken returned by a
70649// previous list request to get the next page of results.
70650func (c *InstanceGroupManagersListCall) PageToken(pageToken string) *InstanceGroupManagersListCall {
70651	c.urlParams_.Set("pageToken", pageToken)
70652	return c
70653}
70654
70655// Fields allows partial responses to be retrieved. See
70656// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70657// for more information.
70658func (c *InstanceGroupManagersListCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListCall {
70659	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70660	return c
70661}
70662
70663// IfNoneMatch sets the optional parameter which makes the operation
70664// fail if the object's ETag matches the given value. This is useful for
70665// getting updates only after the object has changed since the last
70666// request. Use googleapi.IsNotModified to check whether the response
70667// error from Do is the result of In-None-Match.
70668func (c *InstanceGroupManagersListCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListCall {
70669	c.ifNoneMatch_ = entityTag
70670	return c
70671}
70672
70673// Context sets the context to be used in this call's Do method. Any
70674// pending HTTP request will be aborted if the provided context is
70675// canceled.
70676func (c *InstanceGroupManagersListCall) Context(ctx context.Context) *InstanceGroupManagersListCall {
70677	c.ctx_ = ctx
70678	return c
70679}
70680
70681// Header returns an http.Header that can be modified by the caller to
70682// add HTTP headers to the request.
70683func (c *InstanceGroupManagersListCall) Header() http.Header {
70684	if c.header_ == nil {
70685		c.header_ = make(http.Header)
70686	}
70687	return c.header_
70688}
70689
70690func (c *InstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
70691	reqHeaders := make(http.Header)
70692	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70693	for k, v := range c.header_ {
70694		reqHeaders[k] = v
70695	}
70696	reqHeaders.Set("User-Agent", c.s.userAgent())
70697	if c.ifNoneMatch_ != "" {
70698		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70699	}
70700	var body io.Reader = nil
70701	c.urlParams_.Set("alt", alt)
70702	c.urlParams_.Set("prettyPrint", "false")
70703	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers")
70704	urls += "?" + c.urlParams_.Encode()
70705	req, err := http.NewRequest("GET", urls, body)
70706	if err != nil {
70707		return nil, err
70708	}
70709	req.Header = reqHeaders
70710	googleapi.Expand(req.URL, map[string]string{
70711		"project": c.project,
70712		"zone":    c.zone,
70713	})
70714	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70715}
70716
70717// Do executes the "compute.instanceGroupManagers.list" call.
70718// Exactly one of *InstanceGroupManagerList or error will be non-nil.
70719// Any non-2xx status code is an error. Response headers are in either
70720// *InstanceGroupManagerList.ServerResponse.Header or (if a response was
70721// returned at all) in error.(*googleapi.Error).Header. Use
70722// googleapi.IsNotModified to check whether the returned error was
70723// because http.StatusNotModified was returned.
70724func (c *InstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagerList, error) {
70725	gensupport.SetOptions(c.urlParams_, opts...)
70726	res, err := c.doRequest("json")
70727	if res != nil && res.StatusCode == http.StatusNotModified {
70728		if res.Body != nil {
70729			res.Body.Close()
70730		}
70731		return nil, &googleapi.Error{
70732			Code:   res.StatusCode,
70733			Header: res.Header,
70734		}
70735	}
70736	if err != nil {
70737		return nil, err
70738	}
70739	defer googleapi.CloseBody(res)
70740	if err := googleapi.CheckResponse(res); err != nil {
70741		return nil, err
70742	}
70743	ret := &InstanceGroupManagerList{
70744		ServerResponse: googleapi.ServerResponse{
70745			Header:         res.Header,
70746			HTTPStatusCode: res.StatusCode,
70747		},
70748	}
70749	target := &ret
70750	if err := gensupport.DecodeResponse(target, res); err != nil {
70751		return nil, err
70752	}
70753	return ret, nil
70754	// {
70755	//   "description": "Retrieves a list of managed instance groups that are contained within the specified project and zone.",
70756	//   "httpMethod": "GET",
70757	//   "id": "compute.instanceGroupManagers.list",
70758	//   "parameterOrder": [
70759	//     "project",
70760	//     "zone"
70761	//   ],
70762	//   "parameters": {
70763	//     "filter": {
70764	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
70765	//       "location": "query",
70766	//       "type": "string"
70767	//     },
70768	//     "maxResults": {
70769	//       "default": "500",
70770	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
70771	//       "format": "uint32",
70772	//       "location": "query",
70773	//       "minimum": "0",
70774	//       "type": "integer"
70775	//     },
70776	//     "orderBy": {
70777	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
70778	//       "location": "query",
70779	//       "type": "string"
70780	//     },
70781	//     "pageToken": {
70782	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
70783	//       "location": "query",
70784	//       "type": "string"
70785	//     },
70786	//     "project": {
70787	//       "description": "Project ID for this request.",
70788	//       "location": "path",
70789	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
70790	//       "required": true,
70791	//       "type": "string"
70792	//     },
70793	//     "zone": {
70794	//       "description": "The name of the zone where the managed instance group is located.",
70795	//       "location": "path",
70796	//       "required": true,
70797	//       "type": "string"
70798	//     }
70799	//   },
70800	//   "path": "{project}/zones/{zone}/instanceGroupManagers",
70801	//   "response": {
70802	//     "$ref": "InstanceGroupManagerList"
70803	//   },
70804	//   "scopes": [
70805	//     "https://www.googleapis.com/auth/cloud-platform",
70806	//     "https://www.googleapis.com/auth/compute",
70807	//     "https://www.googleapis.com/auth/compute.readonly"
70808	//   ]
70809	// }
70810
70811}
70812
70813// Pages invokes f for each page of results.
70814// A non-nil error returned from f will halt the iteration.
70815// The provided context supersedes any context provided to the Context method.
70816func (c *InstanceGroupManagersListCall) Pages(ctx context.Context, f func(*InstanceGroupManagerList) error) error {
70817	c.ctx_ = ctx
70818	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
70819	for {
70820		x, err := c.Do()
70821		if err != nil {
70822			return err
70823		}
70824		if err := f(x); err != nil {
70825			return err
70826		}
70827		if x.NextPageToken == "" {
70828			return nil
70829		}
70830		c.PageToken(x.NextPageToken)
70831	}
70832}
70833
70834// method id "compute.instanceGroupManagers.listErrors":
70835
70836type InstanceGroupManagersListErrorsCall struct {
70837	s                    *Service
70838	project              string
70839	zone                 string
70840	instanceGroupManager string
70841	urlParams_           gensupport.URLParams
70842	ifNoneMatch_         string
70843	ctx_                 context.Context
70844	header_              http.Header
70845}
70846
70847// ListErrors: Lists all errors thrown by actions on instances for a
70848// given managed instance group.
70849func (r *InstanceGroupManagersService) ListErrors(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListErrorsCall {
70850	c := &InstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
70851	c.project = project
70852	c.zone = zone
70853	c.instanceGroupManager = instanceGroupManager
70854	return c
70855}
70856
70857// Filter sets the optional parameter "filter": A filter expression that
70858// filters resources listed in the response. The expression must specify
70859// the field name, a comparison operator, and the value that you want to
70860// use for filtering. The value must be a string, a number, or a
70861// boolean. The comparison operator must be either =, !=, >, or <.
70862//
70863// For example, if you are filtering Compute Engine instances, you can
70864// exclude instances named example-instance by specifying name !=
70865// example-instance.
70866//
70867// You can also filter nested fields. For example, you could specify
70868// scheduling.automaticRestart = false to include instances only if they
70869// are not scheduled for automatic restarts. You can use filtering on
70870// nested fields to filter based on resource labels.
70871//
70872// To filter on multiple expressions, provide each separate expression
70873// within parentheses. For example, (scheduling.automaticRestart = true)
70874// (cpuPlatform = "Intel Skylake"). By default, each expression is an
70875// AND expression. However, you can include AND and OR expressions
70876// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
70877// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
70878// true).
70879func (c *InstanceGroupManagersListErrorsCall) Filter(filter string) *InstanceGroupManagersListErrorsCall {
70880	c.urlParams_.Set("filter", filter)
70881	return c
70882}
70883
70884// MaxResults sets the optional parameter "maxResults": The maximum
70885// number of results per page that should be returned. If the number of
70886// available results is larger than maxResults, Compute Engine returns a
70887// nextPageToken that can be used to get the next page of results in
70888// subsequent list requests. Acceptable values are 0 to 500, inclusive.
70889// (Default: 500)
70890func (c *InstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *InstanceGroupManagersListErrorsCall {
70891	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
70892	return c
70893}
70894
70895// OrderBy sets the optional parameter "orderBy": Sorts list results by
70896// a certain order. By default, results are returned in alphanumerical
70897// order based on the resource name.
70898//
70899// You can also sort results in descending order based on the creation
70900// timestamp using orderBy="creationTimestamp desc". This sorts results
70901// based on the creationTimestamp field in reverse chronological order
70902// (newest result first). Use this to sort resources like operations so
70903// that the newest operation is returned first.
70904//
70905// Currently, only sorting by name or creationTimestamp desc is
70906// supported.
70907func (c *InstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *InstanceGroupManagersListErrorsCall {
70908	c.urlParams_.Set("orderBy", orderBy)
70909	return c
70910}
70911
70912// PageToken sets the optional parameter "pageToken": Specifies a page
70913// token to use. Set pageToken to the nextPageToken returned by a
70914// previous list request to get the next page of results.
70915func (c *InstanceGroupManagersListErrorsCall) PageToken(pageToken string) *InstanceGroupManagersListErrorsCall {
70916	c.urlParams_.Set("pageToken", pageToken)
70917	return c
70918}
70919
70920// Fields allows partial responses to be retrieved. See
70921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
70922// for more information.
70923func (c *InstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListErrorsCall {
70924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
70925	return c
70926}
70927
70928// IfNoneMatch sets the optional parameter which makes the operation
70929// fail if the object's ETag matches the given value. This is useful for
70930// getting updates only after the object has changed since the last
70931// request. Use googleapi.IsNotModified to check whether the response
70932// error from Do is the result of In-None-Match.
70933func (c *InstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *InstanceGroupManagersListErrorsCall {
70934	c.ifNoneMatch_ = entityTag
70935	return c
70936}
70937
70938// Context sets the context to be used in this call's Do method. Any
70939// pending HTTP request will be aborted if the provided context is
70940// canceled.
70941func (c *InstanceGroupManagersListErrorsCall) Context(ctx context.Context) *InstanceGroupManagersListErrorsCall {
70942	c.ctx_ = ctx
70943	return c
70944}
70945
70946// Header returns an http.Header that can be modified by the caller to
70947// add HTTP headers to the request.
70948func (c *InstanceGroupManagersListErrorsCall) Header() http.Header {
70949	if c.header_ == nil {
70950		c.header_ = make(http.Header)
70951	}
70952	return c.header_
70953}
70954
70955func (c *InstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
70956	reqHeaders := make(http.Header)
70957	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
70958	for k, v := range c.header_ {
70959		reqHeaders[k] = v
70960	}
70961	reqHeaders.Set("User-Agent", c.s.userAgent())
70962	if c.ifNoneMatch_ != "" {
70963		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
70964	}
70965	var body io.Reader = nil
70966	c.urlParams_.Set("alt", alt)
70967	c.urlParams_.Set("prettyPrint", "false")
70968	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors")
70969	urls += "?" + c.urlParams_.Encode()
70970	req, err := http.NewRequest("GET", urls, body)
70971	if err != nil {
70972		return nil, err
70973	}
70974	req.Header = reqHeaders
70975	googleapi.Expand(req.URL, map[string]string{
70976		"project":              c.project,
70977		"zone":                 c.zone,
70978		"instanceGroupManager": c.instanceGroupManager,
70979	})
70980	return gensupport.SendRequest(c.ctx_, c.s.client, req)
70981}
70982
70983// Do executes the "compute.instanceGroupManagers.listErrors" call.
70984// Exactly one of *InstanceGroupManagersListErrorsResponse or error will
70985// be non-nil. Any non-2xx status code is an error. Response headers are
70986// in either
70987// *InstanceGroupManagersListErrorsResponse.ServerResponse.Header or (if
70988// a response was returned at all) in error.(*googleapi.Error).Header.
70989// Use googleapi.IsNotModified to check whether the returned error was
70990// because http.StatusNotModified was returned.
70991func (c *InstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListErrorsResponse, error) {
70992	gensupport.SetOptions(c.urlParams_, opts...)
70993	res, err := c.doRequest("json")
70994	if res != nil && res.StatusCode == http.StatusNotModified {
70995		if res.Body != nil {
70996			res.Body.Close()
70997		}
70998		return nil, &googleapi.Error{
70999			Code:   res.StatusCode,
71000			Header: res.Header,
71001		}
71002	}
71003	if err != nil {
71004		return nil, err
71005	}
71006	defer googleapi.CloseBody(res)
71007	if err := googleapi.CheckResponse(res); err != nil {
71008		return nil, err
71009	}
71010	ret := &InstanceGroupManagersListErrorsResponse{
71011		ServerResponse: googleapi.ServerResponse{
71012			Header:         res.Header,
71013			HTTPStatusCode: res.StatusCode,
71014		},
71015	}
71016	target := &ret
71017	if err := gensupport.DecodeResponse(target, res); err != nil {
71018		return nil, err
71019	}
71020	return ret, nil
71021	// {
71022	//   "description": "Lists all errors thrown by actions on instances for a given managed instance group.",
71023	//   "httpMethod": "GET",
71024	//   "id": "compute.instanceGroupManagers.listErrors",
71025	//   "parameterOrder": [
71026	//     "project",
71027	//     "zone",
71028	//     "instanceGroupManager"
71029	//   ],
71030	//   "parameters": {
71031	//     "filter": {
71032	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
71033	//       "location": "query",
71034	//       "type": "string"
71035	//     },
71036	//     "instanceGroupManager": {
71037	//       "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}.",
71038	//       "location": "path",
71039	//       "required": true,
71040	//       "type": "string"
71041	//     },
71042	//     "maxResults": {
71043	//       "default": "500",
71044	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
71045	//       "format": "uint32",
71046	//       "location": "query",
71047	//       "minimum": "0",
71048	//       "type": "integer"
71049	//     },
71050	//     "orderBy": {
71051	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71052	//       "location": "query",
71053	//       "type": "string"
71054	//     },
71055	//     "pageToken": {
71056	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71057	//       "location": "query",
71058	//       "type": "string"
71059	//     },
71060	//     "project": {
71061	//       "description": "Project ID for this request.",
71062	//       "location": "path",
71063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71064	//       "required": true,
71065	//       "type": "string"
71066	//     },
71067	//     "zone": {
71068	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
71069	//       "location": "path",
71070	//       "required": true,
71071	//       "type": "string"
71072	//     }
71073	//   },
71074	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listErrors",
71075	//   "response": {
71076	//     "$ref": "InstanceGroupManagersListErrorsResponse"
71077	//   },
71078	//   "scopes": [
71079	//     "https://www.googleapis.com/auth/cloud-platform",
71080	//     "https://www.googleapis.com/auth/compute",
71081	//     "https://www.googleapis.com/auth/compute.readonly"
71082	//   ]
71083	// }
71084
71085}
71086
71087// Pages invokes f for each page of results.
71088// A non-nil error returned from f will halt the iteration.
71089// The provided context supersedes any context provided to the Context method.
71090func (c *InstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListErrorsResponse) error) error {
71091	c.ctx_ = ctx
71092	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71093	for {
71094		x, err := c.Do()
71095		if err != nil {
71096			return err
71097		}
71098		if err := f(x); err != nil {
71099			return err
71100		}
71101		if x.NextPageToken == "" {
71102			return nil
71103		}
71104		c.PageToken(x.NextPageToken)
71105	}
71106}
71107
71108// method id "compute.instanceGroupManagers.listManagedInstances":
71109
71110type InstanceGroupManagersListManagedInstancesCall struct {
71111	s                    *Service
71112	project              string
71113	zone                 string
71114	instanceGroupManager string
71115	urlParams_           gensupport.URLParams
71116	ctx_                 context.Context
71117	header_              http.Header
71118}
71119
71120// ListManagedInstances: Lists all of the instances in the managed
71121// instance group. Each instance in the list has a currentAction, which
71122// indicates the action that the managed instance group is performing on
71123// the instance. For example, if the group is still creating an
71124// instance, the currentAction is CREATING. If a previous action failed,
71125// the list displays the errors for that failed action.
71126func (r *InstanceGroupManagersService) ListManagedInstances(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListManagedInstancesCall {
71127	c := &InstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71128	c.project = project
71129	c.zone = zone
71130	c.instanceGroupManager = instanceGroupManager
71131	return c
71132}
71133
71134// Filter sets the optional parameter "filter": A filter expression that
71135// filters resources listed in the response. The expression must specify
71136// the field name, a comparison operator, and the value that you want to
71137// use for filtering. The value must be a string, a number, or a
71138// boolean. The comparison operator must be either =, !=, >, or <.
71139//
71140// For example, if you are filtering Compute Engine instances, you can
71141// exclude instances named example-instance by specifying name !=
71142// example-instance.
71143//
71144// You can also filter nested fields. For example, you could specify
71145// scheduling.automaticRestart = false to include instances only if they
71146// are not scheduled for automatic restarts. You can use filtering on
71147// nested fields to filter based on resource labels.
71148//
71149// To filter on multiple expressions, provide each separate expression
71150// within parentheses. For example, (scheduling.automaticRestart = true)
71151// (cpuPlatform = "Intel Skylake"). By default, each expression is an
71152// AND expression. However, you can include AND and OR expressions
71153// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
71154// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
71155// true).
71156func (c *InstanceGroupManagersListManagedInstancesCall) Filter(filter string) *InstanceGroupManagersListManagedInstancesCall {
71157	c.urlParams_.Set("filter", filter)
71158	return c
71159}
71160
71161// MaxResults sets the optional parameter "maxResults": The maximum
71162// number of results per page that should be returned. If the number of
71163// available results is larger than maxResults, Compute Engine returns a
71164// nextPageToken that can be used to get the next page of results in
71165// subsequent list requests. Acceptable values are 0 to 500, inclusive.
71166// (Default: 500)
71167func (c *InstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *InstanceGroupManagersListManagedInstancesCall {
71168	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71169	return c
71170}
71171
71172// OrderBy sets the optional parameter "order_by": Sorts list results by
71173// a certain order. By default, results are returned in alphanumerical
71174// order based on the resource name.
71175//
71176// You can also sort results in descending order based on the creation
71177// timestamp using orderBy="creationTimestamp desc". This sorts results
71178// based on the creationTimestamp field in reverse chronological order
71179// (newest result first). Use this to sort resources like operations so
71180// that the newest operation is returned first.
71181//
71182// Currently, only sorting by name or creationTimestamp desc is
71183// supported.
71184func (c *InstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *InstanceGroupManagersListManagedInstancesCall {
71185	c.urlParams_.Set("order_by", orderBy)
71186	return c
71187}
71188
71189// PageToken sets the optional parameter "pageToken": Specifies a page
71190// token to use. Set pageToken to the nextPageToken returned by a
71191// previous list request to get the next page of results.
71192func (c *InstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *InstanceGroupManagersListManagedInstancesCall {
71193	c.urlParams_.Set("pageToken", pageToken)
71194	return c
71195}
71196
71197// Fields allows partial responses to be retrieved. See
71198// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71199// for more information.
71200func (c *InstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListManagedInstancesCall {
71201	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71202	return c
71203}
71204
71205// Context sets the context to be used in this call's Do method. Any
71206// pending HTTP request will be aborted if the provided context is
71207// canceled.
71208func (c *InstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *InstanceGroupManagersListManagedInstancesCall {
71209	c.ctx_ = ctx
71210	return c
71211}
71212
71213// Header returns an http.Header that can be modified by the caller to
71214// add HTTP headers to the request.
71215func (c *InstanceGroupManagersListManagedInstancesCall) Header() http.Header {
71216	if c.header_ == nil {
71217		c.header_ = make(http.Header)
71218	}
71219	return c.header_
71220}
71221
71222func (c *InstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
71223	reqHeaders := make(http.Header)
71224	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71225	for k, v := range c.header_ {
71226		reqHeaders[k] = v
71227	}
71228	reqHeaders.Set("User-Agent", c.s.userAgent())
71229	var body io.Reader = nil
71230	c.urlParams_.Set("alt", alt)
71231	c.urlParams_.Set("prettyPrint", "false")
71232	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
71233	urls += "?" + c.urlParams_.Encode()
71234	req, err := http.NewRequest("POST", urls, body)
71235	if err != nil {
71236		return nil, err
71237	}
71238	req.Header = reqHeaders
71239	googleapi.Expand(req.URL, map[string]string{
71240		"project":              c.project,
71241		"zone":                 c.zone,
71242		"instanceGroupManager": c.instanceGroupManager,
71243	})
71244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71245}
71246
71247// Do executes the "compute.instanceGroupManagers.listManagedInstances" call.
71248// Exactly one of *InstanceGroupManagersListManagedInstancesResponse or
71249// error will be non-nil. Any non-2xx status code is an error. Response
71250// headers are in either
71251// *InstanceGroupManagersListManagedInstancesResponse.ServerResponse.Head
71252// er or (if a response was returned at all) in
71253// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
71254// whether the returned error was because http.StatusNotModified was
71255// returned.
71256func (c *InstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListManagedInstancesResponse, error) {
71257	gensupport.SetOptions(c.urlParams_, opts...)
71258	res, err := c.doRequest("json")
71259	if res != nil && res.StatusCode == http.StatusNotModified {
71260		if res.Body != nil {
71261			res.Body.Close()
71262		}
71263		return nil, &googleapi.Error{
71264			Code:   res.StatusCode,
71265			Header: res.Header,
71266		}
71267	}
71268	if err != nil {
71269		return nil, err
71270	}
71271	defer googleapi.CloseBody(res)
71272	if err := googleapi.CheckResponse(res); err != nil {
71273		return nil, err
71274	}
71275	ret := &InstanceGroupManagersListManagedInstancesResponse{
71276		ServerResponse: googleapi.ServerResponse{
71277			Header:         res.Header,
71278			HTTPStatusCode: res.StatusCode,
71279		},
71280	}
71281	target := &ret
71282	if err := gensupport.DecodeResponse(target, res); err != nil {
71283		return nil, err
71284	}
71285	return ret, nil
71286	// {
71287	//   "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.",
71288	//   "httpMethod": "POST",
71289	//   "id": "compute.instanceGroupManagers.listManagedInstances",
71290	//   "parameterOrder": [
71291	//     "project",
71292	//     "zone",
71293	//     "instanceGroupManager"
71294	//   ],
71295	//   "parameters": {
71296	//     "filter": {
71297	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
71298	//       "location": "query",
71299	//       "type": "string"
71300	//     },
71301	//     "instanceGroupManager": {
71302	//       "description": "The name of the managed instance group.",
71303	//       "location": "path",
71304	//       "required": true,
71305	//       "type": "string"
71306	//     },
71307	//     "maxResults": {
71308	//       "default": "500",
71309	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
71310	//       "format": "uint32",
71311	//       "location": "query",
71312	//       "minimum": "0",
71313	//       "type": "integer"
71314	//     },
71315	//     "order_by": {
71316	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71317	//       "location": "query",
71318	//       "type": "string"
71319	//     },
71320	//     "pageToken": {
71321	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71322	//       "location": "query",
71323	//       "type": "string"
71324	//     },
71325	//     "project": {
71326	//       "description": "Project ID for this request.",
71327	//       "location": "path",
71328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71329	//       "required": true,
71330	//       "type": "string"
71331	//     },
71332	//     "zone": {
71333	//       "description": "The name of the zone where the managed instance group is located.",
71334	//       "location": "path",
71335	//       "required": true,
71336	//       "type": "string"
71337	//     }
71338	//   },
71339	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
71340	//   "response": {
71341	//     "$ref": "InstanceGroupManagersListManagedInstancesResponse"
71342	//   },
71343	//   "scopes": [
71344	//     "https://www.googleapis.com/auth/cloud-platform",
71345	//     "https://www.googleapis.com/auth/compute",
71346	//     "https://www.googleapis.com/auth/compute.readonly"
71347	//   ]
71348	// }
71349
71350}
71351
71352// Pages invokes f for each page of results.
71353// A non-nil error returned from f will halt the iteration.
71354// The provided context supersedes any context provided to the Context method.
71355func (c *InstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListManagedInstancesResponse) error) error {
71356	c.ctx_ = ctx
71357	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71358	for {
71359		x, err := c.Do()
71360		if err != nil {
71361			return err
71362		}
71363		if err := f(x); err != nil {
71364			return err
71365		}
71366		if x.NextPageToken == "" {
71367			return nil
71368		}
71369		c.PageToken(x.NextPageToken)
71370	}
71371}
71372
71373// method id "compute.instanceGroupManagers.listPerInstanceConfigs":
71374
71375type InstanceGroupManagersListPerInstanceConfigsCall struct {
71376	s                    *Service
71377	project              string
71378	zone                 string
71379	instanceGroupManager string
71380	urlParams_           gensupport.URLParams
71381	ctx_                 context.Context
71382	header_              http.Header
71383}
71384
71385// ListPerInstanceConfigs: Lists all of the per-instance configs defined
71386// for the managed instance group.
71387func (r *InstanceGroupManagersService) ListPerInstanceConfigs(project string, zone string, instanceGroupManager string) *InstanceGroupManagersListPerInstanceConfigsCall {
71388	c := &InstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71389	c.project = project
71390	c.zone = zone
71391	c.instanceGroupManager = instanceGroupManager
71392	return c
71393}
71394
71395// Filter sets the optional parameter "filter": A filter expression that
71396// filters resources listed in the response. The expression must specify
71397// the field name, a comparison operator, and the value that you want to
71398// use for filtering. The value must be a string, a number, or a
71399// boolean. The comparison operator must be either =, !=, >, or <.
71400//
71401// For example, if you are filtering Compute Engine instances, you can
71402// exclude instances named example-instance by specifying name !=
71403// example-instance.
71404//
71405// You can also filter nested fields. For example, you could specify
71406// scheduling.automaticRestart = false to include instances only if they
71407// are not scheduled for automatic restarts. You can use filtering on
71408// nested fields to filter based on resource labels.
71409//
71410// To filter on multiple expressions, provide each separate expression
71411// within parentheses. For example, (scheduling.automaticRestart = true)
71412// (cpuPlatform = "Intel Skylake"). By default, each expression is an
71413// AND expression. However, you can include AND and OR expressions
71414// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
71415// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
71416// true).
71417func (c *InstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *InstanceGroupManagersListPerInstanceConfigsCall {
71418	c.urlParams_.Set("filter", filter)
71419	return c
71420}
71421
71422// MaxResults sets the optional parameter "maxResults": The maximum
71423// number of results per page that should be returned. If the number of
71424// available results is larger than maxResults, Compute Engine returns a
71425// nextPageToken that can be used to get the next page of results in
71426// subsequent list requests. Acceptable values are 0 to 500, inclusive.
71427// (Default: 500)
71428func (c *InstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *InstanceGroupManagersListPerInstanceConfigsCall {
71429	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
71430	return c
71431}
71432
71433// OrderBy sets the optional parameter "orderBy": Sorts list results by
71434// a certain order. By default, results are returned in alphanumerical
71435// order based on the resource name.
71436//
71437// You can also sort results in descending order based on the creation
71438// timestamp using orderBy="creationTimestamp desc". This sorts results
71439// based on the creationTimestamp field in reverse chronological order
71440// (newest result first). Use this to sort resources like operations so
71441// that the newest operation is returned first.
71442//
71443// Currently, only sorting by name or creationTimestamp desc is
71444// supported.
71445func (c *InstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *InstanceGroupManagersListPerInstanceConfigsCall {
71446	c.urlParams_.Set("orderBy", orderBy)
71447	return c
71448}
71449
71450// PageToken sets the optional parameter "pageToken": Specifies a page
71451// token to use. Set pageToken to the nextPageToken returned by a
71452// previous list request to get the next page of results.
71453func (c *InstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *InstanceGroupManagersListPerInstanceConfigsCall {
71454	c.urlParams_.Set("pageToken", pageToken)
71455	return c
71456}
71457
71458// Fields allows partial responses to be retrieved. See
71459// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71460// for more information.
71461func (c *InstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersListPerInstanceConfigsCall {
71462	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71463	return c
71464}
71465
71466// Context sets the context to be used in this call's Do method. Any
71467// pending HTTP request will be aborted if the provided context is
71468// canceled.
71469func (c *InstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersListPerInstanceConfigsCall {
71470	c.ctx_ = ctx
71471	return c
71472}
71473
71474// Header returns an http.Header that can be modified by the caller to
71475// add HTTP headers to the request.
71476func (c *InstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
71477	if c.header_ == nil {
71478		c.header_ = make(http.Header)
71479	}
71480	return c.header_
71481}
71482
71483func (c *InstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
71484	reqHeaders := make(http.Header)
71485	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71486	for k, v := range c.header_ {
71487		reqHeaders[k] = v
71488	}
71489	reqHeaders.Set("User-Agent", c.s.userAgent())
71490	var body io.Reader = nil
71491	c.urlParams_.Set("alt", alt)
71492	c.urlParams_.Set("prettyPrint", "false")
71493	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
71494	urls += "?" + c.urlParams_.Encode()
71495	req, err := http.NewRequest("POST", urls, body)
71496	if err != nil {
71497		return nil, err
71498	}
71499	req.Header = reqHeaders
71500	googleapi.Expand(req.URL, map[string]string{
71501		"project":              c.project,
71502		"zone":                 c.zone,
71503		"instanceGroupManager": c.instanceGroupManager,
71504	})
71505	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71506}
71507
71508// Do executes the "compute.instanceGroupManagers.listPerInstanceConfigs" call.
71509// Exactly one of *InstanceGroupManagersListPerInstanceConfigsResp or
71510// error will be non-nil. Any non-2xx status code is an error. Response
71511// headers are in either
71512// *InstanceGroupManagersListPerInstanceConfigsResp.ServerResponse.Header
71513//  or (if a response was returned at all) in
71514// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
71515// whether the returned error was because http.StatusNotModified was
71516// returned.
71517func (c *InstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManagersListPerInstanceConfigsResp, error) {
71518	gensupport.SetOptions(c.urlParams_, opts...)
71519	res, err := c.doRequest("json")
71520	if res != nil && res.StatusCode == http.StatusNotModified {
71521		if res.Body != nil {
71522			res.Body.Close()
71523		}
71524		return nil, &googleapi.Error{
71525			Code:   res.StatusCode,
71526			Header: res.Header,
71527		}
71528	}
71529	if err != nil {
71530		return nil, err
71531	}
71532	defer googleapi.CloseBody(res)
71533	if err := googleapi.CheckResponse(res); err != nil {
71534		return nil, err
71535	}
71536	ret := &InstanceGroupManagersListPerInstanceConfigsResp{
71537		ServerResponse: googleapi.ServerResponse{
71538			Header:         res.Header,
71539			HTTPStatusCode: res.StatusCode,
71540		},
71541	}
71542	target := &ret
71543	if err := gensupport.DecodeResponse(target, res); err != nil {
71544		return nil, err
71545	}
71546	return ret, nil
71547	// {
71548	//   "description": "Lists all of the per-instance configs defined for the managed instance group.",
71549	//   "httpMethod": "POST",
71550	//   "id": "compute.instanceGroupManagers.listPerInstanceConfigs",
71551	//   "parameterOrder": [
71552	//     "project",
71553	//     "zone",
71554	//     "instanceGroupManager"
71555	//   ],
71556	//   "parameters": {
71557	//     "filter": {
71558	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
71559	//       "location": "query",
71560	//       "type": "string"
71561	//     },
71562	//     "instanceGroupManager": {
71563	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
71564	//       "location": "path",
71565	//       "required": true,
71566	//       "type": "string"
71567	//     },
71568	//     "maxResults": {
71569	//       "default": "500",
71570	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
71571	//       "format": "uint32",
71572	//       "location": "query",
71573	//       "minimum": "0",
71574	//       "type": "integer"
71575	//     },
71576	//     "orderBy": {
71577	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
71578	//       "location": "query",
71579	//       "type": "string"
71580	//     },
71581	//     "pageToken": {
71582	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
71583	//       "location": "query",
71584	//       "type": "string"
71585	//     },
71586	//     "project": {
71587	//       "description": "Project ID for this request.",
71588	//       "location": "path",
71589	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71590	//       "required": true,
71591	//       "type": "string"
71592	//     },
71593	//     "zone": {
71594	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
71595	//       "location": "path",
71596	//       "required": true,
71597	//       "type": "string"
71598	//     }
71599	//   },
71600	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
71601	//   "response": {
71602	//     "$ref": "InstanceGroupManagersListPerInstanceConfigsResp"
71603	//   },
71604	//   "scopes": [
71605	//     "https://www.googleapis.com/auth/cloud-platform",
71606	//     "https://www.googleapis.com/auth/compute",
71607	//     "https://www.googleapis.com/auth/compute.readonly"
71608	//   ]
71609	// }
71610
71611}
71612
71613// Pages invokes f for each page of results.
71614// A non-nil error returned from f will halt the iteration.
71615// The provided context supersedes any context provided to the Context method.
71616func (c *InstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*InstanceGroupManagersListPerInstanceConfigsResp) error) error {
71617	c.ctx_ = ctx
71618	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
71619	for {
71620		x, err := c.Do()
71621		if err != nil {
71622			return err
71623		}
71624		if err := f(x); err != nil {
71625			return err
71626		}
71627		if x.NextPageToken == "" {
71628			return nil
71629		}
71630		c.PageToken(x.NextPageToken)
71631	}
71632}
71633
71634// method id "compute.instanceGroupManagers.patch":
71635
71636type InstanceGroupManagersPatchCall struct {
71637	s                    *Service
71638	project              string
71639	zone                 string
71640	instanceGroupManager string
71641	instancegroupmanager *InstanceGroupManager
71642	urlParams_           gensupport.URLParams
71643	ctx_                 context.Context
71644	header_              http.Header
71645}
71646
71647// Patch: Updates a managed instance group using the information that
71648// you specify in the request. This operation is marked as DONE when the
71649// group is patched even if the instances in the group are still in the
71650// process of being patched. You must separately verify the status of
71651// the individual instances with the listManagedInstances method. This
71652// method supports PATCH semantics and uses the JSON merge patch format
71653// and processing rules.
71654func (r *InstanceGroupManagersService) Patch(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersPatchCall {
71655	c := &InstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71656	c.project = project
71657	c.zone = zone
71658	c.instanceGroupManager = instanceGroupManager
71659	c.instancegroupmanager = instancegroupmanager
71660	return c
71661}
71662
71663// RequestId sets the optional parameter "requestId": An optional
71664// request ID to identify requests. Specify a unique request ID so that
71665// if you must retry your request, the server will know to ignore the
71666// request if it has already been completed.
71667//
71668// For example, consider a situation where you make an initial request
71669// and the request times out. If you make the request again with the
71670// same request ID, the server can check if original operation with the
71671// same request ID was received, and if so, will ignore the second
71672// request. This prevents clients from accidentally creating duplicate
71673// commitments.
71674//
71675// The request ID must be a valid UUID with the exception that zero UUID
71676// is not supported (00000000-0000-0000-0000-000000000000).
71677func (c *InstanceGroupManagersPatchCall) RequestId(requestId string) *InstanceGroupManagersPatchCall {
71678	c.urlParams_.Set("requestId", requestId)
71679	return c
71680}
71681
71682// Fields allows partial responses to be retrieved. See
71683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71684// for more information.
71685func (c *InstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchCall {
71686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71687	return c
71688}
71689
71690// Context sets the context to be used in this call's Do method. Any
71691// pending HTTP request will be aborted if the provided context is
71692// canceled.
71693func (c *InstanceGroupManagersPatchCall) Context(ctx context.Context) *InstanceGroupManagersPatchCall {
71694	c.ctx_ = ctx
71695	return c
71696}
71697
71698// Header returns an http.Header that can be modified by the caller to
71699// add HTTP headers to the request.
71700func (c *InstanceGroupManagersPatchCall) Header() http.Header {
71701	if c.header_ == nil {
71702		c.header_ = make(http.Header)
71703	}
71704	return c.header_
71705}
71706
71707func (c *InstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
71708	reqHeaders := make(http.Header)
71709	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71710	for k, v := range c.header_ {
71711		reqHeaders[k] = v
71712	}
71713	reqHeaders.Set("User-Agent", c.s.userAgent())
71714	var body io.Reader = nil
71715	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
71716	if err != nil {
71717		return nil, err
71718	}
71719	reqHeaders.Set("Content-Type", "application/json")
71720	c.urlParams_.Set("alt", alt)
71721	c.urlParams_.Set("prettyPrint", "false")
71722	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
71723	urls += "?" + c.urlParams_.Encode()
71724	req, err := http.NewRequest("PATCH", urls, body)
71725	if err != nil {
71726		return nil, err
71727	}
71728	req.Header = reqHeaders
71729	googleapi.Expand(req.URL, map[string]string{
71730		"project":              c.project,
71731		"zone":                 c.zone,
71732		"instanceGroupManager": c.instanceGroupManager,
71733	})
71734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71735}
71736
71737// Do executes the "compute.instanceGroupManagers.patch" call.
71738// Exactly one of *Operation or error will be non-nil. Any non-2xx
71739// status code is an error. Response headers are in either
71740// *Operation.ServerResponse.Header or (if a response was returned at
71741// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71742// to check whether the returned error was because
71743// http.StatusNotModified was returned.
71744func (c *InstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71745	gensupport.SetOptions(c.urlParams_, opts...)
71746	res, err := c.doRequest("json")
71747	if res != nil && res.StatusCode == http.StatusNotModified {
71748		if res.Body != nil {
71749			res.Body.Close()
71750		}
71751		return nil, &googleapi.Error{
71752			Code:   res.StatusCode,
71753			Header: res.Header,
71754		}
71755	}
71756	if err != nil {
71757		return nil, err
71758	}
71759	defer googleapi.CloseBody(res)
71760	if err := googleapi.CheckResponse(res); err != nil {
71761		return nil, err
71762	}
71763	ret := &Operation{
71764		ServerResponse: googleapi.ServerResponse{
71765			Header:         res.Header,
71766			HTTPStatusCode: res.StatusCode,
71767		},
71768	}
71769	target := &ret
71770	if err := gensupport.DecodeResponse(target, res); err != nil {
71771		return nil, err
71772	}
71773	return ret, nil
71774	// {
71775	//   "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.",
71776	//   "httpMethod": "PATCH",
71777	//   "id": "compute.instanceGroupManagers.patch",
71778	//   "parameterOrder": [
71779	//     "project",
71780	//     "zone",
71781	//     "instanceGroupManager"
71782	//   ],
71783	//   "parameters": {
71784	//     "instanceGroupManager": {
71785	//       "description": "The name of the instance group manager.",
71786	//       "location": "path",
71787	//       "required": true,
71788	//       "type": "string"
71789	//     },
71790	//     "project": {
71791	//       "description": "Project ID for this request.",
71792	//       "location": "path",
71793	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71794	//       "required": true,
71795	//       "type": "string"
71796	//     },
71797	//     "requestId": {
71798	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71799	//       "location": "query",
71800	//       "type": "string"
71801	//     },
71802	//     "zone": {
71803	//       "description": "The name of the zone where you want to create the managed instance group.",
71804	//       "location": "path",
71805	//       "required": true,
71806	//       "type": "string"
71807	//     }
71808	//   },
71809	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
71810	//   "request": {
71811	//     "$ref": "InstanceGroupManager"
71812	//   },
71813	//   "response": {
71814	//     "$ref": "Operation"
71815	//   },
71816	//   "scopes": [
71817	//     "https://www.googleapis.com/auth/cloud-platform",
71818	//     "https://www.googleapis.com/auth/compute"
71819	//   ]
71820	// }
71821
71822}
71823
71824// method id "compute.instanceGroupManagers.patchPerInstanceConfigs":
71825
71826type InstanceGroupManagersPatchPerInstanceConfigsCall struct {
71827	s                                               *Service
71828	project                                         string
71829	zone                                            string
71830	instanceGroupManager                            string
71831	instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq
71832	urlParams_                                      gensupport.URLParams
71833	ctx_                                            context.Context
71834	header_                                         http.Header
71835}
71836
71837// PatchPerInstanceConfigs: Insert or patch (for the ones that already
71838// exist) per-instance configs for the managed instance group.
71839// perInstanceConfig.instance serves as a key used to distinguish
71840// whether to perform insert or patch.
71841func (r *InstanceGroupManagersService) PatchPerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagerspatchperinstanceconfigsreq *InstanceGroupManagersPatchPerInstanceConfigsReq) *InstanceGroupManagersPatchPerInstanceConfigsCall {
71842	c := &InstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
71843	c.project = project
71844	c.zone = zone
71845	c.instanceGroupManager = instanceGroupManager
71846	c.instancegroupmanagerspatchperinstanceconfigsreq = instancegroupmanagerspatchperinstanceconfigsreq
71847	return c
71848}
71849
71850// RequestId sets the optional parameter "requestId": An optional
71851// request ID to identify requests. Specify a unique request ID so that
71852// if you must retry your request, the server will know to ignore the
71853// request if it has already been completed.
71854//
71855// For example, consider a situation where you make an initial request
71856// and the request times out. If you make the request again with the
71857// same request ID, the server can check if original operation with the
71858// same request ID was received, and if so, will ignore the second
71859// request. This prevents clients from accidentally creating duplicate
71860// commitments.
71861//
71862// The request ID must be a valid UUID with the exception that zero UUID
71863// is not supported (00000000-0000-0000-0000-000000000000).
71864func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersPatchPerInstanceConfigsCall {
71865	c.urlParams_.Set("requestId", requestId)
71866	return c
71867}
71868
71869// Fields allows partial responses to be retrieved. See
71870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
71871// for more information.
71872func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersPatchPerInstanceConfigsCall {
71873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
71874	return c
71875}
71876
71877// Context sets the context to be used in this call's Do method. Any
71878// pending HTTP request will be aborted if the provided context is
71879// canceled.
71880func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersPatchPerInstanceConfigsCall {
71881	c.ctx_ = ctx
71882	return c
71883}
71884
71885// Header returns an http.Header that can be modified by the caller to
71886// add HTTP headers to the request.
71887func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
71888	if c.header_ == nil {
71889		c.header_ = make(http.Header)
71890	}
71891	return c.header_
71892}
71893
71894func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
71895	reqHeaders := make(http.Header)
71896	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
71897	for k, v := range c.header_ {
71898		reqHeaders[k] = v
71899	}
71900	reqHeaders.Set("User-Agent", c.s.userAgent())
71901	var body io.Reader = nil
71902	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerspatchperinstanceconfigsreq)
71903	if err != nil {
71904		return nil, err
71905	}
71906	reqHeaders.Set("Content-Type", "application/json")
71907	c.urlParams_.Set("alt", alt)
71908	c.urlParams_.Set("prettyPrint", "false")
71909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
71910	urls += "?" + c.urlParams_.Encode()
71911	req, err := http.NewRequest("POST", urls, body)
71912	if err != nil {
71913		return nil, err
71914	}
71915	req.Header = reqHeaders
71916	googleapi.Expand(req.URL, map[string]string{
71917		"project":              c.project,
71918		"zone":                 c.zone,
71919		"instanceGroupManager": c.instanceGroupManager,
71920	})
71921	return gensupport.SendRequest(c.ctx_, c.s.client, req)
71922}
71923
71924// Do executes the "compute.instanceGroupManagers.patchPerInstanceConfigs" call.
71925// Exactly one of *Operation or error will be non-nil. Any non-2xx
71926// status code is an error. Response headers are in either
71927// *Operation.ServerResponse.Header or (if a response was returned at
71928// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
71929// to check whether the returned error was because
71930// http.StatusNotModified was returned.
71931func (c *InstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
71932	gensupport.SetOptions(c.urlParams_, opts...)
71933	res, err := c.doRequest("json")
71934	if res != nil && res.StatusCode == http.StatusNotModified {
71935		if res.Body != nil {
71936			res.Body.Close()
71937		}
71938		return nil, &googleapi.Error{
71939			Code:   res.StatusCode,
71940			Header: res.Header,
71941		}
71942	}
71943	if err != nil {
71944		return nil, err
71945	}
71946	defer googleapi.CloseBody(res)
71947	if err := googleapi.CheckResponse(res); err != nil {
71948		return nil, err
71949	}
71950	ret := &Operation{
71951		ServerResponse: googleapi.ServerResponse{
71952			Header:         res.Header,
71953			HTTPStatusCode: res.StatusCode,
71954		},
71955	}
71956	target := &ret
71957	if err := gensupport.DecodeResponse(target, res); err != nil {
71958		return nil, err
71959	}
71960	return ret, nil
71961	// {
71962	//   "description": "Insert or patch (for the ones that already exist) per-instance configs for the managed instance group. perInstanceConfig.instance serves as a key used to distinguish whether to perform insert or patch.",
71963	//   "httpMethod": "POST",
71964	//   "id": "compute.instanceGroupManagers.patchPerInstanceConfigs",
71965	//   "parameterOrder": [
71966	//     "project",
71967	//     "zone",
71968	//     "instanceGroupManager"
71969	//   ],
71970	//   "parameters": {
71971	//     "instanceGroupManager": {
71972	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
71973	//       "location": "path",
71974	//       "required": true,
71975	//       "type": "string"
71976	//     },
71977	//     "project": {
71978	//       "description": "Project ID for this request.",
71979	//       "location": "path",
71980	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
71981	//       "required": true,
71982	//       "type": "string"
71983	//     },
71984	//     "requestId": {
71985	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
71986	//       "location": "query",
71987	//       "type": "string"
71988	//     },
71989	//     "zone": {
71990	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
71991	//       "location": "path",
71992	//       "required": true,
71993	//       "type": "string"
71994	//     }
71995	//   },
71996	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
71997	//   "request": {
71998	//     "$ref": "InstanceGroupManagersPatchPerInstanceConfigsReq"
71999	//   },
72000	//   "response": {
72001	//     "$ref": "Operation"
72002	//   },
72003	//   "scopes": [
72004	//     "https://www.googleapis.com/auth/cloud-platform",
72005	//     "https://www.googleapis.com/auth/compute"
72006	//   ]
72007	// }
72008
72009}
72010
72011// method id "compute.instanceGroupManagers.recreateInstances":
72012
72013type InstanceGroupManagersRecreateInstancesCall struct {
72014	s                                             *Service
72015	project                                       string
72016	zone                                          string
72017	instanceGroupManager                          string
72018	instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest
72019	urlParams_                                    gensupport.URLParams
72020	ctx_                                          context.Context
72021	header_                                       http.Header
72022}
72023
72024// RecreateInstances: Flags the specified instances in the managed
72025// instance group to be immediately recreated. The instances are deleted
72026// and recreated using the current instance template for the managed
72027// instance group. This operation is marked as DONE when the flag is set
72028// even if the instances have not yet been recreated. You must
72029// separately verify the status of the recreating action with the
72030// listmanagedinstances method.
72031//
72032// If the group is part of a backend service that has enabled connection
72033// draining, it can take up to 60 seconds after the connection draining
72034// duration has elapsed before the VM instance is removed or
72035// deleted.
72036//
72037// You can specify a maximum of 1000 instances with this method per
72038// request.
72039func (r *InstanceGroupManagersService) RecreateInstances(project string, zone string, instanceGroupManager string, instancegroupmanagersrecreateinstancesrequest *InstanceGroupManagersRecreateInstancesRequest) *InstanceGroupManagersRecreateInstancesCall {
72040	c := &InstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72041	c.project = project
72042	c.zone = zone
72043	c.instanceGroupManager = instanceGroupManager
72044	c.instancegroupmanagersrecreateinstancesrequest = instancegroupmanagersrecreateinstancesrequest
72045	return c
72046}
72047
72048// RequestId sets the optional parameter "requestId": An optional
72049// request ID to identify requests. Specify a unique request ID so that
72050// if you must retry your request, the server will know to ignore the
72051// request if it has already been completed.
72052//
72053// For example, consider a situation where you make an initial request
72054// and the request times out. If you make the request again with the
72055// same request ID, the server can check if original operation with the
72056// same request ID was received, and if so, will ignore the second
72057// request. This prevents clients from accidentally creating duplicate
72058// commitments.
72059//
72060// The request ID must be a valid UUID with the exception that zero UUID
72061// is not supported (00000000-0000-0000-0000-000000000000).
72062func (c *InstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *InstanceGroupManagersRecreateInstancesCall {
72063	c.urlParams_.Set("requestId", requestId)
72064	return c
72065}
72066
72067// Fields allows partial responses to be retrieved. See
72068// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72069// for more information.
72070func (c *InstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersRecreateInstancesCall {
72071	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72072	return c
72073}
72074
72075// Context sets the context to be used in this call's Do method. Any
72076// pending HTTP request will be aborted if the provided context is
72077// canceled.
72078func (c *InstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *InstanceGroupManagersRecreateInstancesCall {
72079	c.ctx_ = ctx
72080	return c
72081}
72082
72083// Header returns an http.Header that can be modified by the caller to
72084// add HTTP headers to the request.
72085func (c *InstanceGroupManagersRecreateInstancesCall) Header() http.Header {
72086	if c.header_ == nil {
72087		c.header_ = make(http.Header)
72088	}
72089	return c.header_
72090}
72091
72092func (c *InstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
72093	reqHeaders := make(http.Header)
72094	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72095	for k, v := range c.header_ {
72096		reqHeaders[k] = v
72097	}
72098	reqHeaders.Set("User-Agent", c.s.userAgent())
72099	var body io.Reader = nil
72100	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersrecreateinstancesrequest)
72101	if err != nil {
72102		return nil, err
72103	}
72104	reqHeaders.Set("Content-Type", "application/json")
72105	c.urlParams_.Set("alt", alt)
72106	c.urlParams_.Set("prettyPrint", "false")
72107	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
72108	urls += "?" + c.urlParams_.Encode()
72109	req, err := http.NewRequest("POST", urls, body)
72110	if err != nil {
72111		return nil, err
72112	}
72113	req.Header = reqHeaders
72114	googleapi.Expand(req.URL, map[string]string{
72115		"project":              c.project,
72116		"zone":                 c.zone,
72117		"instanceGroupManager": c.instanceGroupManager,
72118	})
72119	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72120}
72121
72122// Do executes the "compute.instanceGroupManagers.recreateInstances" call.
72123// Exactly one of *Operation or error will be non-nil. Any non-2xx
72124// status code is an error. Response headers are in either
72125// *Operation.ServerResponse.Header or (if a response was returned at
72126// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72127// to check whether the returned error was because
72128// http.StatusNotModified was returned.
72129func (c *InstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72130	gensupport.SetOptions(c.urlParams_, opts...)
72131	res, err := c.doRequest("json")
72132	if res != nil && res.StatusCode == http.StatusNotModified {
72133		if res.Body != nil {
72134			res.Body.Close()
72135		}
72136		return nil, &googleapi.Error{
72137			Code:   res.StatusCode,
72138			Header: res.Header,
72139		}
72140	}
72141	if err != nil {
72142		return nil, err
72143	}
72144	defer googleapi.CloseBody(res)
72145	if err := googleapi.CheckResponse(res); err != nil {
72146		return nil, err
72147	}
72148	ret := &Operation{
72149		ServerResponse: googleapi.ServerResponse{
72150			Header:         res.Header,
72151			HTTPStatusCode: res.StatusCode,
72152		},
72153	}
72154	target := &ret
72155	if err := gensupport.DecodeResponse(target, res); err != nil {
72156		return nil, err
72157	}
72158	return ret, nil
72159	// {
72160	//   "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.",
72161	//   "httpMethod": "POST",
72162	//   "id": "compute.instanceGroupManagers.recreateInstances",
72163	//   "parameterOrder": [
72164	//     "project",
72165	//     "zone",
72166	//     "instanceGroupManager"
72167	//   ],
72168	//   "parameters": {
72169	//     "instanceGroupManager": {
72170	//       "description": "The name of the managed instance group.",
72171	//       "location": "path",
72172	//       "required": true,
72173	//       "type": "string"
72174	//     },
72175	//     "project": {
72176	//       "description": "Project ID for this request.",
72177	//       "location": "path",
72178	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72179	//       "required": true,
72180	//       "type": "string"
72181	//     },
72182	//     "requestId": {
72183	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72184	//       "location": "query",
72185	//       "type": "string"
72186	//     },
72187	//     "zone": {
72188	//       "description": "The name of the zone where the managed instance group is located.",
72189	//       "location": "path",
72190	//       "required": true,
72191	//       "type": "string"
72192	//     }
72193	//   },
72194	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
72195	//   "request": {
72196	//     "$ref": "InstanceGroupManagersRecreateInstancesRequest"
72197	//   },
72198	//   "response": {
72199	//     "$ref": "Operation"
72200	//   },
72201	//   "scopes": [
72202	//     "https://www.googleapis.com/auth/cloud-platform",
72203	//     "https://www.googleapis.com/auth/compute"
72204	//   ]
72205	// }
72206
72207}
72208
72209// method id "compute.instanceGroupManagers.resize":
72210
72211type InstanceGroupManagersResizeCall struct {
72212	s                    *Service
72213	project              string
72214	zone                 string
72215	instanceGroupManager string
72216	urlParams_           gensupport.URLParams
72217	ctx_                 context.Context
72218	header_              http.Header
72219}
72220
72221// Resize: Resizes the managed instance group. If you increase the size,
72222// the group creates new instances using the current instance template.
72223// If you decrease the size, the group deletes instances. The resize
72224// operation is marked DONE when the resize actions are scheduled even
72225// if the group has not yet added or deleted any instances. You must
72226// separately verify the status of the creating or deleting actions with
72227// the listmanagedinstances method.
72228//
72229// When resizing down, the instance group arbitrarily chooses the order
72230// in which VMs are deleted. The group takes into account some VM
72231// attributes when making the selection including:
72232//
72233// + The status of the VM instance. + The health of the VM instance. +
72234// The instance template version the VM is based on. + For regional
72235// managed instance groups, the location of the VM instance.
72236//
72237// This list is subject to change.
72238//
72239// If the group is part of a backend service that has enabled connection
72240// draining, it can take up to 60 seconds after the connection draining
72241// duration has elapsed before the VM instance is removed or deleted.
72242func (r *InstanceGroupManagersService) Resize(project string, zone string, instanceGroupManager string, size int64) *InstanceGroupManagersResizeCall {
72243	c := &InstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72244	c.project = project
72245	c.zone = zone
72246	c.instanceGroupManager = instanceGroupManager
72247	c.urlParams_.Set("size", fmt.Sprint(size))
72248	return c
72249}
72250
72251// RequestId sets the optional parameter "requestId": An optional
72252// request ID to identify requests. Specify a unique request ID so that
72253// if you must retry your request, the server will know to ignore the
72254// request if it has already been completed.
72255//
72256// For example, consider a situation where you make an initial request
72257// and the request times out. If you make the request again with the
72258// same request ID, the server can check if original operation with the
72259// same request ID was received, and if so, will ignore the second
72260// request. This prevents clients from accidentally creating duplicate
72261// commitments.
72262//
72263// The request ID must be a valid UUID with the exception that zero UUID
72264// is not supported (00000000-0000-0000-0000-000000000000).
72265func (c *InstanceGroupManagersResizeCall) RequestId(requestId string) *InstanceGroupManagersResizeCall {
72266	c.urlParams_.Set("requestId", requestId)
72267	return c
72268}
72269
72270// Fields allows partial responses to be retrieved. See
72271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72272// for more information.
72273func (c *InstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeCall {
72274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72275	return c
72276}
72277
72278// Context sets the context to be used in this call's Do method. Any
72279// pending HTTP request will be aborted if the provided context is
72280// canceled.
72281func (c *InstanceGroupManagersResizeCall) Context(ctx context.Context) *InstanceGroupManagersResizeCall {
72282	c.ctx_ = ctx
72283	return c
72284}
72285
72286// Header returns an http.Header that can be modified by the caller to
72287// add HTTP headers to the request.
72288func (c *InstanceGroupManagersResizeCall) Header() http.Header {
72289	if c.header_ == nil {
72290		c.header_ = make(http.Header)
72291	}
72292	return c.header_
72293}
72294
72295func (c *InstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
72296	reqHeaders := make(http.Header)
72297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72298	for k, v := range c.header_ {
72299		reqHeaders[k] = v
72300	}
72301	reqHeaders.Set("User-Agent", c.s.userAgent())
72302	var body io.Reader = nil
72303	c.urlParams_.Set("alt", alt)
72304	c.urlParams_.Set("prettyPrint", "false")
72305	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize")
72306	urls += "?" + c.urlParams_.Encode()
72307	req, err := http.NewRequest("POST", urls, body)
72308	if err != nil {
72309		return nil, err
72310	}
72311	req.Header = reqHeaders
72312	googleapi.Expand(req.URL, map[string]string{
72313		"project":              c.project,
72314		"zone":                 c.zone,
72315		"instanceGroupManager": c.instanceGroupManager,
72316	})
72317	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72318}
72319
72320// Do executes the "compute.instanceGroupManagers.resize" call.
72321// Exactly one of *Operation or error will be non-nil. Any non-2xx
72322// status code is an error. Response headers are in either
72323// *Operation.ServerResponse.Header or (if a response was returned at
72324// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72325// to check whether the returned error was because
72326// http.StatusNotModified was returned.
72327func (c *InstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72328	gensupport.SetOptions(c.urlParams_, opts...)
72329	res, err := c.doRequest("json")
72330	if res != nil && res.StatusCode == http.StatusNotModified {
72331		if res.Body != nil {
72332			res.Body.Close()
72333		}
72334		return nil, &googleapi.Error{
72335			Code:   res.StatusCode,
72336			Header: res.Header,
72337		}
72338	}
72339	if err != nil {
72340		return nil, err
72341	}
72342	defer googleapi.CloseBody(res)
72343	if err := googleapi.CheckResponse(res); err != nil {
72344		return nil, err
72345	}
72346	ret := &Operation{
72347		ServerResponse: googleapi.ServerResponse{
72348			Header:         res.Header,
72349			HTTPStatusCode: res.StatusCode,
72350		},
72351	}
72352	target := &ret
72353	if err := gensupport.DecodeResponse(target, res); err != nil {
72354		return nil, err
72355	}
72356	return ret, nil
72357	// {
72358	//   "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.",
72359	//   "httpMethod": "POST",
72360	//   "id": "compute.instanceGroupManagers.resize",
72361	//   "parameterOrder": [
72362	//     "project",
72363	//     "zone",
72364	//     "instanceGroupManager",
72365	//     "size"
72366	//   ],
72367	//   "parameters": {
72368	//     "instanceGroupManager": {
72369	//       "description": "The name of the managed instance group.",
72370	//       "location": "path",
72371	//       "required": true,
72372	//       "type": "string"
72373	//     },
72374	//     "project": {
72375	//       "description": "Project ID for this request.",
72376	//       "location": "path",
72377	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72378	//       "required": true,
72379	//       "type": "string"
72380	//     },
72381	//     "requestId": {
72382	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72383	//       "location": "query",
72384	//       "type": "string"
72385	//     },
72386	//     "size": {
72387	//       "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.",
72388	//       "format": "int32",
72389	//       "location": "query",
72390	//       "required": true,
72391	//       "type": "integer"
72392	//     },
72393	//     "zone": {
72394	//       "description": "The name of the zone where the managed instance group is located.",
72395	//       "location": "path",
72396	//       "required": true,
72397	//       "type": "string"
72398	//     }
72399	//   },
72400	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resize",
72401	//   "response": {
72402	//     "$ref": "Operation"
72403	//   },
72404	//   "scopes": [
72405	//     "https://www.googleapis.com/auth/cloud-platform",
72406	//     "https://www.googleapis.com/auth/compute"
72407	//   ]
72408	// }
72409
72410}
72411
72412// method id "compute.instanceGroupManagers.resizeAdvanced":
72413
72414type InstanceGroupManagersResizeAdvancedCall struct {
72415	s                                          *Service
72416	project                                    string
72417	zone                                       string
72418	instanceGroupManager                       string
72419	instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest
72420	urlParams_                                 gensupport.URLParams
72421	ctx_                                       context.Context
72422	header_                                    http.Header
72423}
72424
72425// ResizeAdvanced: Resizes the managed instance group with advanced
72426// configuration options like disabling creation retries. This is an
72427// extended version of the resize method.
72428//
72429// If you increase the size of the instance group, the group creates new
72430// instances using the current instance template. If you decrease the
72431// size, the group deletes instances. The resize operation is marked
72432// DONE when the resize actions are scheduled even if the group has not
72433// yet added or deleted any instances. You must separately verify the
72434// status of the creating, creatingWithoutRetries, or deleting actions
72435// with the get or listmanagedinstances method.
72436//
72437// If the group is part of a backend service that has enabled connection
72438// draining, it can take up to 60 seconds after the connection draining
72439// duration has elapsed before the VM instance is removed or deleted.
72440func (r *InstanceGroupManagersService) ResizeAdvanced(project string, zone string, instanceGroupManager string, instancegroupmanagersresizeadvancedrequest *InstanceGroupManagersResizeAdvancedRequest) *InstanceGroupManagersResizeAdvancedCall {
72441	c := &InstanceGroupManagersResizeAdvancedCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72442	c.project = project
72443	c.zone = zone
72444	c.instanceGroupManager = instanceGroupManager
72445	c.instancegroupmanagersresizeadvancedrequest = instancegroupmanagersresizeadvancedrequest
72446	return c
72447}
72448
72449// RequestId sets the optional parameter "requestId": An optional
72450// request ID to identify requests. Specify a unique request ID so that
72451// if you must retry your request, the server will know to ignore the
72452// request if it has already been completed.
72453//
72454// For example, consider a situation where you make an initial request
72455// and the request times out. If you make the request again with the
72456// same request ID, the server can check if original operation with the
72457// same request ID was received, and if so, will ignore the second
72458// request. This prevents clients from accidentally creating duplicate
72459// commitments.
72460//
72461// The request ID must be a valid UUID with the exception that zero UUID
72462// is not supported (00000000-0000-0000-0000-000000000000).
72463func (c *InstanceGroupManagersResizeAdvancedCall) RequestId(requestId string) *InstanceGroupManagersResizeAdvancedCall {
72464	c.urlParams_.Set("requestId", requestId)
72465	return c
72466}
72467
72468// Fields allows partial responses to be retrieved. See
72469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72470// for more information.
72471func (c *InstanceGroupManagersResizeAdvancedCall) Fields(s ...googleapi.Field) *InstanceGroupManagersResizeAdvancedCall {
72472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72473	return c
72474}
72475
72476// Context sets the context to be used in this call's Do method. Any
72477// pending HTTP request will be aborted if the provided context is
72478// canceled.
72479func (c *InstanceGroupManagersResizeAdvancedCall) Context(ctx context.Context) *InstanceGroupManagersResizeAdvancedCall {
72480	c.ctx_ = ctx
72481	return c
72482}
72483
72484// Header returns an http.Header that can be modified by the caller to
72485// add HTTP headers to the request.
72486func (c *InstanceGroupManagersResizeAdvancedCall) Header() http.Header {
72487	if c.header_ == nil {
72488		c.header_ = make(http.Header)
72489	}
72490	return c.header_
72491}
72492
72493func (c *InstanceGroupManagersResizeAdvancedCall) doRequest(alt string) (*http.Response, error) {
72494	reqHeaders := make(http.Header)
72495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72496	for k, v := range c.header_ {
72497		reqHeaders[k] = v
72498	}
72499	reqHeaders.Set("User-Agent", c.s.userAgent())
72500	var body io.Reader = nil
72501	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersresizeadvancedrequest)
72502	if err != nil {
72503		return nil, err
72504	}
72505	reqHeaders.Set("Content-Type", "application/json")
72506	c.urlParams_.Set("alt", alt)
72507	c.urlParams_.Set("prettyPrint", "false")
72508	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced")
72509	urls += "?" + c.urlParams_.Encode()
72510	req, err := http.NewRequest("POST", urls, body)
72511	if err != nil {
72512		return nil, err
72513	}
72514	req.Header = reqHeaders
72515	googleapi.Expand(req.URL, map[string]string{
72516		"project":              c.project,
72517		"zone":                 c.zone,
72518		"instanceGroupManager": c.instanceGroupManager,
72519	})
72520	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72521}
72522
72523// Do executes the "compute.instanceGroupManagers.resizeAdvanced" call.
72524// Exactly one of *Operation or error will be non-nil. Any non-2xx
72525// status code is an error. Response headers are in either
72526// *Operation.ServerResponse.Header or (if a response was returned at
72527// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72528// to check whether the returned error was because
72529// http.StatusNotModified was returned.
72530func (c *InstanceGroupManagersResizeAdvancedCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72531	gensupport.SetOptions(c.urlParams_, opts...)
72532	res, err := c.doRequest("json")
72533	if res != nil && res.StatusCode == http.StatusNotModified {
72534		if res.Body != nil {
72535			res.Body.Close()
72536		}
72537		return nil, &googleapi.Error{
72538			Code:   res.StatusCode,
72539			Header: res.Header,
72540		}
72541	}
72542	if err != nil {
72543		return nil, err
72544	}
72545	defer googleapi.CloseBody(res)
72546	if err := googleapi.CheckResponse(res); err != nil {
72547		return nil, err
72548	}
72549	ret := &Operation{
72550		ServerResponse: googleapi.ServerResponse{
72551			Header:         res.Header,
72552			HTTPStatusCode: res.StatusCode,
72553		},
72554	}
72555	target := &ret
72556	if err := gensupport.DecodeResponse(target, res); err != nil {
72557		return nil, err
72558	}
72559	return ret, nil
72560	// {
72561	//   "description": "Resizes the managed instance group with advanced configuration options like disabling creation retries. This is an extended version of the resize method.\n\nIf you increase the size of the instance group, the group creates new instances using the current instance template. If you decrease the size, the group deletes instances. The resize operation is marked DONE when the resize actions are scheduled even if the group has not yet added or deleted any instances. You must separately verify the status of the creating, creatingWithoutRetries, or deleting actions with the get or listmanagedinstances method.\n\nIf the group is part of a backend service that has enabled connection draining, it can take up to 60 seconds after the connection draining duration has elapsed before the VM instance is removed or deleted.",
72562	//   "httpMethod": "POST",
72563	//   "id": "compute.instanceGroupManagers.resizeAdvanced",
72564	//   "parameterOrder": [
72565	//     "project",
72566	//     "zone",
72567	//     "instanceGroupManager"
72568	//   ],
72569	//   "parameters": {
72570	//     "instanceGroupManager": {
72571	//       "description": "The name of the managed instance group.",
72572	//       "location": "path",
72573	//       "required": true,
72574	//       "type": "string"
72575	//     },
72576	//     "project": {
72577	//       "description": "Project ID for this request.",
72578	//       "location": "path",
72579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72580	//       "required": true,
72581	//       "type": "string"
72582	//     },
72583	//     "requestId": {
72584	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72585	//       "location": "query",
72586	//       "type": "string"
72587	//     },
72588	//     "zone": {
72589	//       "description": "The name of the zone where the managed instance group is located.",
72590	//       "location": "path",
72591	//       "required": true,
72592	//       "type": "string"
72593	//     }
72594	//   },
72595	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/resizeAdvanced",
72596	//   "request": {
72597	//     "$ref": "InstanceGroupManagersResizeAdvancedRequest"
72598	//   },
72599	//   "response": {
72600	//     "$ref": "Operation"
72601	//   },
72602	//   "scopes": [
72603	//     "https://www.googleapis.com/auth/cloud-platform",
72604	//     "https://www.googleapis.com/auth/compute"
72605	//   ]
72606	// }
72607
72608}
72609
72610// method id "compute.instanceGroupManagers.setAutoHealingPolicies":
72611
72612type InstanceGroupManagersSetAutoHealingPoliciesCall struct {
72613	s                                          *Service
72614	project                                    string
72615	zone                                       string
72616	instanceGroupManager                       string
72617	instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest
72618	urlParams_                                 gensupport.URLParams
72619	ctx_                                       context.Context
72620	header_                                    http.Header
72621}
72622
72623// SetAutoHealingPolicies: Modifies the autohealing policies.
72624// [Deprecated] This method is deprecated. Please use Patch instead.
72625func (r *InstanceGroupManagersService) SetAutoHealingPolicies(project string, zone string, instanceGroupManager string, instancegroupmanagerssetautohealingrequest *InstanceGroupManagersSetAutoHealingRequest) *InstanceGroupManagersSetAutoHealingPoliciesCall {
72626	c := &InstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72627	c.project = project
72628	c.zone = zone
72629	c.instanceGroupManager = instanceGroupManager
72630	c.instancegroupmanagerssetautohealingrequest = instancegroupmanagerssetautohealingrequest
72631	return c
72632}
72633
72634// RequestId sets the optional parameter "requestId": An optional
72635// request ID to identify requests. Specify a unique request ID so that
72636// if you must retry your request, the server will know to ignore the
72637// request if it has already been completed.
72638//
72639// For example, consider a situation where you make an initial request
72640// and the request times out. If you make the request again with the
72641// same request ID, the server can check if original operation with the
72642// same request ID was received, and if so, will ignore the second
72643// request. This prevents clients from accidentally creating duplicate
72644// commitments.
72645//
72646// The request ID must be a valid UUID with the exception that zero UUID
72647// is not supported (00000000-0000-0000-0000-000000000000).
72648func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *InstanceGroupManagersSetAutoHealingPoliciesCall {
72649	c.urlParams_.Set("requestId", requestId)
72650	return c
72651}
72652
72653// Fields allows partial responses to be retrieved. See
72654// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72655// for more information.
72656func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetAutoHealingPoliciesCall {
72657	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72658	return c
72659}
72660
72661// Context sets the context to be used in this call's Do method. Any
72662// pending HTTP request will be aborted if the provided context is
72663// canceled.
72664func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *InstanceGroupManagersSetAutoHealingPoliciesCall {
72665	c.ctx_ = ctx
72666	return c
72667}
72668
72669// Header returns an http.Header that can be modified by the caller to
72670// add HTTP headers to the request.
72671func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
72672	if c.header_ == nil {
72673		c.header_ = make(http.Header)
72674	}
72675	return c.header_
72676}
72677
72678func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
72679	reqHeaders := make(http.Header)
72680	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72681	for k, v := range c.header_ {
72682		reqHeaders[k] = v
72683	}
72684	reqHeaders.Set("User-Agent", c.s.userAgent())
72685	var body io.Reader = nil
72686	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetautohealingrequest)
72687	if err != nil {
72688		return nil, err
72689	}
72690	reqHeaders.Set("Content-Type", "application/json")
72691	c.urlParams_.Set("alt", alt)
72692	c.urlParams_.Set("prettyPrint", "false")
72693	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
72694	urls += "?" + c.urlParams_.Encode()
72695	req, err := http.NewRequest("POST", urls, body)
72696	if err != nil {
72697		return nil, err
72698	}
72699	req.Header = reqHeaders
72700	googleapi.Expand(req.URL, map[string]string{
72701		"project":              c.project,
72702		"zone":                 c.zone,
72703		"instanceGroupManager": c.instanceGroupManager,
72704	})
72705	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72706}
72707
72708// Do executes the "compute.instanceGroupManagers.setAutoHealingPolicies" call.
72709// Exactly one of *Operation or error will be non-nil. Any non-2xx
72710// status code is an error. Response headers are in either
72711// *Operation.ServerResponse.Header or (if a response was returned at
72712// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72713// to check whether the returned error was because
72714// http.StatusNotModified was returned.
72715func (c *InstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72716	gensupport.SetOptions(c.urlParams_, opts...)
72717	res, err := c.doRequest("json")
72718	if res != nil && res.StatusCode == http.StatusNotModified {
72719		if res.Body != nil {
72720			res.Body.Close()
72721		}
72722		return nil, &googleapi.Error{
72723			Code:   res.StatusCode,
72724			Header: res.Header,
72725		}
72726	}
72727	if err != nil {
72728		return nil, err
72729	}
72730	defer googleapi.CloseBody(res)
72731	if err := googleapi.CheckResponse(res); err != nil {
72732		return nil, err
72733	}
72734	ret := &Operation{
72735		ServerResponse: googleapi.ServerResponse{
72736			Header:         res.Header,
72737			HTTPStatusCode: res.StatusCode,
72738		},
72739	}
72740	target := &ret
72741	if err := gensupport.DecodeResponse(target, res); err != nil {
72742		return nil, err
72743	}
72744	return ret, nil
72745	// {
72746	//   "description": "Modifies the autohealing policies. [Deprecated] This method is deprecated. Please use Patch instead.",
72747	//   "httpMethod": "POST",
72748	//   "id": "compute.instanceGroupManagers.setAutoHealingPolicies",
72749	//   "parameterOrder": [
72750	//     "project",
72751	//     "zone",
72752	//     "instanceGroupManager"
72753	//   ],
72754	//   "parameters": {
72755	//     "instanceGroupManager": {
72756	//       "description": "The name of the instance group manager.",
72757	//       "location": "path",
72758	//       "required": true,
72759	//       "type": "string"
72760	//     },
72761	//     "project": {
72762	//       "description": "Project ID for this request.",
72763	//       "location": "path",
72764	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72765	//       "required": true,
72766	//       "type": "string"
72767	//     },
72768	//     "requestId": {
72769	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72770	//       "location": "query",
72771	//       "type": "string"
72772	//     },
72773	//     "zone": {
72774	//       "description": "The name of the zone where the managed instance group is located.",
72775	//       "location": "path",
72776	//       "required": true,
72777	//       "type": "string"
72778	//     }
72779	//   },
72780	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
72781	//   "request": {
72782	//     "$ref": "InstanceGroupManagersSetAutoHealingRequest"
72783	//   },
72784	//   "response": {
72785	//     "$ref": "Operation"
72786	//   },
72787	//   "scopes": [
72788	//     "https://www.googleapis.com/auth/cloud-platform",
72789	//     "https://www.googleapis.com/auth/compute"
72790	//   ]
72791	// }
72792
72793}
72794
72795// method id "compute.instanceGroupManagers.setInstanceTemplate":
72796
72797type InstanceGroupManagersSetInstanceTemplateCall struct {
72798	s                                               *Service
72799	project                                         string
72800	zone                                            string
72801	instanceGroupManager                            string
72802	instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest
72803	urlParams_                                      gensupport.URLParams
72804	ctx_                                            context.Context
72805	header_                                         http.Header
72806}
72807
72808// SetInstanceTemplate: Specifies the instance template to use when
72809// creating new instances in this group. The templates for existing
72810// instances in the group do not change unless you recreate them.
72811func (r *InstanceGroupManagersService) SetInstanceTemplate(project string, zone string, instanceGroupManager string, instancegroupmanagerssetinstancetemplaterequest *InstanceGroupManagersSetInstanceTemplateRequest) *InstanceGroupManagersSetInstanceTemplateCall {
72812	c := &InstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
72813	c.project = project
72814	c.zone = zone
72815	c.instanceGroupManager = instanceGroupManager
72816	c.instancegroupmanagerssetinstancetemplaterequest = instancegroupmanagerssetinstancetemplaterequest
72817	return c
72818}
72819
72820// RequestId sets the optional parameter "requestId": An optional
72821// request ID to identify requests. Specify a unique request ID so that
72822// if you must retry your request, the server will know to ignore the
72823// request if it has already been completed.
72824//
72825// For example, consider a situation where you make an initial request
72826// and the request times out. If you make the request again with the
72827// same request ID, the server can check if original operation with the
72828// same request ID was received, and if so, will ignore the second
72829// request. This prevents clients from accidentally creating duplicate
72830// commitments.
72831//
72832// The request ID must be a valid UUID with the exception that zero UUID
72833// is not supported (00000000-0000-0000-0000-000000000000).
72834func (c *InstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *InstanceGroupManagersSetInstanceTemplateCall {
72835	c.urlParams_.Set("requestId", requestId)
72836	return c
72837}
72838
72839// Fields allows partial responses to be retrieved. See
72840// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
72841// for more information.
72842func (c *InstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetInstanceTemplateCall {
72843	c.urlParams_.Set("fields", googleapi.CombineFields(s))
72844	return c
72845}
72846
72847// Context sets the context to be used in this call's Do method. Any
72848// pending HTTP request will be aborted if the provided context is
72849// canceled.
72850func (c *InstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *InstanceGroupManagersSetInstanceTemplateCall {
72851	c.ctx_ = ctx
72852	return c
72853}
72854
72855// Header returns an http.Header that can be modified by the caller to
72856// add HTTP headers to the request.
72857func (c *InstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
72858	if c.header_ == nil {
72859		c.header_ = make(http.Header)
72860	}
72861	return c.header_
72862}
72863
72864func (c *InstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
72865	reqHeaders := make(http.Header)
72866	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
72867	for k, v := range c.header_ {
72868		reqHeaders[k] = v
72869	}
72870	reqHeaders.Set("User-Agent", c.s.userAgent())
72871	var body io.Reader = nil
72872	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssetinstancetemplaterequest)
72873	if err != nil {
72874		return nil, err
72875	}
72876	reqHeaders.Set("Content-Type", "application/json")
72877	c.urlParams_.Set("alt", alt)
72878	c.urlParams_.Set("prettyPrint", "false")
72879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
72880	urls += "?" + c.urlParams_.Encode()
72881	req, err := http.NewRequest("POST", urls, body)
72882	if err != nil {
72883		return nil, err
72884	}
72885	req.Header = reqHeaders
72886	googleapi.Expand(req.URL, map[string]string{
72887		"project":              c.project,
72888		"zone":                 c.zone,
72889		"instanceGroupManager": c.instanceGroupManager,
72890	})
72891	return gensupport.SendRequest(c.ctx_, c.s.client, req)
72892}
72893
72894// Do executes the "compute.instanceGroupManagers.setInstanceTemplate" call.
72895// Exactly one of *Operation or error will be non-nil. Any non-2xx
72896// status code is an error. Response headers are in either
72897// *Operation.ServerResponse.Header or (if a response was returned at
72898// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
72899// to check whether the returned error was because
72900// http.StatusNotModified was returned.
72901func (c *InstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
72902	gensupport.SetOptions(c.urlParams_, opts...)
72903	res, err := c.doRequest("json")
72904	if res != nil && res.StatusCode == http.StatusNotModified {
72905		if res.Body != nil {
72906			res.Body.Close()
72907		}
72908		return nil, &googleapi.Error{
72909			Code:   res.StatusCode,
72910			Header: res.Header,
72911		}
72912	}
72913	if err != nil {
72914		return nil, err
72915	}
72916	defer googleapi.CloseBody(res)
72917	if err := googleapi.CheckResponse(res); err != nil {
72918		return nil, err
72919	}
72920	ret := &Operation{
72921		ServerResponse: googleapi.ServerResponse{
72922			Header:         res.Header,
72923			HTTPStatusCode: res.StatusCode,
72924		},
72925	}
72926	target := &ret
72927	if err := gensupport.DecodeResponse(target, res); err != nil {
72928		return nil, err
72929	}
72930	return ret, nil
72931	// {
72932	//   "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.",
72933	//   "httpMethod": "POST",
72934	//   "id": "compute.instanceGroupManagers.setInstanceTemplate",
72935	//   "parameterOrder": [
72936	//     "project",
72937	//     "zone",
72938	//     "instanceGroupManager"
72939	//   ],
72940	//   "parameters": {
72941	//     "instanceGroupManager": {
72942	//       "description": "The name of the managed instance group.",
72943	//       "location": "path",
72944	//       "required": true,
72945	//       "type": "string"
72946	//     },
72947	//     "project": {
72948	//       "description": "Project ID for this request.",
72949	//       "location": "path",
72950	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
72951	//       "required": true,
72952	//       "type": "string"
72953	//     },
72954	//     "requestId": {
72955	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
72956	//       "location": "query",
72957	//       "type": "string"
72958	//     },
72959	//     "zone": {
72960	//       "description": "The name of the zone where the managed instance group is located.",
72961	//       "location": "path",
72962	//       "required": true,
72963	//       "type": "string"
72964	//     }
72965	//   },
72966	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
72967	//   "request": {
72968	//     "$ref": "InstanceGroupManagersSetInstanceTemplateRequest"
72969	//   },
72970	//   "response": {
72971	//     "$ref": "Operation"
72972	//   },
72973	//   "scopes": [
72974	//     "https://www.googleapis.com/auth/cloud-platform",
72975	//     "https://www.googleapis.com/auth/compute"
72976	//   ]
72977	// }
72978
72979}
72980
72981// method id "compute.instanceGroupManagers.setTargetPools":
72982
72983type InstanceGroupManagersSetTargetPoolsCall struct {
72984	s                                          *Service
72985	project                                    string
72986	zone                                       string
72987	instanceGroupManager                       string
72988	instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest
72989	urlParams_                                 gensupport.URLParams
72990	ctx_                                       context.Context
72991	header_                                    http.Header
72992}
72993
72994// SetTargetPools: Modifies the target pools to which all instances in
72995// this managed instance group are assigned. The target pools
72996// automatically apply to all of the instances in the managed instance
72997// group. This operation is marked DONE when you make the request even
72998// if the instances have not yet been added to their target pools. The
72999// change might take some time to apply to all of the instances in the
73000// group depending on the size of the group.
73001func (r *InstanceGroupManagersService) SetTargetPools(project string, zone string, instanceGroupManager string, instancegroupmanagerssettargetpoolsrequest *InstanceGroupManagersSetTargetPoolsRequest) *InstanceGroupManagersSetTargetPoolsCall {
73002	c := &InstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73003	c.project = project
73004	c.zone = zone
73005	c.instanceGroupManager = instanceGroupManager
73006	c.instancegroupmanagerssettargetpoolsrequest = instancegroupmanagerssettargetpoolsrequest
73007	return c
73008}
73009
73010// RequestId sets the optional parameter "requestId": An optional
73011// request ID to identify requests. Specify a unique request ID so that
73012// if you must retry your request, the server will know to ignore the
73013// request if it has already been completed.
73014//
73015// For example, consider a situation where you make an initial request
73016// and the request times out. If you make the request again with the
73017// same request ID, the server can check if original operation with the
73018// same request ID was received, and if so, will ignore the second
73019// request. This prevents clients from accidentally creating duplicate
73020// commitments.
73021//
73022// The request ID must be a valid UUID with the exception that zero UUID
73023// is not supported (00000000-0000-0000-0000-000000000000).
73024func (c *InstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *InstanceGroupManagersSetTargetPoolsCall {
73025	c.urlParams_.Set("requestId", requestId)
73026	return c
73027}
73028
73029// Fields allows partial responses to be retrieved. See
73030// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73031// for more information.
73032func (c *InstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersSetTargetPoolsCall {
73033	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73034	return c
73035}
73036
73037// Context sets the context to be used in this call's Do method. Any
73038// pending HTTP request will be aborted if the provided context is
73039// canceled.
73040func (c *InstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *InstanceGroupManagersSetTargetPoolsCall {
73041	c.ctx_ = ctx
73042	return c
73043}
73044
73045// Header returns an http.Header that can be modified by the caller to
73046// add HTTP headers to the request.
73047func (c *InstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
73048	if c.header_ == nil {
73049		c.header_ = make(http.Header)
73050	}
73051	return c.header_
73052}
73053
73054func (c *InstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
73055	reqHeaders := make(http.Header)
73056	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73057	for k, v := range c.header_ {
73058		reqHeaders[k] = v
73059	}
73060	reqHeaders.Set("User-Agent", c.s.userAgent())
73061	var body io.Reader = nil
73062	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagerssettargetpoolsrequest)
73063	if err != nil {
73064		return nil, err
73065	}
73066	reqHeaders.Set("Content-Type", "application/json")
73067	c.urlParams_.Set("alt", alt)
73068	c.urlParams_.Set("prettyPrint", "false")
73069	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
73070	urls += "?" + c.urlParams_.Encode()
73071	req, err := http.NewRequest("POST", urls, body)
73072	if err != nil {
73073		return nil, err
73074	}
73075	req.Header = reqHeaders
73076	googleapi.Expand(req.URL, map[string]string{
73077		"project":              c.project,
73078		"zone":                 c.zone,
73079		"instanceGroupManager": c.instanceGroupManager,
73080	})
73081	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73082}
73083
73084// Do executes the "compute.instanceGroupManagers.setTargetPools" call.
73085// Exactly one of *Operation or error will be non-nil. Any non-2xx
73086// status code is an error. Response headers are in either
73087// *Operation.ServerResponse.Header or (if a response was returned at
73088// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73089// to check whether the returned error was because
73090// http.StatusNotModified was returned.
73091func (c *InstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73092	gensupport.SetOptions(c.urlParams_, opts...)
73093	res, err := c.doRequest("json")
73094	if res != nil && res.StatusCode == http.StatusNotModified {
73095		if res.Body != nil {
73096			res.Body.Close()
73097		}
73098		return nil, &googleapi.Error{
73099			Code:   res.StatusCode,
73100			Header: res.Header,
73101		}
73102	}
73103	if err != nil {
73104		return nil, err
73105	}
73106	defer googleapi.CloseBody(res)
73107	if err := googleapi.CheckResponse(res); err != nil {
73108		return nil, err
73109	}
73110	ret := &Operation{
73111		ServerResponse: googleapi.ServerResponse{
73112			Header:         res.Header,
73113			HTTPStatusCode: res.StatusCode,
73114		},
73115	}
73116	target := &ret
73117	if err := gensupport.DecodeResponse(target, res); err != nil {
73118		return nil, err
73119	}
73120	return ret, nil
73121	// {
73122	//   "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.",
73123	//   "httpMethod": "POST",
73124	//   "id": "compute.instanceGroupManagers.setTargetPools",
73125	//   "parameterOrder": [
73126	//     "project",
73127	//     "zone",
73128	//     "instanceGroupManager"
73129	//   ],
73130	//   "parameters": {
73131	//     "instanceGroupManager": {
73132	//       "description": "The name of the managed instance group.",
73133	//       "location": "path",
73134	//       "required": true,
73135	//       "type": "string"
73136	//     },
73137	//     "project": {
73138	//       "description": "Project ID for this request.",
73139	//       "location": "path",
73140	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73141	//       "required": true,
73142	//       "type": "string"
73143	//     },
73144	//     "requestId": {
73145	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73146	//       "location": "query",
73147	//       "type": "string"
73148	//     },
73149	//     "zone": {
73150	//       "description": "The name of the zone where the managed instance group is located.",
73151	//       "location": "path",
73152	//       "required": true,
73153	//       "type": "string"
73154	//     }
73155	//   },
73156	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
73157	//   "request": {
73158	//     "$ref": "InstanceGroupManagersSetTargetPoolsRequest"
73159	//   },
73160	//   "response": {
73161	//     "$ref": "Operation"
73162	//   },
73163	//   "scopes": [
73164	//     "https://www.googleapis.com/auth/cloud-platform",
73165	//     "https://www.googleapis.com/auth/compute"
73166	//   ]
73167	// }
73168
73169}
73170
73171// method id "compute.instanceGroupManagers.testIamPermissions":
73172
73173type InstanceGroupManagersTestIamPermissionsCall struct {
73174	s                      *Service
73175	project                string
73176	zone                   string
73177	resource               string
73178	testpermissionsrequest *TestPermissionsRequest
73179	urlParams_             gensupport.URLParams
73180	ctx_                   context.Context
73181	header_                http.Header
73182}
73183
73184// TestIamPermissions: Returns permissions that a caller has on the
73185// specified resource.
73186func (r *InstanceGroupManagersService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupManagersTestIamPermissionsCall {
73187	c := &InstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73188	c.project = project
73189	c.zone = zone
73190	c.resource = resource
73191	c.testpermissionsrequest = testpermissionsrequest
73192	return c
73193}
73194
73195// Fields allows partial responses to be retrieved. See
73196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73197// for more information.
73198func (c *InstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersTestIamPermissionsCall {
73199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73200	return c
73201}
73202
73203// Context sets the context to be used in this call's Do method. Any
73204// pending HTTP request will be aborted if the provided context is
73205// canceled.
73206func (c *InstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupManagersTestIamPermissionsCall {
73207	c.ctx_ = ctx
73208	return c
73209}
73210
73211// Header returns an http.Header that can be modified by the caller to
73212// add HTTP headers to the request.
73213func (c *InstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
73214	if c.header_ == nil {
73215		c.header_ = make(http.Header)
73216	}
73217	return c.header_
73218}
73219
73220func (c *InstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
73221	reqHeaders := make(http.Header)
73222	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73223	for k, v := range c.header_ {
73224		reqHeaders[k] = v
73225	}
73226	reqHeaders.Set("User-Agent", c.s.userAgent())
73227	var body io.Reader = nil
73228	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
73229	if err != nil {
73230		return nil, err
73231	}
73232	reqHeaders.Set("Content-Type", "application/json")
73233	c.urlParams_.Set("alt", alt)
73234	c.urlParams_.Set("prettyPrint", "false")
73235	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions")
73236	urls += "?" + c.urlParams_.Encode()
73237	req, err := http.NewRequest("POST", urls, body)
73238	if err != nil {
73239		return nil, err
73240	}
73241	req.Header = reqHeaders
73242	googleapi.Expand(req.URL, map[string]string{
73243		"project":  c.project,
73244		"zone":     c.zone,
73245		"resource": c.resource,
73246	})
73247	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73248}
73249
73250// Do executes the "compute.instanceGroupManagers.testIamPermissions" call.
73251// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
73252// non-2xx status code is an error. Response headers are in either
73253// *TestPermissionsResponse.ServerResponse.Header or (if a response was
73254// returned at all) in error.(*googleapi.Error).Header. Use
73255// googleapi.IsNotModified to check whether the returned error was
73256// because http.StatusNotModified was returned.
73257func (c *InstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
73258	gensupport.SetOptions(c.urlParams_, opts...)
73259	res, err := c.doRequest("json")
73260	if res != nil && res.StatusCode == http.StatusNotModified {
73261		if res.Body != nil {
73262			res.Body.Close()
73263		}
73264		return nil, &googleapi.Error{
73265			Code:   res.StatusCode,
73266			Header: res.Header,
73267		}
73268	}
73269	if err != nil {
73270		return nil, err
73271	}
73272	defer googleapi.CloseBody(res)
73273	if err := googleapi.CheckResponse(res); err != nil {
73274		return nil, err
73275	}
73276	ret := &TestPermissionsResponse{
73277		ServerResponse: googleapi.ServerResponse{
73278			Header:         res.Header,
73279			HTTPStatusCode: res.StatusCode,
73280		},
73281	}
73282	target := &ret
73283	if err := gensupport.DecodeResponse(target, res); err != nil {
73284		return nil, err
73285	}
73286	return ret, nil
73287	// {
73288	//   "description": "Returns permissions that a caller has on the specified resource.",
73289	//   "httpMethod": "POST",
73290	//   "id": "compute.instanceGroupManagers.testIamPermissions",
73291	//   "parameterOrder": [
73292	//     "project",
73293	//     "zone",
73294	//     "resource"
73295	//   ],
73296	//   "parameters": {
73297	//     "project": {
73298	//       "description": "Project ID for this request.",
73299	//       "location": "path",
73300	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73301	//       "required": true,
73302	//       "type": "string"
73303	//     },
73304	//     "resource": {
73305	//       "description": "Name or id of the resource for this request.",
73306	//       "location": "path",
73307	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
73308	//       "required": true,
73309	//       "type": "string"
73310	//     },
73311	//     "zone": {
73312	//       "description": "The name of the zone for this request.",
73313	//       "location": "path",
73314	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
73315	//       "required": true,
73316	//       "type": "string"
73317	//     }
73318	//   },
73319	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{resource}/testIamPermissions",
73320	//   "request": {
73321	//     "$ref": "TestPermissionsRequest"
73322	//   },
73323	//   "response": {
73324	//     "$ref": "TestPermissionsResponse"
73325	//   },
73326	//   "scopes": [
73327	//     "https://www.googleapis.com/auth/cloud-platform",
73328	//     "https://www.googleapis.com/auth/compute",
73329	//     "https://www.googleapis.com/auth/compute.readonly"
73330	//   ]
73331	// }
73332
73333}
73334
73335// method id "compute.instanceGroupManagers.update":
73336
73337type InstanceGroupManagersUpdateCall struct {
73338	s                    *Service
73339	project              string
73340	zone                 string
73341	instanceGroupManager string
73342	instancegroupmanager *InstanceGroupManager
73343	urlParams_           gensupport.URLParams
73344	ctx_                 context.Context
73345	header_              http.Header
73346}
73347
73348// Update: Updates a managed instance group using the information that
73349// you specify in the request. This operation is marked as DONE when the
73350// group is updated even if the instances in the group have not yet been
73351// updated. You must separately verify the status of the individual
73352// instances with the listManagedInstances method.
73353func (r *InstanceGroupManagersService) Update(project string, zone string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *InstanceGroupManagersUpdateCall {
73354	c := &InstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73355	c.project = project
73356	c.zone = zone
73357	c.instanceGroupManager = instanceGroupManager
73358	c.instancegroupmanager = instancegroupmanager
73359	return c
73360}
73361
73362// RequestId sets the optional parameter "requestId": An optional
73363// request ID to identify requests. Specify a unique request ID so that
73364// if you must retry your request, the server will know to ignore the
73365// request if it has already been completed.
73366//
73367// For example, consider a situation where you make an initial request
73368// and the request times out. If you make the request again with the
73369// same request ID, the server can check if original operation with the
73370// same request ID was received, and if so, will ignore the second
73371// request. This prevents clients from accidentally creating duplicate
73372// commitments.
73373//
73374// The request ID must be a valid UUID with the exception that zero UUID
73375// is not supported (00000000-0000-0000-0000-000000000000).
73376func (c *InstanceGroupManagersUpdateCall) RequestId(requestId string) *InstanceGroupManagersUpdateCall {
73377	c.urlParams_.Set("requestId", requestId)
73378	return c
73379}
73380
73381// Fields allows partial responses to be retrieved. See
73382// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73383// for more information.
73384func (c *InstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdateCall {
73385	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73386	return c
73387}
73388
73389// Context sets the context to be used in this call's Do method. Any
73390// pending HTTP request will be aborted if the provided context is
73391// canceled.
73392func (c *InstanceGroupManagersUpdateCall) Context(ctx context.Context) *InstanceGroupManagersUpdateCall {
73393	c.ctx_ = ctx
73394	return c
73395}
73396
73397// Header returns an http.Header that can be modified by the caller to
73398// add HTTP headers to the request.
73399func (c *InstanceGroupManagersUpdateCall) Header() http.Header {
73400	if c.header_ == nil {
73401		c.header_ = make(http.Header)
73402	}
73403	return c.header_
73404}
73405
73406func (c *InstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
73407	reqHeaders := make(http.Header)
73408	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73409	for k, v := range c.header_ {
73410		reqHeaders[k] = v
73411	}
73412	reqHeaders.Set("User-Agent", c.s.userAgent())
73413	var body io.Reader = nil
73414	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
73415	if err != nil {
73416		return nil, err
73417	}
73418	reqHeaders.Set("Content-Type", "application/json")
73419	c.urlParams_.Set("alt", alt)
73420	c.urlParams_.Set("prettyPrint", "false")
73421	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}")
73422	urls += "?" + c.urlParams_.Encode()
73423	req, err := http.NewRequest("PUT", urls, body)
73424	if err != nil {
73425		return nil, err
73426	}
73427	req.Header = reqHeaders
73428	googleapi.Expand(req.URL, map[string]string{
73429		"project":              c.project,
73430		"zone":                 c.zone,
73431		"instanceGroupManager": c.instanceGroupManager,
73432	})
73433	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73434}
73435
73436// Do executes the "compute.instanceGroupManagers.update" call.
73437// Exactly one of *Operation or error will be non-nil. Any non-2xx
73438// status code is an error. Response headers are in either
73439// *Operation.ServerResponse.Header or (if a response was returned at
73440// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73441// to check whether the returned error was because
73442// http.StatusNotModified was returned.
73443func (c *InstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73444	gensupport.SetOptions(c.urlParams_, opts...)
73445	res, err := c.doRequest("json")
73446	if res != nil && res.StatusCode == http.StatusNotModified {
73447		if res.Body != nil {
73448			res.Body.Close()
73449		}
73450		return nil, &googleapi.Error{
73451			Code:   res.StatusCode,
73452			Header: res.Header,
73453		}
73454	}
73455	if err != nil {
73456		return nil, err
73457	}
73458	defer googleapi.CloseBody(res)
73459	if err := googleapi.CheckResponse(res); err != nil {
73460		return nil, err
73461	}
73462	ret := &Operation{
73463		ServerResponse: googleapi.ServerResponse{
73464			Header:         res.Header,
73465			HTTPStatusCode: res.StatusCode,
73466		},
73467	}
73468	target := &ret
73469	if err := gensupport.DecodeResponse(target, res); err != nil {
73470		return nil, err
73471	}
73472	return ret, nil
73473	// {
73474	//   "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listManagedInstances method.",
73475	//   "httpMethod": "PUT",
73476	//   "id": "compute.instanceGroupManagers.update",
73477	//   "parameterOrder": [
73478	//     "project",
73479	//     "zone",
73480	//     "instanceGroupManager"
73481	//   ],
73482	//   "parameters": {
73483	//     "instanceGroupManager": {
73484	//       "description": "The name of the instance group manager.",
73485	//       "location": "path",
73486	//       "required": true,
73487	//       "type": "string"
73488	//     },
73489	//     "project": {
73490	//       "description": "Project ID for this request.",
73491	//       "location": "path",
73492	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73493	//       "required": true,
73494	//       "type": "string"
73495	//     },
73496	//     "requestId": {
73497	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73498	//       "location": "query",
73499	//       "type": "string"
73500	//     },
73501	//     "zone": {
73502	//       "description": "The name of the zone where you want to create the managed instance group.",
73503	//       "location": "path",
73504	//       "required": true,
73505	//       "type": "string"
73506	//     }
73507	//   },
73508	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}",
73509	//   "request": {
73510	//     "$ref": "InstanceGroupManager"
73511	//   },
73512	//   "response": {
73513	//     "$ref": "Operation"
73514	//   },
73515	//   "scopes": [
73516	//     "https://www.googleapis.com/auth/cloud-platform",
73517	//     "https://www.googleapis.com/auth/compute"
73518	//   ]
73519	// }
73520
73521}
73522
73523// method id "compute.instanceGroupManagers.updatePerInstanceConfigs":
73524
73525type InstanceGroupManagersUpdatePerInstanceConfigsCall struct {
73526	s                                                *Service
73527	project                                          string
73528	zone                                             string
73529	instanceGroupManager                             string
73530	instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq
73531	urlParams_                                       gensupport.URLParams
73532	ctx_                                             context.Context
73533	header_                                          http.Header
73534}
73535
73536// UpdatePerInstanceConfigs: Insert or update (for the ones that already
73537// exist) per-instance configs for the managed instance group.
73538// perInstanceConfig.instance serves as a key used to distinguish
73539// whether to perform insert or patch.
73540func (r *InstanceGroupManagersService) UpdatePerInstanceConfigs(project string, zone string, instanceGroupManager string, instancegroupmanagersupdateperinstanceconfigsreq *InstanceGroupManagersUpdatePerInstanceConfigsReq) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
73541	c := &InstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73542	c.project = project
73543	c.zone = zone
73544	c.instanceGroupManager = instanceGroupManager
73545	c.instancegroupmanagersupdateperinstanceconfigsreq = instancegroupmanagersupdateperinstanceconfigsreq
73546	return c
73547}
73548
73549// RequestId sets the optional parameter "requestId": An optional
73550// request ID to identify requests. Specify a unique request ID so that
73551// if you must retry your request, the server will know to ignore the
73552// request if it has already been completed.
73553//
73554// For example, consider a situation where you make an initial request
73555// and the request times out. If you make the request again with the
73556// same request ID, the server can check if original operation with the
73557// same request ID was received, and if so, will ignore the second
73558// request. This prevents clients from accidentally creating duplicate
73559// commitments.
73560//
73561// The request ID must be a valid UUID with the exception that zero UUID
73562// is not supported (00000000-0000-0000-0000-000000000000).
73563func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
73564	c.urlParams_.Set("requestId", requestId)
73565	return c
73566}
73567
73568// Fields allows partial responses to be retrieved. See
73569// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73570// for more information.
73571func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
73572	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73573	return c
73574}
73575
73576// Context sets the context to be used in this call's Do method. Any
73577// pending HTTP request will be aborted if the provided context is
73578// canceled.
73579func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *InstanceGroupManagersUpdatePerInstanceConfigsCall {
73580	c.ctx_ = ctx
73581	return c
73582}
73583
73584// Header returns an http.Header that can be modified by the caller to
73585// add HTTP headers to the request.
73586func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
73587	if c.header_ == nil {
73588		c.header_ = make(http.Header)
73589	}
73590	return c.header_
73591}
73592
73593func (c *InstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
73594	reqHeaders := make(http.Header)
73595	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73596	for k, v := range c.header_ {
73597		reqHeaders[k] = v
73598	}
73599	reqHeaders.Set("User-Agent", c.s.userAgent())
73600	var body io.Reader = nil
73601	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanagersupdateperinstanceconfigsreq)
73602	if err != nil {
73603		return nil, err
73604	}
73605	reqHeaders.Set("Content-Type", "application/json")
73606	c.urlParams_.Set("alt", alt)
73607	c.urlParams_.Set("prettyPrint", "false")
73608	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
73609	urls += "?" + c.urlParams_.Encode()
73610	req, err := http.NewRequest("POST", urls, body)
73611	if err != nil {
73612		return nil, err
73613	}
73614	req.Header = reqHeaders
73615	googleapi.Expand(req.URL, map[string]string{
73616		"project":              c.project,
73617		"zone":                 c.zone,
73618		"instanceGroupManager": c.instanceGroupManager,
73619	})
73620	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73621}
73622
73623// Do executes the "compute.instanceGroupManagers.updatePerInstanceConfigs" call.
73624// Exactly one of *Operation or error will be non-nil. Any non-2xx
73625// status code is an error. Response headers are in either
73626// *Operation.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 *InstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, 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 := &Operation{
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": "Insert or update (for the ones that already exist) per-instance configs for the managed instance group. perInstanceConfig.instance serves as a key used to distinguish whether to perform insert or patch.",
73662	//   "httpMethod": "POST",
73663	//   "id": "compute.instanceGroupManagers.updatePerInstanceConfigs",
73664	//   "parameterOrder": [
73665	//     "project",
73666	//     "zone",
73667	//     "instanceGroupManager"
73668	//   ],
73669	//   "parameters": {
73670	//     "instanceGroupManager": {
73671	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
73672	//       "location": "path",
73673	//       "required": true,
73674	//       "type": "string"
73675	//     },
73676	//     "project": {
73677	//       "description": "Project ID for this request.",
73678	//       "location": "path",
73679	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73680	//       "required": true,
73681	//       "type": "string"
73682	//     },
73683	//     "requestId": {
73684	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73685	//       "location": "query",
73686	//       "type": "string"
73687	//     },
73688	//     "zone": {
73689	//       "description": "The name of the zone where the managed instance group is located. It should conform to RFC1035.",
73690	//       "location": "path",
73691	//       "required": true,
73692	//       "type": "string"
73693	//     }
73694	//   },
73695	//   "path": "{project}/zones/{zone}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
73696	//   "request": {
73697	//     "$ref": "InstanceGroupManagersUpdatePerInstanceConfigsReq"
73698	//   },
73699	//   "response": {
73700	//     "$ref": "Operation"
73701	//   },
73702	//   "scopes": [
73703	//     "https://www.googleapis.com/auth/cloud-platform",
73704	//     "https://www.googleapis.com/auth/compute"
73705	//   ]
73706	// }
73707
73708}
73709
73710// method id "compute.instanceGroups.addInstances":
73711
73712type InstanceGroupsAddInstancesCall struct {
73713	s                                 *Service
73714	project                           string
73715	zone                              string
73716	instanceGroup                     string
73717	instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest
73718	urlParams_                        gensupport.URLParams
73719	ctx_                              context.Context
73720	header_                           http.Header
73721}
73722
73723// AddInstances: Adds a list of instances to the specified instance
73724// group. All of the instances in the instance group must be in the same
73725// network/subnetwork. Read  Adding instances for more information.
73726func (r *InstanceGroupsService) AddInstances(project string, zone string, instanceGroup string, instancegroupsaddinstancesrequest *InstanceGroupsAddInstancesRequest) *InstanceGroupsAddInstancesCall {
73727	c := &InstanceGroupsAddInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73728	c.project = project
73729	c.zone = zone
73730	c.instanceGroup = instanceGroup
73731	c.instancegroupsaddinstancesrequest = instancegroupsaddinstancesrequest
73732	return c
73733}
73734
73735// RequestId sets the optional parameter "requestId": An optional
73736// request ID to identify requests. Specify a unique request ID so that
73737// if you must retry your request, the server will know to ignore the
73738// request if it has already been completed.
73739//
73740// For example, consider a situation where you make an initial request
73741// and the request times out. If you make the request again with the
73742// same request ID, the server can check if original operation with the
73743// same request ID was received, and if so, will ignore the second
73744// request. This prevents clients from accidentally creating duplicate
73745// commitments.
73746//
73747// The request ID must be a valid UUID with the exception that zero UUID
73748// is not supported (00000000-0000-0000-0000-000000000000).
73749func (c *InstanceGroupsAddInstancesCall) RequestId(requestId string) *InstanceGroupsAddInstancesCall {
73750	c.urlParams_.Set("requestId", requestId)
73751	return c
73752}
73753
73754// Fields allows partial responses to be retrieved. See
73755// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73756// for more information.
73757func (c *InstanceGroupsAddInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsAddInstancesCall {
73758	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73759	return c
73760}
73761
73762// Context sets the context to be used in this call's Do method. Any
73763// pending HTTP request will be aborted if the provided context is
73764// canceled.
73765func (c *InstanceGroupsAddInstancesCall) Context(ctx context.Context) *InstanceGroupsAddInstancesCall {
73766	c.ctx_ = ctx
73767	return c
73768}
73769
73770// Header returns an http.Header that can be modified by the caller to
73771// add HTTP headers to the request.
73772func (c *InstanceGroupsAddInstancesCall) Header() http.Header {
73773	if c.header_ == nil {
73774		c.header_ = make(http.Header)
73775	}
73776	return c.header_
73777}
73778
73779func (c *InstanceGroupsAddInstancesCall) doRequest(alt string) (*http.Response, error) {
73780	reqHeaders := make(http.Header)
73781	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
73782	for k, v := range c.header_ {
73783		reqHeaders[k] = v
73784	}
73785	reqHeaders.Set("User-Agent", c.s.userAgent())
73786	var body io.Reader = nil
73787	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsaddinstancesrequest)
73788	if err != nil {
73789		return nil, err
73790	}
73791	reqHeaders.Set("Content-Type", "application/json")
73792	c.urlParams_.Set("alt", alt)
73793	c.urlParams_.Set("prettyPrint", "false")
73794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances")
73795	urls += "?" + c.urlParams_.Encode()
73796	req, err := http.NewRequest("POST", urls, body)
73797	if err != nil {
73798		return nil, err
73799	}
73800	req.Header = reqHeaders
73801	googleapi.Expand(req.URL, map[string]string{
73802		"project":       c.project,
73803		"zone":          c.zone,
73804		"instanceGroup": c.instanceGroup,
73805	})
73806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
73807}
73808
73809// Do executes the "compute.instanceGroups.addInstances" call.
73810// Exactly one of *Operation or error will be non-nil. Any non-2xx
73811// status code is an error. Response headers are in either
73812// *Operation.ServerResponse.Header or (if a response was returned at
73813// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
73814// to check whether the returned error was because
73815// http.StatusNotModified was returned.
73816func (c *InstanceGroupsAddInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
73817	gensupport.SetOptions(c.urlParams_, opts...)
73818	res, err := c.doRequest("json")
73819	if res != nil && res.StatusCode == http.StatusNotModified {
73820		if res.Body != nil {
73821			res.Body.Close()
73822		}
73823		return nil, &googleapi.Error{
73824			Code:   res.StatusCode,
73825			Header: res.Header,
73826		}
73827	}
73828	if err != nil {
73829		return nil, err
73830	}
73831	defer googleapi.CloseBody(res)
73832	if err := googleapi.CheckResponse(res); err != nil {
73833		return nil, err
73834	}
73835	ret := &Operation{
73836		ServerResponse: googleapi.ServerResponse{
73837			Header:         res.Header,
73838			HTTPStatusCode: res.StatusCode,
73839		},
73840	}
73841	target := &ret
73842	if err := gensupport.DecodeResponse(target, res); err != nil {
73843		return nil, err
73844	}
73845	return ret, nil
73846	// {
73847	//   "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.",
73848	//   "httpMethod": "POST",
73849	//   "id": "compute.instanceGroups.addInstances",
73850	//   "parameterOrder": [
73851	//     "project",
73852	//     "zone",
73853	//     "instanceGroup"
73854	//   ],
73855	//   "parameters": {
73856	//     "instanceGroup": {
73857	//       "description": "The name of the instance group where you are adding instances.",
73858	//       "location": "path",
73859	//       "required": true,
73860	//       "type": "string"
73861	//     },
73862	//     "project": {
73863	//       "description": "Project ID for this request.",
73864	//       "location": "path",
73865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
73866	//       "required": true,
73867	//       "type": "string"
73868	//     },
73869	//     "requestId": {
73870	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
73871	//       "location": "query",
73872	//       "type": "string"
73873	//     },
73874	//     "zone": {
73875	//       "description": "The name of the zone where the instance group is located.",
73876	//       "location": "path",
73877	//       "required": true,
73878	//       "type": "string"
73879	//     }
73880	//   },
73881	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/addInstances",
73882	//   "request": {
73883	//     "$ref": "InstanceGroupsAddInstancesRequest"
73884	//   },
73885	//   "response": {
73886	//     "$ref": "Operation"
73887	//   },
73888	//   "scopes": [
73889	//     "https://www.googleapis.com/auth/cloud-platform",
73890	//     "https://www.googleapis.com/auth/compute"
73891	//   ]
73892	// }
73893
73894}
73895
73896// method id "compute.instanceGroups.aggregatedList":
73897
73898type InstanceGroupsAggregatedListCall struct {
73899	s            *Service
73900	project      string
73901	urlParams_   gensupport.URLParams
73902	ifNoneMatch_ string
73903	ctx_         context.Context
73904	header_      http.Header
73905}
73906
73907// AggregatedList: Retrieves the list of instance groups and sorts them
73908// by zone.
73909func (r *InstanceGroupsService) AggregatedList(project string) *InstanceGroupsAggregatedListCall {
73910	c := &InstanceGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
73911	c.project = project
73912	return c
73913}
73914
73915// Filter sets the optional parameter "filter": A filter expression that
73916// filters resources listed in the response. The expression must specify
73917// the field name, a comparison operator, and the value that you want to
73918// use for filtering. The value must be a string, a number, or a
73919// boolean. The comparison operator must be either =, !=, >, or <.
73920//
73921// For example, if you are filtering Compute Engine instances, you can
73922// exclude instances named example-instance by specifying name !=
73923// example-instance.
73924//
73925// You can also filter nested fields. For example, you could specify
73926// scheduling.automaticRestart = false to include instances only if they
73927// are not scheduled for automatic restarts. You can use filtering on
73928// nested fields to filter based on resource labels.
73929//
73930// To filter on multiple expressions, provide each separate expression
73931// within parentheses. For example, (scheduling.automaticRestart = true)
73932// (cpuPlatform = "Intel Skylake"). By default, each expression is an
73933// AND expression. However, you can include AND and OR expressions
73934// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
73935// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
73936// true).
73937func (c *InstanceGroupsAggregatedListCall) Filter(filter string) *InstanceGroupsAggregatedListCall {
73938	c.urlParams_.Set("filter", filter)
73939	return c
73940}
73941
73942// IncludeAllScopes sets the optional parameter "includeAllScopes":
73943// Indicates whether every visible scope for each scope type (zone,
73944// region, global) should be included in the response. For new resource
73945// types added after this field, the flag has no effect as new resource
73946// types will always include every visible scope for each scope type in
73947// response. For resource types which predate this field, if this flag
73948// is omitted or false, only scopes of the scope types where the
73949// resource type is expected to be found will be included.
73950func (c *InstanceGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstanceGroupsAggregatedListCall {
73951	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
73952	return c
73953}
73954
73955// MaxResults sets the optional parameter "maxResults": The maximum
73956// number of results per page that should be returned. If the number of
73957// available results is larger than maxResults, Compute Engine returns a
73958// nextPageToken that can be used to get the next page of results in
73959// subsequent list requests. Acceptable values are 0 to 500, inclusive.
73960// (Default: 500)
73961func (c *InstanceGroupsAggregatedListCall) MaxResults(maxResults int64) *InstanceGroupsAggregatedListCall {
73962	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
73963	return c
73964}
73965
73966// OrderBy sets the optional parameter "orderBy": Sorts list results by
73967// a certain order. By default, results are returned in alphanumerical
73968// order based on the resource name.
73969//
73970// You can also sort results in descending order based on the creation
73971// timestamp using orderBy="creationTimestamp desc". This sorts results
73972// based on the creationTimestamp field in reverse chronological order
73973// (newest result first). Use this to sort resources like operations so
73974// that the newest operation is returned first.
73975//
73976// Currently, only sorting by name or creationTimestamp desc is
73977// supported.
73978func (c *InstanceGroupsAggregatedListCall) OrderBy(orderBy string) *InstanceGroupsAggregatedListCall {
73979	c.urlParams_.Set("orderBy", orderBy)
73980	return c
73981}
73982
73983// PageToken sets the optional parameter "pageToken": Specifies a page
73984// token to use. Set pageToken to the nextPageToken returned by a
73985// previous list request to get the next page of results.
73986func (c *InstanceGroupsAggregatedListCall) PageToken(pageToken string) *InstanceGroupsAggregatedListCall {
73987	c.urlParams_.Set("pageToken", pageToken)
73988	return c
73989}
73990
73991// Fields allows partial responses to be retrieved. See
73992// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
73993// for more information.
73994func (c *InstanceGroupsAggregatedListCall) Fields(s ...googleapi.Field) *InstanceGroupsAggregatedListCall {
73995	c.urlParams_.Set("fields", googleapi.CombineFields(s))
73996	return c
73997}
73998
73999// IfNoneMatch sets the optional parameter which makes the operation
74000// fail if the object's ETag matches the given value. This is useful for
74001// getting updates only after the object has changed since the last
74002// request. Use googleapi.IsNotModified to check whether the response
74003// error from Do is the result of In-None-Match.
74004func (c *InstanceGroupsAggregatedListCall) IfNoneMatch(entityTag string) *InstanceGroupsAggregatedListCall {
74005	c.ifNoneMatch_ = entityTag
74006	return c
74007}
74008
74009// Context sets the context to be used in this call's Do method. Any
74010// pending HTTP request will be aborted if the provided context is
74011// canceled.
74012func (c *InstanceGroupsAggregatedListCall) Context(ctx context.Context) *InstanceGroupsAggregatedListCall {
74013	c.ctx_ = ctx
74014	return c
74015}
74016
74017// Header returns an http.Header that can be modified by the caller to
74018// add HTTP headers to the request.
74019func (c *InstanceGroupsAggregatedListCall) Header() http.Header {
74020	if c.header_ == nil {
74021		c.header_ = make(http.Header)
74022	}
74023	return c.header_
74024}
74025
74026func (c *InstanceGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
74027	reqHeaders := make(http.Header)
74028	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74029	for k, v := range c.header_ {
74030		reqHeaders[k] = v
74031	}
74032	reqHeaders.Set("User-Agent", c.s.userAgent())
74033	if c.ifNoneMatch_ != "" {
74034		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74035	}
74036	var body io.Reader = nil
74037	c.urlParams_.Set("alt", alt)
74038	c.urlParams_.Set("prettyPrint", "false")
74039	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instanceGroups")
74040	urls += "?" + c.urlParams_.Encode()
74041	req, err := http.NewRequest("GET", urls, body)
74042	if err != nil {
74043		return nil, err
74044	}
74045	req.Header = reqHeaders
74046	googleapi.Expand(req.URL, map[string]string{
74047		"project": c.project,
74048	})
74049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74050}
74051
74052// Do executes the "compute.instanceGroups.aggregatedList" call.
74053// Exactly one of *InstanceGroupAggregatedList or error will be non-nil.
74054// Any non-2xx status code is an error. Response headers are in either
74055// *InstanceGroupAggregatedList.ServerResponse.Header or (if a response
74056// was returned at all) in error.(*googleapi.Error).Header. Use
74057// googleapi.IsNotModified to check whether the returned error was
74058// because http.StatusNotModified was returned.
74059func (c *InstanceGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupAggregatedList, error) {
74060	gensupport.SetOptions(c.urlParams_, opts...)
74061	res, err := c.doRequest("json")
74062	if res != nil && res.StatusCode == http.StatusNotModified {
74063		if res.Body != nil {
74064			res.Body.Close()
74065		}
74066		return nil, &googleapi.Error{
74067			Code:   res.StatusCode,
74068			Header: res.Header,
74069		}
74070	}
74071	if err != nil {
74072		return nil, err
74073	}
74074	defer googleapi.CloseBody(res)
74075	if err := googleapi.CheckResponse(res); err != nil {
74076		return nil, err
74077	}
74078	ret := &InstanceGroupAggregatedList{
74079		ServerResponse: googleapi.ServerResponse{
74080			Header:         res.Header,
74081			HTTPStatusCode: res.StatusCode,
74082		},
74083	}
74084	target := &ret
74085	if err := gensupport.DecodeResponse(target, res); err != nil {
74086		return nil, err
74087	}
74088	return ret, nil
74089	// {
74090	//   "description": "Retrieves the list of instance groups and sorts them by zone.",
74091	//   "httpMethod": "GET",
74092	//   "id": "compute.instanceGroups.aggregatedList",
74093	//   "parameterOrder": [
74094	//     "project"
74095	//   ],
74096	//   "parameters": {
74097	//     "filter": {
74098	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
74099	//       "location": "query",
74100	//       "type": "string"
74101	//     },
74102	//     "includeAllScopes": {
74103	//       "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.",
74104	//       "location": "query",
74105	//       "type": "boolean"
74106	//     },
74107	//     "maxResults": {
74108	//       "default": "500",
74109	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
74110	//       "format": "uint32",
74111	//       "location": "query",
74112	//       "minimum": "0",
74113	//       "type": "integer"
74114	//     },
74115	//     "orderBy": {
74116	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
74117	//       "location": "query",
74118	//       "type": "string"
74119	//     },
74120	//     "pageToken": {
74121	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
74122	//       "location": "query",
74123	//       "type": "string"
74124	//     },
74125	//     "project": {
74126	//       "description": "Project ID for this request.",
74127	//       "location": "path",
74128	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74129	//       "required": true,
74130	//       "type": "string"
74131	//     }
74132	//   },
74133	//   "path": "{project}/aggregated/instanceGroups",
74134	//   "response": {
74135	//     "$ref": "InstanceGroupAggregatedList"
74136	//   },
74137	//   "scopes": [
74138	//     "https://www.googleapis.com/auth/cloud-platform",
74139	//     "https://www.googleapis.com/auth/compute",
74140	//     "https://www.googleapis.com/auth/compute.readonly"
74141	//   ]
74142	// }
74143
74144}
74145
74146// Pages invokes f for each page of results.
74147// A non-nil error returned from f will halt the iteration.
74148// The provided context supersedes any context provided to the Context method.
74149func (c *InstanceGroupsAggregatedListCall) Pages(ctx context.Context, f func(*InstanceGroupAggregatedList) error) error {
74150	c.ctx_ = ctx
74151	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74152	for {
74153		x, err := c.Do()
74154		if err != nil {
74155			return err
74156		}
74157		if err := f(x); err != nil {
74158			return err
74159		}
74160		if x.NextPageToken == "" {
74161			return nil
74162		}
74163		c.PageToken(x.NextPageToken)
74164	}
74165}
74166
74167// method id "compute.instanceGroups.delete":
74168
74169type InstanceGroupsDeleteCall struct {
74170	s             *Service
74171	project       string
74172	zone          string
74173	instanceGroup string
74174	urlParams_    gensupport.URLParams
74175	ctx_          context.Context
74176	header_       http.Header
74177}
74178
74179// Delete: Deletes the specified instance group. The instances in the
74180// group are not deleted. Note that instance group must not belong to a
74181// backend service. Read  Deleting an instance group for more
74182// information.
74183func (r *InstanceGroupsService) Delete(project string, zone string, instanceGroup string) *InstanceGroupsDeleteCall {
74184	c := &InstanceGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74185	c.project = project
74186	c.zone = zone
74187	c.instanceGroup = instanceGroup
74188	return c
74189}
74190
74191// RequestId sets the optional parameter "requestId": An optional
74192// request ID to identify requests. Specify a unique request ID so that
74193// if you must retry your request, the server will know to ignore the
74194// request if it has already been completed.
74195//
74196// For example, consider a situation where you make an initial request
74197// and the request times out. If you make the request again with the
74198// same request ID, the server can check if original operation with the
74199// same request ID was received, and if so, will ignore the second
74200// request. This prevents clients from accidentally creating duplicate
74201// commitments.
74202//
74203// The request ID must be a valid UUID with the exception that zero UUID
74204// is not supported (00000000-0000-0000-0000-000000000000).
74205func (c *InstanceGroupsDeleteCall) RequestId(requestId string) *InstanceGroupsDeleteCall {
74206	c.urlParams_.Set("requestId", requestId)
74207	return c
74208}
74209
74210// Fields allows partial responses to be retrieved. See
74211// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74212// for more information.
74213func (c *InstanceGroupsDeleteCall) Fields(s ...googleapi.Field) *InstanceGroupsDeleteCall {
74214	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74215	return c
74216}
74217
74218// Context sets the context to be used in this call's Do method. Any
74219// pending HTTP request will be aborted if the provided context is
74220// canceled.
74221func (c *InstanceGroupsDeleteCall) Context(ctx context.Context) *InstanceGroupsDeleteCall {
74222	c.ctx_ = ctx
74223	return c
74224}
74225
74226// Header returns an http.Header that can be modified by the caller to
74227// add HTTP headers to the request.
74228func (c *InstanceGroupsDeleteCall) Header() http.Header {
74229	if c.header_ == nil {
74230		c.header_ = make(http.Header)
74231	}
74232	return c.header_
74233}
74234
74235func (c *InstanceGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
74236	reqHeaders := make(http.Header)
74237	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74238	for k, v := range c.header_ {
74239		reqHeaders[k] = v
74240	}
74241	reqHeaders.Set("User-Agent", c.s.userAgent())
74242	var body io.Reader = nil
74243	c.urlParams_.Set("alt", alt)
74244	c.urlParams_.Set("prettyPrint", "false")
74245	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
74246	urls += "?" + c.urlParams_.Encode()
74247	req, err := http.NewRequest("DELETE", urls, body)
74248	if err != nil {
74249		return nil, err
74250	}
74251	req.Header = reqHeaders
74252	googleapi.Expand(req.URL, map[string]string{
74253		"project":       c.project,
74254		"zone":          c.zone,
74255		"instanceGroup": c.instanceGroup,
74256	})
74257	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74258}
74259
74260// Do executes the "compute.instanceGroups.delete" call.
74261// Exactly one of *Operation or error will be non-nil. Any non-2xx
74262// status code is an error. Response headers are in either
74263// *Operation.ServerResponse.Header or (if a response was returned at
74264// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74265// to check whether the returned error was because
74266// http.StatusNotModified was returned.
74267func (c *InstanceGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74268	gensupport.SetOptions(c.urlParams_, opts...)
74269	res, err := c.doRequest("json")
74270	if res != nil && res.StatusCode == http.StatusNotModified {
74271		if res.Body != nil {
74272			res.Body.Close()
74273		}
74274		return nil, &googleapi.Error{
74275			Code:   res.StatusCode,
74276			Header: res.Header,
74277		}
74278	}
74279	if err != nil {
74280		return nil, err
74281	}
74282	defer googleapi.CloseBody(res)
74283	if err := googleapi.CheckResponse(res); err != nil {
74284		return nil, err
74285	}
74286	ret := &Operation{
74287		ServerResponse: googleapi.ServerResponse{
74288			Header:         res.Header,
74289			HTTPStatusCode: res.StatusCode,
74290		},
74291	}
74292	target := &ret
74293	if err := gensupport.DecodeResponse(target, res); err != nil {
74294		return nil, err
74295	}
74296	return ret, nil
74297	// {
74298	//   "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.",
74299	//   "httpMethod": "DELETE",
74300	//   "id": "compute.instanceGroups.delete",
74301	//   "parameterOrder": [
74302	//     "project",
74303	//     "zone",
74304	//     "instanceGroup"
74305	//   ],
74306	//   "parameters": {
74307	//     "instanceGroup": {
74308	//       "description": "The name of the instance group to delete.",
74309	//       "location": "path",
74310	//       "required": true,
74311	//       "type": "string"
74312	//     },
74313	//     "project": {
74314	//       "description": "Project ID for this request.",
74315	//       "location": "path",
74316	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74317	//       "required": true,
74318	//       "type": "string"
74319	//     },
74320	//     "requestId": {
74321	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74322	//       "location": "query",
74323	//       "type": "string"
74324	//     },
74325	//     "zone": {
74326	//       "description": "The name of the zone where the instance group is located.",
74327	//       "location": "path",
74328	//       "required": true,
74329	//       "type": "string"
74330	//     }
74331	//   },
74332	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
74333	//   "response": {
74334	//     "$ref": "Operation"
74335	//   },
74336	//   "scopes": [
74337	//     "https://www.googleapis.com/auth/cloud-platform",
74338	//     "https://www.googleapis.com/auth/compute"
74339	//   ]
74340	// }
74341
74342}
74343
74344// method id "compute.instanceGroups.get":
74345
74346type InstanceGroupsGetCall struct {
74347	s             *Service
74348	project       string
74349	zone          string
74350	instanceGroup string
74351	urlParams_    gensupport.URLParams
74352	ifNoneMatch_  string
74353	ctx_          context.Context
74354	header_       http.Header
74355}
74356
74357// Get: Returns the specified instance group. Gets a list of available
74358// instance groups by making a list() request.
74359func (r *InstanceGroupsService) Get(project string, zone string, instanceGroup string) *InstanceGroupsGetCall {
74360	c := &InstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74361	c.project = project
74362	c.zone = zone
74363	c.instanceGroup = instanceGroup
74364	return c
74365}
74366
74367// Fields allows partial responses to be retrieved. See
74368// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74369// for more information.
74370func (c *InstanceGroupsGetCall) Fields(s ...googleapi.Field) *InstanceGroupsGetCall {
74371	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74372	return c
74373}
74374
74375// IfNoneMatch sets the optional parameter which makes the operation
74376// fail if the object's ETag matches the given value. This is useful for
74377// getting updates only after the object has changed since the last
74378// request. Use googleapi.IsNotModified to check whether the response
74379// error from Do is the result of In-None-Match.
74380func (c *InstanceGroupsGetCall) IfNoneMatch(entityTag string) *InstanceGroupsGetCall {
74381	c.ifNoneMatch_ = entityTag
74382	return c
74383}
74384
74385// Context sets the context to be used in this call's Do method. Any
74386// pending HTTP request will be aborted if the provided context is
74387// canceled.
74388func (c *InstanceGroupsGetCall) Context(ctx context.Context) *InstanceGroupsGetCall {
74389	c.ctx_ = ctx
74390	return c
74391}
74392
74393// Header returns an http.Header that can be modified by the caller to
74394// add HTTP headers to the request.
74395func (c *InstanceGroupsGetCall) Header() http.Header {
74396	if c.header_ == nil {
74397		c.header_ = make(http.Header)
74398	}
74399	return c.header_
74400}
74401
74402func (c *InstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
74403	reqHeaders := make(http.Header)
74404	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74405	for k, v := range c.header_ {
74406		reqHeaders[k] = v
74407	}
74408	reqHeaders.Set("User-Agent", c.s.userAgent())
74409	if c.ifNoneMatch_ != "" {
74410		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74411	}
74412	var body io.Reader = nil
74413	c.urlParams_.Set("alt", alt)
74414	c.urlParams_.Set("prettyPrint", "false")
74415	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}")
74416	urls += "?" + c.urlParams_.Encode()
74417	req, err := http.NewRequest("GET", urls, body)
74418	if err != nil {
74419		return nil, err
74420	}
74421	req.Header = reqHeaders
74422	googleapi.Expand(req.URL, map[string]string{
74423		"project":       c.project,
74424		"zone":          c.zone,
74425		"instanceGroup": c.instanceGroup,
74426	})
74427	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74428}
74429
74430// Do executes the "compute.instanceGroups.get" call.
74431// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
74432// status code is an error. Response headers are in either
74433// *InstanceGroup.ServerResponse.Header or (if a response was returned
74434// at all) in error.(*googleapi.Error).Header. Use
74435// googleapi.IsNotModified to check whether the returned error was
74436// because http.StatusNotModified was returned.
74437func (c *InstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
74438	gensupport.SetOptions(c.urlParams_, opts...)
74439	res, err := c.doRequest("json")
74440	if res != nil && res.StatusCode == http.StatusNotModified {
74441		if res.Body != nil {
74442			res.Body.Close()
74443		}
74444		return nil, &googleapi.Error{
74445			Code:   res.StatusCode,
74446			Header: res.Header,
74447		}
74448	}
74449	if err != nil {
74450		return nil, err
74451	}
74452	defer googleapi.CloseBody(res)
74453	if err := googleapi.CheckResponse(res); err != nil {
74454		return nil, err
74455	}
74456	ret := &InstanceGroup{
74457		ServerResponse: googleapi.ServerResponse{
74458			Header:         res.Header,
74459			HTTPStatusCode: res.StatusCode,
74460		},
74461	}
74462	target := &ret
74463	if err := gensupport.DecodeResponse(target, res); err != nil {
74464		return nil, err
74465	}
74466	return ret, nil
74467	// {
74468	//   "description": "Returns the specified instance group. Gets a list of available instance groups by making a list() request.",
74469	//   "httpMethod": "GET",
74470	//   "id": "compute.instanceGroups.get",
74471	//   "parameterOrder": [
74472	//     "project",
74473	//     "zone",
74474	//     "instanceGroup"
74475	//   ],
74476	//   "parameters": {
74477	//     "instanceGroup": {
74478	//       "description": "The name of the instance group.",
74479	//       "location": "path",
74480	//       "required": true,
74481	//       "type": "string"
74482	//     },
74483	//     "project": {
74484	//       "description": "Project ID for this request.",
74485	//       "location": "path",
74486	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74487	//       "required": true,
74488	//       "type": "string"
74489	//     },
74490	//     "zone": {
74491	//       "description": "The name of the zone where the instance group is located.",
74492	//       "location": "path",
74493	//       "required": true,
74494	//       "type": "string"
74495	//     }
74496	//   },
74497	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}",
74498	//   "response": {
74499	//     "$ref": "InstanceGroup"
74500	//   },
74501	//   "scopes": [
74502	//     "https://www.googleapis.com/auth/cloud-platform",
74503	//     "https://www.googleapis.com/auth/compute",
74504	//     "https://www.googleapis.com/auth/compute.readonly"
74505	//   ]
74506	// }
74507
74508}
74509
74510// method id "compute.instanceGroups.insert":
74511
74512type InstanceGroupsInsertCall struct {
74513	s             *Service
74514	project       string
74515	zone          string
74516	instancegroup *InstanceGroup
74517	urlParams_    gensupport.URLParams
74518	ctx_          context.Context
74519	header_       http.Header
74520}
74521
74522// Insert: Creates an instance group in the specified project using the
74523// parameters that are included in the request.
74524func (r *InstanceGroupsService) Insert(project string, zone string, instancegroup *InstanceGroup) *InstanceGroupsInsertCall {
74525	c := &InstanceGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74526	c.project = project
74527	c.zone = zone
74528	c.instancegroup = instancegroup
74529	return c
74530}
74531
74532// RequestId sets the optional parameter "requestId": An optional
74533// request ID to identify requests. Specify a unique request ID so that
74534// if you must retry your request, the server will know to ignore the
74535// request if it has already been completed.
74536//
74537// For example, consider a situation where you make an initial request
74538// and the request times out. If you make the request again with the
74539// same request ID, the server can check if original operation with the
74540// same request ID was received, and if so, will ignore the second
74541// request. This prevents clients from accidentally creating duplicate
74542// commitments.
74543//
74544// The request ID must be a valid UUID with the exception that zero UUID
74545// is not supported (00000000-0000-0000-0000-000000000000).
74546func (c *InstanceGroupsInsertCall) RequestId(requestId string) *InstanceGroupsInsertCall {
74547	c.urlParams_.Set("requestId", requestId)
74548	return c
74549}
74550
74551// Fields allows partial responses to be retrieved. See
74552// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74553// for more information.
74554func (c *InstanceGroupsInsertCall) Fields(s ...googleapi.Field) *InstanceGroupsInsertCall {
74555	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74556	return c
74557}
74558
74559// Context sets the context to be used in this call's Do method. Any
74560// pending HTTP request will be aborted if the provided context is
74561// canceled.
74562func (c *InstanceGroupsInsertCall) Context(ctx context.Context) *InstanceGroupsInsertCall {
74563	c.ctx_ = ctx
74564	return c
74565}
74566
74567// Header returns an http.Header that can be modified by the caller to
74568// add HTTP headers to the request.
74569func (c *InstanceGroupsInsertCall) Header() http.Header {
74570	if c.header_ == nil {
74571		c.header_ = make(http.Header)
74572	}
74573	return c.header_
74574}
74575
74576func (c *InstanceGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
74577	reqHeaders := make(http.Header)
74578	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74579	for k, v := range c.header_ {
74580		reqHeaders[k] = v
74581	}
74582	reqHeaders.Set("User-Agent", c.s.userAgent())
74583	var body io.Reader = nil
74584	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroup)
74585	if err != nil {
74586		return nil, err
74587	}
74588	reqHeaders.Set("Content-Type", "application/json")
74589	c.urlParams_.Set("alt", alt)
74590	c.urlParams_.Set("prettyPrint", "false")
74591	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
74592	urls += "?" + c.urlParams_.Encode()
74593	req, err := http.NewRequest("POST", urls, body)
74594	if err != nil {
74595		return nil, err
74596	}
74597	req.Header = reqHeaders
74598	googleapi.Expand(req.URL, map[string]string{
74599		"project": c.project,
74600		"zone":    c.zone,
74601	})
74602	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74603}
74604
74605// Do executes the "compute.instanceGroups.insert" call.
74606// Exactly one of *Operation or error will be non-nil. Any non-2xx
74607// status code is an error. Response headers are in either
74608// *Operation.ServerResponse.Header or (if a response was returned at
74609// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
74610// to check whether the returned error was because
74611// http.StatusNotModified was returned.
74612func (c *InstanceGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
74613	gensupport.SetOptions(c.urlParams_, opts...)
74614	res, err := c.doRequest("json")
74615	if res != nil && res.StatusCode == http.StatusNotModified {
74616		if res.Body != nil {
74617			res.Body.Close()
74618		}
74619		return nil, &googleapi.Error{
74620			Code:   res.StatusCode,
74621			Header: res.Header,
74622		}
74623	}
74624	if err != nil {
74625		return nil, err
74626	}
74627	defer googleapi.CloseBody(res)
74628	if err := googleapi.CheckResponse(res); err != nil {
74629		return nil, err
74630	}
74631	ret := &Operation{
74632		ServerResponse: googleapi.ServerResponse{
74633			Header:         res.Header,
74634			HTTPStatusCode: res.StatusCode,
74635		},
74636	}
74637	target := &ret
74638	if err := gensupport.DecodeResponse(target, res); err != nil {
74639		return nil, err
74640	}
74641	return ret, nil
74642	// {
74643	//   "description": "Creates an instance group in the specified project using the parameters that are included in the request.",
74644	//   "httpMethod": "POST",
74645	//   "id": "compute.instanceGroups.insert",
74646	//   "parameterOrder": [
74647	//     "project",
74648	//     "zone"
74649	//   ],
74650	//   "parameters": {
74651	//     "project": {
74652	//       "description": "Project ID for this request.",
74653	//       "location": "path",
74654	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74655	//       "required": true,
74656	//       "type": "string"
74657	//     },
74658	//     "requestId": {
74659	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
74660	//       "location": "query",
74661	//       "type": "string"
74662	//     },
74663	//     "zone": {
74664	//       "description": "The name of the zone where you want to create the instance group.",
74665	//       "location": "path",
74666	//       "required": true,
74667	//       "type": "string"
74668	//     }
74669	//   },
74670	//   "path": "{project}/zones/{zone}/instanceGroups",
74671	//   "request": {
74672	//     "$ref": "InstanceGroup"
74673	//   },
74674	//   "response": {
74675	//     "$ref": "Operation"
74676	//   },
74677	//   "scopes": [
74678	//     "https://www.googleapis.com/auth/cloud-platform",
74679	//     "https://www.googleapis.com/auth/compute"
74680	//   ]
74681	// }
74682
74683}
74684
74685// method id "compute.instanceGroups.list":
74686
74687type InstanceGroupsListCall struct {
74688	s            *Service
74689	project      string
74690	zone         string
74691	urlParams_   gensupport.URLParams
74692	ifNoneMatch_ string
74693	ctx_         context.Context
74694	header_      http.Header
74695}
74696
74697// List: Retrieves the list of instance groups that are located in the
74698// specified project and zone.
74699func (r *InstanceGroupsService) List(project string, zone string) *InstanceGroupsListCall {
74700	c := &InstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74701	c.project = project
74702	c.zone = zone
74703	return c
74704}
74705
74706// Filter sets the optional parameter "filter": A filter expression that
74707// filters resources listed in the response. The expression must specify
74708// the field name, a comparison operator, and the value that you want to
74709// use for filtering. The value must be a string, a number, or a
74710// boolean. The comparison operator must be either =, !=, >, or <.
74711//
74712// For example, if you are filtering Compute Engine instances, you can
74713// exclude instances named example-instance by specifying name !=
74714// example-instance.
74715//
74716// You can also filter nested fields. For example, you could specify
74717// scheduling.automaticRestart = false to include instances only if they
74718// are not scheduled for automatic restarts. You can use filtering on
74719// nested fields to filter based on resource labels.
74720//
74721// To filter on multiple expressions, provide each separate expression
74722// within parentheses. For example, (scheduling.automaticRestart = true)
74723// (cpuPlatform = "Intel Skylake"). By default, each expression is an
74724// AND expression. However, you can include AND and OR expressions
74725// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
74726// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
74727// true).
74728func (c *InstanceGroupsListCall) Filter(filter string) *InstanceGroupsListCall {
74729	c.urlParams_.Set("filter", filter)
74730	return c
74731}
74732
74733// MaxResults sets the optional parameter "maxResults": The maximum
74734// number of results per page that should be returned. If the number of
74735// available results is larger than maxResults, Compute Engine returns a
74736// nextPageToken that can be used to get the next page of results in
74737// subsequent list requests. Acceptable values are 0 to 500, inclusive.
74738// (Default: 500)
74739func (c *InstanceGroupsListCall) MaxResults(maxResults int64) *InstanceGroupsListCall {
74740	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
74741	return c
74742}
74743
74744// OrderBy sets the optional parameter "orderBy": Sorts list results by
74745// a certain order. By default, results are returned in alphanumerical
74746// order based on the resource name.
74747//
74748// You can also sort results in descending order based on the creation
74749// timestamp using orderBy="creationTimestamp desc". This sorts results
74750// based on the creationTimestamp field in reverse chronological order
74751// (newest result first). Use this to sort resources like operations so
74752// that the newest operation is returned first.
74753//
74754// Currently, only sorting by name or creationTimestamp desc is
74755// supported.
74756func (c *InstanceGroupsListCall) OrderBy(orderBy string) *InstanceGroupsListCall {
74757	c.urlParams_.Set("orderBy", orderBy)
74758	return c
74759}
74760
74761// PageToken sets the optional parameter "pageToken": Specifies a page
74762// token to use. Set pageToken to the nextPageToken returned by a
74763// previous list request to get the next page of results.
74764func (c *InstanceGroupsListCall) PageToken(pageToken string) *InstanceGroupsListCall {
74765	c.urlParams_.Set("pageToken", pageToken)
74766	return c
74767}
74768
74769// Fields allows partial responses to be retrieved. See
74770// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
74771// for more information.
74772func (c *InstanceGroupsListCall) Fields(s ...googleapi.Field) *InstanceGroupsListCall {
74773	c.urlParams_.Set("fields", googleapi.CombineFields(s))
74774	return c
74775}
74776
74777// IfNoneMatch sets the optional parameter which makes the operation
74778// fail if the object's ETag matches the given value. This is useful for
74779// getting updates only after the object has changed since the last
74780// request. Use googleapi.IsNotModified to check whether the response
74781// error from Do is the result of In-None-Match.
74782func (c *InstanceGroupsListCall) IfNoneMatch(entityTag string) *InstanceGroupsListCall {
74783	c.ifNoneMatch_ = entityTag
74784	return c
74785}
74786
74787// Context sets the context to be used in this call's Do method. Any
74788// pending HTTP request will be aborted if the provided context is
74789// canceled.
74790func (c *InstanceGroupsListCall) Context(ctx context.Context) *InstanceGroupsListCall {
74791	c.ctx_ = ctx
74792	return c
74793}
74794
74795// Header returns an http.Header that can be modified by the caller to
74796// add HTTP headers to the request.
74797func (c *InstanceGroupsListCall) Header() http.Header {
74798	if c.header_ == nil {
74799		c.header_ = make(http.Header)
74800	}
74801	return c.header_
74802}
74803
74804func (c *InstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
74805	reqHeaders := make(http.Header)
74806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
74807	for k, v := range c.header_ {
74808		reqHeaders[k] = v
74809	}
74810	reqHeaders.Set("User-Agent", c.s.userAgent())
74811	if c.ifNoneMatch_ != "" {
74812		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
74813	}
74814	var body io.Reader = nil
74815	c.urlParams_.Set("alt", alt)
74816	c.urlParams_.Set("prettyPrint", "false")
74817	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups")
74818	urls += "?" + c.urlParams_.Encode()
74819	req, err := http.NewRequest("GET", urls, body)
74820	if err != nil {
74821		return nil, err
74822	}
74823	req.Header = reqHeaders
74824	googleapi.Expand(req.URL, map[string]string{
74825		"project": c.project,
74826		"zone":    c.zone,
74827	})
74828	return gensupport.SendRequest(c.ctx_, c.s.client, req)
74829}
74830
74831// Do executes the "compute.instanceGroups.list" call.
74832// Exactly one of *InstanceGroupList or error will be non-nil. Any
74833// non-2xx status code is an error. Response headers are in either
74834// *InstanceGroupList.ServerResponse.Header or (if a response was
74835// returned at all) in error.(*googleapi.Error).Header. Use
74836// googleapi.IsNotModified to check whether the returned error was
74837// because http.StatusNotModified was returned.
74838func (c *InstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*InstanceGroupList, error) {
74839	gensupport.SetOptions(c.urlParams_, opts...)
74840	res, err := c.doRequest("json")
74841	if res != nil && res.StatusCode == http.StatusNotModified {
74842		if res.Body != nil {
74843			res.Body.Close()
74844		}
74845		return nil, &googleapi.Error{
74846			Code:   res.StatusCode,
74847			Header: res.Header,
74848		}
74849	}
74850	if err != nil {
74851		return nil, err
74852	}
74853	defer googleapi.CloseBody(res)
74854	if err := googleapi.CheckResponse(res); err != nil {
74855		return nil, err
74856	}
74857	ret := &InstanceGroupList{
74858		ServerResponse: googleapi.ServerResponse{
74859			Header:         res.Header,
74860			HTTPStatusCode: res.StatusCode,
74861		},
74862	}
74863	target := &ret
74864	if err := gensupport.DecodeResponse(target, res); err != nil {
74865		return nil, err
74866	}
74867	return ret, nil
74868	// {
74869	//   "description": "Retrieves the list of instance groups that are located in the specified project and zone.",
74870	//   "httpMethod": "GET",
74871	//   "id": "compute.instanceGroups.list",
74872	//   "parameterOrder": [
74873	//     "project",
74874	//     "zone"
74875	//   ],
74876	//   "parameters": {
74877	//     "filter": {
74878	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
74879	//       "location": "query",
74880	//       "type": "string"
74881	//     },
74882	//     "maxResults": {
74883	//       "default": "500",
74884	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
74885	//       "format": "uint32",
74886	//       "location": "query",
74887	//       "minimum": "0",
74888	//       "type": "integer"
74889	//     },
74890	//     "orderBy": {
74891	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
74892	//       "location": "query",
74893	//       "type": "string"
74894	//     },
74895	//     "pageToken": {
74896	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
74897	//       "location": "query",
74898	//       "type": "string"
74899	//     },
74900	//     "project": {
74901	//       "description": "Project ID for this request.",
74902	//       "location": "path",
74903	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
74904	//       "required": true,
74905	//       "type": "string"
74906	//     },
74907	//     "zone": {
74908	//       "description": "The name of the zone where the instance group is located.",
74909	//       "location": "path",
74910	//       "required": true,
74911	//       "type": "string"
74912	//     }
74913	//   },
74914	//   "path": "{project}/zones/{zone}/instanceGroups",
74915	//   "response": {
74916	//     "$ref": "InstanceGroupList"
74917	//   },
74918	//   "scopes": [
74919	//     "https://www.googleapis.com/auth/cloud-platform",
74920	//     "https://www.googleapis.com/auth/compute",
74921	//     "https://www.googleapis.com/auth/compute.readonly"
74922	//   ]
74923	// }
74924
74925}
74926
74927// Pages invokes f for each page of results.
74928// A non-nil error returned from f will halt the iteration.
74929// The provided context supersedes any context provided to the Context method.
74930func (c *InstanceGroupsListCall) Pages(ctx context.Context, f func(*InstanceGroupList) error) error {
74931	c.ctx_ = ctx
74932	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
74933	for {
74934		x, err := c.Do()
74935		if err != nil {
74936			return err
74937		}
74938		if err := f(x); err != nil {
74939			return err
74940		}
74941		if x.NextPageToken == "" {
74942			return nil
74943		}
74944		c.PageToken(x.NextPageToken)
74945	}
74946}
74947
74948// method id "compute.instanceGroups.listInstances":
74949
74950type InstanceGroupsListInstancesCall struct {
74951	s                                  *Service
74952	project                            string
74953	zone                               string
74954	instanceGroup                      string
74955	instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest
74956	urlParams_                         gensupport.URLParams
74957	ctx_                               context.Context
74958	header_                            http.Header
74959}
74960
74961// ListInstances: Lists the instances in the specified instance group.
74962func (r *InstanceGroupsService) ListInstances(project string, zone string, instanceGroup string, instancegroupslistinstancesrequest *InstanceGroupsListInstancesRequest) *InstanceGroupsListInstancesCall {
74963	c := &InstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
74964	c.project = project
74965	c.zone = zone
74966	c.instanceGroup = instanceGroup
74967	c.instancegroupslistinstancesrequest = instancegroupslistinstancesrequest
74968	return c
74969}
74970
74971// Filter sets the optional parameter "filter": A filter expression that
74972// filters resources listed in the response. The expression must specify
74973// the field name, a comparison operator, and the value that you want to
74974// use for filtering. The value must be a string, a number, or a
74975// boolean. The comparison operator must be either =, !=, >, or <.
74976//
74977// For example, if you are filtering Compute Engine instances, you can
74978// exclude instances named example-instance by specifying name !=
74979// example-instance.
74980//
74981// You can also filter nested fields. For example, you could specify
74982// scheduling.automaticRestart = false to include instances only if they
74983// are not scheduled for automatic restarts. You can use filtering on
74984// nested fields to filter based on resource labels.
74985//
74986// To filter on multiple expressions, provide each separate expression
74987// within parentheses. For example, (scheduling.automaticRestart = true)
74988// (cpuPlatform = "Intel Skylake"). By default, each expression is an
74989// AND expression. However, you can include AND and OR expressions
74990// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
74991// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
74992// true).
74993func (c *InstanceGroupsListInstancesCall) Filter(filter string) *InstanceGroupsListInstancesCall {
74994	c.urlParams_.Set("filter", filter)
74995	return c
74996}
74997
74998// MaxResults sets the optional parameter "maxResults": The maximum
74999// number of results per page that should be returned. If the number of
75000// available results is larger than maxResults, Compute Engine returns a
75001// nextPageToken that can be used to get the next page of results in
75002// subsequent list requests. Acceptable values are 0 to 500, inclusive.
75003// (Default: 500)
75004func (c *InstanceGroupsListInstancesCall) MaxResults(maxResults int64) *InstanceGroupsListInstancesCall {
75005	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
75006	return c
75007}
75008
75009// OrderBy sets the optional parameter "orderBy": Sorts list results by
75010// a certain order. By default, results are returned in alphanumerical
75011// order based on the resource name.
75012//
75013// You can also sort results in descending order based on the creation
75014// timestamp using orderBy="creationTimestamp desc". This sorts results
75015// based on the creationTimestamp field in reverse chronological order
75016// (newest result first). Use this to sort resources like operations so
75017// that the newest operation is returned first.
75018//
75019// Currently, only sorting by name or creationTimestamp desc is
75020// supported.
75021func (c *InstanceGroupsListInstancesCall) OrderBy(orderBy string) *InstanceGroupsListInstancesCall {
75022	c.urlParams_.Set("orderBy", orderBy)
75023	return c
75024}
75025
75026// PageToken sets the optional parameter "pageToken": Specifies a page
75027// token to use. Set pageToken to the nextPageToken returned by a
75028// previous list request to get the next page of results.
75029func (c *InstanceGroupsListInstancesCall) PageToken(pageToken string) *InstanceGroupsListInstancesCall {
75030	c.urlParams_.Set("pageToken", pageToken)
75031	return c
75032}
75033
75034// Fields allows partial responses to be retrieved. See
75035// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75036// for more information.
75037func (c *InstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsListInstancesCall {
75038	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75039	return c
75040}
75041
75042// Context sets the context to be used in this call's Do method. Any
75043// pending HTTP request will be aborted if the provided context is
75044// canceled.
75045func (c *InstanceGroupsListInstancesCall) Context(ctx context.Context) *InstanceGroupsListInstancesCall {
75046	c.ctx_ = ctx
75047	return c
75048}
75049
75050// Header returns an http.Header that can be modified by the caller to
75051// add HTTP headers to the request.
75052func (c *InstanceGroupsListInstancesCall) Header() http.Header {
75053	if c.header_ == nil {
75054		c.header_ = make(http.Header)
75055	}
75056	return c.header_
75057}
75058
75059func (c *InstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
75060	reqHeaders := make(http.Header)
75061	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75062	for k, v := range c.header_ {
75063		reqHeaders[k] = v
75064	}
75065	reqHeaders.Set("User-Agent", c.s.userAgent())
75066	var body io.Reader = nil
75067	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupslistinstancesrequest)
75068	if err != nil {
75069		return nil, err
75070	}
75071	reqHeaders.Set("Content-Type", "application/json")
75072	c.urlParams_.Set("alt", alt)
75073	c.urlParams_.Set("prettyPrint", "false")
75074	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances")
75075	urls += "?" + c.urlParams_.Encode()
75076	req, err := http.NewRequest("POST", urls, body)
75077	if err != nil {
75078		return nil, err
75079	}
75080	req.Header = reqHeaders
75081	googleapi.Expand(req.URL, map[string]string{
75082		"project":       c.project,
75083		"zone":          c.zone,
75084		"instanceGroup": c.instanceGroup,
75085	})
75086	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75087}
75088
75089// Do executes the "compute.instanceGroups.listInstances" call.
75090// Exactly one of *InstanceGroupsListInstances or error will be non-nil.
75091// Any non-2xx status code is an error. Response headers are in either
75092// *InstanceGroupsListInstances.ServerResponse.Header or (if a response
75093// was returned at all) in error.(*googleapi.Error).Header. Use
75094// googleapi.IsNotModified to check whether the returned error was
75095// because http.StatusNotModified was returned.
75096func (c *InstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*InstanceGroupsListInstances, error) {
75097	gensupport.SetOptions(c.urlParams_, opts...)
75098	res, err := c.doRequest("json")
75099	if res != nil && res.StatusCode == http.StatusNotModified {
75100		if res.Body != nil {
75101			res.Body.Close()
75102		}
75103		return nil, &googleapi.Error{
75104			Code:   res.StatusCode,
75105			Header: res.Header,
75106		}
75107	}
75108	if err != nil {
75109		return nil, err
75110	}
75111	defer googleapi.CloseBody(res)
75112	if err := googleapi.CheckResponse(res); err != nil {
75113		return nil, err
75114	}
75115	ret := &InstanceGroupsListInstances{
75116		ServerResponse: googleapi.ServerResponse{
75117			Header:         res.Header,
75118			HTTPStatusCode: res.StatusCode,
75119		},
75120	}
75121	target := &ret
75122	if err := gensupport.DecodeResponse(target, res); err != nil {
75123		return nil, err
75124	}
75125	return ret, nil
75126	// {
75127	//   "description": "Lists the instances in the specified instance group.",
75128	//   "httpMethod": "POST",
75129	//   "id": "compute.instanceGroups.listInstances",
75130	//   "parameterOrder": [
75131	//     "project",
75132	//     "zone",
75133	//     "instanceGroup"
75134	//   ],
75135	//   "parameters": {
75136	//     "filter": {
75137	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
75138	//       "location": "query",
75139	//       "type": "string"
75140	//     },
75141	//     "instanceGroup": {
75142	//       "description": "The name of the instance group from which you want to generate a list of included instances.",
75143	//       "location": "path",
75144	//       "required": true,
75145	//       "type": "string"
75146	//     },
75147	//     "maxResults": {
75148	//       "default": "500",
75149	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
75150	//       "format": "uint32",
75151	//       "location": "query",
75152	//       "minimum": "0",
75153	//       "type": "integer"
75154	//     },
75155	//     "orderBy": {
75156	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
75157	//       "location": "query",
75158	//       "type": "string"
75159	//     },
75160	//     "pageToken": {
75161	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
75162	//       "location": "query",
75163	//       "type": "string"
75164	//     },
75165	//     "project": {
75166	//       "description": "Project ID for this request.",
75167	//       "location": "path",
75168	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75169	//       "required": true,
75170	//       "type": "string"
75171	//     },
75172	//     "zone": {
75173	//       "description": "The name of the zone where the instance group is located.",
75174	//       "location": "path",
75175	//       "required": true,
75176	//       "type": "string"
75177	//     }
75178	//   },
75179	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/listInstances",
75180	//   "request": {
75181	//     "$ref": "InstanceGroupsListInstancesRequest"
75182	//   },
75183	//   "response": {
75184	//     "$ref": "InstanceGroupsListInstances"
75185	//   },
75186	//   "scopes": [
75187	//     "https://www.googleapis.com/auth/cloud-platform",
75188	//     "https://www.googleapis.com/auth/compute",
75189	//     "https://www.googleapis.com/auth/compute.readonly"
75190	//   ]
75191	// }
75192
75193}
75194
75195// Pages invokes f for each page of results.
75196// A non-nil error returned from f will halt the iteration.
75197// The provided context supersedes any context provided to the Context method.
75198func (c *InstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*InstanceGroupsListInstances) error) error {
75199	c.ctx_ = ctx
75200	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
75201	for {
75202		x, err := c.Do()
75203		if err != nil {
75204			return err
75205		}
75206		if err := f(x); err != nil {
75207			return err
75208		}
75209		if x.NextPageToken == "" {
75210			return nil
75211		}
75212		c.PageToken(x.NextPageToken)
75213	}
75214}
75215
75216// method id "compute.instanceGroups.removeInstances":
75217
75218type InstanceGroupsRemoveInstancesCall struct {
75219	s                                    *Service
75220	project                              string
75221	zone                                 string
75222	instanceGroup                        string
75223	instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest
75224	urlParams_                           gensupport.URLParams
75225	ctx_                                 context.Context
75226	header_                              http.Header
75227}
75228
75229// RemoveInstances: Removes one or more instances from the specified
75230// instance group, but does not delete those instances.
75231//
75232// If the group is part of a backend service that has enabled connection
75233// draining, it can take up to 60 seconds after the connection draining
75234// duration before the VM instance is removed or deleted.
75235func (r *InstanceGroupsService) RemoveInstances(project string, zone string, instanceGroup string, instancegroupsremoveinstancesrequest *InstanceGroupsRemoveInstancesRequest) *InstanceGroupsRemoveInstancesCall {
75236	c := &InstanceGroupsRemoveInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75237	c.project = project
75238	c.zone = zone
75239	c.instanceGroup = instanceGroup
75240	c.instancegroupsremoveinstancesrequest = instancegroupsremoveinstancesrequest
75241	return c
75242}
75243
75244// RequestId sets the optional parameter "requestId": An optional
75245// request ID to identify requests. Specify a unique request ID so that
75246// if you must retry your request, the server will know to ignore the
75247// request if it has already been completed.
75248//
75249// For example, consider a situation where you make an initial request
75250// and the request times out. If you make the request again with the
75251// same request ID, the server can check if original operation with the
75252// same request ID was received, and if so, will ignore the second
75253// request. This prevents clients from accidentally creating duplicate
75254// commitments.
75255//
75256// The request ID must be a valid UUID with the exception that zero UUID
75257// is not supported (00000000-0000-0000-0000-000000000000).
75258func (c *InstanceGroupsRemoveInstancesCall) RequestId(requestId string) *InstanceGroupsRemoveInstancesCall {
75259	c.urlParams_.Set("requestId", requestId)
75260	return c
75261}
75262
75263// Fields allows partial responses to be retrieved. See
75264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75265// for more information.
75266func (c *InstanceGroupsRemoveInstancesCall) Fields(s ...googleapi.Field) *InstanceGroupsRemoveInstancesCall {
75267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75268	return c
75269}
75270
75271// Context sets the context to be used in this call's Do method. Any
75272// pending HTTP request will be aborted if the provided context is
75273// canceled.
75274func (c *InstanceGroupsRemoveInstancesCall) Context(ctx context.Context) *InstanceGroupsRemoveInstancesCall {
75275	c.ctx_ = ctx
75276	return c
75277}
75278
75279// Header returns an http.Header that can be modified by the caller to
75280// add HTTP headers to the request.
75281func (c *InstanceGroupsRemoveInstancesCall) Header() http.Header {
75282	if c.header_ == nil {
75283		c.header_ = make(http.Header)
75284	}
75285	return c.header_
75286}
75287
75288func (c *InstanceGroupsRemoveInstancesCall) doRequest(alt string) (*http.Response, error) {
75289	reqHeaders := make(http.Header)
75290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75291	for k, v := range c.header_ {
75292		reqHeaders[k] = v
75293	}
75294	reqHeaders.Set("User-Agent", c.s.userAgent())
75295	var body io.Reader = nil
75296	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupsremoveinstancesrequest)
75297	if err != nil {
75298		return nil, err
75299	}
75300	reqHeaders.Set("Content-Type", "application/json")
75301	c.urlParams_.Set("alt", alt)
75302	c.urlParams_.Set("prettyPrint", "false")
75303	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances")
75304	urls += "?" + c.urlParams_.Encode()
75305	req, err := http.NewRequest("POST", urls, body)
75306	if err != nil {
75307		return nil, err
75308	}
75309	req.Header = reqHeaders
75310	googleapi.Expand(req.URL, map[string]string{
75311		"project":       c.project,
75312		"zone":          c.zone,
75313		"instanceGroup": c.instanceGroup,
75314	})
75315	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75316}
75317
75318// Do executes the "compute.instanceGroups.removeInstances" call.
75319// Exactly one of *Operation or error will be non-nil. Any non-2xx
75320// status code is an error. Response headers are in either
75321// *Operation.ServerResponse.Header or (if a response was returned at
75322// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75323// to check whether the returned error was because
75324// http.StatusNotModified was returned.
75325func (c *InstanceGroupsRemoveInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75326	gensupport.SetOptions(c.urlParams_, opts...)
75327	res, err := c.doRequest("json")
75328	if res != nil && res.StatusCode == http.StatusNotModified {
75329		if res.Body != nil {
75330			res.Body.Close()
75331		}
75332		return nil, &googleapi.Error{
75333			Code:   res.StatusCode,
75334			Header: res.Header,
75335		}
75336	}
75337	if err != nil {
75338		return nil, err
75339	}
75340	defer googleapi.CloseBody(res)
75341	if err := googleapi.CheckResponse(res); err != nil {
75342		return nil, err
75343	}
75344	ret := &Operation{
75345		ServerResponse: googleapi.ServerResponse{
75346			Header:         res.Header,
75347			HTTPStatusCode: res.StatusCode,
75348		},
75349	}
75350	target := &ret
75351	if err := gensupport.DecodeResponse(target, res); err != nil {
75352		return nil, err
75353	}
75354	return ret, nil
75355	// {
75356	//   "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.",
75357	//   "httpMethod": "POST",
75358	//   "id": "compute.instanceGroups.removeInstances",
75359	//   "parameterOrder": [
75360	//     "project",
75361	//     "zone",
75362	//     "instanceGroup"
75363	//   ],
75364	//   "parameters": {
75365	//     "instanceGroup": {
75366	//       "description": "The name of the instance group where the specified instances will be removed.",
75367	//       "location": "path",
75368	//       "required": true,
75369	//       "type": "string"
75370	//     },
75371	//     "project": {
75372	//       "description": "Project ID for this request.",
75373	//       "location": "path",
75374	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75375	//       "required": true,
75376	//       "type": "string"
75377	//     },
75378	//     "requestId": {
75379	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75380	//       "location": "query",
75381	//       "type": "string"
75382	//     },
75383	//     "zone": {
75384	//       "description": "The name of the zone where the instance group is located.",
75385	//       "location": "path",
75386	//       "required": true,
75387	//       "type": "string"
75388	//     }
75389	//   },
75390	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/removeInstances",
75391	//   "request": {
75392	//     "$ref": "InstanceGroupsRemoveInstancesRequest"
75393	//   },
75394	//   "response": {
75395	//     "$ref": "Operation"
75396	//   },
75397	//   "scopes": [
75398	//     "https://www.googleapis.com/auth/cloud-platform",
75399	//     "https://www.googleapis.com/auth/compute"
75400	//   ]
75401	// }
75402
75403}
75404
75405// method id "compute.instanceGroups.setNamedPorts":
75406
75407type InstanceGroupsSetNamedPortsCall struct {
75408	s                                  *Service
75409	project                            string
75410	zone                               string
75411	instanceGroup                      string
75412	instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest
75413	urlParams_                         gensupport.URLParams
75414	ctx_                               context.Context
75415	header_                            http.Header
75416}
75417
75418// SetNamedPorts: Sets the named ports for the specified instance group.
75419func (r *InstanceGroupsService) SetNamedPorts(project string, zone string, instanceGroup string, instancegroupssetnamedportsrequest *InstanceGroupsSetNamedPortsRequest) *InstanceGroupsSetNamedPortsCall {
75420	c := &InstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75421	c.project = project
75422	c.zone = zone
75423	c.instanceGroup = instanceGroup
75424	c.instancegroupssetnamedportsrequest = instancegroupssetnamedportsrequest
75425	return c
75426}
75427
75428// RequestId sets the optional parameter "requestId": An optional
75429// request ID to identify requests. Specify a unique request ID so that
75430// if you must retry your request, the server will know to ignore the
75431// request if it has already been completed.
75432//
75433// For example, consider a situation where you make an initial request
75434// and the request times out. If you make the request again with the
75435// same request ID, the server can check if original operation with the
75436// same request ID was received, and if so, will ignore the second
75437// request. This prevents clients from accidentally creating duplicate
75438// commitments.
75439//
75440// The request ID must be a valid UUID with the exception that zero UUID
75441// is not supported (00000000-0000-0000-0000-000000000000).
75442func (c *InstanceGroupsSetNamedPortsCall) RequestId(requestId string) *InstanceGroupsSetNamedPortsCall {
75443	c.urlParams_.Set("requestId", requestId)
75444	return c
75445}
75446
75447// Fields allows partial responses to be retrieved. See
75448// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75449// for more information.
75450func (c *InstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *InstanceGroupsSetNamedPortsCall {
75451	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75452	return c
75453}
75454
75455// Context sets the context to be used in this call's Do method. Any
75456// pending HTTP request will be aborted if the provided context is
75457// canceled.
75458func (c *InstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *InstanceGroupsSetNamedPortsCall {
75459	c.ctx_ = ctx
75460	return c
75461}
75462
75463// Header returns an http.Header that can be modified by the caller to
75464// add HTTP headers to the request.
75465func (c *InstanceGroupsSetNamedPortsCall) Header() http.Header {
75466	if c.header_ == nil {
75467		c.header_ = make(http.Header)
75468	}
75469	return c.header_
75470}
75471
75472func (c *InstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
75473	reqHeaders := make(http.Header)
75474	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75475	for k, v := range c.header_ {
75476		reqHeaders[k] = v
75477	}
75478	reqHeaders.Set("User-Agent", c.s.userAgent())
75479	var body io.Reader = nil
75480	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupssetnamedportsrequest)
75481	if err != nil {
75482		return nil, err
75483	}
75484	reqHeaders.Set("Content-Type", "application/json")
75485	c.urlParams_.Set("alt", alt)
75486	c.urlParams_.Set("prettyPrint", "false")
75487	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts")
75488	urls += "?" + c.urlParams_.Encode()
75489	req, err := http.NewRequest("POST", urls, body)
75490	if err != nil {
75491		return nil, err
75492	}
75493	req.Header = reqHeaders
75494	googleapi.Expand(req.URL, map[string]string{
75495		"project":       c.project,
75496		"zone":          c.zone,
75497		"instanceGroup": c.instanceGroup,
75498	})
75499	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75500}
75501
75502// Do executes the "compute.instanceGroups.setNamedPorts" call.
75503// Exactly one of *Operation or error will be non-nil. Any non-2xx
75504// status code is an error. Response headers are in either
75505// *Operation.ServerResponse.Header or (if a response was returned at
75506// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75507// to check whether the returned error was because
75508// http.StatusNotModified was returned.
75509func (c *InstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75510	gensupport.SetOptions(c.urlParams_, opts...)
75511	res, err := c.doRequest("json")
75512	if res != nil && res.StatusCode == http.StatusNotModified {
75513		if res.Body != nil {
75514			res.Body.Close()
75515		}
75516		return nil, &googleapi.Error{
75517			Code:   res.StatusCode,
75518			Header: res.Header,
75519		}
75520	}
75521	if err != nil {
75522		return nil, err
75523	}
75524	defer googleapi.CloseBody(res)
75525	if err := googleapi.CheckResponse(res); err != nil {
75526		return nil, err
75527	}
75528	ret := &Operation{
75529		ServerResponse: googleapi.ServerResponse{
75530			Header:         res.Header,
75531			HTTPStatusCode: res.StatusCode,
75532		},
75533	}
75534	target := &ret
75535	if err := gensupport.DecodeResponse(target, res); err != nil {
75536		return nil, err
75537	}
75538	return ret, nil
75539	// {
75540	//   "description": "Sets the named ports for the specified instance group.",
75541	//   "httpMethod": "POST",
75542	//   "id": "compute.instanceGroups.setNamedPorts",
75543	//   "parameterOrder": [
75544	//     "project",
75545	//     "zone",
75546	//     "instanceGroup"
75547	//   ],
75548	//   "parameters": {
75549	//     "instanceGroup": {
75550	//       "description": "The name of the instance group where the named ports are updated.",
75551	//       "location": "path",
75552	//       "required": true,
75553	//       "type": "string"
75554	//     },
75555	//     "project": {
75556	//       "description": "Project ID for this request.",
75557	//       "location": "path",
75558	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75559	//       "required": true,
75560	//       "type": "string"
75561	//     },
75562	//     "requestId": {
75563	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75564	//       "location": "query",
75565	//       "type": "string"
75566	//     },
75567	//     "zone": {
75568	//       "description": "The name of the zone where the instance group is located.",
75569	//       "location": "path",
75570	//       "required": true,
75571	//       "type": "string"
75572	//     }
75573	//   },
75574	//   "path": "{project}/zones/{zone}/instanceGroups/{instanceGroup}/setNamedPorts",
75575	//   "request": {
75576	//     "$ref": "InstanceGroupsSetNamedPortsRequest"
75577	//   },
75578	//   "response": {
75579	//     "$ref": "Operation"
75580	//   },
75581	//   "scopes": [
75582	//     "https://www.googleapis.com/auth/cloud-platform",
75583	//     "https://www.googleapis.com/auth/compute"
75584	//   ]
75585	// }
75586
75587}
75588
75589// method id "compute.instanceGroups.testIamPermissions":
75590
75591type InstanceGroupsTestIamPermissionsCall struct {
75592	s                      *Service
75593	project                string
75594	zone                   string
75595	resource               string
75596	testpermissionsrequest *TestPermissionsRequest
75597	urlParams_             gensupport.URLParams
75598	ctx_                   context.Context
75599	header_                http.Header
75600}
75601
75602// TestIamPermissions: Returns permissions that a caller has on the
75603// specified resource.
75604func (r *InstanceGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceGroupsTestIamPermissionsCall {
75605	c := &InstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75606	c.project = project
75607	c.zone = zone
75608	c.resource = resource
75609	c.testpermissionsrequest = testpermissionsrequest
75610	return c
75611}
75612
75613// Fields allows partial responses to be retrieved. See
75614// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75615// for more information.
75616func (c *InstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceGroupsTestIamPermissionsCall {
75617	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75618	return c
75619}
75620
75621// Context sets the context to be used in this call's Do method. Any
75622// pending HTTP request will be aborted if the provided context is
75623// canceled.
75624func (c *InstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *InstanceGroupsTestIamPermissionsCall {
75625	c.ctx_ = ctx
75626	return c
75627}
75628
75629// Header returns an http.Header that can be modified by the caller to
75630// add HTTP headers to the request.
75631func (c *InstanceGroupsTestIamPermissionsCall) Header() http.Header {
75632	if c.header_ == nil {
75633		c.header_ = make(http.Header)
75634	}
75635	return c.header_
75636}
75637
75638func (c *InstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
75639	reqHeaders := make(http.Header)
75640	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75641	for k, v := range c.header_ {
75642		reqHeaders[k] = v
75643	}
75644	reqHeaders.Set("User-Agent", c.s.userAgent())
75645	var body io.Reader = nil
75646	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
75647	if err != nil {
75648		return nil, err
75649	}
75650	reqHeaders.Set("Content-Type", "application/json")
75651	c.urlParams_.Set("alt", alt)
75652	c.urlParams_.Set("prettyPrint", "false")
75653	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions")
75654	urls += "?" + c.urlParams_.Encode()
75655	req, err := http.NewRequest("POST", urls, body)
75656	if err != nil {
75657		return nil, err
75658	}
75659	req.Header = reqHeaders
75660	googleapi.Expand(req.URL, map[string]string{
75661		"project":  c.project,
75662		"zone":     c.zone,
75663		"resource": c.resource,
75664	})
75665	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75666}
75667
75668// Do executes the "compute.instanceGroups.testIamPermissions" call.
75669// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
75670// non-2xx status code is an error. Response headers are in either
75671// *TestPermissionsResponse.ServerResponse.Header or (if a response was
75672// returned at all) in error.(*googleapi.Error).Header. Use
75673// googleapi.IsNotModified to check whether the returned error was
75674// because http.StatusNotModified was returned.
75675func (c *InstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
75676	gensupport.SetOptions(c.urlParams_, opts...)
75677	res, err := c.doRequest("json")
75678	if res != nil && res.StatusCode == http.StatusNotModified {
75679		if res.Body != nil {
75680			res.Body.Close()
75681		}
75682		return nil, &googleapi.Error{
75683			Code:   res.StatusCode,
75684			Header: res.Header,
75685		}
75686	}
75687	if err != nil {
75688		return nil, err
75689	}
75690	defer googleapi.CloseBody(res)
75691	if err := googleapi.CheckResponse(res); err != nil {
75692		return nil, err
75693	}
75694	ret := &TestPermissionsResponse{
75695		ServerResponse: googleapi.ServerResponse{
75696			Header:         res.Header,
75697			HTTPStatusCode: res.StatusCode,
75698		},
75699	}
75700	target := &ret
75701	if err := gensupport.DecodeResponse(target, res); err != nil {
75702		return nil, err
75703	}
75704	return ret, nil
75705	// {
75706	//   "description": "Returns permissions that a caller has on the specified resource.",
75707	//   "httpMethod": "POST",
75708	//   "id": "compute.instanceGroups.testIamPermissions",
75709	//   "parameterOrder": [
75710	//     "project",
75711	//     "zone",
75712	//     "resource"
75713	//   ],
75714	//   "parameters": {
75715	//     "project": {
75716	//       "description": "Project ID for this request.",
75717	//       "location": "path",
75718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75719	//       "required": true,
75720	//       "type": "string"
75721	//     },
75722	//     "resource": {
75723	//       "description": "Name or id of the resource for this request.",
75724	//       "location": "path",
75725	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75726	//       "required": true,
75727	//       "type": "string"
75728	//     },
75729	//     "zone": {
75730	//       "description": "The name of the zone for this request.",
75731	//       "location": "path",
75732	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
75733	//       "required": true,
75734	//       "type": "string"
75735	//     }
75736	//   },
75737	//   "path": "{project}/zones/{zone}/instanceGroups/{resource}/testIamPermissions",
75738	//   "request": {
75739	//     "$ref": "TestPermissionsRequest"
75740	//   },
75741	//   "response": {
75742	//     "$ref": "TestPermissionsResponse"
75743	//   },
75744	//   "scopes": [
75745	//     "https://www.googleapis.com/auth/cloud-platform",
75746	//     "https://www.googleapis.com/auth/compute",
75747	//     "https://www.googleapis.com/auth/compute.readonly"
75748	//   ]
75749	// }
75750
75751}
75752
75753// method id "compute.instanceTemplates.delete":
75754
75755type InstanceTemplatesDeleteCall struct {
75756	s                *Service
75757	project          string
75758	instanceTemplate string
75759	urlParams_       gensupport.URLParams
75760	ctx_             context.Context
75761	header_          http.Header
75762}
75763
75764// Delete: Deletes the specified instance template. Deleting an instance
75765// template is permanent and cannot be undone. It is not possible to
75766// delete templates that are already in use by a managed instance group.
75767// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/delete
75768func (r *InstanceTemplatesService) Delete(project string, instanceTemplate string) *InstanceTemplatesDeleteCall {
75769	c := &InstanceTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75770	c.project = project
75771	c.instanceTemplate = instanceTemplate
75772	return c
75773}
75774
75775// RequestId sets the optional parameter "requestId": An optional
75776// request ID to identify requests. Specify a unique request ID so that
75777// if you must retry your request, the server will know to ignore the
75778// request if it has already been completed.
75779//
75780// For example, consider a situation where you make an initial request
75781// and the request times out. If you make the request again with the
75782// same request ID, the server can check if original operation with the
75783// same request ID was received, and if so, will ignore the second
75784// request. This prevents clients from accidentally creating duplicate
75785// commitments.
75786//
75787// The request ID must be a valid UUID with the exception that zero UUID
75788// is not supported (00000000-0000-0000-0000-000000000000).
75789func (c *InstanceTemplatesDeleteCall) RequestId(requestId string) *InstanceTemplatesDeleteCall {
75790	c.urlParams_.Set("requestId", requestId)
75791	return c
75792}
75793
75794// Fields allows partial responses to be retrieved. See
75795// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75796// for more information.
75797func (c *InstanceTemplatesDeleteCall) Fields(s ...googleapi.Field) *InstanceTemplatesDeleteCall {
75798	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75799	return c
75800}
75801
75802// Context sets the context to be used in this call's Do method. Any
75803// pending HTTP request will be aborted if the provided context is
75804// canceled.
75805func (c *InstanceTemplatesDeleteCall) Context(ctx context.Context) *InstanceTemplatesDeleteCall {
75806	c.ctx_ = ctx
75807	return c
75808}
75809
75810// Header returns an http.Header that can be modified by the caller to
75811// add HTTP headers to the request.
75812func (c *InstanceTemplatesDeleteCall) Header() http.Header {
75813	if c.header_ == nil {
75814		c.header_ = make(http.Header)
75815	}
75816	return c.header_
75817}
75818
75819func (c *InstanceTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
75820	reqHeaders := make(http.Header)
75821	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75822	for k, v := range c.header_ {
75823		reqHeaders[k] = v
75824	}
75825	reqHeaders.Set("User-Agent", c.s.userAgent())
75826	var body io.Reader = nil
75827	c.urlParams_.Set("alt", alt)
75828	c.urlParams_.Set("prettyPrint", "false")
75829	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
75830	urls += "?" + c.urlParams_.Encode()
75831	req, err := http.NewRequest("DELETE", urls, body)
75832	if err != nil {
75833		return nil, err
75834	}
75835	req.Header = reqHeaders
75836	googleapi.Expand(req.URL, map[string]string{
75837		"project":          c.project,
75838		"instanceTemplate": c.instanceTemplate,
75839	})
75840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
75841}
75842
75843// Do executes the "compute.instanceTemplates.delete" call.
75844// Exactly one of *Operation or error will be non-nil. Any non-2xx
75845// status code is an error. Response headers are in either
75846// *Operation.ServerResponse.Header or (if a response was returned at
75847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
75848// to check whether the returned error was because
75849// http.StatusNotModified was returned.
75850func (c *InstanceTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
75851	gensupport.SetOptions(c.urlParams_, opts...)
75852	res, err := c.doRequest("json")
75853	if res != nil && res.StatusCode == http.StatusNotModified {
75854		if res.Body != nil {
75855			res.Body.Close()
75856		}
75857		return nil, &googleapi.Error{
75858			Code:   res.StatusCode,
75859			Header: res.Header,
75860		}
75861	}
75862	if err != nil {
75863		return nil, err
75864	}
75865	defer googleapi.CloseBody(res)
75866	if err := googleapi.CheckResponse(res); err != nil {
75867		return nil, err
75868	}
75869	ret := &Operation{
75870		ServerResponse: googleapi.ServerResponse{
75871			Header:         res.Header,
75872			HTTPStatusCode: res.StatusCode,
75873		},
75874	}
75875	target := &ret
75876	if err := gensupport.DecodeResponse(target, res); err != nil {
75877		return nil, err
75878	}
75879	return ret, nil
75880	// {
75881	//   "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.",
75882	//   "httpMethod": "DELETE",
75883	//   "id": "compute.instanceTemplates.delete",
75884	//   "parameterOrder": [
75885	//     "project",
75886	//     "instanceTemplate"
75887	//   ],
75888	//   "parameters": {
75889	//     "instanceTemplate": {
75890	//       "description": "The name of the instance template to delete.",
75891	//       "location": "path",
75892	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
75893	//       "required": true,
75894	//       "type": "string"
75895	//     },
75896	//     "project": {
75897	//       "description": "Project ID for this request.",
75898	//       "location": "path",
75899	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
75900	//       "required": true,
75901	//       "type": "string"
75902	//     },
75903	//     "requestId": {
75904	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
75905	//       "location": "query",
75906	//       "type": "string"
75907	//     }
75908	//   },
75909	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
75910	//   "response": {
75911	//     "$ref": "Operation"
75912	//   },
75913	//   "scopes": [
75914	//     "https://www.googleapis.com/auth/cloud-platform",
75915	//     "https://www.googleapis.com/auth/compute"
75916	//   ]
75917	// }
75918
75919}
75920
75921// method id "compute.instanceTemplates.get":
75922
75923type InstanceTemplatesGetCall struct {
75924	s                *Service
75925	project          string
75926	instanceTemplate string
75927	urlParams_       gensupport.URLParams
75928	ifNoneMatch_     string
75929	ctx_             context.Context
75930	header_          http.Header
75931}
75932
75933// Get: Returns the specified instance template. Gets a list of
75934// available instance templates by making a list() request.
75935// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/get
75936func (r *InstanceTemplatesService) Get(project string, instanceTemplate string) *InstanceTemplatesGetCall {
75937	c := &InstanceTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
75938	c.project = project
75939	c.instanceTemplate = instanceTemplate
75940	return c
75941}
75942
75943// Fields allows partial responses to be retrieved. See
75944// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
75945// for more information.
75946func (c *InstanceTemplatesGetCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetCall {
75947	c.urlParams_.Set("fields", googleapi.CombineFields(s))
75948	return c
75949}
75950
75951// IfNoneMatch sets the optional parameter which makes the operation
75952// fail if the object's ETag matches the given value. This is useful for
75953// getting updates only after the object has changed since the last
75954// request. Use googleapi.IsNotModified to check whether the response
75955// error from Do is the result of In-None-Match.
75956func (c *InstanceTemplatesGetCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetCall {
75957	c.ifNoneMatch_ = entityTag
75958	return c
75959}
75960
75961// Context sets the context to be used in this call's Do method. Any
75962// pending HTTP request will be aborted if the provided context is
75963// canceled.
75964func (c *InstanceTemplatesGetCall) Context(ctx context.Context) *InstanceTemplatesGetCall {
75965	c.ctx_ = ctx
75966	return c
75967}
75968
75969// Header returns an http.Header that can be modified by the caller to
75970// add HTTP headers to the request.
75971func (c *InstanceTemplatesGetCall) Header() http.Header {
75972	if c.header_ == nil {
75973		c.header_ = make(http.Header)
75974	}
75975	return c.header_
75976}
75977
75978func (c *InstanceTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
75979	reqHeaders := make(http.Header)
75980	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
75981	for k, v := range c.header_ {
75982		reqHeaders[k] = v
75983	}
75984	reqHeaders.Set("User-Agent", c.s.userAgent())
75985	if c.ifNoneMatch_ != "" {
75986		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
75987	}
75988	var body io.Reader = nil
75989	c.urlParams_.Set("alt", alt)
75990	c.urlParams_.Set("prettyPrint", "false")
75991	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{instanceTemplate}")
75992	urls += "?" + c.urlParams_.Encode()
75993	req, err := http.NewRequest("GET", urls, body)
75994	if err != nil {
75995		return nil, err
75996	}
75997	req.Header = reqHeaders
75998	googleapi.Expand(req.URL, map[string]string{
75999		"project":          c.project,
76000		"instanceTemplate": c.instanceTemplate,
76001	})
76002	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76003}
76004
76005// Do executes the "compute.instanceTemplates.get" call.
76006// Exactly one of *InstanceTemplate or error will be non-nil. Any
76007// non-2xx status code is an error. Response headers are in either
76008// *InstanceTemplate.ServerResponse.Header or (if a response was
76009// returned at all) in error.(*googleapi.Error).Header. Use
76010// googleapi.IsNotModified to check whether the returned error was
76011// because http.StatusNotModified was returned.
76012func (c *InstanceTemplatesGetCall) Do(opts ...googleapi.CallOption) (*InstanceTemplate, error) {
76013	gensupport.SetOptions(c.urlParams_, opts...)
76014	res, err := c.doRequest("json")
76015	if res != nil && res.StatusCode == http.StatusNotModified {
76016		if res.Body != nil {
76017			res.Body.Close()
76018		}
76019		return nil, &googleapi.Error{
76020			Code:   res.StatusCode,
76021			Header: res.Header,
76022		}
76023	}
76024	if err != nil {
76025		return nil, err
76026	}
76027	defer googleapi.CloseBody(res)
76028	if err := googleapi.CheckResponse(res); err != nil {
76029		return nil, err
76030	}
76031	ret := &InstanceTemplate{
76032		ServerResponse: googleapi.ServerResponse{
76033			Header:         res.Header,
76034			HTTPStatusCode: res.StatusCode,
76035		},
76036	}
76037	target := &ret
76038	if err := gensupport.DecodeResponse(target, res); err != nil {
76039		return nil, err
76040	}
76041	return ret, nil
76042	// {
76043	//   "description": "Returns the specified instance template. Gets a list of available instance templates by making a list() request.",
76044	//   "httpMethod": "GET",
76045	//   "id": "compute.instanceTemplates.get",
76046	//   "parameterOrder": [
76047	//     "project",
76048	//     "instanceTemplate"
76049	//   ],
76050	//   "parameters": {
76051	//     "instanceTemplate": {
76052	//       "description": "The name of the instance template.",
76053	//       "location": "path",
76054	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76055	//       "required": true,
76056	//       "type": "string"
76057	//     },
76058	//     "project": {
76059	//       "description": "Project ID for this request.",
76060	//       "location": "path",
76061	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76062	//       "required": true,
76063	//       "type": "string"
76064	//     }
76065	//   },
76066	//   "path": "{project}/global/instanceTemplates/{instanceTemplate}",
76067	//   "response": {
76068	//     "$ref": "InstanceTemplate"
76069	//   },
76070	//   "scopes": [
76071	//     "https://www.googleapis.com/auth/cloud-platform",
76072	//     "https://www.googleapis.com/auth/compute",
76073	//     "https://www.googleapis.com/auth/compute.readonly"
76074	//   ]
76075	// }
76076
76077}
76078
76079// method id "compute.instanceTemplates.getIamPolicy":
76080
76081type InstanceTemplatesGetIamPolicyCall struct {
76082	s            *Service
76083	project      string
76084	resource     string
76085	urlParams_   gensupport.URLParams
76086	ifNoneMatch_ string
76087	ctx_         context.Context
76088	header_      http.Header
76089}
76090
76091// GetIamPolicy: Gets the access control policy for a resource. May be
76092// empty if no such policy or resource exists.
76093func (r *InstanceTemplatesService) GetIamPolicy(project string, resource string) *InstanceTemplatesGetIamPolicyCall {
76094	c := &InstanceTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76095	c.project = project
76096	c.resource = resource
76097	return c
76098}
76099
76100// OptionsRequestedPolicyVersion sets the optional parameter
76101// "optionsRequestedPolicyVersion": Requested IAM Policy version.
76102func (c *InstanceTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstanceTemplatesGetIamPolicyCall {
76103	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
76104	return c
76105}
76106
76107// Fields allows partial responses to be retrieved. See
76108// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76109// for more information.
76110func (c *InstanceTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesGetIamPolicyCall {
76111	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76112	return c
76113}
76114
76115// IfNoneMatch sets the optional parameter which makes the operation
76116// fail if the object's ETag matches the given value. This is useful for
76117// getting updates only after the object has changed since the last
76118// request. Use googleapi.IsNotModified to check whether the response
76119// error from Do is the result of In-None-Match.
76120func (c *InstanceTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstanceTemplatesGetIamPolicyCall {
76121	c.ifNoneMatch_ = entityTag
76122	return c
76123}
76124
76125// Context sets the context to be used in this call's Do method. Any
76126// pending HTTP request will be aborted if the provided context is
76127// canceled.
76128func (c *InstanceTemplatesGetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesGetIamPolicyCall {
76129	c.ctx_ = ctx
76130	return c
76131}
76132
76133// Header returns an http.Header that can be modified by the caller to
76134// add HTTP headers to the request.
76135func (c *InstanceTemplatesGetIamPolicyCall) Header() http.Header {
76136	if c.header_ == nil {
76137		c.header_ = make(http.Header)
76138	}
76139	return c.header_
76140}
76141
76142func (c *InstanceTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
76143	reqHeaders := make(http.Header)
76144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76145	for k, v := range c.header_ {
76146		reqHeaders[k] = v
76147	}
76148	reqHeaders.Set("User-Agent", c.s.userAgent())
76149	if c.ifNoneMatch_ != "" {
76150		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76151	}
76152	var body io.Reader = nil
76153	c.urlParams_.Set("alt", alt)
76154	c.urlParams_.Set("prettyPrint", "false")
76155	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/getIamPolicy")
76156	urls += "?" + c.urlParams_.Encode()
76157	req, err := http.NewRequest("GET", urls, body)
76158	if err != nil {
76159		return nil, err
76160	}
76161	req.Header = reqHeaders
76162	googleapi.Expand(req.URL, map[string]string{
76163		"project":  c.project,
76164		"resource": c.resource,
76165	})
76166	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76167}
76168
76169// Do executes the "compute.instanceTemplates.getIamPolicy" call.
76170// Exactly one of *Policy or error will be non-nil. Any non-2xx status
76171// code is an error. Response headers are in either
76172// *Policy.ServerResponse.Header or (if a response was returned at all)
76173// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
76174// check whether the returned error was because http.StatusNotModified
76175// was returned.
76176func (c *InstanceTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
76177	gensupport.SetOptions(c.urlParams_, opts...)
76178	res, err := c.doRequest("json")
76179	if res != nil && res.StatusCode == http.StatusNotModified {
76180		if res.Body != nil {
76181			res.Body.Close()
76182		}
76183		return nil, &googleapi.Error{
76184			Code:   res.StatusCode,
76185			Header: res.Header,
76186		}
76187	}
76188	if err != nil {
76189		return nil, err
76190	}
76191	defer googleapi.CloseBody(res)
76192	if err := googleapi.CheckResponse(res); err != nil {
76193		return nil, err
76194	}
76195	ret := &Policy{
76196		ServerResponse: googleapi.ServerResponse{
76197			Header:         res.Header,
76198			HTTPStatusCode: res.StatusCode,
76199		},
76200	}
76201	target := &ret
76202	if err := gensupport.DecodeResponse(target, res); err != nil {
76203		return nil, err
76204	}
76205	return ret, nil
76206	// {
76207	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
76208	//   "httpMethod": "GET",
76209	//   "id": "compute.instanceTemplates.getIamPolicy",
76210	//   "parameterOrder": [
76211	//     "project",
76212	//     "resource"
76213	//   ],
76214	//   "parameters": {
76215	//     "optionsRequestedPolicyVersion": {
76216	//       "description": "Requested IAM Policy version.",
76217	//       "format": "int32",
76218	//       "location": "query",
76219	//       "type": "integer"
76220	//     },
76221	//     "project": {
76222	//       "description": "Project ID for this request.",
76223	//       "location": "path",
76224	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76225	//       "required": true,
76226	//       "type": "string"
76227	//     },
76228	//     "resource": {
76229	//       "description": "Name or id of the resource for this request.",
76230	//       "location": "path",
76231	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76232	//       "required": true,
76233	//       "type": "string"
76234	//     }
76235	//   },
76236	//   "path": "{project}/global/instanceTemplates/{resource}/getIamPolicy",
76237	//   "response": {
76238	//     "$ref": "Policy"
76239	//   },
76240	//   "scopes": [
76241	//     "https://www.googleapis.com/auth/cloud-platform",
76242	//     "https://www.googleapis.com/auth/compute",
76243	//     "https://www.googleapis.com/auth/compute.readonly"
76244	//   ]
76245	// }
76246
76247}
76248
76249// method id "compute.instanceTemplates.insert":
76250
76251type InstanceTemplatesInsertCall struct {
76252	s                *Service
76253	project          string
76254	instancetemplate *InstanceTemplate
76255	urlParams_       gensupport.URLParams
76256	ctx_             context.Context
76257	header_          http.Header
76258}
76259
76260// Insert: Creates an instance template in the specified project using
76261// the data that is included in the request. If you are creating a new
76262// template to update an existing instance group, your new instance
76263// template must use the same network or, if applicable, the same
76264// subnetwork as the original template.
76265// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/insert
76266func (r *InstanceTemplatesService) Insert(project string, instancetemplate *InstanceTemplate) *InstanceTemplatesInsertCall {
76267	c := &InstanceTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76268	c.project = project
76269	c.instancetemplate = instancetemplate
76270	return c
76271}
76272
76273// RequestId sets the optional parameter "requestId": An optional
76274// request ID to identify requests. Specify a unique request ID so that
76275// if you must retry your request, the server will know to ignore the
76276// request if it has already been completed.
76277//
76278// For example, consider a situation where you make an initial request
76279// and the request times out. If you make the request again with the
76280// same request ID, the server can check if original operation with the
76281// same request ID was received, and if so, will ignore the second
76282// request. This prevents clients from accidentally creating duplicate
76283// commitments.
76284//
76285// The request ID must be a valid UUID with the exception that zero UUID
76286// is not supported (00000000-0000-0000-0000-000000000000).
76287func (c *InstanceTemplatesInsertCall) RequestId(requestId string) *InstanceTemplatesInsertCall {
76288	c.urlParams_.Set("requestId", requestId)
76289	return c
76290}
76291
76292// Fields allows partial responses to be retrieved. See
76293// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76294// for more information.
76295func (c *InstanceTemplatesInsertCall) Fields(s ...googleapi.Field) *InstanceTemplatesInsertCall {
76296	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76297	return c
76298}
76299
76300// Context sets the context to be used in this call's Do method. Any
76301// pending HTTP request will be aborted if the provided context is
76302// canceled.
76303func (c *InstanceTemplatesInsertCall) Context(ctx context.Context) *InstanceTemplatesInsertCall {
76304	c.ctx_ = ctx
76305	return c
76306}
76307
76308// Header returns an http.Header that can be modified by the caller to
76309// add HTTP headers to the request.
76310func (c *InstanceTemplatesInsertCall) Header() http.Header {
76311	if c.header_ == nil {
76312		c.header_ = make(http.Header)
76313	}
76314	return c.header_
76315}
76316
76317func (c *InstanceTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
76318	reqHeaders := make(http.Header)
76319	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76320	for k, v := range c.header_ {
76321		reqHeaders[k] = v
76322	}
76323	reqHeaders.Set("User-Agent", c.s.userAgent())
76324	var body io.Reader = nil
76325	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancetemplate)
76326	if err != nil {
76327		return nil, err
76328	}
76329	reqHeaders.Set("Content-Type", "application/json")
76330	c.urlParams_.Set("alt", alt)
76331	c.urlParams_.Set("prettyPrint", "false")
76332	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
76333	urls += "?" + c.urlParams_.Encode()
76334	req, err := http.NewRequest("POST", urls, body)
76335	if err != nil {
76336		return nil, err
76337	}
76338	req.Header = reqHeaders
76339	googleapi.Expand(req.URL, map[string]string{
76340		"project": c.project,
76341	})
76342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76343}
76344
76345// Do executes the "compute.instanceTemplates.insert" call.
76346// Exactly one of *Operation or error will be non-nil. Any non-2xx
76347// status code is an error. Response headers are in either
76348// *Operation.ServerResponse.Header or (if a response was returned at
76349// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
76350// to check whether the returned error was because
76351// http.StatusNotModified was returned.
76352func (c *InstanceTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
76353	gensupport.SetOptions(c.urlParams_, opts...)
76354	res, err := c.doRequest("json")
76355	if res != nil && res.StatusCode == http.StatusNotModified {
76356		if res.Body != nil {
76357			res.Body.Close()
76358		}
76359		return nil, &googleapi.Error{
76360			Code:   res.StatusCode,
76361			Header: res.Header,
76362		}
76363	}
76364	if err != nil {
76365		return nil, err
76366	}
76367	defer googleapi.CloseBody(res)
76368	if err := googleapi.CheckResponse(res); err != nil {
76369		return nil, err
76370	}
76371	ret := &Operation{
76372		ServerResponse: googleapi.ServerResponse{
76373			Header:         res.Header,
76374			HTTPStatusCode: res.StatusCode,
76375		},
76376	}
76377	target := &ret
76378	if err := gensupport.DecodeResponse(target, res); err != nil {
76379		return nil, err
76380	}
76381	return ret, nil
76382	// {
76383	//   "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.",
76384	//   "httpMethod": "POST",
76385	//   "id": "compute.instanceTemplates.insert",
76386	//   "parameterOrder": [
76387	//     "project"
76388	//   ],
76389	//   "parameters": {
76390	//     "project": {
76391	//       "description": "Project ID for this request.",
76392	//       "location": "path",
76393	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76394	//       "required": true,
76395	//       "type": "string"
76396	//     },
76397	//     "requestId": {
76398	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
76399	//       "location": "query",
76400	//       "type": "string"
76401	//     }
76402	//   },
76403	//   "path": "{project}/global/instanceTemplates",
76404	//   "request": {
76405	//     "$ref": "InstanceTemplate"
76406	//   },
76407	//   "response": {
76408	//     "$ref": "Operation"
76409	//   },
76410	//   "scopes": [
76411	//     "https://www.googleapis.com/auth/cloud-platform",
76412	//     "https://www.googleapis.com/auth/compute"
76413	//   ]
76414	// }
76415
76416}
76417
76418// method id "compute.instanceTemplates.list":
76419
76420type InstanceTemplatesListCall struct {
76421	s            *Service
76422	project      string
76423	urlParams_   gensupport.URLParams
76424	ifNoneMatch_ string
76425	ctx_         context.Context
76426	header_      http.Header
76427}
76428
76429// List: Retrieves a list of instance templates that are contained
76430// within the specified project.
76431// For details, see https://cloud.google.com/compute/docs/reference/latest/instanceTemplates/list
76432func (r *InstanceTemplatesService) List(project string) *InstanceTemplatesListCall {
76433	c := &InstanceTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76434	c.project = project
76435	return c
76436}
76437
76438// Filter sets the optional parameter "filter": A filter expression that
76439// filters resources listed in the response. The expression must specify
76440// the field name, a comparison operator, and the value that you want to
76441// use for filtering. The value must be a string, a number, or a
76442// boolean. The comparison operator must be either =, !=, >, or <.
76443//
76444// For example, if you are filtering Compute Engine instances, you can
76445// exclude instances named example-instance by specifying name !=
76446// example-instance.
76447//
76448// You can also filter nested fields. For example, you could specify
76449// scheduling.automaticRestart = false to include instances only if they
76450// are not scheduled for automatic restarts. You can use filtering on
76451// nested fields to filter based on resource labels.
76452//
76453// To filter on multiple expressions, provide each separate expression
76454// within parentheses. For example, (scheduling.automaticRestart = true)
76455// (cpuPlatform = "Intel Skylake"). By default, each expression is an
76456// AND expression. However, you can include AND and OR expressions
76457// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
76458// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
76459// true).
76460func (c *InstanceTemplatesListCall) Filter(filter string) *InstanceTemplatesListCall {
76461	c.urlParams_.Set("filter", filter)
76462	return c
76463}
76464
76465// MaxResults sets the optional parameter "maxResults": The maximum
76466// number of results per page that should be returned. If the number of
76467// available results is larger than maxResults, Compute Engine returns a
76468// nextPageToken that can be used to get the next page of results in
76469// subsequent list requests. Acceptable values are 0 to 500, inclusive.
76470// (Default: 500)
76471func (c *InstanceTemplatesListCall) MaxResults(maxResults int64) *InstanceTemplatesListCall {
76472	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
76473	return c
76474}
76475
76476// OrderBy sets the optional parameter "orderBy": Sorts list results by
76477// a certain order. By default, results are returned in alphanumerical
76478// order based on the resource name.
76479//
76480// You can also sort results in descending order based on the creation
76481// timestamp using orderBy="creationTimestamp desc". This sorts results
76482// based on the creationTimestamp field in reverse chronological order
76483// (newest result first). Use this to sort resources like operations so
76484// that the newest operation is returned first.
76485//
76486// Currently, only sorting by name or creationTimestamp desc is
76487// supported.
76488func (c *InstanceTemplatesListCall) OrderBy(orderBy string) *InstanceTemplatesListCall {
76489	c.urlParams_.Set("orderBy", orderBy)
76490	return c
76491}
76492
76493// PageToken sets the optional parameter "pageToken": Specifies a page
76494// token to use. Set pageToken to the nextPageToken returned by a
76495// previous list request to get the next page of results.
76496func (c *InstanceTemplatesListCall) PageToken(pageToken string) *InstanceTemplatesListCall {
76497	c.urlParams_.Set("pageToken", pageToken)
76498	return c
76499}
76500
76501// Fields allows partial responses to be retrieved. See
76502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76503// for more information.
76504func (c *InstanceTemplatesListCall) Fields(s ...googleapi.Field) *InstanceTemplatesListCall {
76505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76506	return c
76507}
76508
76509// IfNoneMatch sets the optional parameter which makes the operation
76510// fail if the object's ETag matches the given value. This is useful for
76511// getting updates only after the object has changed since the last
76512// request. Use googleapi.IsNotModified to check whether the response
76513// error from Do is the result of In-None-Match.
76514func (c *InstanceTemplatesListCall) IfNoneMatch(entityTag string) *InstanceTemplatesListCall {
76515	c.ifNoneMatch_ = entityTag
76516	return c
76517}
76518
76519// Context sets the context to be used in this call's Do method. Any
76520// pending HTTP request will be aborted if the provided context is
76521// canceled.
76522func (c *InstanceTemplatesListCall) Context(ctx context.Context) *InstanceTemplatesListCall {
76523	c.ctx_ = ctx
76524	return c
76525}
76526
76527// Header returns an http.Header that can be modified by the caller to
76528// add HTTP headers to the request.
76529func (c *InstanceTemplatesListCall) Header() http.Header {
76530	if c.header_ == nil {
76531		c.header_ = make(http.Header)
76532	}
76533	return c.header_
76534}
76535
76536func (c *InstanceTemplatesListCall) doRequest(alt string) (*http.Response, error) {
76537	reqHeaders := make(http.Header)
76538	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76539	for k, v := range c.header_ {
76540		reqHeaders[k] = v
76541	}
76542	reqHeaders.Set("User-Agent", c.s.userAgent())
76543	if c.ifNoneMatch_ != "" {
76544		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
76545	}
76546	var body io.Reader = nil
76547	c.urlParams_.Set("alt", alt)
76548	c.urlParams_.Set("prettyPrint", "false")
76549	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates")
76550	urls += "?" + c.urlParams_.Encode()
76551	req, err := http.NewRequest("GET", urls, body)
76552	if err != nil {
76553		return nil, err
76554	}
76555	req.Header = reqHeaders
76556	googleapi.Expand(req.URL, map[string]string{
76557		"project": c.project,
76558	})
76559	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76560}
76561
76562// Do executes the "compute.instanceTemplates.list" call.
76563// Exactly one of *InstanceTemplateList or error will be non-nil. Any
76564// non-2xx status code is an error. Response headers are in either
76565// *InstanceTemplateList.ServerResponse.Header or (if a response was
76566// returned at all) in error.(*googleapi.Error).Header. Use
76567// googleapi.IsNotModified to check whether the returned error was
76568// because http.StatusNotModified was returned.
76569func (c *InstanceTemplatesListCall) Do(opts ...googleapi.CallOption) (*InstanceTemplateList, error) {
76570	gensupport.SetOptions(c.urlParams_, opts...)
76571	res, err := c.doRequest("json")
76572	if res != nil && res.StatusCode == http.StatusNotModified {
76573		if res.Body != nil {
76574			res.Body.Close()
76575		}
76576		return nil, &googleapi.Error{
76577			Code:   res.StatusCode,
76578			Header: res.Header,
76579		}
76580	}
76581	if err != nil {
76582		return nil, err
76583	}
76584	defer googleapi.CloseBody(res)
76585	if err := googleapi.CheckResponse(res); err != nil {
76586		return nil, err
76587	}
76588	ret := &InstanceTemplateList{
76589		ServerResponse: googleapi.ServerResponse{
76590			Header:         res.Header,
76591			HTTPStatusCode: res.StatusCode,
76592		},
76593	}
76594	target := &ret
76595	if err := gensupport.DecodeResponse(target, res); err != nil {
76596		return nil, err
76597	}
76598	return ret, nil
76599	// {
76600	//   "description": "Retrieves a list of instance templates that are contained within the specified project.",
76601	//   "httpMethod": "GET",
76602	//   "id": "compute.instanceTemplates.list",
76603	//   "parameterOrder": [
76604	//     "project"
76605	//   ],
76606	//   "parameters": {
76607	//     "filter": {
76608	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
76609	//       "location": "query",
76610	//       "type": "string"
76611	//     },
76612	//     "maxResults": {
76613	//       "default": "500",
76614	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
76615	//       "format": "uint32",
76616	//       "location": "query",
76617	//       "minimum": "0",
76618	//       "type": "integer"
76619	//     },
76620	//     "orderBy": {
76621	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
76622	//       "location": "query",
76623	//       "type": "string"
76624	//     },
76625	//     "pageToken": {
76626	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
76627	//       "location": "query",
76628	//       "type": "string"
76629	//     },
76630	//     "project": {
76631	//       "description": "Project ID for this request.",
76632	//       "location": "path",
76633	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76634	//       "required": true,
76635	//       "type": "string"
76636	//     }
76637	//   },
76638	//   "path": "{project}/global/instanceTemplates",
76639	//   "response": {
76640	//     "$ref": "InstanceTemplateList"
76641	//   },
76642	//   "scopes": [
76643	//     "https://www.googleapis.com/auth/cloud-platform",
76644	//     "https://www.googleapis.com/auth/compute",
76645	//     "https://www.googleapis.com/auth/compute.readonly"
76646	//   ]
76647	// }
76648
76649}
76650
76651// Pages invokes f for each page of results.
76652// A non-nil error returned from f will halt the iteration.
76653// The provided context supersedes any context provided to the Context method.
76654func (c *InstanceTemplatesListCall) Pages(ctx context.Context, f func(*InstanceTemplateList) error) error {
76655	c.ctx_ = ctx
76656	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
76657	for {
76658		x, err := c.Do()
76659		if err != nil {
76660			return err
76661		}
76662		if err := f(x); err != nil {
76663			return err
76664		}
76665		if x.NextPageToken == "" {
76666			return nil
76667		}
76668		c.PageToken(x.NextPageToken)
76669	}
76670}
76671
76672// method id "compute.instanceTemplates.setIamPolicy":
76673
76674type InstanceTemplatesSetIamPolicyCall struct {
76675	s                      *Service
76676	project                string
76677	resource               string
76678	globalsetpolicyrequest *GlobalSetPolicyRequest
76679	urlParams_             gensupport.URLParams
76680	ctx_                   context.Context
76681	header_                http.Header
76682}
76683
76684// SetIamPolicy: Sets the access control policy on the specified
76685// resource. Replaces any existing policy.
76686func (r *InstanceTemplatesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *InstanceTemplatesSetIamPolicyCall {
76687	c := &InstanceTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76688	c.project = project
76689	c.resource = resource
76690	c.globalsetpolicyrequest = globalsetpolicyrequest
76691	return c
76692}
76693
76694// Fields allows partial responses to be retrieved. See
76695// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76696// for more information.
76697func (c *InstanceTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstanceTemplatesSetIamPolicyCall {
76698	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76699	return c
76700}
76701
76702// Context sets the context to be used in this call's Do method. Any
76703// pending HTTP request will be aborted if the provided context is
76704// canceled.
76705func (c *InstanceTemplatesSetIamPolicyCall) Context(ctx context.Context) *InstanceTemplatesSetIamPolicyCall {
76706	c.ctx_ = ctx
76707	return c
76708}
76709
76710// Header returns an http.Header that can be modified by the caller to
76711// add HTTP headers to the request.
76712func (c *InstanceTemplatesSetIamPolicyCall) Header() http.Header {
76713	if c.header_ == nil {
76714		c.header_ = make(http.Header)
76715	}
76716	return c.header_
76717}
76718
76719func (c *InstanceTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
76720	reqHeaders := make(http.Header)
76721	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76722	for k, v := range c.header_ {
76723		reqHeaders[k] = v
76724	}
76725	reqHeaders.Set("User-Agent", c.s.userAgent())
76726	var body io.Reader = nil
76727	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
76728	if err != nil {
76729		return nil, err
76730	}
76731	reqHeaders.Set("Content-Type", "application/json")
76732	c.urlParams_.Set("alt", alt)
76733	c.urlParams_.Set("prettyPrint", "false")
76734	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/setIamPolicy")
76735	urls += "?" + c.urlParams_.Encode()
76736	req, err := http.NewRequest("POST", urls, body)
76737	if err != nil {
76738		return nil, err
76739	}
76740	req.Header = reqHeaders
76741	googleapi.Expand(req.URL, map[string]string{
76742		"project":  c.project,
76743		"resource": c.resource,
76744	})
76745	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76746}
76747
76748// Do executes the "compute.instanceTemplates.setIamPolicy" call.
76749// Exactly one of *Policy or error will be non-nil. Any non-2xx status
76750// code is an error. Response headers are in either
76751// *Policy.ServerResponse.Header or (if a response was returned at all)
76752// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
76753// check whether the returned error was because http.StatusNotModified
76754// was returned.
76755func (c *InstanceTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
76756	gensupport.SetOptions(c.urlParams_, opts...)
76757	res, err := c.doRequest("json")
76758	if res != nil && res.StatusCode == http.StatusNotModified {
76759		if res.Body != nil {
76760			res.Body.Close()
76761		}
76762		return nil, &googleapi.Error{
76763			Code:   res.StatusCode,
76764			Header: res.Header,
76765		}
76766	}
76767	if err != nil {
76768		return nil, err
76769	}
76770	defer googleapi.CloseBody(res)
76771	if err := googleapi.CheckResponse(res); err != nil {
76772		return nil, err
76773	}
76774	ret := &Policy{
76775		ServerResponse: googleapi.ServerResponse{
76776			Header:         res.Header,
76777			HTTPStatusCode: res.StatusCode,
76778		},
76779	}
76780	target := &ret
76781	if err := gensupport.DecodeResponse(target, res); err != nil {
76782		return nil, err
76783	}
76784	return ret, nil
76785	// {
76786	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
76787	//   "httpMethod": "POST",
76788	//   "id": "compute.instanceTemplates.setIamPolicy",
76789	//   "parameterOrder": [
76790	//     "project",
76791	//     "resource"
76792	//   ],
76793	//   "parameters": {
76794	//     "project": {
76795	//       "description": "Project ID for this request.",
76796	//       "location": "path",
76797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76798	//       "required": true,
76799	//       "type": "string"
76800	//     },
76801	//     "resource": {
76802	//       "description": "Name or id of the resource for this request.",
76803	//       "location": "path",
76804	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76805	//       "required": true,
76806	//       "type": "string"
76807	//     }
76808	//   },
76809	//   "path": "{project}/global/instanceTemplates/{resource}/setIamPolicy",
76810	//   "request": {
76811	//     "$ref": "GlobalSetPolicyRequest"
76812	//   },
76813	//   "response": {
76814	//     "$ref": "Policy"
76815	//   },
76816	//   "scopes": [
76817	//     "https://www.googleapis.com/auth/cloud-platform",
76818	//     "https://www.googleapis.com/auth/compute"
76819	//   ]
76820	// }
76821
76822}
76823
76824// method id "compute.instanceTemplates.testIamPermissions":
76825
76826type InstanceTemplatesTestIamPermissionsCall struct {
76827	s                      *Service
76828	project                string
76829	resource               string
76830	testpermissionsrequest *TestPermissionsRequest
76831	urlParams_             gensupport.URLParams
76832	ctx_                   context.Context
76833	header_                http.Header
76834}
76835
76836// TestIamPermissions: Returns permissions that a caller has on the
76837// specified resource.
76838func (r *InstanceTemplatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstanceTemplatesTestIamPermissionsCall {
76839	c := &InstanceTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76840	c.project = project
76841	c.resource = resource
76842	c.testpermissionsrequest = testpermissionsrequest
76843	return c
76844}
76845
76846// Fields allows partial responses to be retrieved. See
76847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
76848// for more information.
76849func (c *InstanceTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstanceTemplatesTestIamPermissionsCall {
76850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
76851	return c
76852}
76853
76854// Context sets the context to be used in this call's Do method. Any
76855// pending HTTP request will be aborted if the provided context is
76856// canceled.
76857func (c *InstanceTemplatesTestIamPermissionsCall) Context(ctx context.Context) *InstanceTemplatesTestIamPermissionsCall {
76858	c.ctx_ = ctx
76859	return c
76860}
76861
76862// Header returns an http.Header that can be modified by the caller to
76863// add HTTP headers to the request.
76864func (c *InstanceTemplatesTestIamPermissionsCall) Header() http.Header {
76865	if c.header_ == nil {
76866		c.header_ = make(http.Header)
76867	}
76868	return c.header_
76869}
76870
76871func (c *InstanceTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
76872	reqHeaders := make(http.Header)
76873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
76874	for k, v := range c.header_ {
76875		reqHeaders[k] = v
76876	}
76877	reqHeaders.Set("User-Agent", c.s.userAgent())
76878	var body io.Reader = nil
76879	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
76880	if err != nil {
76881		return nil, err
76882	}
76883	reqHeaders.Set("Content-Type", "application/json")
76884	c.urlParams_.Set("alt", alt)
76885	c.urlParams_.Set("prettyPrint", "false")
76886	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/instanceTemplates/{resource}/testIamPermissions")
76887	urls += "?" + c.urlParams_.Encode()
76888	req, err := http.NewRequest("POST", urls, body)
76889	if err != nil {
76890		return nil, err
76891	}
76892	req.Header = reqHeaders
76893	googleapi.Expand(req.URL, map[string]string{
76894		"project":  c.project,
76895		"resource": c.resource,
76896	})
76897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
76898}
76899
76900// Do executes the "compute.instanceTemplates.testIamPermissions" call.
76901// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
76902// non-2xx status code is an error. Response headers are in either
76903// *TestPermissionsResponse.ServerResponse.Header or (if a response was
76904// returned at all) in error.(*googleapi.Error).Header. Use
76905// googleapi.IsNotModified to check whether the returned error was
76906// because http.StatusNotModified was returned.
76907func (c *InstanceTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
76908	gensupport.SetOptions(c.urlParams_, opts...)
76909	res, err := c.doRequest("json")
76910	if res != nil && res.StatusCode == http.StatusNotModified {
76911		if res.Body != nil {
76912			res.Body.Close()
76913		}
76914		return nil, &googleapi.Error{
76915			Code:   res.StatusCode,
76916			Header: res.Header,
76917		}
76918	}
76919	if err != nil {
76920		return nil, err
76921	}
76922	defer googleapi.CloseBody(res)
76923	if err := googleapi.CheckResponse(res); err != nil {
76924		return nil, err
76925	}
76926	ret := &TestPermissionsResponse{
76927		ServerResponse: googleapi.ServerResponse{
76928			Header:         res.Header,
76929			HTTPStatusCode: res.StatusCode,
76930		},
76931	}
76932	target := &ret
76933	if err := gensupport.DecodeResponse(target, res); err != nil {
76934		return nil, err
76935	}
76936	return ret, nil
76937	// {
76938	//   "description": "Returns permissions that a caller has on the specified resource.",
76939	//   "httpMethod": "POST",
76940	//   "id": "compute.instanceTemplates.testIamPermissions",
76941	//   "parameterOrder": [
76942	//     "project",
76943	//     "resource"
76944	//   ],
76945	//   "parameters": {
76946	//     "project": {
76947	//       "description": "Project ID for this request.",
76948	//       "location": "path",
76949	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
76950	//       "required": true,
76951	//       "type": "string"
76952	//     },
76953	//     "resource": {
76954	//       "description": "Name or id of the resource for this request.",
76955	//       "location": "path",
76956	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
76957	//       "required": true,
76958	//       "type": "string"
76959	//     }
76960	//   },
76961	//   "path": "{project}/global/instanceTemplates/{resource}/testIamPermissions",
76962	//   "request": {
76963	//     "$ref": "TestPermissionsRequest"
76964	//   },
76965	//   "response": {
76966	//     "$ref": "TestPermissionsResponse"
76967	//   },
76968	//   "scopes": [
76969	//     "https://www.googleapis.com/auth/cloud-platform",
76970	//     "https://www.googleapis.com/auth/compute",
76971	//     "https://www.googleapis.com/auth/compute.readonly"
76972	//   ]
76973	// }
76974
76975}
76976
76977// method id "compute.instances.addAccessConfig":
76978
76979type InstancesAddAccessConfigCall struct {
76980	s            *Service
76981	project      string
76982	zone         string
76983	instance     string
76984	accessconfig *AccessConfig
76985	urlParams_   gensupport.URLParams
76986	ctx_         context.Context
76987	header_      http.Header
76988}
76989
76990// AddAccessConfig: Adds an access config to an instance's network
76991// interface.
76992// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/addAccessConfig
76993func (r *InstancesService) AddAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesAddAccessConfigCall {
76994	c := &InstancesAddAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
76995	c.project = project
76996	c.zone = zone
76997	c.instance = instance
76998	c.urlParams_.Set("networkInterface", networkInterface)
76999	c.accessconfig = accessconfig
77000	return c
77001}
77002
77003// RequestId sets the optional parameter "requestId": An optional
77004// request ID to identify requests. Specify a unique request ID so that
77005// if you must retry your request, the server will know to ignore the
77006// request if it has already been completed.
77007//
77008// For example, consider a situation where you make an initial request
77009// and the request times out. If you make the request again with the
77010// same request ID, the server can check if original operation with the
77011// same request ID was received, and if so, will ignore the second
77012// request. This prevents clients from accidentally creating duplicate
77013// commitments.
77014//
77015// The request ID must be a valid UUID with the exception that zero UUID
77016// is not supported (00000000-0000-0000-0000-000000000000).
77017func (c *InstancesAddAccessConfigCall) RequestId(requestId string) *InstancesAddAccessConfigCall {
77018	c.urlParams_.Set("requestId", requestId)
77019	return c
77020}
77021
77022// Fields allows partial responses to be retrieved. See
77023// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77024// for more information.
77025func (c *InstancesAddAccessConfigCall) Fields(s ...googleapi.Field) *InstancesAddAccessConfigCall {
77026	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77027	return c
77028}
77029
77030// Context sets the context to be used in this call's Do method. Any
77031// pending HTTP request will be aborted if the provided context is
77032// canceled.
77033func (c *InstancesAddAccessConfigCall) Context(ctx context.Context) *InstancesAddAccessConfigCall {
77034	c.ctx_ = ctx
77035	return c
77036}
77037
77038// Header returns an http.Header that can be modified by the caller to
77039// add HTTP headers to the request.
77040func (c *InstancesAddAccessConfigCall) Header() http.Header {
77041	if c.header_ == nil {
77042		c.header_ = make(http.Header)
77043	}
77044	return c.header_
77045}
77046
77047func (c *InstancesAddAccessConfigCall) doRequest(alt string) (*http.Response, error) {
77048	reqHeaders := make(http.Header)
77049	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
77050	for k, v := range c.header_ {
77051		reqHeaders[k] = v
77052	}
77053	reqHeaders.Set("User-Agent", c.s.userAgent())
77054	var body io.Reader = nil
77055	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
77056	if err != nil {
77057		return nil, err
77058	}
77059	reqHeaders.Set("Content-Type", "application/json")
77060	c.urlParams_.Set("alt", alt)
77061	c.urlParams_.Set("prettyPrint", "false")
77062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/addAccessConfig")
77063	urls += "?" + c.urlParams_.Encode()
77064	req, err := http.NewRequest("POST", urls, body)
77065	if err != nil {
77066		return nil, err
77067	}
77068	req.Header = reqHeaders
77069	googleapi.Expand(req.URL, map[string]string{
77070		"project":  c.project,
77071		"zone":     c.zone,
77072		"instance": c.instance,
77073	})
77074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77075}
77076
77077// Do executes the "compute.instances.addAccessConfig" call.
77078// Exactly one of *Operation or error will be non-nil. Any non-2xx
77079// status code is an error. Response headers are in either
77080// *Operation.ServerResponse.Header or (if a response was returned at
77081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77082// to check whether the returned error was because
77083// http.StatusNotModified was returned.
77084func (c *InstancesAddAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77085	gensupport.SetOptions(c.urlParams_, opts...)
77086	res, err := c.doRequest("json")
77087	if res != nil && res.StatusCode == http.StatusNotModified {
77088		if res.Body != nil {
77089			res.Body.Close()
77090		}
77091		return nil, &googleapi.Error{
77092			Code:   res.StatusCode,
77093			Header: res.Header,
77094		}
77095	}
77096	if err != nil {
77097		return nil, err
77098	}
77099	defer googleapi.CloseBody(res)
77100	if err := googleapi.CheckResponse(res); err != nil {
77101		return nil, err
77102	}
77103	ret := &Operation{
77104		ServerResponse: googleapi.ServerResponse{
77105			Header:         res.Header,
77106			HTTPStatusCode: res.StatusCode,
77107		},
77108	}
77109	target := &ret
77110	if err := gensupport.DecodeResponse(target, res); err != nil {
77111		return nil, err
77112	}
77113	return ret, nil
77114	// {
77115	//   "description": "Adds an access config to an instance's network interface.",
77116	//   "httpMethod": "POST",
77117	//   "id": "compute.instances.addAccessConfig",
77118	//   "parameterOrder": [
77119	//     "project",
77120	//     "zone",
77121	//     "instance",
77122	//     "networkInterface"
77123	//   ],
77124	//   "parameters": {
77125	//     "instance": {
77126	//       "description": "The instance name for this request.",
77127	//       "location": "path",
77128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77129	//       "required": true,
77130	//       "type": "string"
77131	//     },
77132	//     "networkInterface": {
77133	//       "description": "The name of the network interface to add to this instance.",
77134	//       "location": "query",
77135	//       "required": true,
77136	//       "type": "string"
77137	//     },
77138	//     "project": {
77139	//       "description": "Project ID for this request.",
77140	//       "location": "path",
77141	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77142	//       "required": true,
77143	//       "type": "string"
77144	//     },
77145	//     "requestId": {
77146	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77147	//       "location": "query",
77148	//       "type": "string"
77149	//     },
77150	//     "zone": {
77151	//       "description": "The name of the zone for this request.",
77152	//       "location": "path",
77153	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77154	//       "required": true,
77155	//       "type": "string"
77156	//     }
77157	//   },
77158	//   "path": "{project}/zones/{zone}/instances/{instance}/addAccessConfig",
77159	//   "request": {
77160	//     "$ref": "AccessConfig"
77161	//   },
77162	//   "response": {
77163	//     "$ref": "Operation"
77164	//   },
77165	//   "scopes": [
77166	//     "https://www.googleapis.com/auth/cloud-platform",
77167	//     "https://www.googleapis.com/auth/compute"
77168	//   ]
77169	// }
77170
77171}
77172
77173// method id "compute.instances.aggregatedList":
77174
77175type InstancesAggregatedListCall struct {
77176	s            *Service
77177	project      string
77178	urlParams_   gensupport.URLParams
77179	ifNoneMatch_ string
77180	ctx_         context.Context
77181	header_      http.Header
77182}
77183
77184// AggregatedList: Retrieves aggregated list of all of the instances in
77185// your project across all regions and zones.
77186// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/aggregatedList
77187func (r *InstancesService) AggregatedList(project string) *InstancesAggregatedListCall {
77188	c := &InstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77189	c.project = project
77190	return c
77191}
77192
77193// Filter sets the optional parameter "filter": A filter expression that
77194// filters resources listed in the response. The expression must specify
77195// the field name, a comparison operator, and the value that you want to
77196// use for filtering. The value must be a string, a number, or a
77197// boolean. The comparison operator must be either =, !=, >, or <.
77198//
77199// For example, if you are filtering Compute Engine instances, you can
77200// exclude instances named example-instance by specifying name !=
77201// example-instance.
77202//
77203// You can also filter nested fields. For example, you could specify
77204// scheduling.automaticRestart = false to include instances only if they
77205// are not scheduled for automatic restarts. You can use filtering on
77206// nested fields to filter based on resource labels.
77207//
77208// To filter on multiple expressions, provide each separate expression
77209// within parentheses. For example, (scheduling.automaticRestart = true)
77210// (cpuPlatform = "Intel Skylake"). By default, each expression is an
77211// AND expression. However, you can include AND and OR expressions
77212// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
77213// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
77214// true).
77215func (c *InstancesAggregatedListCall) Filter(filter string) *InstancesAggregatedListCall {
77216	c.urlParams_.Set("filter", filter)
77217	return c
77218}
77219
77220// IncludeAllScopes sets the optional parameter "includeAllScopes":
77221// Indicates whether every visible scope for each scope type (zone,
77222// region, global) should be included in the response. For new resource
77223// types added after this field, the flag has no effect as new resource
77224// types will always include every visible scope for each scope type in
77225// response. For resource types which predate this field, if this flag
77226// is omitted or false, only scopes of the scope types where the
77227// resource type is expected to be found will be included.
77228func (c *InstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InstancesAggregatedListCall {
77229	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
77230	return c
77231}
77232
77233// MaxResults sets the optional parameter "maxResults": The maximum
77234// number of results per page that should be returned. If the number of
77235// available results is larger than maxResults, Compute Engine returns a
77236// nextPageToken that can be used to get the next page of results in
77237// subsequent list requests. Acceptable values are 0 to 500, inclusive.
77238// (Default: 500)
77239func (c *InstancesAggregatedListCall) MaxResults(maxResults int64) *InstancesAggregatedListCall {
77240	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
77241	return c
77242}
77243
77244// OrderBy sets the optional parameter "orderBy": Sorts list results by
77245// a certain order. By default, results are returned in alphanumerical
77246// order based on the resource name.
77247//
77248// You can also sort results in descending order based on the creation
77249// timestamp using orderBy="creationTimestamp desc". This sorts results
77250// based on the creationTimestamp field in reverse chronological order
77251// (newest result first). Use this to sort resources like operations so
77252// that the newest operation is returned first.
77253//
77254// Currently, only sorting by name or creationTimestamp desc is
77255// supported.
77256func (c *InstancesAggregatedListCall) OrderBy(orderBy string) *InstancesAggregatedListCall {
77257	c.urlParams_.Set("orderBy", orderBy)
77258	return c
77259}
77260
77261// PageToken sets the optional parameter "pageToken": Specifies a page
77262// token to use. Set pageToken to the nextPageToken returned by a
77263// previous list request to get the next page of results.
77264func (c *InstancesAggregatedListCall) PageToken(pageToken string) *InstancesAggregatedListCall {
77265	c.urlParams_.Set("pageToken", pageToken)
77266	return c
77267}
77268
77269// Fields allows partial responses to be retrieved. See
77270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77271// for more information.
77272func (c *InstancesAggregatedListCall) Fields(s ...googleapi.Field) *InstancesAggregatedListCall {
77273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77274	return c
77275}
77276
77277// IfNoneMatch sets the optional parameter which makes the operation
77278// fail if the object's ETag matches the given value. This is useful for
77279// getting updates only after the object has changed since the last
77280// request. Use googleapi.IsNotModified to check whether the response
77281// error from Do is the result of In-None-Match.
77282func (c *InstancesAggregatedListCall) IfNoneMatch(entityTag string) *InstancesAggregatedListCall {
77283	c.ifNoneMatch_ = entityTag
77284	return c
77285}
77286
77287// Context sets the context to be used in this call's Do method. Any
77288// pending HTTP request will be aborted if the provided context is
77289// canceled.
77290func (c *InstancesAggregatedListCall) Context(ctx context.Context) *InstancesAggregatedListCall {
77291	c.ctx_ = ctx
77292	return c
77293}
77294
77295// Header returns an http.Header that can be modified by the caller to
77296// add HTTP headers to the request.
77297func (c *InstancesAggregatedListCall) Header() http.Header {
77298	if c.header_ == nil {
77299		c.header_ = make(http.Header)
77300	}
77301	return c.header_
77302}
77303
77304func (c *InstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
77305	reqHeaders := make(http.Header)
77306	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
77307	for k, v := range c.header_ {
77308		reqHeaders[k] = v
77309	}
77310	reqHeaders.Set("User-Agent", c.s.userAgent())
77311	if c.ifNoneMatch_ != "" {
77312		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
77313	}
77314	var body io.Reader = nil
77315	c.urlParams_.Set("alt", alt)
77316	c.urlParams_.Set("prettyPrint", "false")
77317	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/instances")
77318	urls += "?" + c.urlParams_.Encode()
77319	req, err := http.NewRequest("GET", urls, body)
77320	if err != nil {
77321		return nil, err
77322	}
77323	req.Header = reqHeaders
77324	googleapi.Expand(req.URL, map[string]string{
77325		"project": c.project,
77326	})
77327	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77328}
77329
77330// Do executes the "compute.instances.aggregatedList" call.
77331// Exactly one of *InstanceAggregatedList or error will be non-nil. Any
77332// non-2xx status code is an error. Response headers are in either
77333// *InstanceAggregatedList.ServerResponse.Header or (if a response was
77334// returned at all) in error.(*googleapi.Error).Header. Use
77335// googleapi.IsNotModified to check whether the returned error was
77336// because http.StatusNotModified was returned.
77337func (c *InstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*InstanceAggregatedList, error) {
77338	gensupport.SetOptions(c.urlParams_, opts...)
77339	res, err := c.doRequest("json")
77340	if res != nil && res.StatusCode == http.StatusNotModified {
77341		if res.Body != nil {
77342			res.Body.Close()
77343		}
77344		return nil, &googleapi.Error{
77345			Code:   res.StatusCode,
77346			Header: res.Header,
77347		}
77348	}
77349	if err != nil {
77350		return nil, err
77351	}
77352	defer googleapi.CloseBody(res)
77353	if err := googleapi.CheckResponse(res); err != nil {
77354		return nil, err
77355	}
77356	ret := &InstanceAggregatedList{
77357		ServerResponse: googleapi.ServerResponse{
77358			Header:         res.Header,
77359			HTTPStatusCode: res.StatusCode,
77360		},
77361	}
77362	target := &ret
77363	if err := gensupport.DecodeResponse(target, res); err != nil {
77364		return nil, err
77365	}
77366	return ret, nil
77367	// {
77368	//   "description": "Retrieves aggregated list of all of the instances in your project across all regions and zones.",
77369	//   "httpMethod": "GET",
77370	//   "id": "compute.instances.aggregatedList",
77371	//   "parameterOrder": [
77372	//     "project"
77373	//   ],
77374	//   "parameters": {
77375	//     "filter": {
77376	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
77377	//       "location": "query",
77378	//       "type": "string"
77379	//     },
77380	//     "includeAllScopes": {
77381	//       "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.",
77382	//       "location": "query",
77383	//       "type": "boolean"
77384	//     },
77385	//     "maxResults": {
77386	//       "default": "500",
77387	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
77388	//       "format": "uint32",
77389	//       "location": "query",
77390	//       "minimum": "0",
77391	//       "type": "integer"
77392	//     },
77393	//     "orderBy": {
77394	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
77395	//       "location": "query",
77396	//       "type": "string"
77397	//     },
77398	//     "pageToken": {
77399	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
77400	//       "location": "query",
77401	//       "type": "string"
77402	//     },
77403	//     "project": {
77404	//       "description": "Project ID for this request.",
77405	//       "location": "path",
77406	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77407	//       "required": true,
77408	//       "type": "string"
77409	//     }
77410	//   },
77411	//   "path": "{project}/aggregated/instances",
77412	//   "response": {
77413	//     "$ref": "InstanceAggregatedList"
77414	//   },
77415	//   "scopes": [
77416	//     "https://www.googleapis.com/auth/cloud-platform",
77417	//     "https://www.googleapis.com/auth/compute",
77418	//     "https://www.googleapis.com/auth/compute.readonly"
77419	//   ]
77420	// }
77421
77422}
77423
77424// Pages invokes f for each page of results.
77425// A non-nil error returned from f will halt the iteration.
77426// The provided context supersedes any context provided to the Context method.
77427func (c *InstancesAggregatedListCall) Pages(ctx context.Context, f func(*InstanceAggregatedList) error) error {
77428	c.ctx_ = ctx
77429	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
77430	for {
77431		x, err := c.Do()
77432		if err != nil {
77433			return err
77434		}
77435		if err := f(x); err != nil {
77436			return err
77437		}
77438		if x.NextPageToken == "" {
77439			return nil
77440		}
77441		c.PageToken(x.NextPageToken)
77442	}
77443}
77444
77445// method id "compute.instances.attachDisk":
77446
77447type InstancesAttachDiskCall struct {
77448	s            *Service
77449	project      string
77450	zone         string
77451	instance     string
77452	attacheddisk *AttachedDisk
77453	urlParams_   gensupport.URLParams
77454	ctx_         context.Context
77455	header_      http.Header
77456}
77457
77458// AttachDisk: Attaches an existing Disk resource to an instance. You
77459// must first create the disk before you can attach it. It is not
77460// possible to create and attach a disk at the same time. For more
77461// information, read Adding a persistent disk to your instance.
77462// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/attachDisk
77463func (r *InstancesService) AttachDisk(project string, zone string, instance string, attacheddisk *AttachedDisk) *InstancesAttachDiskCall {
77464	c := &InstancesAttachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77465	c.project = project
77466	c.zone = zone
77467	c.instance = instance
77468	c.attacheddisk = attacheddisk
77469	return c
77470}
77471
77472// ForceAttach sets the optional parameter "forceAttach": Whether to
77473// force attach the disk even if it's currently attached to another
77474// instance.
77475func (c *InstancesAttachDiskCall) ForceAttach(forceAttach bool) *InstancesAttachDiskCall {
77476	c.urlParams_.Set("forceAttach", fmt.Sprint(forceAttach))
77477	return c
77478}
77479
77480// RequestId sets the optional parameter "requestId": An optional
77481// request ID to identify requests. Specify a unique request ID so that
77482// if you must retry your request, the server will know to ignore the
77483// request if it has already been completed.
77484//
77485// For example, consider a situation where you make an initial request
77486// and the request times out. If you make the request again with the
77487// same request ID, the server can check if original operation with the
77488// same request ID was received, and if so, will ignore the second
77489// request. This prevents clients from accidentally creating duplicate
77490// commitments.
77491//
77492// The request ID must be a valid UUID with the exception that zero UUID
77493// is not supported (00000000-0000-0000-0000-000000000000).
77494func (c *InstancesAttachDiskCall) RequestId(requestId string) *InstancesAttachDiskCall {
77495	c.urlParams_.Set("requestId", requestId)
77496	return c
77497}
77498
77499// Fields allows partial responses to be retrieved. See
77500// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77501// for more information.
77502func (c *InstancesAttachDiskCall) Fields(s ...googleapi.Field) *InstancesAttachDiskCall {
77503	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77504	return c
77505}
77506
77507// Context sets the context to be used in this call's Do method. Any
77508// pending HTTP request will be aborted if the provided context is
77509// canceled.
77510func (c *InstancesAttachDiskCall) Context(ctx context.Context) *InstancesAttachDiskCall {
77511	c.ctx_ = ctx
77512	return c
77513}
77514
77515// Header returns an http.Header that can be modified by the caller to
77516// add HTTP headers to the request.
77517func (c *InstancesAttachDiskCall) Header() http.Header {
77518	if c.header_ == nil {
77519		c.header_ = make(http.Header)
77520	}
77521	return c.header_
77522}
77523
77524func (c *InstancesAttachDiskCall) doRequest(alt string) (*http.Response, error) {
77525	reqHeaders := make(http.Header)
77526	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
77527	for k, v := range c.header_ {
77528		reqHeaders[k] = v
77529	}
77530	reqHeaders.Set("User-Agent", c.s.userAgent())
77531	var body io.Reader = nil
77532	body, err := googleapi.WithoutDataWrapper.JSONReader(c.attacheddisk)
77533	if err != nil {
77534		return nil, err
77535	}
77536	reqHeaders.Set("Content-Type", "application/json")
77537	c.urlParams_.Set("alt", alt)
77538	c.urlParams_.Set("prettyPrint", "false")
77539	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/attachDisk")
77540	urls += "?" + c.urlParams_.Encode()
77541	req, err := http.NewRequest("POST", urls, body)
77542	if err != nil {
77543		return nil, err
77544	}
77545	req.Header = reqHeaders
77546	googleapi.Expand(req.URL, map[string]string{
77547		"project":  c.project,
77548		"zone":     c.zone,
77549		"instance": c.instance,
77550	})
77551	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77552}
77553
77554// Do executes the "compute.instances.attachDisk" call.
77555// Exactly one of *Operation or error will be non-nil. Any non-2xx
77556// status code is an error. Response headers are in either
77557// *Operation.ServerResponse.Header or (if a response was returned at
77558// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77559// to check whether the returned error was because
77560// http.StatusNotModified was returned.
77561func (c *InstancesAttachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77562	gensupport.SetOptions(c.urlParams_, opts...)
77563	res, err := c.doRequest("json")
77564	if res != nil && res.StatusCode == http.StatusNotModified {
77565		if res.Body != nil {
77566			res.Body.Close()
77567		}
77568		return nil, &googleapi.Error{
77569			Code:   res.StatusCode,
77570			Header: res.Header,
77571		}
77572	}
77573	if err != nil {
77574		return nil, err
77575	}
77576	defer googleapi.CloseBody(res)
77577	if err := googleapi.CheckResponse(res); err != nil {
77578		return nil, err
77579	}
77580	ret := &Operation{
77581		ServerResponse: googleapi.ServerResponse{
77582			Header:         res.Header,
77583			HTTPStatusCode: res.StatusCode,
77584		},
77585	}
77586	target := &ret
77587	if err := gensupport.DecodeResponse(target, res); err != nil {
77588		return nil, err
77589	}
77590	return ret, nil
77591	// {
77592	//   "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.",
77593	//   "httpMethod": "POST",
77594	//   "id": "compute.instances.attachDisk",
77595	//   "parameterOrder": [
77596	//     "project",
77597	//     "zone",
77598	//     "instance"
77599	//   ],
77600	//   "parameters": {
77601	//     "forceAttach": {
77602	//       "description": "Whether to force attach the disk even if it's currently attached to another instance.",
77603	//       "location": "query",
77604	//       "type": "boolean"
77605	//     },
77606	//     "instance": {
77607	//       "description": "The instance name for this request.",
77608	//       "location": "path",
77609	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77610	//       "required": true,
77611	//       "type": "string"
77612	//     },
77613	//     "project": {
77614	//       "description": "Project ID for this request.",
77615	//       "location": "path",
77616	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77617	//       "required": true,
77618	//       "type": "string"
77619	//     },
77620	//     "requestId": {
77621	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77622	//       "location": "query",
77623	//       "type": "string"
77624	//     },
77625	//     "zone": {
77626	//       "description": "The name of the zone for this request.",
77627	//       "location": "path",
77628	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77629	//       "required": true,
77630	//       "type": "string"
77631	//     }
77632	//   },
77633	//   "path": "{project}/zones/{zone}/instances/{instance}/attachDisk",
77634	//   "request": {
77635	//     "$ref": "AttachedDisk"
77636	//   },
77637	//   "response": {
77638	//     "$ref": "Operation"
77639	//   },
77640	//   "scopes": [
77641	//     "https://www.googleapis.com/auth/cloud-platform",
77642	//     "https://www.googleapis.com/auth/compute"
77643	//   ]
77644	// }
77645
77646}
77647
77648// method id "compute.instances.delete":
77649
77650type InstancesDeleteCall struct {
77651	s          *Service
77652	project    string
77653	zone       string
77654	instance   string
77655	urlParams_ gensupport.URLParams
77656	ctx_       context.Context
77657	header_    http.Header
77658}
77659
77660// Delete: Deletes the specified Instance resource. For more
77661// information, see Stopping or Deleting an Instance.
77662// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/delete
77663func (r *InstancesService) Delete(project string, zone string, instance string) *InstancesDeleteCall {
77664	c := &InstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77665	c.project = project
77666	c.zone = zone
77667	c.instance = instance
77668	return c
77669}
77670
77671// RequestId sets the optional parameter "requestId": An optional
77672// request ID to identify requests. Specify a unique request ID so that
77673// if you must retry your request, the server will know to ignore the
77674// request if it has already been completed.
77675//
77676// For example, consider a situation where you make an initial request
77677// and the request times out. If you make the request again with the
77678// same request ID, the server can check if original operation with the
77679// same request ID was received, and if so, will ignore the second
77680// request. This prevents clients from accidentally creating duplicate
77681// commitments.
77682//
77683// The request ID must be a valid UUID with the exception that zero UUID
77684// is not supported (00000000-0000-0000-0000-000000000000).
77685func (c *InstancesDeleteCall) RequestId(requestId string) *InstancesDeleteCall {
77686	c.urlParams_.Set("requestId", requestId)
77687	return c
77688}
77689
77690// Fields allows partial responses to be retrieved. See
77691// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77692// for more information.
77693func (c *InstancesDeleteCall) Fields(s ...googleapi.Field) *InstancesDeleteCall {
77694	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77695	return c
77696}
77697
77698// Context sets the context to be used in this call's Do method. Any
77699// pending HTTP request will be aborted if the provided context is
77700// canceled.
77701func (c *InstancesDeleteCall) Context(ctx context.Context) *InstancesDeleteCall {
77702	c.ctx_ = ctx
77703	return c
77704}
77705
77706// Header returns an http.Header that can be modified by the caller to
77707// add HTTP headers to the request.
77708func (c *InstancesDeleteCall) Header() http.Header {
77709	if c.header_ == nil {
77710		c.header_ = make(http.Header)
77711	}
77712	return c.header_
77713}
77714
77715func (c *InstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
77716	reqHeaders := make(http.Header)
77717	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
77718	for k, v := range c.header_ {
77719		reqHeaders[k] = v
77720	}
77721	reqHeaders.Set("User-Agent", c.s.userAgent())
77722	var body io.Reader = nil
77723	c.urlParams_.Set("alt", alt)
77724	c.urlParams_.Set("prettyPrint", "false")
77725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
77726	urls += "?" + c.urlParams_.Encode()
77727	req, err := http.NewRequest("DELETE", urls, body)
77728	if err != nil {
77729		return nil, err
77730	}
77731	req.Header = reqHeaders
77732	googleapi.Expand(req.URL, map[string]string{
77733		"project":  c.project,
77734		"zone":     c.zone,
77735		"instance": c.instance,
77736	})
77737	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77738}
77739
77740// Do executes the "compute.instances.delete" call.
77741// Exactly one of *Operation or error will be non-nil. Any non-2xx
77742// status code is an error. Response headers are in either
77743// *Operation.ServerResponse.Header or (if a response was returned at
77744// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77745// to check whether the returned error was because
77746// http.StatusNotModified was returned.
77747func (c *InstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77748	gensupport.SetOptions(c.urlParams_, opts...)
77749	res, err := c.doRequest("json")
77750	if res != nil && res.StatusCode == http.StatusNotModified {
77751		if res.Body != nil {
77752			res.Body.Close()
77753		}
77754		return nil, &googleapi.Error{
77755			Code:   res.StatusCode,
77756			Header: res.Header,
77757		}
77758	}
77759	if err != nil {
77760		return nil, err
77761	}
77762	defer googleapi.CloseBody(res)
77763	if err := googleapi.CheckResponse(res); err != nil {
77764		return nil, err
77765	}
77766	ret := &Operation{
77767		ServerResponse: googleapi.ServerResponse{
77768			Header:         res.Header,
77769			HTTPStatusCode: res.StatusCode,
77770		},
77771	}
77772	target := &ret
77773	if err := gensupport.DecodeResponse(target, res); err != nil {
77774		return nil, err
77775	}
77776	return ret, nil
77777	// {
77778	//   "description": "Deletes the specified Instance resource. For more information, see Stopping or Deleting an Instance.",
77779	//   "httpMethod": "DELETE",
77780	//   "id": "compute.instances.delete",
77781	//   "parameterOrder": [
77782	//     "project",
77783	//     "zone",
77784	//     "instance"
77785	//   ],
77786	//   "parameters": {
77787	//     "instance": {
77788	//       "description": "Name of the instance resource to delete.",
77789	//       "location": "path",
77790	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77791	//       "required": true,
77792	//       "type": "string"
77793	//     },
77794	//     "project": {
77795	//       "description": "Project ID for this request.",
77796	//       "location": "path",
77797	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77798	//       "required": true,
77799	//       "type": "string"
77800	//     },
77801	//     "requestId": {
77802	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77803	//       "location": "query",
77804	//       "type": "string"
77805	//     },
77806	//     "zone": {
77807	//       "description": "The name of the zone for this request.",
77808	//       "location": "path",
77809	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
77810	//       "required": true,
77811	//       "type": "string"
77812	//     }
77813	//   },
77814	//   "path": "{project}/zones/{zone}/instances/{instance}",
77815	//   "response": {
77816	//     "$ref": "Operation"
77817	//   },
77818	//   "scopes": [
77819	//     "https://www.googleapis.com/auth/cloud-platform",
77820	//     "https://www.googleapis.com/auth/compute"
77821	//   ]
77822	// }
77823
77824}
77825
77826// method id "compute.instances.deleteAccessConfig":
77827
77828type InstancesDeleteAccessConfigCall struct {
77829	s          *Service
77830	project    string
77831	zone       string
77832	instance   string
77833	urlParams_ gensupport.URLParams
77834	ctx_       context.Context
77835	header_    http.Header
77836}
77837
77838// DeleteAccessConfig: Deletes an access config from an instance's
77839// network interface.
77840// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/deleteAccessConfig
77841func (r *InstancesService) DeleteAccessConfig(project string, zone string, instance string, accessConfig string, networkInterface string) *InstancesDeleteAccessConfigCall {
77842	c := &InstancesDeleteAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
77843	c.project = project
77844	c.zone = zone
77845	c.instance = instance
77846	c.urlParams_.Set("accessConfig", accessConfig)
77847	c.urlParams_.Set("networkInterface", networkInterface)
77848	return c
77849}
77850
77851// RequestId sets the optional parameter "requestId": An optional
77852// request ID to identify requests. Specify a unique request ID so that
77853// if you must retry your request, the server will know to ignore the
77854// request if it has already been completed.
77855//
77856// For example, consider a situation where you make an initial request
77857// and the request times out. If you make the request again with the
77858// same request ID, the server can check if original operation with the
77859// same request ID was received, and if so, will ignore the second
77860// request. This prevents clients from accidentally creating duplicate
77861// commitments.
77862//
77863// The request ID must be a valid UUID with the exception that zero UUID
77864// is not supported (00000000-0000-0000-0000-000000000000).
77865func (c *InstancesDeleteAccessConfigCall) RequestId(requestId string) *InstancesDeleteAccessConfigCall {
77866	c.urlParams_.Set("requestId", requestId)
77867	return c
77868}
77869
77870// Fields allows partial responses to be retrieved. See
77871// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
77872// for more information.
77873func (c *InstancesDeleteAccessConfigCall) Fields(s ...googleapi.Field) *InstancesDeleteAccessConfigCall {
77874	c.urlParams_.Set("fields", googleapi.CombineFields(s))
77875	return c
77876}
77877
77878// Context sets the context to be used in this call's Do method. Any
77879// pending HTTP request will be aborted if the provided context is
77880// canceled.
77881func (c *InstancesDeleteAccessConfigCall) Context(ctx context.Context) *InstancesDeleteAccessConfigCall {
77882	c.ctx_ = ctx
77883	return c
77884}
77885
77886// Header returns an http.Header that can be modified by the caller to
77887// add HTTP headers to the request.
77888func (c *InstancesDeleteAccessConfigCall) Header() http.Header {
77889	if c.header_ == nil {
77890		c.header_ = make(http.Header)
77891	}
77892	return c.header_
77893}
77894
77895func (c *InstancesDeleteAccessConfigCall) doRequest(alt string) (*http.Response, error) {
77896	reqHeaders := make(http.Header)
77897	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
77898	for k, v := range c.header_ {
77899		reqHeaders[k] = v
77900	}
77901	reqHeaders.Set("User-Agent", c.s.userAgent())
77902	var body io.Reader = nil
77903	c.urlParams_.Set("alt", alt)
77904	c.urlParams_.Set("prettyPrint", "false")
77905	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig")
77906	urls += "?" + c.urlParams_.Encode()
77907	req, err := http.NewRequest("POST", urls, body)
77908	if err != nil {
77909		return nil, err
77910	}
77911	req.Header = reqHeaders
77912	googleapi.Expand(req.URL, map[string]string{
77913		"project":  c.project,
77914		"zone":     c.zone,
77915		"instance": c.instance,
77916	})
77917	return gensupport.SendRequest(c.ctx_, c.s.client, req)
77918}
77919
77920// Do executes the "compute.instances.deleteAccessConfig" call.
77921// Exactly one of *Operation or error will be non-nil. Any non-2xx
77922// status code is an error. Response headers are in either
77923// *Operation.ServerResponse.Header or (if a response was returned at
77924// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
77925// to check whether the returned error was because
77926// http.StatusNotModified was returned.
77927func (c *InstancesDeleteAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
77928	gensupport.SetOptions(c.urlParams_, opts...)
77929	res, err := c.doRequest("json")
77930	if res != nil && res.StatusCode == http.StatusNotModified {
77931		if res.Body != nil {
77932			res.Body.Close()
77933		}
77934		return nil, &googleapi.Error{
77935			Code:   res.StatusCode,
77936			Header: res.Header,
77937		}
77938	}
77939	if err != nil {
77940		return nil, err
77941	}
77942	defer googleapi.CloseBody(res)
77943	if err := googleapi.CheckResponse(res); err != nil {
77944		return nil, err
77945	}
77946	ret := &Operation{
77947		ServerResponse: googleapi.ServerResponse{
77948			Header:         res.Header,
77949			HTTPStatusCode: res.StatusCode,
77950		},
77951	}
77952	target := &ret
77953	if err := gensupport.DecodeResponse(target, res); err != nil {
77954		return nil, err
77955	}
77956	return ret, nil
77957	// {
77958	//   "description": "Deletes an access config from an instance's network interface.",
77959	//   "httpMethod": "POST",
77960	//   "id": "compute.instances.deleteAccessConfig",
77961	//   "parameterOrder": [
77962	//     "project",
77963	//     "zone",
77964	//     "instance",
77965	//     "accessConfig",
77966	//     "networkInterface"
77967	//   ],
77968	//   "parameters": {
77969	//     "accessConfig": {
77970	//       "description": "The name of the access config to delete.",
77971	//       "location": "query",
77972	//       "required": true,
77973	//       "type": "string"
77974	//     },
77975	//     "instance": {
77976	//       "description": "The instance name for this request.",
77977	//       "location": "path",
77978	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
77979	//       "required": true,
77980	//       "type": "string"
77981	//     },
77982	//     "networkInterface": {
77983	//       "description": "The name of the network interface.",
77984	//       "location": "query",
77985	//       "required": true,
77986	//       "type": "string"
77987	//     },
77988	//     "project": {
77989	//       "description": "Project ID for this request.",
77990	//       "location": "path",
77991	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
77992	//       "required": true,
77993	//       "type": "string"
77994	//     },
77995	//     "requestId": {
77996	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
77997	//       "location": "query",
77998	//       "type": "string"
77999	//     },
78000	//     "zone": {
78001	//       "description": "The name of the zone for this request.",
78002	//       "location": "path",
78003	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78004	//       "required": true,
78005	//       "type": "string"
78006	//     }
78007	//   },
78008	//   "path": "{project}/zones/{zone}/instances/{instance}/deleteAccessConfig",
78009	//   "response": {
78010	//     "$ref": "Operation"
78011	//   },
78012	//   "scopes": [
78013	//     "https://www.googleapis.com/auth/cloud-platform",
78014	//     "https://www.googleapis.com/auth/compute"
78015	//   ]
78016	// }
78017
78018}
78019
78020// method id "compute.instances.detachDisk":
78021
78022type InstancesDetachDiskCall struct {
78023	s          *Service
78024	project    string
78025	zone       string
78026	instance   string
78027	urlParams_ gensupport.URLParams
78028	ctx_       context.Context
78029	header_    http.Header
78030}
78031
78032// DetachDisk: Detaches a disk from an instance.
78033// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/detachDisk
78034func (r *InstancesService) DetachDisk(project string, zone string, instance string, deviceName string) *InstancesDetachDiskCall {
78035	c := &InstancesDetachDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78036	c.project = project
78037	c.zone = zone
78038	c.instance = instance
78039	c.urlParams_.Set("deviceName", deviceName)
78040	return c
78041}
78042
78043// RequestId sets the optional parameter "requestId": An optional
78044// request ID to identify requests. Specify a unique request ID so that
78045// if you must retry your request, the server will know to ignore the
78046// request if it has already been completed.
78047//
78048// For example, consider a situation where you make an initial request
78049// and the request times out. If you make the request again with the
78050// same request ID, the server can check if original operation with the
78051// same request ID was received, and if so, will ignore the second
78052// request. This prevents clients from accidentally creating duplicate
78053// commitments.
78054//
78055// The request ID must be a valid UUID with the exception that zero UUID
78056// is not supported (00000000-0000-0000-0000-000000000000).
78057func (c *InstancesDetachDiskCall) RequestId(requestId string) *InstancesDetachDiskCall {
78058	c.urlParams_.Set("requestId", requestId)
78059	return c
78060}
78061
78062// Fields allows partial responses to be retrieved. See
78063// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78064// for more information.
78065func (c *InstancesDetachDiskCall) Fields(s ...googleapi.Field) *InstancesDetachDiskCall {
78066	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78067	return c
78068}
78069
78070// Context sets the context to be used in this call's Do method. Any
78071// pending HTTP request will be aborted if the provided context is
78072// canceled.
78073func (c *InstancesDetachDiskCall) Context(ctx context.Context) *InstancesDetachDiskCall {
78074	c.ctx_ = ctx
78075	return c
78076}
78077
78078// Header returns an http.Header that can be modified by the caller to
78079// add HTTP headers to the request.
78080func (c *InstancesDetachDiskCall) Header() http.Header {
78081	if c.header_ == nil {
78082		c.header_ = make(http.Header)
78083	}
78084	return c.header_
78085}
78086
78087func (c *InstancesDetachDiskCall) doRequest(alt string) (*http.Response, error) {
78088	reqHeaders := make(http.Header)
78089	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78090	for k, v := range c.header_ {
78091		reqHeaders[k] = v
78092	}
78093	reqHeaders.Set("User-Agent", c.s.userAgent())
78094	var body io.Reader = nil
78095	c.urlParams_.Set("alt", alt)
78096	c.urlParams_.Set("prettyPrint", "false")
78097	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/detachDisk")
78098	urls += "?" + c.urlParams_.Encode()
78099	req, err := http.NewRequest("POST", urls, body)
78100	if err != nil {
78101		return nil, err
78102	}
78103	req.Header = reqHeaders
78104	googleapi.Expand(req.URL, map[string]string{
78105		"project":  c.project,
78106		"zone":     c.zone,
78107		"instance": c.instance,
78108	})
78109	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78110}
78111
78112// Do executes the "compute.instances.detachDisk" call.
78113// Exactly one of *Operation or error will be non-nil. Any non-2xx
78114// status code is an error. Response headers are in either
78115// *Operation.ServerResponse.Header or (if a response was returned at
78116// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78117// to check whether the returned error was because
78118// http.StatusNotModified was returned.
78119func (c *InstancesDetachDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
78120	gensupport.SetOptions(c.urlParams_, opts...)
78121	res, err := c.doRequest("json")
78122	if res != nil && res.StatusCode == http.StatusNotModified {
78123		if res.Body != nil {
78124			res.Body.Close()
78125		}
78126		return nil, &googleapi.Error{
78127			Code:   res.StatusCode,
78128			Header: res.Header,
78129		}
78130	}
78131	if err != nil {
78132		return nil, err
78133	}
78134	defer googleapi.CloseBody(res)
78135	if err := googleapi.CheckResponse(res); err != nil {
78136		return nil, err
78137	}
78138	ret := &Operation{
78139		ServerResponse: googleapi.ServerResponse{
78140			Header:         res.Header,
78141			HTTPStatusCode: res.StatusCode,
78142		},
78143	}
78144	target := &ret
78145	if err := gensupport.DecodeResponse(target, res); err != nil {
78146		return nil, err
78147	}
78148	return ret, nil
78149	// {
78150	//   "description": "Detaches a disk from an instance.",
78151	//   "httpMethod": "POST",
78152	//   "id": "compute.instances.detachDisk",
78153	//   "parameterOrder": [
78154	//     "project",
78155	//     "zone",
78156	//     "instance",
78157	//     "deviceName"
78158	//   ],
78159	//   "parameters": {
78160	//     "deviceName": {
78161	//       "description": "The device name of the disk to detach. Make a get() request on the instance to view currently attached disks and device names.",
78162	//       "location": "query",
78163	//       "required": true,
78164	//       "type": "string"
78165	//     },
78166	//     "instance": {
78167	//       "description": "Instance name for this request.",
78168	//       "location": "path",
78169	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78170	//       "required": true,
78171	//       "type": "string"
78172	//     },
78173	//     "project": {
78174	//       "description": "Project ID for this request.",
78175	//       "location": "path",
78176	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78177	//       "required": true,
78178	//       "type": "string"
78179	//     },
78180	//     "requestId": {
78181	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
78182	//       "location": "query",
78183	//       "type": "string"
78184	//     },
78185	//     "zone": {
78186	//       "description": "The name of the zone for this request.",
78187	//       "location": "path",
78188	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78189	//       "required": true,
78190	//       "type": "string"
78191	//     }
78192	//   },
78193	//   "path": "{project}/zones/{zone}/instances/{instance}/detachDisk",
78194	//   "response": {
78195	//     "$ref": "Operation"
78196	//   },
78197	//   "scopes": [
78198	//     "https://www.googleapis.com/auth/cloud-platform",
78199	//     "https://www.googleapis.com/auth/compute"
78200	//   ]
78201	// }
78202
78203}
78204
78205// method id "compute.instances.get":
78206
78207type InstancesGetCall struct {
78208	s            *Service
78209	project      string
78210	zone         string
78211	instance     string
78212	urlParams_   gensupport.URLParams
78213	ifNoneMatch_ string
78214	ctx_         context.Context
78215	header_      http.Header
78216}
78217
78218// Get: Returns the specified Instance resource. Gets a list of
78219// available instances by making a list() request.
78220// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/get
78221func (r *InstancesService) Get(project string, zone string, instance string) *InstancesGetCall {
78222	c := &InstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78223	c.project = project
78224	c.zone = zone
78225	c.instance = instance
78226	return c
78227}
78228
78229// Fields allows partial responses to be retrieved. See
78230// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78231// for more information.
78232func (c *InstancesGetCall) Fields(s ...googleapi.Field) *InstancesGetCall {
78233	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78234	return c
78235}
78236
78237// IfNoneMatch sets the optional parameter which makes the operation
78238// fail if the object's ETag matches the given value. This is useful for
78239// getting updates only after the object has changed since the last
78240// request. Use googleapi.IsNotModified to check whether the response
78241// error from Do is the result of In-None-Match.
78242func (c *InstancesGetCall) IfNoneMatch(entityTag string) *InstancesGetCall {
78243	c.ifNoneMatch_ = entityTag
78244	return c
78245}
78246
78247// Context sets the context to be used in this call's Do method. Any
78248// pending HTTP request will be aborted if the provided context is
78249// canceled.
78250func (c *InstancesGetCall) Context(ctx context.Context) *InstancesGetCall {
78251	c.ctx_ = ctx
78252	return c
78253}
78254
78255// Header returns an http.Header that can be modified by the caller to
78256// add HTTP headers to the request.
78257func (c *InstancesGetCall) Header() http.Header {
78258	if c.header_ == nil {
78259		c.header_ = make(http.Header)
78260	}
78261	return c.header_
78262}
78263
78264func (c *InstancesGetCall) doRequest(alt string) (*http.Response, error) {
78265	reqHeaders := make(http.Header)
78266	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78267	for k, v := range c.header_ {
78268		reqHeaders[k] = v
78269	}
78270	reqHeaders.Set("User-Agent", c.s.userAgent())
78271	if c.ifNoneMatch_ != "" {
78272		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78273	}
78274	var body io.Reader = nil
78275	c.urlParams_.Set("alt", alt)
78276	c.urlParams_.Set("prettyPrint", "false")
78277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}")
78278	urls += "?" + c.urlParams_.Encode()
78279	req, err := http.NewRequest("GET", urls, body)
78280	if err != nil {
78281		return nil, err
78282	}
78283	req.Header = reqHeaders
78284	googleapi.Expand(req.URL, map[string]string{
78285		"project":  c.project,
78286		"zone":     c.zone,
78287		"instance": c.instance,
78288	})
78289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78290}
78291
78292// Do executes the "compute.instances.get" call.
78293// Exactly one of *Instance or error will be non-nil. Any non-2xx status
78294// code is an error. Response headers are in either
78295// *Instance.ServerResponse.Header or (if a response was returned at
78296// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
78297// to check whether the returned error was because
78298// http.StatusNotModified was returned.
78299func (c *InstancesGetCall) Do(opts ...googleapi.CallOption) (*Instance, error) {
78300	gensupport.SetOptions(c.urlParams_, opts...)
78301	res, err := c.doRequest("json")
78302	if res != nil && res.StatusCode == http.StatusNotModified {
78303		if res.Body != nil {
78304			res.Body.Close()
78305		}
78306		return nil, &googleapi.Error{
78307			Code:   res.StatusCode,
78308			Header: res.Header,
78309		}
78310	}
78311	if err != nil {
78312		return nil, err
78313	}
78314	defer googleapi.CloseBody(res)
78315	if err := googleapi.CheckResponse(res); err != nil {
78316		return nil, err
78317	}
78318	ret := &Instance{
78319		ServerResponse: googleapi.ServerResponse{
78320			Header:         res.Header,
78321			HTTPStatusCode: res.StatusCode,
78322		},
78323	}
78324	target := &ret
78325	if err := gensupport.DecodeResponse(target, res); err != nil {
78326		return nil, err
78327	}
78328	return ret, nil
78329	// {
78330	//   "description": "Returns the specified Instance resource. Gets a list of available instances by making a list() request.",
78331	//   "httpMethod": "GET",
78332	//   "id": "compute.instances.get",
78333	//   "parameterOrder": [
78334	//     "project",
78335	//     "zone",
78336	//     "instance"
78337	//   ],
78338	//   "parameters": {
78339	//     "instance": {
78340	//       "description": "Name of the instance resource to return.",
78341	//       "location": "path",
78342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78343	//       "required": true,
78344	//       "type": "string"
78345	//     },
78346	//     "project": {
78347	//       "description": "Project ID for this request.",
78348	//       "location": "path",
78349	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78350	//       "required": true,
78351	//       "type": "string"
78352	//     },
78353	//     "zone": {
78354	//       "description": "The name of the zone for this request.",
78355	//       "location": "path",
78356	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78357	//       "required": true,
78358	//       "type": "string"
78359	//     }
78360	//   },
78361	//   "path": "{project}/zones/{zone}/instances/{instance}",
78362	//   "response": {
78363	//     "$ref": "Instance"
78364	//   },
78365	//   "scopes": [
78366	//     "https://www.googleapis.com/auth/cloud-platform",
78367	//     "https://www.googleapis.com/auth/compute",
78368	//     "https://www.googleapis.com/auth/compute.readonly"
78369	//   ]
78370	// }
78371
78372}
78373
78374// method id "compute.instances.getGuestAttributes":
78375
78376type InstancesGetGuestAttributesCall struct {
78377	s            *Service
78378	project      string
78379	zone         string
78380	instance     string
78381	urlParams_   gensupport.URLParams
78382	ifNoneMatch_ string
78383	ctx_         context.Context
78384	header_      http.Header
78385}
78386
78387// GetGuestAttributes: Returns the specified guest attributes entry.
78388func (r *InstancesService) GetGuestAttributes(project string, zone string, instance string) *InstancesGetGuestAttributesCall {
78389	c := &InstancesGetGuestAttributesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78390	c.project = project
78391	c.zone = zone
78392	c.instance = instance
78393	return c
78394}
78395
78396// QueryPath sets the optional parameter "queryPath": Specifies the
78397// guest attributes path to be queried.
78398func (c *InstancesGetGuestAttributesCall) QueryPath(queryPath string) *InstancesGetGuestAttributesCall {
78399	c.urlParams_.Set("queryPath", queryPath)
78400	return c
78401}
78402
78403// VariableKey sets the optional parameter "variableKey": Specifies the
78404// key for the guest attributes entry.
78405func (c *InstancesGetGuestAttributesCall) VariableKey(variableKey string) *InstancesGetGuestAttributesCall {
78406	c.urlParams_.Set("variableKey", variableKey)
78407	return c
78408}
78409
78410// Fields allows partial responses to be retrieved. See
78411// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78412// for more information.
78413func (c *InstancesGetGuestAttributesCall) Fields(s ...googleapi.Field) *InstancesGetGuestAttributesCall {
78414	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78415	return c
78416}
78417
78418// IfNoneMatch sets the optional parameter which makes the operation
78419// fail if the object's ETag matches the given value. This is useful for
78420// getting updates only after the object has changed since the last
78421// request. Use googleapi.IsNotModified to check whether the response
78422// error from Do is the result of In-None-Match.
78423func (c *InstancesGetGuestAttributesCall) IfNoneMatch(entityTag string) *InstancesGetGuestAttributesCall {
78424	c.ifNoneMatch_ = entityTag
78425	return c
78426}
78427
78428// Context sets the context to be used in this call's Do method. Any
78429// pending HTTP request will be aborted if the provided context is
78430// canceled.
78431func (c *InstancesGetGuestAttributesCall) Context(ctx context.Context) *InstancesGetGuestAttributesCall {
78432	c.ctx_ = ctx
78433	return c
78434}
78435
78436// Header returns an http.Header that can be modified by the caller to
78437// add HTTP headers to the request.
78438func (c *InstancesGetGuestAttributesCall) Header() http.Header {
78439	if c.header_ == nil {
78440		c.header_ = make(http.Header)
78441	}
78442	return c.header_
78443}
78444
78445func (c *InstancesGetGuestAttributesCall) doRequest(alt string) (*http.Response, error) {
78446	reqHeaders := make(http.Header)
78447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78448	for k, v := range c.header_ {
78449		reqHeaders[k] = v
78450	}
78451	reqHeaders.Set("User-Agent", c.s.userAgent())
78452	if c.ifNoneMatch_ != "" {
78453		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78454	}
78455	var body io.Reader = nil
78456	c.urlParams_.Set("alt", alt)
78457	c.urlParams_.Set("prettyPrint", "false")
78458	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getGuestAttributes")
78459	urls += "?" + c.urlParams_.Encode()
78460	req, err := http.NewRequest("GET", urls, body)
78461	if err != nil {
78462		return nil, err
78463	}
78464	req.Header = reqHeaders
78465	googleapi.Expand(req.URL, map[string]string{
78466		"project":  c.project,
78467		"zone":     c.zone,
78468		"instance": c.instance,
78469	})
78470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78471}
78472
78473// Do executes the "compute.instances.getGuestAttributes" call.
78474// Exactly one of *GuestAttributes or error will be non-nil. Any non-2xx
78475// status code is an error. Response headers are in either
78476// *GuestAttributes.ServerResponse.Header or (if a response was returned
78477// at all) in error.(*googleapi.Error).Header. Use
78478// googleapi.IsNotModified to check whether the returned error was
78479// because http.StatusNotModified was returned.
78480func (c *InstancesGetGuestAttributesCall) Do(opts ...googleapi.CallOption) (*GuestAttributes, error) {
78481	gensupport.SetOptions(c.urlParams_, opts...)
78482	res, err := c.doRequest("json")
78483	if res != nil && res.StatusCode == http.StatusNotModified {
78484		if res.Body != nil {
78485			res.Body.Close()
78486		}
78487		return nil, &googleapi.Error{
78488			Code:   res.StatusCode,
78489			Header: res.Header,
78490		}
78491	}
78492	if err != nil {
78493		return nil, err
78494	}
78495	defer googleapi.CloseBody(res)
78496	if err := googleapi.CheckResponse(res); err != nil {
78497		return nil, err
78498	}
78499	ret := &GuestAttributes{
78500		ServerResponse: googleapi.ServerResponse{
78501			Header:         res.Header,
78502			HTTPStatusCode: res.StatusCode,
78503		},
78504	}
78505	target := &ret
78506	if err := gensupport.DecodeResponse(target, res); err != nil {
78507		return nil, err
78508	}
78509	return ret, nil
78510	// {
78511	//   "description": "Returns the specified guest attributes entry.",
78512	//   "httpMethod": "GET",
78513	//   "id": "compute.instances.getGuestAttributes",
78514	//   "parameterOrder": [
78515	//     "project",
78516	//     "zone",
78517	//     "instance"
78518	//   ],
78519	//   "parameters": {
78520	//     "instance": {
78521	//       "description": "Name of the instance scoping this request.",
78522	//       "location": "path",
78523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78524	//       "required": true,
78525	//       "type": "string"
78526	//     },
78527	//     "project": {
78528	//       "description": "Project ID for this request.",
78529	//       "location": "path",
78530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78531	//       "required": true,
78532	//       "type": "string"
78533	//     },
78534	//     "queryPath": {
78535	//       "description": "Specifies the guest attributes path to be queried.",
78536	//       "location": "query",
78537	//       "type": "string"
78538	//     },
78539	//     "variableKey": {
78540	//       "description": "Specifies the key for the guest attributes entry.",
78541	//       "location": "query",
78542	//       "type": "string"
78543	//     },
78544	//     "zone": {
78545	//       "description": "The name of the zone for this request.",
78546	//       "location": "path",
78547	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78548	//       "required": true,
78549	//       "type": "string"
78550	//     }
78551	//   },
78552	//   "path": "{project}/zones/{zone}/instances/{instance}/getGuestAttributes",
78553	//   "response": {
78554	//     "$ref": "GuestAttributes"
78555	//   },
78556	//   "scopes": [
78557	//     "https://www.googleapis.com/auth/cloud-platform",
78558	//     "https://www.googleapis.com/auth/compute",
78559	//     "https://www.googleapis.com/auth/compute.readonly"
78560	//   ]
78561	// }
78562
78563}
78564
78565// method id "compute.instances.getIamPolicy":
78566
78567type InstancesGetIamPolicyCall struct {
78568	s            *Service
78569	project      string
78570	zone         string
78571	resource     string
78572	urlParams_   gensupport.URLParams
78573	ifNoneMatch_ string
78574	ctx_         context.Context
78575	header_      http.Header
78576}
78577
78578// GetIamPolicy: Gets the access control policy for a resource. May be
78579// empty if no such policy or resource exists.
78580func (r *InstancesService) GetIamPolicy(project string, zone string, resource string) *InstancesGetIamPolicyCall {
78581	c := &InstancesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78582	c.project = project
78583	c.zone = zone
78584	c.resource = resource
78585	return c
78586}
78587
78588// OptionsRequestedPolicyVersion sets the optional parameter
78589// "optionsRequestedPolicyVersion": Requested IAM Policy version.
78590func (c *InstancesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *InstancesGetIamPolicyCall {
78591	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
78592	return c
78593}
78594
78595// Fields allows partial responses to be retrieved. See
78596// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78597// for more information.
78598func (c *InstancesGetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesGetIamPolicyCall {
78599	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78600	return c
78601}
78602
78603// IfNoneMatch sets the optional parameter which makes the operation
78604// fail if the object's ETag matches the given value. This is useful for
78605// getting updates only after the object has changed since the last
78606// request. Use googleapi.IsNotModified to check whether the response
78607// error from Do is the result of In-None-Match.
78608func (c *InstancesGetIamPolicyCall) IfNoneMatch(entityTag string) *InstancesGetIamPolicyCall {
78609	c.ifNoneMatch_ = entityTag
78610	return c
78611}
78612
78613// Context sets the context to be used in this call's Do method. Any
78614// pending HTTP request will be aborted if the provided context is
78615// canceled.
78616func (c *InstancesGetIamPolicyCall) Context(ctx context.Context) *InstancesGetIamPolicyCall {
78617	c.ctx_ = ctx
78618	return c
78619}
78620
78621// Header returns an http.Header that can be modified by the caller to
78622// add HTTP headers to the request.
78623func (c *InstancesGetIamPolicyCall) Header() http.Header {
78624	if c.header_ == nil {
78625		c.header_ = make(http.Header)
78626	}
78627	return c.header_
78628}
78629
78630func (c *InstancesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
78631	reqHeaders := make(http.Header)
78632	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78633	for k, v := range c.header_ {
78634		reqHeaders[k] = v
78635	}
78636	reqHeaders.Set("User-Agent", c.s.userAgent())
78637	if c.ifNoneMatch_ != "" {
78638		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78639	}
78640	var body io.Reader = nil
78641	c.urlParams_.Set("alt", alt)
78642	c.urlParams_.Set("prettyPrint", "false")
78643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/getIamPolicy")
78644	urls += "?" + c.urlParams_.Encode()
78645	req, err := http.NewRequest("GET", urls, body)
78646	if err != nil {
78647		return nil, err
78648	}
78649	req.Header = reqHeaders
78650	googleapi.Expand(req.URL, map[string]string{
78651		"project":  c.project,
78652		"zone":     c.zone,
78653		"resource": c.resource,
78654	})
78655	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78656}
78657
78658// Do executes the "compute.instances.getIamPolicy" call.
78659// Exactly one of *Policy or error will be non-nil. Any non-2xx status
78660// code is an error. Response headers are in either
78661// *Policy.ServerResponse.Header or (if a response was returned at all)
78662// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
78663// check whether the returned error was because http.StatusNotModified
78664// was returned.
78665func (c *InstancesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
78666	gensupport.SetOptions(c.urlParams_, opts...)
78667	res, err := c.doRequest("json")
78668	if res != nil && res.StatusCode == http.StatusNotModified {
78669		if res.Body != nil {
78670			res.Body.Close()
78671		}
78672		return nil, &googleapi.Error{
78673			Code:   res.StatusCode,
78674			Header: res.Header,
78675		}
78676	}
78677	if err != nil {
78678		return nil, err
78679	}
78680	defer googleapi.CloseBody(res)
78681	if err := googleapi.CheckResponse(res); err != nil {
78682		return nil, err
78683	}
78684	ret := &Policy{
78685		ServerResponse: googleapi.ServerResponse{
78686			Header:         res.Header,
78687			HTTPStatusCode: res.StatusCode,
78688		},
78689	}
78690	target := &ret
78691	if err := gensupport.DecodeResponse(target, res); err != nil {
78692		return nil, err
78693	}
78694	return ret, nil
78695	// {
78696	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
78697	//   "httpMethod": "GET",
78698	//   "id": "compute.instances.getIamPolicy",
78699	//   "parameterOrder": [
78700	//     "project",
78701	//     "zone",
78702	//     "resource"
78703	//   ],
78704	//   "parameters": {
78705	//     "optionsRequestedPolicyVersion": {
78706	//       "description": "Requested IAM Policy version.",
78707	//       "format": "int32",
78708	//       "location": "query",
78709	//       "type": "integer"
78710	//     },
78711	//     "project": {
78712	//       "description": "Project ID for this request.",
78713	//       "location": "path",
78714	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78715	//       "required": true,
78716	//       "type": "string"
78717	//     },
78718	//     "resource": {
78719	//       "description": "Name or id of the resource for this request.",
78720	//       "location": "path",
78721	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78722	//       "required": true,
78723	//       "type": "string"
78724	//     },
78725	//     "zone": {
78726	//       "description": "The name of the zone for this request.",
78727	//       "location": "path",
78728	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78729	//       "required": true,
78730	//       "type": "string"
78731	//     }
78732	//   },
78733	//   "path": "{project}/zones/{zone}/instances/{resource}/getIamPolicy",
78734	//   "response": {
78735	//     "$ref": "Policy"
78736	//   },
78737	//   "scopes": [
78738	//     "https://www.googleapis.com/auth/cloud-platform",
78739	//     "https://www.googleapis.com/auth/compute",
78740	//     "https://www.googleapis.com/auth/compute.readonly"
78741	//   ]
78742	// }
78743
78744}
78745
78746// method id "compute.instances.getSerialPortOutput":
78747
78748type InstancesGetSerialPortOutputCall struct {
78749	s            *Service
78750	project      string
78751	zone         string
78752	instance     string
78753	urlParams_   gensupport.URLParams
78754	ifNoneMatch_ string
78755	ctx_         context.Context
78756	header_      http.Header
78757}
78758
78759// GetSerialPortOutput: Returns the last 1 MB of serial port output from
78760// the specified instance.
78761// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/getSerialPortOutput
78762func (r *InstancesService) GetSerialPortOutput(project string, zone string, instance string) *InstancesGetSerialPortOutputCall {
78763	c := &InstancesGetSerialPortOutputCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78764	c.project = project
78765	c.zone = zone
78766	c.instance = instance
78767	return c
78768}
78769
78770// Port sets the optional parameter "port": Specifies which COM or
78771// serial port to retrieve data from.
78772func (c *InstancesGetSerialPortOutputCall) Port(port int64) *InstancesGetSerialPortOutputCall {
78773	c.urlParams_.Set("port", fmt.Sprint(port))
78774	return c
78775}
78776
78777// Start sets the optional parameter "start": Returns output starting
78778// from a specific byte position. Use this to page through output when
78779// the output is too large to return in a single request. For the
78780// initial request, leave this field unspecified. For subsequent calls,
78781// this field should be set to the next value returned in the previous
78782// call.
78783func (c *InstancesGetSerialPortOutputCall) Start(start int64) *InstancesGetSerialPortOutputCall {
78784	c.urlParams_.Set("start", fmt.Sprint(start))
78785	return c
78786}
78787
78788// Fields allows partial responses to be retrieved. See
78789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78790// for more information.
78791func (c *InstancesGetSerialPortOutputCall) Fields(s ...googleapi.Field) *InstancesGetSerialPortOutputCall {
78792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78793	return c
78794}
78795
78796// IfNoneMatch sets the optional parameter which makes the operation
78797// fail if the object's ETag matches the given value. This is useful for
78798// getting updates only after the object has changed since the last
78799// request. Use googleapi.IsNotModified to check whether the response
78800// error from Do is the result of In-None-Match.
78801func (c *InstancesGetSerialPortOutputCall) IfNoneMatch(entityTag string) *InstancesGetSerialPortOutputCall {
78802	c.ifNoneMatch_ = entityTag
78803	return c
78804}
78805
78806// Context sets the context to be used in this call's Do method. Any
78807// pending HTTP request will be aborted if the provided context is
78808// canceled.
78809func (c *InstancesGetSerialPortOutputCall) Context(ctx context.Context) *InstancesGetSerialPortOutputCall {
78810	c.ctx_ = ctx
78811	return c
78812}
78813
78814// Header returns an http.Header that can be modified by the caller to
78815// add HTTP headers to the request.
78816func (c *InstancesGetSerialPortOutputCall) Header() http.Header {
78817	if c.header_ == nil {
78818		c.header_ = make(http.Header)
78819	}
78820	return c.header_
78821}
78822
78823func (c *InstancesGetSerialPortOutputCall) doRequest(alt string) (*http.Response, error) {
78824	reqHeaders := make(http.Header)
78825	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
78826	for k, v := range c.header_ {
78827		reqHeaders[k] = v
78828	}
78829	reqHeaders.Set("User-Agent", c.s.userAgent())
78830	if c.ifNoneMatch_ != "" {
78831		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
78832	}
78833	var body io.Reader = nil
78834	c.urlParams_.Set("alt", alt)
78835	c.urlParams_.Set("prettyPrint", "false")
78836	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/serialPort")
78837	urls += "?" + c.urlParams_.Encode()
78838	req, err := http.NewRequest("GET", urls, body)
78839	if err != nil {
78840		return nil, err
78841	}
78842	req.Header = reqHeaders
78843	googleapi.Expand(req.URL, map[string]string{
78844		"project":  c.project,
78845		"zone":     c.zone,
78846		"instance": c.instance,
78847	})
78848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
78849}
78850
78851// Do executes the "compute.instances.getSerialPortOutput" call.
78852// Exactly one of *SerialPortOutput or error will be non-nil. Any
78853// non-2xx status code is an error. Response headers are in either
78854// *SerialPortOutput.ServerResponse.Header or (if a response was
78855// returned at all) in error.(*googleapi.Error).Header. Use
78856// googleapi.IsNotModified to check whether the returned error was
78857// because http.StatusNotModified was returned.
78858func (c *InstancesGetSerialPortOutputCall) Do(opts ...googleapi.CallOption) (*SerialPortOutput, error) {
78859	gensupport.SetOptions(c.urlParams_, opts...)
78860	res, err := c.doRequest("json")
78861	if res != nil && res.StatusCode == http.StatusNotModified {
78862		if res.Body != nil {
78863			res.Body.Close()
78864		}
78865		return nil, &googleapi.Error{
78866			Code:   res.StatusCode,
78867			Header: res.Header,
78868		}
78869	}
78870	if err != nil {
78871		return nil, err
78872	}
78873	defer googleapi.CloseBody(res)
78874	if err := googleapi.CheckResponse(res); err != nil {
78875		return nil, err
78876	}
78877	ret := &SerialPortOutput{
78878		ServerResponse: googleapi.ServerResponse{
78879			Header:         res.Header,
78880			HTTPStatusCode: res.StatusCode,
78881		},
78882	}
78883	target := &ret
78884	if err := gensupport.DecodeResponse(target, res); err != nil {
78885		return nil, err
78886	}
78887	return ret, nil
78888	// {
78889	//   "description": "Returns the last 1 MB of serial port output from the specified instance.",
78890	//   "httpMethod": "GET",
78891	//   "id": "compute.instances.getSerialPortOutput",
78892	//   "parameterOrder": [
78893	//     "project",
78894	//     "zone",
78895	//     "instance"
78896	//   ],
78897	//   "parameters": {
78898	//     "instance": {
78899	//       "description": "Name of the instance scoping this request.",
78900	//       "location": "path",
78901	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
78902	//       "required": true,
78903	//       "type": "string"
78904	//     },
78905	//     "port": {
78906	//       "default": "1",
78907	//       "description": "Specifies which COM or serial port to retrieve data from.",
78908	//       "format": "int32",
78909	//       "location": "query",
78910	//       "maximum": "4",
78911	//       "minimum": "1",
78912	//       "type": "integer"
78913	//     },
78914	//     "project": {
78915	//       "description": "Project ID for this request.",
78916	//       "location": "path",
78917	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
78918	//       "required": true,
78919	//       "type": "string"
78920	//     },
78921	//     "start": {
78922	//       "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.",
78923	//       "format": "int64",
78924	//       "location": "query",
78925	//       "type": "string"
78926	//     },
78927	//     "zone": {
78928	//       "description": "The name of the zone for this request.",
78929	//       "location": "path",
78930	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
78931	//       "required": true,
78932	//       "type": "string"
78933	//     }
78934	//   },
78935	//   "path": "{project}/zones/{zone}/instances/{instance}/serialPort",
78936	//   "response": {
78937	//     "$ref": "SerialPortOutput"
78938	//   },
78939	//   "scopes": [
78940	//     "https://www.googleapis.com/auth/cloud-platform",
78941	//     "https://www.googleapis.com/auth/compute",
78942	//     "https://www.googleapis.com/auth/compute.readonly"
78943	//   ]
78944	// }
78945
78946}
78947
78948// method id "compute.instances.getShieldedInstanceIdentity":
78949
78950type InstancesGetShieldedInstanceIdentityCall struct {
78951	s            *Service
78952	project      string
78953	zone         string
78954	instance     string
78955	urlParams_   gensupport.URLParams
78956	ifNoneMatch_ string
78957	ctx_         context.Context
78958	header_      http.Header
78959}
78960
78961// GetShieldedInstanceIdentity: Returns the Shielded Instance Identity
78962// of an instance
78963func (r *InstancesService) GetShieldedInstanceIdentity(project string, zone string, instance string) *InstancesGetShieldedInstanceIdentityCall {
78964	c := &InstancesGetShieldedInstanceIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
78965	c.project = project
78966	c.zone = zone
78967	c.instance = instance
78968	return c
78969}
78970
78971// Fields allows partial responses to be retrieved. See
78972// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
78973// for more information.
78974func (c *InstancesGetShieldedInstanceIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedInstanceIdentityCall {
78975	c.urlParams_.Set("fields", googleapi.CombineFields(s))
78976	return c
78977}
78978
78979// IfNoneMatch sets the optional parameter which makes the operation
78980// fail if the object's ETag matches the given value. This is useful for
78981// getting updates only after the object has changed since the last
78982// request. Use googleapi.IsNotModified to check whether the response
78983// error from Do is the result of In-None-Match.
78984func (c *InstancesGetShieldedInstanceIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedInstanceIdentityCall {
78985	c.ifNoneMatch_ = entityTag
78986	return c
78987}
78988
78989// Context sets the context to be used in this call's Do method. Any
78990// pending HTTP request will be aborted if the provided context is
78991// canceled.
78992func (c *InstancesGetShieldedInstanceIdentityCall) Context(ctx context.Context) *InstancesGetShieldedInstanceIdentityCall {
78993	c.ctx_ = ctx
78994	return c
78995}
78996
78997// Header returns an http.Header that can be modified by the caller to
78998// add HTTP headers to the request.
78999func (c *InstancesGetShieldedInstanceIdentityCall) Header() http.Header {
79000	if c.header_ == nil {
79001		c.header_ = make(http.Header)
79002	}
79003	return c.header_
79004}
79005
79006func (c *InstancesGetShieldedInstanceIdentityCall) doRequest(alt string) (*http.Response, error) {
79007	reqHeaders := make(http.Header)
79008	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79009	for k, v := range c.header_ {
79010		reqHeaders[k] = v
79011	}
79012	reqHeaders.Set("User-Agent", c.s.userAgent())
79013	if c.ifNoneMatch_ != "" {
79014		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79015	}
79016	var body io.Reader = nil
79017	c.urlParams_.Set("alt", alt)
79018	c.urlParams_.Set("prettyPrint", "false")
79019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity")
79020	urls += "?" + c.urlParams_.Encode()
79021	req, err := http.NewRequest("GET", urls, body)
79022	if err != nil {
79023		return nil, err
79024	}
79025	req.Header = reqHeaders
79026	googleapi.Expand(req.URL, map[string]string{
79027		"project":  c.project,
79028		"zone":     c.zone,
79029		"instance": c.instance,
79030	})
79031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79032}
79033
79034// Do executes the "compute.instances.getShieldedInstanceIdentity" call.
79035// Exactly one of *ShieldedInstanceIdentity or error will be non-nil.
79036// Any non-2xx status code is an error. Response headers are in either
79037// *ShieldedInstanceIdentity.ServerResponse.Header or (if a response was
79038// returned at all) in error.(*googleapi.Error).Header. Use
79039// googleapi.IsNotModified to check whether the returned error was
79040// because http.StatusNotModified was returned.
79041func (c *InstancesGetShieldedInstanceIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedInstanceIdentity, error) {
79042	gensupport.SetOptions(c.urlParams_, opts...)
79043	res, err := c.doRequest("json")
79044	if res != nil && res.StatusCode == http.StatusNotModified {
79045		if res.Body != nil {
79046			res.Body.Close()
79047		}
79048		return nil, &googleapi.Error{
79049			Code:   res.StatusCode,
79050			Header: res.Header,
79051		}
79052	}
79053	if err != nil {
79054		return nil, err
79055	}
79056	defer googleapi.CloseBody(res)
79057	if err := googleapi.CheckResponse(res); err != nil {
79058		return nil, err
79059	}
79060	ret := &ShieldedInstanceIdentity{
79061		ServerResponse: googleapi.ServerResponse{
79062			Header:         res.Header,
79063			HTTPStatusCode: res.StatusCode,
79064		},
79065	}
79066	target := &ret
79067	if err := gensupport.DecodeResponse(target, res); err != nil {
79068		return nil, err
79069	}
79070	return ret, nil
79071	// {
79072	//   "description": "Returns the Shielded Instance Identity of an instance",
79073	//   "httpMethod": "GET",
79074	//   "id": "compute.instances.getShieldedInstanceIdentity",
79075	//   "parameterOrder": [
79076	//     "project",
79077	//     "zone",
79078	//     "instance"
79079	//   ],
79080	//   "parameters": {
79081	//     "instance": {
79082	//       "description": "Name or id of the instance scoping this request.",
79083	//       "location": "path",
79084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79085	//       "required": true,
79086	//       "type": "string"
79087	//     },
79088	//     "project": {
79089	//       "description": "Project ID for this request.",
79090	//       "location": "path",
79091	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79092	//       "required": true,
79093	//       "type": "string"
79094	//     },
79095	//     "zone": {
79096	//       "description": "The name of the zone for this request.",
79097	//       "location": "path",
79098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79099	//       "required": true,
79100	//       "type": "string"
79101	//     }
79102	//   },
79103	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedInstanceIdentity",
79104	//   "response": {
79105	//     "$ref": "ShieldedInstanceIdentity"
79106	//   },
79107	//   "scopes": [
79108	//     "https://www.googleapis.com/auth/cloud-platform",
79109	//     "https://www.googleapis.com/auth/compute",
79110	//     "https://www.googleapis.com/auth/compute.readonly"
79111	//   ]
79112	// }
79113
79114}
79115
79116// method id "compute.instances.getShieldedVmIdentity":
79117
79118type InstancesGetShieldedVmIdentityCall struct {
79119	s            *Service
79120	project      string
79121	zone         string
79122	instance     string
79123	urlParams_   gensupport.URLParams
79124	ifNoneMatch_ string
79125	ctx_         context.Context
79126	header_      http.Header
79127}
79128
79129// GetShieldedVmIdentity: Returns the Shielded VM Identity of an
79130// instance
79131func (r *InstancesService) GetShieldedVmIdentity(project string, zone string, instance string) *InstancesGetShieldedVmIdentityCall {
79132	c := &InstancesGetShieldedVmIdentityCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79133	c.project = project
79134	c.zone = zone
79135	c.instance = instance
79136	return c
79137}
79138
79139// Fields allows partial responses to be retrieved. See
79140// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79141// for more information.
79142func (c *InstancesGetShieldedVmIdentityCall) Fields(s ...googleapi.Field) *InstancesGetShieldedVmIdentityCall {
79143	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79144	return c
79145}
79146
79147// IfNoneMatch sets the optional parameter which makes the operation
79148// fail if the object's ETag matches the given value. This is useful for
79149// getting updates only after the object has changed since the last
79150// request. Use googleapi.IsNotModified to check whether the response
79151// error from Do is the result of In-None-Match.
79152func (c *InstancesGetShieldedVmIdentityCall) IfNoneMatch(entityTag string) *InstancesGetShieldedVmIdentityCall {
79153	c.ifNoneMatch_ = entityTag
79154	return c
79155}
79156
79157// Context sets the context to be used in this call's Do method. Any
79158// pending HTTP request will be aborted if the provided context is
79159// canceled.
79160func (c *InstancesGetShieldedVmIdentityCall) Context(ctx context.Context) *InstancesGetShieldedVmIdentityCall {
79161	c.ctx_ = ctx
79162	return c
79163}
79164
79165// Header returns an http.Header that can be modified by the caller to
79166// add HTTP headers to the request.
79167func (c *InstancesGetShieldedVmIdentityCall) Header() http.Header {
79168	if c.header_ == nil {
79169		c.header_ = make(http.Header)
79170	}
79171	return c.header_
79172}
79173
79174func (c *InstancesGetShieldedVmIdentityCall) doRequest(alt string) (*http.Response, error) {
79175	reqHeaders := make(http.Header)
79176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79177	for k, v := range c.header_ {
79178		reqHeaders[k] = v
79179	}
79180	reqHeaders.Set("User-Agent", c.s.userAgent())
79181	if c.ifNoneMatch_ != "" {
79182		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79183	}
79184	var body io.Reader = nil
79185	c.urlParams_.Set("alt", alt)
79186	c.urlParams_.Set("prettyPrint", "false")
79187	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity")
79188	urls += "?" + c.urlParams_.Encode()
79189	req, err := http.NewRequest("GET", urls, body)
79190	if err != nil {
79191		return nil, err
79192	}
79193	req.Header = reqHeaders
79194	googleapi.Expand(req.URL, map[string]string{
79195		"project":  c.project,
79196		"zone":     c.zone,
79197		"instance": c.instance,
79198	})
79199	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79200}
79201
79202// Do executes the "compute.instances.getShieldedVmIdentity" call.
79203// Exactly one of *ShieldedVmIdentity or error will be non-nil. Any
79204// non-2xx status code is an error. Response headers are in either
79205// *ShieldedVmIdentity.ServerResponse.Header or (if a response was
79206// returned at all) in error.(*googleapi.Error).Header. Use
79207// googleapi.IsNotModified to check whether the returned error was
79208// because http.StatusNotModified was returned.
79209func (c *InstancesGetShieldedVmIdentityCall) Do(opts ...googleapi.CallOption) (*ShieldedVmIdentity, error) {
79210	gensupport.SetOptions(c.urlParams_, opts...)
79211	res, err := c.doRequest("json")
79212	if res != nil && res.StatusCode == http.StatusNotModified {
79213		if res.Body != nil {
79214			res.Body.Close()
79215		}
79216		return nil, &googleapi.Error{
79217			Code:   res.StatusCode,
79218			Header: res.Header,
79219		}
79220	}
79221	if err != nil {
79222		return nil, err
79223	}
79224	defer googleapi.CloseBody(res)
79225	if err := googleapi.CheckResponse(res); err != nil {
79226		return nil, err
79227	}
79228	ret := &ShieldedVmIdentity{
79229		ServerResponse: googleapi.ServerResponse{
79230			Header:         res.Header,
79231			HTTPStatusCode: res.StatusCode,
79232		},
79233	}
79234	target := &ret
79235	if err := gensupport.DecodeResponse(target, res); err != nil {
79236		return nil, err
79237	}
79238	return ret, nil
79239	// {
79240	//   "description": "Returns the Shielded VM Identity of an instance",
79241	//   "httpMethod": "GET",
79242	//   "id": "compute.instances.getShieldedVmIdentity",
79243	//   "parameterOrder": [
79244	//     "project",
79245	//     "zone",
79246	//     "instance"
79247	//   ],
79248	//   "parameters": {
79249	//     "instance": {
79250	//       "description": "Name of the instance scoping this request.",
79251	//       "location": "path",
79252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79253	//       "required": true,
79254	//       "type": "string"
79255	//     },
79256	//     "project": {
79257	//       "description": "Project ID for this request.",
79258	//       "location": "path",
79259	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79260	//       "required": true,
79261	//       "type": "string"
79262	//     },
79263	//     "zone": {
79264	//       "description": "The name of the zone for this request.",
79265	//       "location": "path",
79266	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79267	//       "required": true,
79268	//       "type": "string"
79269	//     }
79270	//   },
79271	//   "path": "{project}/zones/{zone}/instances/{instance}/getShieldedVmIdentity",
79272	//   "response": {
79273	//     "$ref": "ShieldedVmIdentity"
79274	//   },
79275	//   "scopes": [
79276	//     "https://www.googleapis.com/auth/cloud-platform",
79277	//     "https://www.googleapis.com/auth/compute",
79278	//     "https://www.googleapis.com/auth/compute.readonly"
79279	//   ]
79280	// }
79281
79282}
79283
79284// method id "compute.instances.insert":
79285
79286type InstancesInsertCall struct {
79287	s          *Service
79288	project    string
79289	zone       string
79290	instance   *Instance
79291	urlParams_ gensupport.URLParams
79292	ctx_       context.Context
79293	header_    http.Header
79294}
79295
79296// Insert: Creates an instance resource in the specified project using
79297// the data included in the request.
79298// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/insert
79299func (r *InstancesService) Insert(project string, zone string, instance *Instance) *InstancesInsertCall {
79300	c := &InstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79301	c.project = project
79302	c.zone = zone
79303	c.instance = instance
79304	return c
79305}
79306
79307// RequestId sets the optional parameter "requestId": An optional
79308// request ID to identify requests. Specify a unique request ID so that
79309// if you must retry your request, the server will know to ignore the
79310// request if it has already been completed.
79311//
79312// For example, consider a situation where you make an initial request
79313// and the request times out. If you make the request again with the
79314// same request ID, the server can check if original operation with the
79315// same request ID was received, and if so, will ignore the second
79316// request. This prevents clients from accidentally creating duplicate
79317// commitments.
79318//
79319// The request ID must be a valid UUID with the exception that zero UUID
79320// is not supported (00000000-0000-0000-0000-000000000000).
79321func (c *InstancesInsertCall) RequestId(requestId string) *InstancesInsertCall {
79322	c.urlParams_.Set("requestId", requestId)
79323	return c
79324}
79325
79326// SourceInstanceTemplate sets the optional parameter
79327// "sourceInstanceTemplate": Specifies instance template to create the
79328// instance.
79329//
79330// This field is optional. It can be a full or partial URL. For example,
79331// the following are all valid URLs to an instance template:
79332// -
79333// https://www.googleapis.com/compute/v1/projects/project/global/instanceTemplates/instanceTemplate
79334// - projects/project/global/instanceTemplates/instanceTemplate
79335// - global/instanceTemplates/instanceTemplate
79336func (c *InstancesInsertCall) SourceInstanceTemplate(sourceInstanceTemplate string) *InstancesInsertCall {
79337	c.urlParams_.Set("sourceInstanceTemplate", sourceInstanceTemplate)
79338	return c
79339}
79340
79341// SourceMachineImage sets the optional parameter "sourceMachineImage":
79342// Specifies instance machine to create the instance.
79343//
79344// This field is optional. It can be a full or partial URL. For example,
79345// the following are all valid URLs to an instance template:
79346// -
79347// https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage
79348// - projects/project/global/global/machineImages/machineImage
79349// - global/machineImages/machineImage
79350func (c *InstancesInsertCall) SourceMachineImage(sourceMachineImage string) *InstancesInsertCall {
79351	c.urlParams_.Set("sourceMachineImage", sourceMachineImage)
79352	return c
79353}
79354
79355// Fields allows partial responses to be retrieved. See
79356// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79357// for more information.
79358func (c *InstancesInsertCall) Fields(s ...googleapi.Field) *InstancesInsertCall {
79359	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79360	return c
79361}
79362
79363// Context sets the context to be used in this call's Do method. Any
79364// pending HTTP request will be aborted if the provided context is
79365// canceled.
79366func (c *InstancesInsertCall) Context(ctx context.Context) *InstancesInsertCall {
79367	c.ctx_ = ctx
79368	return c
79369}
79370
79371// Header returns an http.Header that can be modified by the caller to
79372// add HTTP headers to the request.
79373func (c *InstancesInsertCall) Header() http.Header {
79374	if c.header_ == nil {
79375		c.header_ = make(http.Header)
79376	}
79377	return c.header_
79378}
79379
79380func (c *InstancesInsertCall) doRequest(alt string) (*http.Response, error) {
79381	reqHeaders := make(http.Header)
79382	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79383	for k, v := range c.header_ {
79384		reqHeaders[k] = v
79385	}
79386	reqHeaders.Set("User-Agent", c.s.userAgent())
79387	var body io.Reader = nil
79388	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instance)
79389	if err != nil {
79390		return nil, err
79391	}
79392	reqHeaders.Set("Content-Type", "application/json")
79393	c.urlParams_.Set("alt", alt)
79394	c.urlParams_.Set("prettyPrint", "false")
79395	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
79396	urls += "?" + c.urlParams_.Encode()
79397	req, err := http.NewRequest("POST", urls, body)
79398	if err != nil {
79399		return nil, err
79400	}
79401	req.Header = reqHeaders
79402	googleapi.Expand(req.URL, map[string]string{
79403		"project": c.project,
79404		"zone":    c.zone,
79405	})
79406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79407}
79408
79409// Do executes the "compute.instances.insert" call.
79410// Exactly one of *Operation or error will be non-nil. Any non-2xx
79411// status code is an error. Response headers are in either
79412// *Operation.ServerResponse.Header or (if a response was returned at
79413// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79414// to check whether the returned error was because
79415// http.StatusNotModified was returned.
79416func (c *InstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
79417	gensupport.SetOptions(c.urlParams_, opts...)
79418	res, err := c.doRequest("json")
79419	if res != nil && res.StatusCode == http.StatusNotModified {
79420		if res.Body != nil {
79421			res.Body.Close()
79422		}
79423		return nil, &googleapi.Error{
79424			Code:   res.StatusCode,
79425			Header: res.Header,
79426		}
79427	}
79428	if err != nil {
79429		return nil, err
79430	}
79431	defer googleapi.CloseBody(res)
79432	if err := googleapi.CheckResponse(res); err != nil {
79433		return nil, err
79434	}
79435	ret := &Operation{
79436		ServerResponse: googleapi.ServerResponse{
79437			Header:         res.Header,
79438			HTTPStatusCode: res.StatusCode,
79439		},
79440	}
79441	target := &ret
79442	if err := gensupport.DecodeResponse(target, res); err != nil {
79443		return nil, err
79444	}
79445	return ret, nil
79446	// {
79447	//   "description": "Creates an instance resource in the specified project using the data included in the request.",
79448	//   "httpMethod": "POST",
79449	//   "id": "compute.instances.insert",
79450	//   "parameterOrder": [
79451	//     "project",
79452	//     "zone"
79453	//   ],
79454	//   "parameters": {
79455	//     "project": {
79456	//       "description": "Project ID for this request.",
79457	//       "location": "path",
79458	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79459	//       "required": true,
79460	//       "type": "string"
79461	//     },
79462	//     "requestId": {
79463	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
79464	//       "location": "query",
79465	//       "type": "string"
79466	//     },
79467	//     "sourceInstanceTemplate": {
79468	//       "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",
79469	//       "location": "query",
79470	//       "type": "string"
79471	//     },
79472	//     "sourceMachineImage": {
79473	//       "description": "Specifies instance machine to create the instance.\n\nThis field is optional. It can be a full or partial URL. For example, the following are all valid URLs to an instance template:  \n- https://www.googleapis.com/compute/v1/projects/project/global/global/machineImages/machineImage \n- projects/project/global/global/machineImages/machineImage \n- global/machineImages/machineImage",
79474	//       "location": "query",
79475	//       "type": "string"
79476	//     },
79477	//     "zone": {
79478	//       "description": "The name of the zone for this request.",
79479	//       "location": "path",
79480	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79481	//       "required": true,
79482	//       "type": "string"
79483	//     }
79484	//   },
79485	//   "path": "{project}/zones/{zone}/instances",
79486	//   "request": {
79487	//     "$ref": "Instance"
79488	//   },
79489	//   "response": {
79490	//     "$ref": "Operation"
79491	//   },
79492	//   "scopes": [
79493	//     "https://www.googleapis.com/auth/cloud-platform",
79494	//     "https://www.googleapis.com/auth/compute"
79495	//   ]
79496	// }
79497
79498}
79499
79500// method id "compute.instances.list":
79501
79502type InstancesListCall struct {
79503	s            *Service
79504	project      string
79505	zone         string
79506	urlParams_   gensupport.URLParams
79507	ifNoneMatch_ string
79508	ctx_         context.Context
79509	header_      http.Header
79510}
79511
79512// List: Retrieves the list of instances contained within the specified
79513// zone.
79514// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/list
79515func (r *InstancesService) List(project string, zone string) *InstancesListCall {
79516	c := &InstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79517	c.project = project
79518	c.zone = zone
79519	return c
79520}
79521
79522// Filter sets the optional parameter "filter": A filter expression that
79523// filters resources listed in the response. The expression must specify
79524// the field name, a comparison operator, and the value that you want to
79525// use for filtering. The value must be a string, a number, or a
79526// boolean. The comparison operator must be either =, !=, >, or <.
79527//
79528// For example, if you are filtering Compute Engine instances, you can
79529// exclude instances named example-instance by specifying name !=
79530// example-instance.
79531//
79532// You can also filter nested fields. For example, you could specify
79533// scheduling.automaticRestart = false to include instances only if they
79534// are not scheduled for automatic restarts. You can use filtering on
79535// nested fields to filter based on resource labels.
79536//
79537// To filter on multiple expressions, provide each separate expression
79538// within parentheses. For example, (scheduling.automaticRestart = true)
79539// (cpuPlatform = "Intel Skylake"). By default, each expression is an
79540// AND expression. However, you can include AND and OR expressions
79541// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
79542// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
79543// true).
79544func (c *InstancesListCall) Filter(filter string) *InstancesListCall {
79545	c.urlParams_.Set("filter", filter)
79546	return c
79547}
79548
79549// MaxResults sets the optional parameter "maxResults": The maximum
79550// number of results per page that should be returned. If the number of
79551// available results is larger than maxResults, Compute Engine returns a
79552// nextPageToken that can be used to get the next page of results in
79553// subsequent list requests. Acceptable values are 0 to 500, inclusive.
79554// (Default: 500)
79555func (c *InstancesListCall) MaxResults(maxResults int64) *InstancesListCall {
79556	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79557	return c
79558}
79559
79560// OrderBy sets the optional parameter "orderBy": Sorts list results by
79561// a certain order. By default, results are returned in alphanumerical
79562// order based on the resource name.
79563//
79564// You can also sort results in descending order based on the creation
79565// timestamp using orderBy="creationTimestamp desc". This sorts results
79566// based on the creationTimestamp field in reverse chronological order
79567// (newest result first). Use this to sort resources like operations so
79568// that the newest operation is returned first.
79569//
79570// Currently, only sorting by name or creationTimestamp desc is
79571// supported.
79572func (c *InstancesListCall) OrderBy(orderBy string) *InstancesListCall {
79573	c.urlParams_.Set("orderBy", orderBy)
79574	return c
79575}
79576
79577// PageToken sets the optional parameter "pageToken": Specifies a page
79578// token to use. Set pageToken to the nextPageToken returned by a
79579// previous list request to get the next page of results.
79580func (c *InstancesListCall) PageToken(pageToken string) *InstancesListCall {
79581	c.urlParams_.Set("pageToken", pageToken)
79582	return c
79583}
79584
79585// Fields allows partial responses to be retrieved. See
79586// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79587// for more information.
79588func (c *InstancesListCall) Fields(s ...googleapi.Field) *InstancesListCall {
79589	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79590	return c
79591}
79592
79593// IfNoneMatch sets the optional parameter which makes the operation
79594// fail if the object's ETag matches the given value. This is useful for
79595// getting updates only after the object has changed since the last
79596// request. Use googleapi.IsNotModified to check whether the response
79597// error from Do is the result of In-None-Match.
79598func (c *InstancesListCall) IfNoneMatch(entityTag string) *InstancesListCall {
79599	c.ifNoneMatch_ = entityTag
79600	return c
79601}
79602
79603// Context sets the context to be used in this call's Do method. Any
79604// pending HTTP request will be aborted if the provided context is
79605// canceled.
79606func (c *InstancesListCall) Context(ctx context.Context) *InstancesListCall {
79607	c.ctx_ = ctx
79608	return c
79609}
79610
79611// Header returns an http.Header that can be modified by the caller to
79612// add HTTP headers to the request.
79613func (c *InstancesListCall) Header() http.Header {
79614	if c.header_ == nil {
79615		c.header_ = make(http.Header)
79616	}
79617	return c.header_
79618}
79619
79620func (c *InstancesListCall) doRequest(alt string) (*http.Response, error) {
79621	reqHeaders := make(http.Header)
79622	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79623	for k, v := range c.header_ {
79624		reqHeaders[k] = v
79625	}
79626	reqHeaders.Set("User-Agent", c.s.userAgent())
79627	if c.ifNoneMatch_ != "" {
79628		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79629	}
79630	var body io.Reader = nil
79631	c.urlParams_.Set("alt", alt)
79632	c.urlParams_.Set("prettyPrint", "false")
79633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances")
79634	urls += "?" + c.urlParams_.Encode()
79635	req, err := http.NewRequest("GET", urls, body)
79636	if err != nil {
79637		return nil, err
79638	}
79639	req.Header = reqHeaders
79640	googleapi.Expand(req.URL, map[string]string{
79641		"project": c.project,
79642		"zone":    c.zone,
79643	})
79644	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79645}
79646
79647// Do executes the "compute.instances.list" call.
79648// Exactly one of *InstanceList or error will be non-nil. Any non-2xx
79649// status code is an error. Response headers are in either
79650// *InstanceList.ServerResponse.Header or (if a response was returned at
79651// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
79652// to check whether the returned error was because
79653// http.StatusNotModified was returned.
79654func (c *InstancesListCall) Do(opts ...googleapi.CallOption) (*InstanceList, error) {
79655	gensupport.SetOptions(c.urlParams_, opts...)
79656	res, err := c.doRequest("json")
79657	if res != nil && res.StatusCode == http.StatusNotModified {
79658		if res.Body != nil {
79659			res.Body.Close()
79660		}
79661		return nil, &googleapi.Error{
79662			Code:   res.StatusCode,
79663			Header: res.Header,
79664		}
79665	}
79666	if err != nil {
79667		return nil, err
79668	}
79669	defer googleapi.CloseBody(res)
79670	if err := googleapi.CheckResponse(res); err != nil {
79671		return nil, err
79672	}
79673	ret := &InstanceList{
79674		ServerResponse: googleapi.ServerResponse{
79675			Header:         res.Header,
79676			HTTPStatusCode: res.StatusCode,
79677		},
79678	}
79679	target := &ret
79680	if err := gensupport.DecodeResponse(target, res); err != nil {
79681		return nil, err
79682	}
79683	return ret, nil
79684	// {
79685	//   "description": "Retrieves the list of instances contained within the specified zone.",
79686	//   "httpMethod": "GET",
79687	//   "id": "compute.instances.list",
79688	//   "parameterOrder": [
79689	//     "project",
79690	//     "zone"
79691	//   ],
79692	//   "parameters": {
79693	//     "filter": {
79694	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
79695	//       "location": "query",
79696	//       "type": "string"
79697	//     },
79698	//     "maxResults": {
79699	//       "default": "500",
79700	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
79701	//       "format": "uint32",
79702	//       "location": "query",
79703	//       "minimum": "0",
79704	//       "type": "integer"
79705	//     },
79706	//     "orderBy": {
79707	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
79708	//       "location": "query",
79709	//       "type": "string"
79710	//     },
79711	//     "pageToken": {
79712	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
79713	//       "location": "query",
79714	//       "type": "string"
79715	//     },
79716	//     "project": {
79717	//       "description": "Project ID for this request.",
79718	//       "location": "path",
79719	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79720	//       "required": true,
79721	//       "type": "string"
79722	//     },
79723	//     "zone": {
79724	//       "description": "The name of the zone for this request.",
79725	//       "location": "path",
79726	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
79727	//       "required": true,
79728	//       "type": "string"
79729	//     }
79730	//   },
79731	//   "path": "{project}/zones/{zone}/instances",
79732	//   "response": {
79733	//     "$ref": "InstanceList"
79734	//   },
79735	//   "scopes": [
79736	//     "https://www.googleapis.com/auth/cloud-platform",
79737	//     "https://www.googleapis.com/auth/compute",
79738	//     "https://www.googleapis.com/auth/compute.readonly"
79739	//   ]
79740	// }
79741
79742}
79743
79744// Pages invokes f for each page of results.
79745// A non-nil error returned from f will halt the iteration.
79746// The provided context supersedes any context provided to the Context method.
79747func (c *InstancesListCall) Pages(ctx context.Context, f func(*InstanceList) error) error {
79748	c.ctx_ = ctx
79749	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
79750	for {
79751		x, err := c.Do()
79752		if err != nil {
79753			return err
79754		}
79755		if err := f(x); err != nil {
79756			return err
79757		}
79758		if x.NextPageToken == "" {
79759			return nil
79760		}
79761		c.PageToken(x.NextPageToken)
79762	}
79763}
79764
79765// method id "compute.instances.listReferrers":
79766
79767type InstancesListReferrersCall struct {
79768	s            *Service
79769	project      string
79770	zone         string
79771	instance     string
79772	urlParams_   gensupport.URLParams
79773	ifNoneMatch_ string
79774	ctx_         context.Context
79775	header_      http.Header
79776}
79777
79778// ListReferrers: Retrieves the list of referrers to instances contained
79779// within the specified zone. For more information, read Viewing
79780// Referrers to VM Instances.
79781func (r *InstancesService) ListReferrers(project string, zone string, instance string) *InstancesListReferrersCall {
79782	c := &InstancesListReferrersCall{s: r.s, urlParams_: make(gensupport.URLParams)}
79783	c.project = project
79784	c.zone = zone
79785	c.instance = instance
79786	return c
79787}
79788
79789// Filter sets the optional parameter "filter": A filter expression that
79790// filters resources listed in the response. The expression must specify
79791// the field name, a comparison operator, and the value that you want to
79792// use for filtering. The value must be a string, a number, or a
79793// boolean. The comparison operator must be either =, !=, >, or <.
79794//
79795// For example, if you are filtering Compute Engine instances, you can
79796// exclude instances named example-instance by specifying name !=
79797// example-instance.
79798//
79799// You can also filter nested fields. For example, you could specify
79800// scheduling.automaticRestart = false to include instances only if they
79801// are not scheduled for automatic restarts. You can use filtering on
79802// nested fields to filter based on resource labels.
79803//
79804// To filter on multiple expressions, provide each separate expression
79805// within parentheses. For example, (scheduling.automaticRestart = true)
79806// (cpuPlatform = "Intel Skylake"). By default, each expression is an
79807// AND expression. However, you can include AND and OR expressions
79808// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
79809// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
79810// true).
79811func (c *InstancesListReferrersCall) Filter(filter string) *InstancesListReferrersCall {
79812	c.urlParams_.Set("filter", filter)
79813	return c
79814}
79815
79816// MaxResults sets the optional parameter "maxResults": The maximum
79817// number of results per page that should be returned. If the number of
79818// available results is larger than maxResults, Compute Engine returns a
79819// nextPageToken that can be used to get the next page of results in
79820// subsequent list requests. Acceptable values are 0 to 500, inclusive.
79821// (Default: 500)
79822func (c *InstancesListReferrersCall) MaxResults(maxResults int64) *InstancesListReferrersCall {
79823	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
79824	return c
79825}
79826
79827// OrderBy sets the optional parameter "orderBy": Sorts list results by
79828// a certain order. By default, results are returned in alphanumerical
79829// order based on the resource name.
79830//
79831// You can also sort results in descending order based on the creation
79832// timestamp using orderBy="creationTimestamp desc". This sorts results
79833// based on the creationTimestamp field in reverse chronological order
79834// (newest result first). Use this to sort resources like operations so
79835// that the newest operation is returned first.
79836//
79837// Currently, only sorting by name or creationTimestamp desc is
79838// supported.
79839func (c *InstancesListReferrersCall) OrderBy(orderBy string) *InstancesListReferrersCall {
79840	c.urlParams_.Set("orderBy", orderBy)
79841	return c
79842}
79843
79844// PageToken sets the optional parameter "pageToken": Specifies a page
79845// token to use. Set pageToken to the nextPageToken returned by a
79846// previous list request to get the next page of results.
79847func (c *InstancesListReferrersCall) PageToken(pageToken string) *InstancesListReferrersCall {
79848	c.urlParams_.Set("pageToken", pageToken)
79849	return c
79850}
79851
79852// Fields allows partial responses to be retrieved. See
79853// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
79854// for more information.
79855func (c *InstancesListReferrersCall) Fields(s ...googleapi.Field) *InstancesListReferrersCall {
79856	c.urlParams_.Set("fields", googleapi.CombineFields(s))
79857	return c
79858}
79859
79860// IfNoneMatch sets the optional parameter which makes the operation
79861// fail if the object's ETag matches the given value. This is useful for
79862// getting updates only after the object has changed since the last
79863// request. Use googleapi.IsNotModified to check whether the response
79864// error from Do is the result of In-None-Match.
79865func (c *InstancesListReferrersCall) IfNoneMatch(entityTag string) *InstancesListReferrersCall {
79866	c.ifNoneMatch_ = entityTag
79867	return c
79868}
79869
79870// Context sets the context to be used in this call's Do method. Any
79871// pending HTTP request will be aborted if the provided context is
79872// canceled.
79873func (c *InstancesListReferrersCall) Context(ctx context.Context) *InstancesListReferrersCall {
79874	c.ctx_ = ctx
79875	return c
79876}
79877
79878// Header returns an http.Header that can be modified by the caller to
79879// add HTTP headers to the request.
79880func (c *InstancesListReferrersCall) Header() http.Header {
79881	if c.header_ == nil {
79882		c.header_ = make(http.Header)
79883	}
79884	return c.header_
79885}
79886
79887func (c *InstancesListReferrersCall) doRequest(alt string) (*http.Response, error) {
79888	reqHeaders := make(http.Header)
79889	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
79890	for k, v := range c.header_ {
79891		reqHeaders[k] = v
79892	}
79893	reqHeaders.Set("User-Agent", c.s.userAgent())
79894	if c.ifNoneMatch_ != "" {
79895		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
79896	}
79897	var body io.Reader = nil
79898	c.urlParams_.Set("alt", alt)
79899	c.urlParams_.Set("prettyPrint", "false")
79900	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/referrers")
79901	urls += "?" + c.urlParams_.Encode()
79902	req, err := http.NewRequest("GET", urls, body)
79903	if err != nil {
79904		return nil, err
79905	}
79906	req.Header = reqHeaders
79907	googleapi.Expand(req.URL, map[string]string{
79908		"project":  c.project,
79909		"zone":     c.zone,
79910		"instance": c.instance,
79911	})
79912	return gensupport.SendRequest(c.ctx_, c.s.client, req)
79913}
79914
79915// Do executes the "compute.instances.listReferrers" call.
79916// Exactly one of *InstanceListReferrers or error will be non-nil. Any
79917// non-2xx status code is an error. Response headers are in either
79918// *InstanceListReferrers.ServerResponse.Header or (if a response was
79919// returned at all) in error.(*googleapi.Error).Header. Use
79920// googleapi.IsNotModified to check whether the returned error was
79921// because http.StatusNotModified was returned.
79922func (c *InstancesListReferrersCall) Do(opts ...googleapi.CallOption) (*InstanceListReferrers, error) {
79923	gensupport.SetOptions(c.urlParams_, opts...)
79924	res, err := c.doRequest("json")
79925	if res != nil && res.StatusCode == http.StatusNotModified {
79926		if res.Body != nil {
79927			res.Body.Close()
79928		}
79929		return nil, &googleapi.Error{
79930			Code:   res.StatusCode,
79931			Header: res.Header,
79932		}
79933	}
79934	if err != nil {
79935		return nil, err
79936	}
79937	defer googleapi.CloseBody(res)
79938	if err := googleapi.CheckResponse(res); err != nil {
79939		return nil, err
79940	}
79941	ret := &InstanceListReferrers{
79942		ServerResponse: googleapi.ServerResponse{
79943			Header:         res.Header,
79944			HTTPStatusCode: res.StatusCode,
79945		},
79946	}
79947	target := &ret
79948	if err := gensupport.DecodeResponse(target, res); err != nil {
79949		return nil, err
79950	}
79951	return ret, nil
79952	// {
79953	//   "description": "Retrieves the list of referrers to instances contained within the specified zone. For more information, read Viewing Referrers to VM Instances.",
79954	//   "httpMethod": "GET",
79955	//   "id": "compute.instances.listReferrers",
79956	//   "parameterOrder": [
79957	//     "project",
79958	//     "zone",
79959	//     "instance"
79960	//   ],
79961	//   "parameters": {
79962	//     "filter": {
79963	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
79964	//       "location": "query",
79965	//       "type": "string"
79966	//     },
79967	//     "instance": {
79968	//       "description": "Name of the target instance scoping this request, or '-' if the request should span over all instances in the container.",
79969	//       "location": "path",
79970	//       "pattern": "-|[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
79971	//       "required": true,
79972	//       "type": "string"
79973	//     },
79974	//     "maxResults": {
79975	//       "default": "500",
79976	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
79977	//       "format": "uint32",
79978	//       "location": "query",
79979	//       "minimum": "0",
79980	//       "type": "integer"
79981	//     },
79982	//     "orderBy": {
79983	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
79984	//       "location": "query",
79985	//       "type": "string"
79986	//     },
79987	//     "pageToken": {
79988	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
79989	//       "location": "query",
79990	//       "type": "string"
79991	//     },
79992	//     "project": {
79993	//       "description": "Project ID for this request.",
79994	//       "location": "path",
79995	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
79996	//       "required": true,
79997	//       "type": "string"
79998	//     },
79999	//     "zone": {
80000	//       "description": "The name of the zone for this request.",
80001	//       "location": "path",
80002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80003	//       "required": true,
80004	//       "type": "string"
80005	//     }
80006	//   },
80007	//   "path": "{project}/zones/{zone}/instances/{instance}/referrers",
80008	//   "response": {
80009	//     "$ref": "InstanceListReferrers"
80010	//   },
80011	//   "scopes": [
80012	//     "https://www.googleapis.com/auth/cloud-platform",
80013	//     "https://www.googleapis.com/auth/compute",
80014	//     "https://www.googleapis.com/auth/compute.readonly"
80015	//   ]
80016	// }
80017
80018}
80019
80020// Pages invokes f for each page of results.
80021// A non-nil error returned from f will halt the iteration.
80022// The provided context supersedes any context provided to the Context method.
80023func (c *InstancesListReferrersCall) Pages(ctx context.Context, f func(*InstanceListReferrers) error) error {
80024	c.ctx_ = ctx
80025	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
80026	for {
80027		x, err := c.Do()
80028		if err != nil {
80029			return err
80030		}
80031		if err := f(x); err != nil {
80032			return err
80033		}
80034		if x.NextPageToken == "" {
80035			return nil
80036		}
80037		c.PageToken(x.NextPageToken)
80038	}
80039}
80040
80041// method id "compute.instances.reset":
80042
80043type InstancesResetCall struct {
80044	s          *Service
80045	project    string
80046	zone       string
80047	instance   string
80048	urlParams_ gensupport.URLParams
80049	ctx_       context.Context
80050	header_    http.Header
80051}
80052
80053// Reset: Performs a reset on the instance. This is a hard reset the VM
80054// does not do a graceful shutdown. For more information, see Resetting
80055// an instance.
80056// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/reset
80057func (r *InstancesService) Reset(project string, zone string, instance string) *InstancesResetCall {
80058	c := &InstancesResetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80059	c.project = project
80060	c.zone = zone
80061	c.instance = instance
80062	return c
80063}
80064
80065// RequestId sets the optional parameter "requestId": An optional
80066// request ID to identify requests. Specify a unique request ID so that
80067// if you must retry your request, the server will know to ignore the
80068// request if it has already been completed.
80069//
80070// For example, consider a situation where you make an initial request
80071// and the request times out. If you make the request again with the
80072// same request ID, the server can check if original operation with the
80073// same request ID was received, and if so, will ignore the second
80074// request. This prevents clients from accidentally creating duplicate
80075// commitments.
80076//
80077// The request ID must be a valid UUID with the exception that zero UUID
80078// is not supported (00000000-0000-0000-0000-000000000000).
80079func (c *InstancesResetCall) RequestId(requestId string) *InstancesResetCall {
80080	c.urlParams_.Set("requestId", requestId)
80081	return c
80082}
80083
80084// Fields allows partial responses to be retrieved. See
80085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80086// for more information.
80087func (c *InstancesResetCall) Fields(s ...googleapi.Field) *InstancesResetCall {
80088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80089	return c
80090}
80091
80092// Context sets the context to be used in this call's Do method. Any
80093// pending HTTP request will be aborted if the provided context is
80094// canceled.
80095func (c *InstancesResetCall) Context(ctx context.Context) *InstancesResetCall {
80096	c.ctx_ = ctx
80097	return c
80098}
80099
80100// Header returns an http.Header that can be modified by the caller to
80101// add HTTP headers to the request.
80102func (c *InstancesResetCall) Header() http.Header {
80103	if c.header_ == nil {
80104		c.header_ = make(http.Header)
80105	}
80106	return c.header_
80107}
80108
80109func (c *InstancesResetCall) doRequest(alt string) (*http.Response, error) {
80110	reqHeaders := make(http.Header)
80111	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80112	for k, v := range c.header_ {
80113		reqHeaders[k] = v
80114	}
80115	reqHeaders.Set("User-Agent", c.s.userAgent())
80116	var body io.Reader = nil
80117	c.urlParams_.Set("alt", alt)
80118	c.urlParams_.Set("prettyPrint", "false")
80119	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/reset")
80120	urls += "?" + c.urlParams_.Encode()
80121	req, err := http.NewRequest("POST", urls, body)
80122	if err != nil {
80123		return nil, err
80124	}
80125	req.Header = reqHeaders
80126	googleapi.Expand(req.URL, map[string]string{
80127		"project":  c.project,
80128		"zone":     c.zone,
80129		"instance": c.instance,
80130	})
80131	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80132}
80133
80134// Do executes the "compute.instances.reset" call.
80135// Exactly one of *Operation or error will be non-nil. Any non-2xx
80136// status code is an error. Response headers are in either
80137// *Operation.ServerResponse.Header or (if a response was returned at
80138// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80139// to check whether the returned error was because
80140// http.StatusNotModified was returned.
80141func (c *InstancesResetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80142	gensupport.SetOptions(c.urlParams_, opts...)
80143	res, err := c.doRequest("json")
80144	if res != nil && res.StatusCode == http.StatusNotModified {
80145		if res.Body != nil {
80146			res.Body.Close()
80147		}
80148		return nil, &googleapi.Error{
80149			Code:   res.StatusCode,
80150			Header: res.Header,
80151		}
80152	}
80153	if err != nil {
80154		return nil, err
80155	}
80156	defer googleapi.CloseBody(res)
80157	if err := googleapi.CheckResponse(res); err != nil {
80158		return nil, err
80159	}
80160	ret := &Operation{
80161		ServerResponse: googleapi.ServerResponse{
80162			Header:         res.Header,
80163			HTTPStatusCode: res.StatusCode,
80164		},
80165	}
80166	target := &ret
80167	if err := gensupport.DecodeResponse(target, res); err != nil {
80168		return nil, err
80169	}
80170	return ret, nil
80171	// {
80172	//   "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.",
80173	//   "httpMethod": "POST",
80174	//   "id": "compute.instances.reset",
80175	//   "parameterOrder": [
80176	//     "project",
80177	//     "zone",
80178	//     "instance"
80179	//   ],
80180	//   "parameters": {
80181	//     "instance": {
80182	//       "description": "Name of the instance scoping this request.",
80183	//       "location": "path",
80184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80185	//       "required": true,
80186	//       "type": "string"
80187	//     },
80188	//     "project": {
80189	//       "description": "Project ID for this request.",
80190	//       "location": "path",
80191	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80192	//       "required": true,
80193	//       "type": "string"
80194	//     },
80195	//     "requestId": {
80196	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80197	//       "location": "query",
80198	//       "type": "string"
80199	//     },
80200	//     "zone": {
80201	//       "description": "The name of the zone for this request.",
80202	//       "location": "path",
80203	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80204	//       "required": true,
80205	//       "type": "string"
80206	//     }
80207	//   },
80208	//   "path": "{project}/zones/{zone}/instances/{instance}/reset",
80209	//   "response": {
80210	//     "$ref": "Operation"
80211	//   },
80212	//   "scopes": [
80213	//     "https://www.googleapis.com/auth/cloud-platform",
80214	//     "https://www.googleapis.com/auth/compute"
80215	//   ]
80216	// }
80217
80218}
80219
80220// method id "compute.instances.resume":
80221
80222type InstancesResumeCall struct {
80223	s                      *Service
80224	project                string
80225	zone                   string
80226	instance               string
80227	instancesresumerequest *InstancesResumeRequest
80228	urlParams_             gensupport.URLParams
80229	ctx_                   context.Context
80230	header_                http.Header
80231}
80232
80233// Resume: Resumes an instance that was suspended using the
80234// instances().suspend method.
80235func (r *InstancesService) Resume(project string, zone string, instance string, instancesresumerequest *InstancesResumeRequest) *InstancesResumeCall {
80236	c := &InstancesResumeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80237	c.project = project
80238	c.zone = zone
80239	c.instance = instance
80240	c.instancesresumerequest = instancesresumerequest
80241	return c
80242}
80243
80244// RequestId sets the optional parameter "requestId": An optional
80245// request ID to identify requests. Specify a unique request ID so that
80246// if you must retry your request, the server will know to ignore the
80247// request if it has already been completed.
80248//
80249// For example, consider a situation where you make an initial request
80250// and the request times out. If you make the request again with the
80251// same request ID, the server can check if original operation with the
80252// same request ID was received, and if so, will ignore the second
80253// request. This prevents clients from accidentally creating duplicate
80254// commitments.
80255//
80256// The request ID must be a valid UUID with the exception that zero UUID
80257// is not supported (00000000-0000-0000-0000-000000000000).
80258func (c *InstancesResumeCall) RequestId(requestId string) *InstancesResumeCall {
80259	c.urlParams_.Set("requestId", requestId)
80260	return c
80261}
80262
80263// Fields allows partial responses to be retrieved. See
80264// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80265// for more information.
80266func (c *InstancesResumeCall) Fields(s ...googleapi.Field) *InstancesResumeCall {
80267	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80268	return c
80269}
80270
80271// Context sets the context to be used in this call's Do method. Any
80272// pending HTTP request will be aborted if the provided context is
80273// canceled.
80274func (c *InstancesResumeCall) Context(ctx context.Context) *InstancesResumeCall {
80275	c.ctx_ = ctx
80276	return c
80277}
80278
80279// Header returns an http.Header that can be modified by the caller to
80280// add HTTP headers to the request.
80281func (c *InstancesResumeCall) Header() http.Header {
80282	if c.header_ == nil {
80283		c.header_ = make(http.Header)
80284	}
80285	return c.header_
80286}
80287
80288func (c *InstancesResumeCall) doRequest(alt string) (*http.Response, error) {
80289	reqHeaders := make(http.Header)
80290	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80291	for k, v := range c.header_ {
80292		reqHeaders[k] = v
80293	}
80294	reqHeaders.Set("User-Agent", c.s.userAgent())
80295	var body io.Reader = nil
80296	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesresumerequest)
80297	if err != nil {
80298		return nil, err
80299	}
80300	reqHeaders.Set("Content-Type", "application/json")
80301	c.urlParams_.Set("alt", alt)
80302	c.urlParams_.Set("prettyPrint", "false")
80303	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/resume")
80304	urls += "?" + c.urlParams_.Encode()
80305	req, err := http.NewRequest("POST", urls, body)
80306	if err != nil {
80307		return nil, err
80308	}
80309	req.Header = reqHeaders
80310	googleapi.Expand(req.URL, map[string]string{
80311		"project":  c.project,
80312		"zone":     c.zone,
80313		"instance": c.instance,
80314	})
80315	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80316}
80317
80318// Do executes the "compute.instances.resume" call.
80319// Exactly one of *Operation or error will be non-nil. Any non-2xx
80320// status code is an error. Response headers are in either
80321// *Operation.ServerResponse.Header or (if a response was returned at
80322// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80323// to check whether the returned error was because
80324// http.StatusNotModified was returned.
80325func (c *InstancesResumeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80326	gensupport.SetOptions(c.urlParams_, opts...)
80327	res, err := c.doRequest("json")
80328	if res != nil && res.StatusCode == http.StatusNotModified {
80329		if res.Body != nil {
80330			res.Body.Close()
80331		}
80332		return nil, &googleapi.Error{
80333			Code:   res.StatusCode,
80334			Header: res.Header,
80335		}
80336	}
80337	if err != nil {
80338		return nil, err
80339	}
80340	defer googleapi.CloseBody(res)
80341	if err := googleapi.CheckResponse(res); err != nil {
80342		return nil, err
80343	}
80344	ret := &Operation{
80345		ServerResponse: googleapi.ServerResponse{
80346			Header:         res.Header,
80347			HTTPStatusCode: res.StatusCode,
80348		},
80349	}
80350	target := &ret
80351	if err := gensupport.DecodeResponse(target, res); err != nil {
80352		return nil, err
80353	}
80354	return ret, nil
80355	// {
80356	//   "description": "Resumes an instance that was suspended using the instances().suspend method.",
80357	//   "httpMethod": "POST",
80358	//   "id": "compute.instances.resume",
80359	//   "parameterOrder": [
80360	//     "project",
80361	//     "zone",
80362	//     "instance"
80363	//   ],
80364	//   "parameters": {
80365	//     "instance": {
80366	//       "description": "Name of the instance resource to resume.",
80367	//       "location": "path",
80368	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80369	//       "required": true,
80370	//       "type": "string"
80371	//     },
80372	//     "project": {
80373	//       "description": "Project ID for this request.",
80374	//       "location": "path",
80375	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80376	//       "required": true,
80377	//       "type": "string"
80378	//     },
80379	//     "requestId": {
80380	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80381	//       "location": "query",
80382	//       "type": "string"
80383	//     },
80384	//     "zone": {
80385	//       "description": "The name of the zone for this request.",
80386	//       "location": "path",
80387	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80388	//       "required": true,
80389	//       "type": "string"
80390	//     }
80391	//   },
80392	//   "path": "{project}/zones/{zone}/instances/{instance}/resume",
80393	//   "request": {
80394	//     "$ref": "InstancesResumeRequest"
80395	//   },
80396	//   "response": {
80397	//     "$ref": "Operation"
80398	//   },
80399	//   "scopes": [
80400	//     "https://www.googleapis.com/auth/cloud-platform",
80401	//     "https://www.googleapis.com/auth/compute"
80402	//   ]
80403	// }
80404
80405}
80406
80407// method id "compute.instances.setDeletionProtection":
80408
80409type InstancesSetDeletionProtectionCall struct {
80410	s          *Service
80411	project    string
80412	zone       string
80413	resource   string
80414	urlParams_ gensupport.URLParams
80415	ctx_       context.Context
80416	header_    http.Header
80417}
80418
80419// SetDeletionProtection: Sets deletion protection on the instance.
80420func (r *InstancesService) SetDeletionProtection(project string, zone string, resource string) *InstancesSetDeletionProtectionCall {
80421	c := &InstancesSetDeletionProtectionCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80422	c.project = project
80423	c.zone = zone
80424	c.resource = resource
80425	return c
80426}
80427
80428// DeletionProtection sets the optional parameter "deletionProtection":
80429// Whether the resource should be protected against deletion.
80430func (c *InstancesSetDeletionProtectionCall) DeletionProtection(deletionProtection bool) *InstancesSetDeletionProtectionCall {
80431	c.urlParams_.Set("deletionProtection", fmt.Sprint(deletionProtection))
80432	return c
80433}
80434
80435// RequestId sets the optional parameter "requestId": An optional
80436// request ID to identify requests. Specify a unique request ID so that
80437// if you must retry your request, the server will know to ignore the
80438// request if it has already been completed.
80439//
80440// For example, consider a situation where you make an initial request
80441// and the request times out. If you make the request again with the
80442// same request ID, the server can check if original operation with the
80443// same request ID was received, and if so, will ignore the second
80444// request. This prevents clients from accidentally creating duplicate
80445// commitments.
80446//
80447// The request ID must be a valid UUID with the exception that zero UUID
80448// is not supported (00000000-0000-0000-0000-000000000000).
80449func (c *InstancesSetDeletionProtectionCall) RequestId(requestId string) *InstancesSetDeletionProtectionCall {
80450	c.urlParams_.Set("requestId", requestId)
80451	return c
80452}
80453
80454// Fields allows partial responses to be retrieved. See
80455// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80456// for more information.
80457func (c *InstancesSetDeletionProtectionCall) Fields(s ...googleapi.Field) *InstancesSetDeletionProtectionCall {
80458	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80459	return c
80460}
80461
80462// Context sets the context to be used in this call's Do method. Any
80463// pending HTTP request will be aborted if the provided context is
80464// canceled.
80465func (c *InstancesSetDeletionProtectionCall) Context(ctx context.Context) *InstancesSetDeletionProtectionCall {
80466	c.ctx_ = ctx
80467	return c
80468}
80469
80470// Header returns an http.Header that can be modified by the caller to
80471// add HTTP headers to the request.
80472func (c *InstancesSetDeletionProtectionCall) Header() http.Header {
80473	if c.header_ == nil {
80474		c.header_ = make(http.Header)
80475	}
80476	return c.header_
80477}
80478
80479func (c *InstancesSetDeletionProtectionCall) doRequest(alt string) (*http.Response, error) {
80480	reqHeaders := make(http.Header)
80481	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80482	for k, v := range c.header_ {
80483		reqHeaders[k] = v
80484	}
80485	reqHeaders.Set("User-Agent", c.s.userAgent())
80486	var body io.Reader = nil
80487	c.urlParams_.Set("alt", alt)
80488	c.urlParams_.Set("prettyPrint", "false")
80489	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setDeletionProtection")
80490	urls += "?" + c.urlParams_.Encode()
80491	req, err := http.NewRequest("POST", urls, body)
80492	if err != nil {
80493		return nil, err
80494	}
80495	req.Header = reqHeaders
80496	googleapi.Expand(req.URL, map[string]string{
80497		"project":  c.project,
80498		"zone":     c.zone,
80499		"resource": c.resource,
80500	})
80501	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80502}
80503
80504// Do executes the "compute.instances.setDeletionProtection" call.
80505// Exactly one of *Operation or error will be non-nil. Any non-2xx
80506// status code is an error. Response headers are in either
80507// *Operation.ServerResponse.Header or (if a response was returned at
80508// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80509// to check whether the returned error was because
80510// http.StatusNotModified was returned.
80511func (c *InstancesSetDeletionProtectionCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80512	gensupport.SetOptions(c.urlParams_, opts...)
80513	res, err := c.doRequest("json")
80514	if res != nil && res.StatusCode == http.StatusNotModified {
80515		if res.Body != nil {
80516			res.Body.Close()
80517		}
80518		return nil, &googleapi.Error{
80519			Code:   res.StatusCode,
80520			Header: res.Header,
80521		}
80522	}
80523	if err != nil {
80524		return nil, err
80525	}
80526	defer googleapi.CloseBody(res)
80527	if err := googleapi.CheckResponse(res); err != nil {
80528		return nil, err
80529	}
80530	ret := &Operation{
80531		ServerResponse: googleapi.ServerResponse{
80532			Header:         res.Header,
80533			HTTPStatusCode: res.StatusCode,
80534		},
80535	}
80536	target := &ret
80537	if err := gensupport.DecodeResponse(target, res); err != nil {
80538		return nil, err
80539	}
80540	return ret, nil
80541	// {
80542	//   "description": "Sets deletion protection on the instance.",
80543	//   "httpMethod": "POST",
80544	//   "id": "compute.instances.setDeletionProtection",
80545	//   "parameterOrder": [
80546	//     "project",
80547	//     "zone",
80548	//     "resource"
80549	//   ],
80550	//   "parameters": {
80551	//     "deletionProtection": {
80552	//       "default": "true",
80553	//       "description": "Whether the resource should be protected against deletion.",
80554	//       "location": "query",
80555	//       "type": "boolean"
80556	//     },
80557	//     "project": {
80558	//       "description": "Project ID for this request.",
80559	//       "location": "path",
80560	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80561	//       "required": true,
80562	//       "type": "string"
80563	//     },
80564	//     "requestId": {
80565	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80566	//       "location": "query",
80567	//       "type": "string"
80568	//     },
80569	//     "resource": {
80570	//       "description": "Name or id of the resource for this request.",
80571	//       "location": "path",
80572	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80573	//       "required": true,
80574	//       "type": "string"
80575	//     },
80576	//     "zone": {
80577	//       "description": "The name of the zone for this request.",
80578	//       "location": "path",
80579	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80580	//       "required": true,
80581	//       "type": "string"
80582	//     }
80583	//   },
80584	//   "path": "{project}/zones/{zone}/instances/{resource}/setDeletionProtection",
80585	//   "response": {
80586	//     "$ref": "Operation"
80587	//   },
80588	//   "scopes": [
80589	//     "https://www.googleapis.com/auth/cloud-platform",
80590	//     "https://www.googleapis.com/auth/compute"
80591	//   ]
80592	// }
80593
80594}
80595
80596// method id "compute.instances.setDiskAutoDelete":
80597
80598type InstancesSetDiskAutoDeleteCall struct {
80599	s          *Service
80600	project    string
80601	zone       string
80602	instance   string
80603	urlParams_ gensupport.URLParams
80604	ctx_       context.Context
80605	header_    http.Header
80606}
80607
80608// SetDiskAutoDelete: Sets the auto-delete flag for a disk attached to
80609// an instance.
80610// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setDiskAutoDelete
80611func (r *InstancesService) SetDiskAutoDelete(project string, zone string, instance string, autoDelete bool, deviceName string) *InstancesSetDiskAutoDeleteCall {
80612	c := &InstancesSetDiskAutoDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80613	c.project = project
80614	c.zone = zone
80615	c.instance = instance
80616	c.urlParams_.Set("autoDelete", fmt.Sprint(autoDelete))
80617	c.urlParams_.Set("deviceName", deviceName)
80618	return c
80619}
80620
80621// RequestId sets the optional parameter "requestId": An optional
80622// request ID to identify requests. Specify a unique request ID so that
80623// if you must retry your request, the server will know to ignore the
80624// request if it has already been completed.
80625//
80626// For example, consider a situation where you make an initial request
80627// and the request times out. If you make the request again with the
80628// same request ID, the server can check if original operation with the
80629// same request ID was received, and if so, will ignore the second
80630// request. This prevents clients from accidentally creating duplicate
80631// commitments.
80632//
80633// The request ID must be a valid UUID with the exception that zero UUID
80634// is not supported (00000000-0000-0000-0000-000000000000).
80635func (c *InstancesSetDiskAutoDeleteCall) RequestId(requestId string) *InstancesSetDiskAutoDeleteCall {
80636	c.urlParams_.Set("requestId", requestId)
80637	return c
80638}
80639
80640// Fields allows partial responses to be retrieved. See
80641// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80642// for more information.
80643func (c *InstancesSetDiskAutoDeleteCall) Fields(s ...googleapi.Field) *InstancesSetDiskAutoDeleteCall {
80644	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80645	return c
80646}
80647
80648// Context sets the context to be used in this call's Do method. Any
80649// pending HTTP request will be aborted if the provided context is
80650// canceled.
80651func (c *InstancesSetDiskAutoDeleteCall) Context(ctx context.Context) *InstancesSetDiskAutoDeleteCall {
80652	c.ctx_ = ctx
80653	return c
80654}
80655
80656// Header returns an http.Header that can be modified by the caller to
80657// add HTTP headers to the request.
80658func (c *InstancesSetDiskAutoDeleteCall) Header() http.Header {
80659	if c.header_ == nil {
80660		c.header_ = make(http.Header)
80661	}
80662	return c.header_
80663}
80664
80665func (c *InstancesSetDiskAutoDeleteCall) doRequest(alt string) (*http.Response, error) {
80666	reqHeaders := make(http.Header)
80667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80668	for k, v := range c.header_ {
80669		reqHeaders[k] = v
80670	}
80671	reqHeaders.Set("User-Agent", c.s.userAgent())
80672	var body io.Reader = nil
80673	c.urlParams_.Set("alt", alt)
80674	c.urlParams_.Set("prettyPrint", "false")
80675	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete")
80676	urls += "?" + c.urlParams_.Encode()
80677	req, err := http.NewRequest("POST", urls, body)
80678	if err != nil {
80679		return nil, err
80680	}
80681	req.Header = reqHeaders
80682	googleapi.Expand(req.URL, map[string]string{
80683		"project":  c.project,
80684		"zone":     c.zone,
80685		"instance": c.instance,
80686	})
80687	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80688}
80689
80690// Do executes the "compute.instances.setDiskAutoDelete" call.
80691// Exactly one of *Operation or error will be non-nil. Any non-2xx
80692// status code is an error. Response headers are in either
80693// *Operation.ServerResponse.Header or (if a response was returned at
80694// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
80695// to check whether the returned error was because
80696// http.StatusNotModified was returned.
80697func (c *InstancesSetDiskAutoDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
80698	gensupport.SetOptions(c.urlParams_, opts...)
80699	res, err := c.doRequest("json")
80700	if res != nil && res.StatusCode == http.StatusNotModified {
80701		if res.Body != nil {
80702			res.Body.Close()
80703		}
80704		return nil, &googleapi.Error{
80705			Code:   res.StatusCode,
80706			Header: res.Header,
80707		}
80708	}
80709	if err != nil {
80710		return nil, err
80711	}
80712	defer googleapi.CloseBody(res)
80713	if err := googleapi.CheckResponse(res); err != nil {
80714		return nil, err
80715	}
80716	ret := &Operation{
80717		ServerResponse: googleapi.ServerResponse{
80718			Header:         res.Header,
80719			HTTPStatusCode: res.StatusCode,
80720		},
80721	}
80722	target := &ret
80723	if err := gensupport.DecodeResponse(target, res); err != nil {
80724		return nil, err
80725	}
80726	return ret, nil
80727	// {
80728	//   "description": "Sets the auto-delete flag for a disk attached to an instance.",
80729	//   "httpMethod": "POST",
80730	//   "id": "compute.instances.setDiskAutoDelete",
80731	//   "parameterOrder": [
80732	//     "project",
80733	//     "zone",
80734	//     "instance",
80735	//     "autoDelete",
80736	//     "deviceName"
80737	//   ],
80738	//   "parameters": {
80739	//     "autoDelete": {
80740	//       "description": "Whether to auto-delete the disk when the instance is deleted.",
80741	//       "location": "query",
80742	//       "required": true,
80743	//       "type": "boolean"
80744	//     },
80745	//     "deviceName": {
80746	//       "description": "The device name of the disk to modify. Make a get() request on the instance to view currently attached disks and device names.",
80747	//       "location": "query",
80748	//       "pattern": "\\w[\\w.-]{0,254}",
80749	//       "required": true,
80750	//       "type": "string"
80751	//     },
80752	//     "instance": {
80753	//       "description": "The instance name for this request.",
80754	//       "location": "path",
80755	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80756	//       "required": true,
80757	//       "type": "string"
80758	//     },
80759	//     "project": {
80760	//       "description": "Project ID for this request.",
80761	//       "location": "path",
80762	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80763	//       "required": true,
80764	//       "type": "string"
80765	//     },
80766	//     "requestId": {
80767	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
80768	//       "location": "query",
80769	//       "type": "string"
80770	//     },
80771	//     "zone": {
80772	//       "description": "The name of the zone for this request.",
80773	//       "location": "path",
80774	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80775	//       "required": true,
80776	//       "type": "string"
80777	//     }
80778	//   },
80779	//   "path": "{project}/zones/{zone}/instances/{instance}/setDiskAutoDelete",
80780	//   "response": {
80781	//     "$ref": "Operation"
80782	//   },
80783	//   "scopes": [
80784	//     "https://www.googleapis.com/auth/cloud-platform",
80785	//     "https://www.googleapis.com/auth/compute"
80786	//   ]
80787	// }
80788
80789}
80790
80791// method id "compute.instances.setIamPolicy":
80792
80793type InstancesSetIamPolicyCall struct {
80794	s                    *Service
80795	project              string
80796	zone                 string
80797	resource             string
80798	zonesetpolicyrequest *ZoneSetPolicyRequest
80799	urlParams_           gensupport.URLParams
80800	ctx_                 context.Context
80801	header_              http.Header
80802}
80803
80804// SetIamPolicy: Sets the access control policy on the specified
80805// resource. Replaces any existing policy.
80806func (r *InstancesService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *InstancesSetIamPolicyCall {
80807	c := &InstancesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80808	c.project = project
80809	c.zone = zone
80810	c.resource = resource
80811	c.zonesetpolicyrequest = zonesetpolicyrequest
80812	return c
80813}
80814
80815// Fields allows partial responses to be retrieved. See
80816// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80817// for more information.
80818func (c *InstancesSetIamPolicyCall) Fields(s ...googleapi.Field) *InstancesSetIamPolicyCall {
80819	c.urlParams_.Set("fields", googleapi.CombineFields(s))
80820	return c
80821}
80822
80823// Context sets the context to be used in this call's Do method. Any
80824// pending HTTP request will be aborted if the provided context is
80825// canceled.
80826func (c *InstancesSetIamPolicyCall) Context(ctx context.Context) *InstancesSetIamPolicyCall {
80827	c.ctx_ = ctx
80828	return c
80829}
80830
80831// Header returns an http.Header that can be modified by the caller to
80832// add HTTP headers to the request.
80833func (c *InstancesSetIamPolicyCall) Header() http.Header {
80834	if c.header_ == nil {
80835		c.header_ = make(http.Header)
80836	}
80837	return c.header_
80838}
80839
80840func (c *InstancesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
80841	reqHeaders := make(http.Header)
80842	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
80843	for k, v := range c.header_ {
80844		reqHeaders[k] = v
80845	}
80846	reqHeaders.Set("User-Agent", c.s.userAgent())
80847	var body io.Reader = nil
80848	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
80849	if err != nil {
80850		return nil, err
80851	}
80852	reqHeaders.Set("Content-Type", "application/json")
80853	c.urlParams_.Set("alt", alt)
80854	c.urlParams_.Set("prettyPrint", "false")
80855	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/setIamPolicy")
80856	urls += "?" + c.urlParams_.Encode()
80857	req, err := http.NewRequest("POST", urls, body)
80858	if err != nil {
80859		return nil, err
80860	}
80861	req.Header = reqHeaders
80862	googleapi.Expand(req.URL, map[string]string{
80863		"project":  c.project,
80864		"zone":     c.zone,
80865		"resource": c.resource,
80866	})
80867	return gensupport.SendRequest(c.ctx_, c.s.client, req)
80868}
80869
80870// Do executes the "compute.instances.setIamPolicy" call.
80871// Exactly one of *Policy or error will be non-nil. Any non-2xx status
80872// code is an error. Response headers are in either
80873// *Policy.ServerResponse.Header or (if a response was returned at all)
80874// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
80875// check whether the returned error was because http.StatusNotModified
80876// was returned.
80877func (c *InstancesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
80878	gensupport.SetOptions(c.urlParams_, opts...)
80879	res, err := c.doRequest("json")
80880	if res != nil && res.StatusCode == http.StatusNotModified {
80881		if res.Body != nil {
80882			res.Body.Close()
80883		}
80884		return nil, &googleapi.Error{
80885			Code:   res.StatusCode,
80886			Header: res.Header,
80887		}
80888	}
80889	if err != nil {
80890		return nil, err
80891	}
80892	defer googleapi.CloseBody(res)
80893	if err := googleapi.CheckResponse(res); err != nil {
80894		return nil, err
80895	}
80896	ret := &Policy{
80897		ServerResponse: googleapi.ServerResponse{
80898			Header:         res.Header,
80899			HTTPStatusCode: res.StatusCode,
80900		},
80901	}
80902	target := &ret
80903	if err := gensupport.DecodeResponse(target, res); err != nil {
80904		return nil, err
80905	}
80906	return ret, nil
80907	// {
80908	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
80909	//   "httpMethod": "POST",
80910	//   "id": "compute.instances.setIamPolicy",
80911	//   "parameterOrder": [
80912	//     "project",
80913	//     "zone",
80914	//     "resource"
80915	//   ],
80916	//   "parameters": {
80917	//     "project": {
80918	//       "description": "Project ID for this request.",
80919	//       "location": "path",
80920	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
80921	//       "required": true,
80922	//       "type": "string"
80923	//     },
80924	//     "resource": {
80925	//       "description": "Name or id of the resource for this request.",
80926	//       "location": "path",
80927	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
80928	//       "required": true,
80929	//       "type": "string"
80930	//     },
80931	//     "zone": {
80932	//       "description": "The name of the zone for this request.",
80933	//       "location": "path",
80934	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
80935	//       "required": true,
80936	//       "type": "string"
80937	//     }
80938	//   },
80939	//   "path": "{project}/zones/{zone}/instances/{resource}/setIamPolicy",
80940	//   "request": {
80941	//     "$ref": "ZoneSetPolicyRequest"
80942	//   },
80943	//   "response": {
80944	//     "$ref": "Policy"
80945	//   },
80946	//   "scopes": [
80947	//     "https://www.googleapis.com/auth/cloud-platform",
80948	//     "https://www.googleapis.com/auth/compute"
80949	//   ]
80950	// }
80951
80952}
80953
80954// method id "compute.instances.setLabels":
80955
80956type InstancesSetLabelsCall struct {
80957	s                         *Service
80958	project                   string
80959	zone                      string
80960	instance                  string
80961	instancessetlabelsrequest *InstancesSetLabelsRequest
80962	urlParams_                gensupport.URLParams
80963	ctx_                      context.Context
80964	header_                   http.Header
80965}
80966
80967// SetLabels: Sets labels on an instance. To learn more about labels,
80968// read the Labeling Resources documentation.
80969func (r *InstancesService) SetLabels(project string, zone string, instance string, instancessetlabelsrequest *InstancesSetLabelsRequest) *InstancesSetLabelsCall {
80970	c := &InstancesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
80971	c.project = project
80972	c.zone = zone
80973	c.instance = instance
80974	c.instancessetlabelsrequest = instancessetlabelsrequest
80975	return c
80976}
80977
80978// RequestId sets the optional parameter "requestId": An optional
80979// request ID to identify requests. Specify a unique request ID so that
80980// if you must retry your request, the server will know to ignore the
80981// request if it has already been completed.
80982//
80983// For example, consider a situation where you make an initial request
80984// and the request times out. If you make the request again with the
80985// same request ID, the server can check if original operation with the
80986// same request ID was received, and if so, will ignore the second
80987// request. This prevents clients from accidentally creating duplicate
80988// commitments.
80989//
80990// The request ID must be a valid UUID with the exception that zero UUID
80991// is not supported (00000000-0000-0000-0000-000000000000).
80992func (c *InstancesSetLabelsCall) RequestId(requestId string) *InstancesSetLabelsCall {
80993	c.urlParams_.Set("requestId", requestId)
80994	return c
80995}
80996
80997// Fields allows partial responses to be retrieved. See
80998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
80999// for more information.
81000func (c *InstancesSetLabelsCall) Fields(s ...googleapi.Field) *InstancesSetLabelsCall {
81001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81002	return c
81003}
81004
81005// Context sets the context to be used in this call's Do method. Any
81006// pending HTTP request will be aborted if the provided context is
81007// canceled.
81008func (c *InstancesSetLabelsCall) Context(ctx context.Context) *InstancesSetLabelsCall {
81009	c.ctx_ = ctx
81010	return c
81011}
81012
81013// Header returns an http.Header that can be modified by the caller to
81014// add HTTP headers to the request.
81015func (c *InstancesSetLabelsCall) Header() http.Header {
81016	if c.header_ == nil {
81017		c.header_ = make(http.Header)
81018	}
81019	return c.header_
81020}
81021
81022func (c *InstancesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
81023	reqHeaders := make(http.Header)
81024	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81025	for k, v := range c.header_ {
81026		reqHeaders[k] = v
81027	}
81028	reqHeaders.Set("User-Agent", c.s.userAgent())
81029	var body io.Reader = nil
81030	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetlabelsrequest)
81031	if err != nil {
81032		return nil, err
81033	}
81034	reqHeaders.Set("Content-Type", "application/json")
81035	c.urlParams_.Set("alt", alt)
81036	c.urlParams_.Set("prettyPrint", "false")
81037	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setLabels")
81038	urls += "?" + c.urlParams_.Encode()
81039	req, err := http.NewRequest("POST", urls, body)
81040	if err != nil {
81041		return nil, err
81042	}
81043	req.Header = reqHeaders
81044	googleapi.Expand(req.URL, map[string]string{
81045		"project":  c.project,
81046		"zone":     c.zone,
81047		"instance": c.instance,
81048	})
81049	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81050}
81051
81052// Do executes the "compute.instances.setLabels" call.
81053// Exactly one of *Operation or error will be non-nil. Any non-2xx
81054// status code is an error. Response headers are in either
81055// *Operation.ServerResponse.Header or (if a response was returned at
81056// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81057// to check whether the returned error was because
81058// http.StatusNotModified was returned.
81059func (c *InstancesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81060	gensupport.SetOptions(c.urlParams_, opts...)
81061	res, err := c.doRequest("json")
81062	if res != nil && res.StatusCode == http.StatusNotModified {
81063		if res.Body != nil {
81064			res.Body.Close()
81065		}
81066		return nil, &googleapi.Error{
81067			Code:   res.StatusCode,
81068			Header: res.Header,
81069		}
81070	}
81071	if err != nil {
81072		return nil, err
81073	}
81074	defer googleapi.CloseBody(res)
81075	if err := googleapi.CheckResponse(res); err != nil {
81076		return nil, err
81077	}
81078	ret := &Operation{
81079		ServerResponse: googleapi.ServerResponse{
81080			Header:         res.Header,
81081			HTTPStatusCode: res.StatusCode,
81082		},
81083	}
81084	target := &ret
81085	if err := gensupport.DecodeResponse(target, res); err != nil {
81086		return nil, err
81087	}
81088	return ret, nil
81089	// {
81090	//   "description": "Sets labels on an instance. To learn more about labels, read the Labeling Resources documentation.",
81091	//   "httpMethod": "POST",
81092	//   "id": "compute.instances.setLabels",
81093	//   "parameterOrder": [
81094	//     "project",
81095	//     "zone",
81096	//     "instance"
81097	//   ],
81098	//   "parameters": {
81099	//     "instance": {
81100	//       "description": "Name of the instance scoping this request.",
81101	//       "location": "path",
81102	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81103	//       "required": true,
81104	//       "type": "string"
81105	//     },
81106	//     "project": {
81107	//       "description": "Project ID for this request.",
81108	//       "location": "path",
81109	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81110	//       "required": true,
81111	//       "type": "string"
81112	//     },
81113	//     "requestId": {
81114	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81115	//       "location": "query",
81116	//       "type": "string"
81117	//     },
81118	//     "zone": {
81119	//       "description": "The name of the zone for this request.",
81120	//       "location": "path",
81121	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81122	//       "required": true,
81123	//       "type": "string"
81124	//     }
81125	//   },
81126	//   "path": "{project}/zones/{zone}/instances/{instance}/setLabels",
81127	//   "request": {
81128	//     "$ref": "InstancesSetLabelsRequest"
81129	//   },
81130	//   "response": {
81131	//     "$ref": "Operation"
81132	//   },
81133	//   "scopes": [
81134	//     "https://www.googleapis.com/auth/cloud-platform",
81135	//     "https://www.googleapis.com/auth/compute"
81136	//   ]
81137	// }
81138
81139}
81140
81141// method id "compute.instances.setMachineResources":
81142
81143type InstancesSetMachineResourcesCall struct {
81144	s                                   *Service
81145	project                             string
81146	zone                                string
81147	instance                            string
81148	instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest
81149	urlParams_                          gensupport.URLParams
81150	ctx_                                context.Context
81151	header_                             http.Header
81152}
81153
81154// SetMachineResources: Changes the number and/or type of accelerator
81155// for a stopped instance to the values specified in the request.
81156func (r *InstancesService) SetMachineResources(project string, zone string, instance string, instancessetmachineresourcesrequest *InstancesSetMachineResourcesRequest) *InstancesSetMachineResourcesCall {
81157	c := &InstancesSetMachineResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81158	c.project = project
81159	c.zone = zone
81160	c.instance = instance
81161	c.instancessetmachineresourcesrequest = instancessetmachineresourcesrequest
81162	return c
81163}
81164
81165// RequestId sets the optional parameter "requestId": An optional
81166// request ID to identify requests. Specify a unique request ID so that
81167// if you must retry your request, the server will know to ignore the
81168// request if it has already been completed.
81169//
81170// For example, consider a situation where you make an initial request
81171// and the request times out. If you make the request again with the
81172// same request ID, the server can check if original operation with the
81173// same request ID was received, and if so, will ignore the second
81174// request. This prevents clients from accidentally creating duplicate
81175// commitments.
81176//
81177// The request ID must be a valid UUID with the exception that zero UUID
81178// is not supported (00000000-0000-0000-0000-000000000000).
81179func (c *InstancesSetMachineResourcesCall) RequestId(requestId string) *InstancesSetMachineResourcesCall {
81180	c.urlParams_.Set("requestId", requestId)
81181	return c
81182}
81183
81184// Fields allows partial responses to be retrieved. See
81185// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81186// for more information.
81187func (c *InstancesSetMachineResourcesCall) Fields(s ...googleapi.Field) *InstancesSetMachineResourcesCall {
81188	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81189	return c
81190}
81191
81192// Context sets the context to be used in this call's Do method. Any
81193// pending HTTP request will be aborted if the provided context is
81194// canceled.
81195func (c *InstancesSetMachineResourcesCall) Context(ctx context.Context) *InstancesSetMachineResourcesCall {
81196	c.ctx_ = ctx
81197	return c
81198}
81199
81200// Header returns an http.Header that can be modified by the caller to
81201// add HTTP headers to the request.
81202func (c *InstancesSetMachineResourcesCall) Header() http.Header {
81203	if c.header_ == nil {
81204		c.header_ = make(http.Header)
81205	}
81206	return c.header_
81207}
81208
81209func (c *InstancesSetMachineResourcesCall) doRequest(alt string) (*http.Response, error) {
81210	reqHeaders := make(http.Header)
81211	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81212	for k, v := range c.header_ {
81213		reqHeaders[k] = v
81214	}
81215	reqHeaders.Set("User-Agent", c.s.userAgent())
81216	var body io.Reader = nil
81217	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachineresourcesrequest)
81218	if err != nil {
81219		return nil, err
81220	}
81221	reqHeaders.Set("Content-Type", "application/json")
81222	c.urlParams_.Set("alt", alt)
81223	c.urlParams_.Set("prettyPrint", "false")
81224	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineResources")
81225	urls += "?" + c.urlParams_.Encode()
81226	req, err := http.NewRequest("POST", urls, body)
81227	if err != nil {
81228		return nil, err
81229	}
81230	req.Header = reqHeaders
81231	googleapi.Expand(req.URL, map[string]string{
81232		"project":  c.project,
81233		"zone":     c.zone,
81234		"instance": c.instance,
81235	})
81236	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81237}
81238
81239// Do executes the "compute.instances.setMachineResources" call.
81240// Exactly one of *Operation or error will be non-nil. Any non-2xx
81241// status code is an error. Response headers are in either
81242// *Operation.ServerResponse.Header or (if a response was returned at
81243// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81244// to check whether the returned error was because
81245// http.StatusNotModified was returned.
81246func (c *InstancesSetMachineResourcesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81247	gensupport.SetOptions(c.urlParams_, opts...)
81248	res, err := c.doRequest("json")
81249	if res != nil && res.StatusCode == http.StatusNotModified {
81250		if res.Body != nil {
81251			res.Body.Close()
81252		}
81253		return nil, &googleapi.Error{
81254			Code:   res.StatusCode,
81255			Header: res.Header,
81256		}
81257	}
81258	if err != nil {
81259		return nil, err
81260	}
81261	defer googleapi.CloseBody(res)
81262	if err := googleapi.CheckResponse(res); err != nil {
81263		return nil, err
81264	}
81265	ret := &Operation{
81266		ServerResponse: googleapi.ServerResponse{
81267			Header:         res.Header,
81268			HTTPStatusCode: res.StatusCode,
81269		},
81270	}
81271	target := &ret
81272	if err := gensupport.DecodeResponse(target, res); err != nil {
81273		return nil, err
81274	}
81275	return ret, nil
81276	// {
81277	//   "description": "Changes the number and/or type of accelerator for a stopped instance to the values specified in the request.",
81278	//   "httpMethod": "POST",
81279	//   "id": "compute.instances.setMachineResources",
81280	//   "parameterOrder": [
81281	//     "project",
81282	//     "zone",
81283	//     "instance"
81284	//   ],
81285	//   "parameters": {
81286	//     "instance": {
81287	//       "description": "Name of the instance scoping this request.",
81288	//       "location": "path",
81289	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81290	//       "required": true,
81291	//       "type": "string"
81292	//     },
81293	//     "project": {
81294	//       "description": "Project ID for this request.",
81295	//       "location": "path",
81296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81297	//       "required": true,
81298	//       "type": "string"
81299	//     },
81300	//     "requestId": {
81301	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81302	//       "location": "query",
81303	//       "type": "string"
81304	//     },
81305	//     "zone": {
81306	//       "description": "The name of the zone for this request.",
81307	//       "location": "path",
81308	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81309	//       "required": true,
81310	//       "type": "string"
81311	//     }
81312	//   },
81313	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineResources",
81314	//   "request": {
81315	//     "$ref": "InstancesSetMachineResourcesRequest"
81316	//   },
81317	//   "response": {
81318	//     "$ref": "Operation"
81319	//   },
81320	//   "scopes": [
81321	//     "https://www.googleapis.com/auth/cloud-platform",
81322	//     "https://www.googleapis.com/auth/compute"
81323	//   ]
81324	// }
81325
81326}
81327
81328// method id "compute.instances.setMachineType":
81329
81330type InstancesSetMachineTypeCall struct {
81331	s                              *Service
81332	project                        string
81333	zone                           string
81334	instance                       string
81335	instancessetmachinetyperequest *InstancesSetMachineTypeRequest
81336	urlParams_                     gensupport.URLParams
81337	ctx_                           context.Context
81338	header_                        http.Header
81339}
81340
81341// SetMachineType: Changes the machine type for a stopped instance to
81342// the machine type specified in the request.
81343func (r *InstancesService) SetMachineType(project string, zone string, instance string, instancessetmachinetyperequest *InstancesSetMachineTypeRequest) *InstancesSetMachineTypeCall {
81344	c := &InstancesSetMachineTypeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81345	c.project = project
81346	c.zone = zone
81347	c.instance = instance
81348	c.instancessetmachinetyperequest = instancessetmachinetyperequest
81349	return c
81350}
81351
81352// RequestId sets the optional parameter "requestId": An optional
81353// request ID to identify requests. Specify a unique request ID so that
81354// if you must retry your request, the server will know to ignore the
81355// request if it has already been completed.
81356//
81357// For example, consider a situation where you make an initial request
81358// and the request times out. If you make the request again with the
81359// same request ID, the server can check if original operation with the
81360// same request ID was received, and if so, will ignore the second
81361// request. This prevents clients from accidentally creating duplicate
81362// commitments.
81363//
81364// The request ID must be a valid UUID with the exception that zero UUID
81365// is not supported (00000000-0000-0000-0000-000000000000).
81366func (c *InstancesSetMachineTypeCall) RequestId(requestId string) *InstancesSetMachineTypeCall {
81367	c.urlParams_.Set("requestId", requestId)
81368	return c
81369}
81370
81371// Fields allows partial responses to be retrieved. See
81372// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81373// for more information.
81374func (c *InstancesSetMachineTypeCall) Fields(s ...googleapi.Field) *InstancesSetMachineTypeCall {
81375	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81376	return c
81377}
81378
81379// Context sets the context to be used in this call's Do method. Any
81380// pending HTTP request will be aborted if the provided context is
81381// canceled.
81382func (c *InstancesSetMachineTypeCall) Context(ctx context.Context) *InstancesSetMachineTypeCall {
81383	c.ctx_ = ctx
81384	return c
81385}
81386
81387// Header returns an http.Header that can be modified by the caller to
81388// add HTTP headers to the request.
81389func (c *InstancesSetMachineTypeCall) Header() http.Header {
81390	if c.header_ == nil {
81391		c.header_ = make(http.Header)
81392	}
81393	return c.header_
81394}
81395
81396func (c *InstancesSetMachineTypeCall) doRequest(alt string) (*http.Response, error) {
81397	reqHeaders := make(http.Header)
81398	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81399	for k, v := range c.header_ {
81400		reqHeaders[k] = v
81401	}
81402	reqHeaders.Set("User-Agent", c.s.userAgent())
81403	var body io.Reader = nil
81404	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmachinetyperequest)
81405	if err != nil {
81406		return nil, err
81407	}
81408	reqHeaders.Set("Content-Type", "application/json")
81409	c.urlParams_.Set("alt", alt)
81410	c.urlParams_.Set("prettyPrint", "false")
81411	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMachineType")
81412	urls += "?" + c.urlParams_.Encode()
81413	req, err := http.NewRequest("POST", urls, body)
81414	if err != nil {
81415		return nil, err
81416	}
81417	req.Header = reqHeaders
81418	googleapi.Expand(req.URL, map[string]string{
81419		"project":  c.project,
81420		"zone":     c.zone,
81421		"instance": c.instance,
81422	})
81423	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81424}
81425
81426// Do executes the "compute.instances.setMachineType" call.
81427// Exactly one of *Operation or error will be non-nil. Any non-2xx
81428// status code is an error. Response headers are in either
81429// *Operation.ServerResponse.Header or (if a response was returned at
81430// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81431// to check whether the returned error was because
81432// http.StatusNotModified was returned.
81433func (c *InstancesSetMachineTypeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81434	gensupport.SetOptions(c.urlParams_, opts...)
81435	res, err := c.doRequest("json")
81436	if res != nil && res.StatusCode == http.StatusNotModified {
81437		if res.Body != nil {
81438			res.Body.Close()
81439		}
81440		return nil, &googleapi.Error{
81441			Code:   res.StatusCode,
81442			Header: res.Header,
81443		}
81444	}
81445	if err != nil {
81446		return nil, err
81447	}
81448	defer googleapi.CloseBody(res)
81449	if err := googleapi.CheckResponse(res); err != nil {
81450		return nil, err
81451	}
81452	ret := &Operation{
81453		ServerResponse: googleapi.ServerResponse{
81454			Header:         res.Header,
81455			HTTPStatusCode: res.StatusCode,
81456		},
81457	}
81458	target := &ret
81459	if err := gensupport.DecodeResponse(target, res); err != nil {
81460		return nil, err
81461	}
81462	return ret, nil
81463	// {
81464	//   "description": "Changes the machine type for a stopped instance to the machine type specified in the request.",
81465	//   "httpMethod": "POST",
81466	//   "id": "compute.instances.setMachineType",
81467	//   "parameterOrder": [
81468	//     "project",
81469	//     "zone",
81470	//     "instance"
81471	//   ],
81472	//   "parameters": {
81473	//     "instance": {
81474	//       "description": "Name of the instance scoping this request.",
81475	//       "location": "path",
81476	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81477	//       "required": true,
81478	//       "type": "string"
81479	//     },
81480	//     "project": {
81481	//       "description": "Project ID for this request.",
81482	//       "location": "path",
81483	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81484	//       "required": true,
81485	//       "type": "string"
81486	//     },
81487	//     "requestId": {
81488	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81489	//       "location": "query",
81490	//       "type": "string"
81491	//     },
81492	//     "zone": {
81493	//       "description": "The name of the zone for this request.",
81494	//       "location": "path",
81495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81496	//       "required": true,
81497	//       "type": "string"
81498	//     }
81499	//   },
81500	//   "path": "{project}/zones/{zone}/instances/{instance}/setMachineType",
81501	//   "request": {
81502	//     "$ref": "InstancesSetMachineTypeRequest"
81503	//   },
81504	//   "response": {
81505	//     "$ref": "Operation"
81506	//   },
81507	//   "scopes": [
81508	//     "https://www.googleapis.com/auth/cloud-platform",
81509	//     "https://www.googleapis.com/auth/compute"
81510	//   ]
81511	// }
81512
81513}
81514
81515// method id "compute.instances.setMetadata":
81516
81517type InstancesSetMetadataCall struct {
81518	s          *Service
81519	project    string
81520	zone       string
81521	instance   string
81522	metadata   *Metadata
81523	urlParams_ gensupport.URLParams
81524	ctx_       context.Context
81525	header_    http.Header
81526}
81527
81528// SetMetadata: Sets metadata for the specified instance to the data
81529// included in the request.
81530// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setMetadata
81531func (r *InstancesService) SetMetadata(project string, zone string, instance string, metadata *Metadata) *InstancesSetMetadataCall {
81532	c := &InstancesSetMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81533	c.project = project
81534	c.zone = zone
81535	c.instance = instance
81536	c.metadata = metadata
81537	return c
81538}
81539
81540// RequestId sets the optional parameter "requestId": An optional
81541// request ID to identify requests. Specify a unique request ID so that
81542// if you must retry your request, the server will know to ignore the
81543// request if it has already been completed.
81544//
81545// For example, consider a situation where you make an initial request
81546// and the request times out. If you make the request again with the
81547// same request ID, the server can check if original operation with the
81548// same request ID was received, and if so, will ignore the second
81549// request. This prevents clients from accidentally creating duplicate
81550// commitments.
81551//
81552// The request ID must be a valid UUID with the exception that zero UUID
81553// is not supported (00000000-0000-0000-0000-000000000000).
81554func (c *InstancesSetMetadataCall) RequestId(requestId string) *InstancesSetMetadataCall {
81555	c.urlParams_.Set("requestId", requestId)
81556	return c
81557}
81558
81559// Fields allows partial responses to be retrieved. See
81560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81561// for more information.
81562func (c *InstancesSetMetadataCall) Fields(s ...googleapi.Field) *InstancesSetMetadataCall {
81563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81564	return c
81565}
81566
81567// Context sets the context to be used in this call's Do method. Any
81568// pending HTTP request will be aborted if the provided context is
81569// canceled.
81570func (c *InstancesSetMetadataCall) Context(ctx context.Context) *InstancesSetMetadataCall {
81571	c.ctx_ = ctx
81572	return c
81573}
81574
81575// Header returns an http.Header that can be modified by the caller to
81576// add HTTP headers to the request.
81577func (c *InstancesSetMetadataCall) Header() http.Header {
81578	if c.header_ == nil {
81579		c.header_ = make(http.Header)
81580	}
81581	return c.header_
81582}
81583
81584func (c *InstancesSetMetadataCall) doRequest(alt string) (*http.Response, error) {
81585	reqHeaders := make(http.Header)
81586	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81587	for k, v := range c.header_ {
81588		reqHeaders[k] = v
81589	}
81590	reqHeaders.Set("User-Agent", c.s.userAgent())
81591	var body io.Reader = nil
81592	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
81593	if err != nil {
81594		return nil, err
81595	}
81596	reqHeaders.Set("Content-Type", "application/json")
81597	c.urlParams_.Set("alt", alt)
81598	c.urlParams_.Set("prettyPrint", "false")
81599	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMetadata")
81600	urls += "?" + c.urlParams_.Encode()
81601	req, err := http.NewRequest("POST", urls, body)
81602	if err != nil {
81603		return nil, err
81604	}
81605	req.Header = reqHeaders
81606	googleapi.Expand(req.URL, map[string]string{
81607		"project":  c.project,
81608		"zone":     c.zone,
81609		"instance": c.instance,
81610	})
81611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81612}
81613
81614// Do executes the "compute.instances.setMetadata" call.
81615// Exactly one of *Operation or error will be non-nil. Any non-2xx
81616// status code is an error. Response headers are in either
81617// *Operation.ServerResponse.Header or (if a response was returned at
81618// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81619// to check whether the returned error was because
81620// http.StatusNotModified was returned.
81621func (c *InstancesSetMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81622	gensupport.SetOptions(c.urlParams_, opts...)
81623	res, err := c.doRequest("json")
81624	if res != nil && res.StatusCode == http.StatusNotModified {
81625		if res.Body != nil {
81626			res.Body.Close()
81627		}
81628		return nil, &googleapi.Error{
81629			Code:   res.StatusCode,
81630			Header: res.Header,
81631		}
81632	}
81633	if err != nil {
81634		return nil, err
81635	}
81636	defer googleapi.CloseBody(res)
81637	if err := googleapi.CheckResponse(res); err != nil {
81638		return nil, err
81639	}
81640	ret := &Operation{
81641		ServerResponse: googleapi.ServerResponse{
81642			Header:         res.Header,
81643			HTTPStatusCode: res.StatusCode,
81644		},
81645	}
81646	target := &ret
81647	if err := gensupport.DecodeResponse(target, res); err != nil {
81648		return nil, err
81649	}
81650	return ret, nil
81651	// {
81652	//   "description": "Sets metadata for the specified instance to the data included in the request.",
81653	//   "httpMethod": "POST",
81654	//   "id": "compute.instances.setMetadata",
81655	//   "parameterOrder": [
81656	//     "project",
81657	//     "zone",
81658	//     "instance"
81659	//   ],
81660	//   "parameters": {
81661	//     "instance": {
81662	//       "description": "Name of the instance scoping this request.",
81663	//       "location": "path",
81664	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81665	//       "required": true,
81666	//       "type": "string"
81667	//     },
81668	//     "project": {
81669	//       "description": "Project ID for this request.",
81670	//       "location": "path",
81671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81672	//       "required": true,
81673	//       "type": "string"
81674	//     },
81675	//     "requestId": {
81676	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81677	//       "location": "query",
81678	//       "type": "string"
81679	//     },
81680	//     "zone": {
81681	//       "description": "The name of the zone for this request.",
81682	//       "location": "path",
81683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81684	//       "required": true,
81685	//       "type": "string"
81686	//     }
81687	//   },
81688	//   "path": "{project}/zones/{zone}/instances/{instance}/setMetadata",
81689	//   "request": {
81690	//     "$ref": "Metadata"
81691	//   },
81692	//   "response": {
81693	//     "$ref": "Operation"
81694	//   },
81695	//   "scopes": [
81696	//     "https://www.googleapis.com/auth/cloud-platform",
81697	//     "https://www.googleapis.com/auth/compute"
81698	//   ]
81699	// }
81700
81701}
81702
81703// method id "compute.instances.setMinCpuPlatform":
81704
81705type InstancesSetMinCpuPlatformCall struct {
81706	s                                 *Service
81707	project                           string
81708	zone                              string
81709	instance                          string
81710	instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest
81711	urlParams_                        gensupport.URLParams
81712	ctx_                              context.Context
81713	header_                           http.Header
81714}
81715
81716// SetMinCpuPlatform: Changes the minimum CPU platform that this
81717// instance should use. This method can only be called on a stopped
81718// instance. For more information, read Specifying a Minimum CPU
81719// Platform.
81720func (r *InstancesService) SetMinCpuPlatform(project string, zone string, instance string, instancessetmincpuplatformrequest *InstancesSetMinCpuPlatformRequest) *InstancesSetMinCpuPlatformCall {
81721	c := &InstancesSetMinCpuPlatformCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81722	c.project = project
81723	c.zone = zone
81724	c.instance = instance
81725	c.instancessetmincpuplatformrequest = instancessetmincpuplatformrequest
81726	return c
81727}
81728
81729// RequestId sets the optional parameter "requestId": An optional
81730// request ID to identify requests. Specify a unique request ID so that
81731// if you must retry your request, the server will know to ignore the
81732// request if it has already been completed.
81733//
81734// For example, consider a situation where you make an initial request
81735// and the request times out. If you make the request again with the
81736// same request ID, the server can check if original operation with the
81737// same request ID was received, and if so, will ignore the second
81738// request. This prevents clients from accidentally creating duplicate
81739// commitments.
81740//
81741// The request ID must be a valid UUID with the exception that zero UUID
81742// is not supported (00000000-0000-0000-0000-000000000000).
81743func (c *InstancesSetMinCpuPlatformCall) RequestId(requestId string) *InstancesSetMinCpuPlatformCall {
81744	c.urlParams_.Set("requestId", requestId)
81745	return c
81746}
81747
81748// Fields allows partial responses to be retrieved. See
81749// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81750// for more information.
81751func (c *InstancesSetMinCpuPlatformCall) Fields(s ...googleapi.Field) *InstancesSetMinCpuPlatformCall {
81752	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81753	return c
81754}
81755
81756// Context sets the context to be used in this call's Do method. Any
81757// pending HTTP request will be aborted if the provided context is
81758// canceled.
81759func (c *InstancesSetMinCpuPlatformCall) Context(ctx context.Context) *InstancesSetMinCpuPlatformCall {
81760	c.ctx_ = ctx
81761	return c
81762}
81763
81764// Header returns an http.Header that can be modified by the caller to
81765// add HTTP headers to the request.
81766func (c *InstancesSetMinCpuPlatformCall) Header() http.Header {
81767	if c.header_ == nil {
81768		c.header_ = make(http.Header)
81769	}
81770	return c.header_
81771}
81772
81773func (c *InstancesSetMinCpuPlatformCall) doRequest(alt string) (*http.Response, error) {
81774	reqHeaders := make(http.Header)
81775	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81776	for k, v := range c.header_ {
81777		reqHeaders[k] = v
81778	}
81779	reqHeaders.Set("User-Agent", c.s.userAgent())
81780	var body io.Reader = nil
81781	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetmincpuplatformrequest)
81782	if err != nil {
81783		return nil, err
81784	}
81785	reqHeaders.Set("Content-Type", "application/json")
81786	c.urlParams_.Set("alt", alt)
81787	c.urlParams_.Set("prettyPrint", "false")
81788	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform")
81789	urls += "?" + c.urlParams_.Encode()
81790	req, err := http.NewRequest("POST", urls, body)
81791	if err != nil {
81792		return nil, err
81793	}
81794	req.Header = reqHeaders
81795	googleapi.Expand(req.URL, map[string]string{
81796		"project":  c.project,
81797		"zone":     c.zone,
81798		"instance": c.instance,
81799	})
81800	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81801}
81802
81803// Do executes the "compute.instances.setMinCpuPlatform" call.
81804// Exactly one of *Operation or error will be non-nil. Any non-2xx
81805// status code is an error. Response headers are in either
81806// *Operation.ServerResponse.Header or (if a response was returned at
81807// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81808// to check whether the returned error was because
81809// http.StatusNotModified was returned.
81810func (c *InstancesSetMinCpuPlatformCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81811	gensupport.SetOptions(c.urlParams_, opts...)
81812	res, err := c.doRequest("json")
81813	if res != nil && res.StatusCode == http.StatusNotModified {
81814		if res.Body != nil {
81815			res.Body.Close()
81816		}
81817		return nil, &googleapi.Error{
81818			Code:   res.StatusCode,
81819			Header: res.Header,
81820		}
81821	}
81822	if err != nil {
81823		return nil, err
81824	}
81825	defer googleapi.CloseBody(res)
81826	if err := googleapi.CheckResponse(res); err != nil {
81827		return nil, err
81828	}
81829	ret := &Operation{
81830		ServerResponse: googleapi.ServerResponse{
81831			Header:         res.Header,
81832			HTTPStatusCode: res.StatusCode,
81833		},
81834	}
81835	target := &ret
81836	if err := gensupport.DecodeResponse(target, res); err != nil {
81837		return nil, err
81838	}
81839	return ret, nil
81840	// {
81841	//   "description": "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.",
81842	//   "httpMethod": "POST",
81843	//   "id": "compute.instances.setMinCpuPlatform",
81844	//   "parameterOrder": [
81845	//     "project",
81846	//     "zone",
81847	//     "instance"
81848	//   ],
81849	//   "parameters": {
81850	//     "instance": {
81851	//       "description": "Name of the instance scoping this request.",
81852	//       "location": "path",
81853	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
81854	//       "required": true,
81855	//       "type": "string"
81856	//     },
81857	//     "project": {
81858	//       "description": "Project ID for this request.",
81859	//       "location": "path",
81860	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
81861	//       "required": true,
81862	//       "type": "string"
81863	//     },
81864	//     "requestId": {
81865	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
81866	//       "location": "query",
81867	//       "type": "string"
81868	//     },
81869	//     "zone": {
81870	//       "description": "The name of the zone for this request.",
81871	//       "location": "path",
81872	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
81873	//       "required": true,
81874	//       "type": "string"
81875	//     }
81876	//   },
81877	//   "path": "{project}/zones/{zone}/instances/{instance}/setMinCpuPlatform",
81878	//   "request": {
81879	//     "$ref": "InstancesSetMinCpuPlatformRequest"
81880	//   },
81881	//   "response": {
81882	//     "$ref": "Operation"
81883	//   },
81884	//   "scopes": [
81885	//     "https://www.googleapis.com/auth/cloud-platform",
81886	//     "https://www.googleapis.com/auth/compute"
81887	//   ]
81888	// }
81889
81890}
81891
81892// method id "compute.instances.setScheduling":
81893
81894type InstancesSetSchedulingCall struct {
81895	s          *Service
81896	project    string
81897	zone       string
81898	instance   string
81899	scheduling *Scheduling
81900	urlParams_ gensupport.URLParams
81901	ctx_       context.Context
81902	header_    http.Header
81903}
81904
81905// SetScheduling: Sets an instance's scheduling options.
81906// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setScheduling
81907func (r *InstancesService) SetScheduling(project string, zone string, instance string, scheduling *Scheduling) *InstancesSetSchedulingCall {
81908	c := &InstancesSetSchedulingCall{s: r.s, urlParams_: make(gensupport.URLParams)}
81909	c.project = project
81910	c.zone = zone
81911	c.instance = instance
81912	c.scheduling = scheduling
81913	return c
81914}
81915
81916// RequestId sets the optional parameter "requestId": An optional
81917// request ID to identify requests. Specify a unique request ID so that
81918// if you must retry your request, the server will know to ignore the
81919// request if it has already been completed.
81920//
81921// For example, consider a situation where you make an initial request
81922// and the request times out. If you make the request again with the
81923// same request ID, the server can check if original operation with the
81924// same request ID was received, and if so, will ignore the second
81925// request. This prevents clients from accidentally creating duplicate
81926// commitments.
81927//
81928// The request ID must be a valid UUID with the exception that zero UUID
81929// is not supported (00000000-0000-0000-0000-000000000000).
81930func (c *InstancesSetSchedulingCall) RequestId(requestId string) *InstancesSetSchedulingCall {
81931	c.urlParams_.Set("requestId", requestId)
81932	return c
81933}
81934
81935// Fields allows partial responses to be retrieved. See
81936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
81937// for more information.
81938func (c *InstancesSetSchedulingCall) Fields(s ...googleapi.Field) *InstancesSetSchedulingCall {
81939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
81940	return c
81941}
81942
81943// Context sets the context to be used in this call's Do method. Any
81944// pending HTTP request will be aborted if the provided context is
81945// canceled.
81946func (c *InstancesSetSchedulingCall) Context(ctx context.Context) *InstancesSetSchedulingCall {
81947	c.ctx_ = ctx
81948	return c
81949}
81950
81951// Header returns an http.Header that can be modified by the caller to
81952// add HTTP headers to the request.
81953func (c *InstancesSetSchedulingCall) Header() http.Header {
81954	if c.header_ == nil {
81955		c.header_ = make(http.Header)
81956	}
81957	return c.header_
81958}
81959
81960func (c *InstancesSetSchedulingCall) doRequest(alt string) (*http.Response, error) {
81961	reqHeaders := make(http.Header)
81962	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
81963	for k, v := range c.header_ {
81964		reqHeaders[k] = v
81965	}
81966	reqHeaders.Set("User-Agent", c.s.userAgent())
81967	var body io.Reader = nil
81968	body, err := googleapi.WithoutDataWrapper.JSONReader(c.scheduling)
81969	if err != nil {
81970		return nil, err
81971	}
81972	reqHeaders.Set("Content-Type", "application/json")
81973	c.urlParams_.Set("alt", alt)
81974	c.urlParams_.Set("prettyPrint", "false")
81975	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setScheduling")
81976	urls += "?" + c.urlParams_.Encode()
81977	req, err := http.NewRequest("POST", 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		"zone":     c.zone,
81985		"instance": c.instance,
81986	})
81987	return gensupport.SendRequest(c.ctx_, c.s.client, req)
81988}
81989
81990// Do executes the "compute.instances.setScheduling" call.
81991// Exactly one of *Operation or error will be non-nil. Any non-2xx
81992// status code is an error. Response headers are in either
81993// *Operation.ServerResponse.Header or (if a response was returned at
81994// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
81995// to check whether the returned error was because
81996// http.StatusNotModified was returned.
81997func (c *InstancesSetSchedulingCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
81998	gensupport.SetOptions(c.urlParams_, opts...)
81999	res, err := c.doRequest("json")
82000	if res != nil && res.StatusCode == http.StatusNotModified {
82001		if res.Body != nil {
82002			res.Body.Close()
82003		}
82004		return nil, &googleapi.Error{
82005			Code:   res.StatusCode,
82006			Header: res.Header,
82007		}
82008	}
82009	if err != nil {
82010		return nil, err
82011	}
82012	defer googleapi.CloseBody(res)
82013	if err := googleapi.CheckResponse(res); err != nil {
82014		return nil, err
82015	}
82016	ret := &Operation{
82017		ServerResponse: googleapi.ServerResponse{
82018			Header:         res.Header,
82019			HTTPStatusCode: res.StatusCode,
82020		},
82021	}
82022	target := &ret
82023	if err := gensupport.DecodeResponse(target, res); err != nil {
82024		return nil, err
82025	}
82026	return ret, nil
82027	// {
82028	//   "description": "Sets an instance's scheduling options.",
82029	//   "httpMethod": "POST",
82030	//   "id": "compute.instances.setScheduling",
82031	//   "parameterOrder": [
82032	//     "project",
82033	//     "zone",
82034	//     "instance"
82035	//   ],
82036	//   "parameters": {
82037	//     "instance": {
82038	//       "description": "Instance name for this request.",
82039	//       "location": "path",
82040	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82041	//       "required": true,
82042	//       "type": "string"
82043	//     },
82044	//     "project": {
82045	//       "description": "Project ID for this request.",
82046	//       "location": "path",
82047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82048	//       "required": true,
82049	//       "type": "string"
82050	//     },
82051	//     "requestId": {
82052	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82053	//       "location": "query",
82054	//       "type": "string"
82055	//     },
82056	//     "zone": {
82057	//       "description": "The name of the zone for this request.",
82058	//       "location": "path",
82059	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82060	//       "required": true,
82061	//       "type": "string"
82062	//     }
82063	//   },
82064	//   "path": "{project}/zones/{zone}/instances/{instance}/setScheduling",
82065	//   "request": {
82066	//     "$ref": "Scheduling"
82067	//   },
82068	//   "response": {
82069	//     "$ref": "Operation"
82070	//   },
82071	//   "scopes": [
82072	//     "https://www.googleapis.com/auth/cloud-platform",
82073	//     "https://www.googleapis.com/auth/compute"
82074	//   ]
82075	// }
82076
82077}
82078
82079// method id "compute.instances.setServiceAccount":
82080
82081type InstancesSetServiceAccountCall struct {
82082	s                                 *Service
82083	project                           string
82084	zone                              string
82085	instance                          string
82086	instancessetserviceaccountrequest *InstancesSetServiceAccountRequest
82087	urlParams_                        gensupport.URLParams
82088	ctx_                              context.Context
82089	header_                           http.Header
82090}
82091
82092// SetServiceAccount: Sets the service account on the instance. For more
82093// information, read Changing the service account and access scopes for
82094// an instance.
82095func (r *InstancesService) SetServiceAccount(project string, zone string, instance string, instancessetserviceaccountrequest *InstancesSetServiceAccountRequest) *InstancesSetServiceAccountCall {
82096	c := &InstancesSetServiceAccountCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82097	c.project = project
82098	c.zone = zone
82099	c.instance = instance
82100	c.instancessetserviceaccountrequest = instancessetserviceaccountrequest
82101	return c
82102}
82103
82104// RequestId sets the optional parameter "requestId": An optional
82105// request ID to identify requests. Specify a unique request ID so that
82106// if you must retry your request, the server will know to ignore the
82107// request if it has already been completed.
82108//
82109// For example, consider a situation where you make an initial request
82110// and the request times out. If you make the request again with the
82111// same request ID, the server can check if original operation with the
82112// same request ID was received, and if so, will ignore the second
82113// request. This prevents clients from accidentally creating duplicate
82114// commitments.
82115//
82116// The request ID must be a valid UUID with the exception that zero UUID
82117// is not supported (00000000-0000-0000-0000-000000000000).
82118func (c *InstancesSetServiceAccountCall) RequestId(requestId string) *InstancesSetServiceAccountCall {
82119	c.urlParams_.Set("requestId", requestId)
82120	return c
82121}
82122
82123// Fields allows partial responses to be retrieved. See
82124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82125// for more information.
82126func (c *InstancesSetServiceAccountCall) Fields(s ...googleapi.Field) *InstancesSetServiceAccountCall {
82127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82128	return c
82129}
82130
82131// Context sets the context to be used in this call's Do method. Any
82132// pending HTTP request will be aborted if the provided context is
82133// canceled.
82134func (c *InstancesSetServiceAccountCall) Context(ctx context.Context) *InstancesSetServiceAccountCall {
82135	c.ctx_ = ctx
82136	return c
82137}
82138
82139// Header returns an http.Header that can be modified by the caller to
82140// add HTTP headers to the request.
82141func (c *InstancesSetServiceAccountCall) Header() http.Header {
82142	if c.header_ == nil {
82143		c.header_ = make(http.Header)
82144	}
82145	return c.header_
82146}
82147
82148func (c *InstancesSetServiceAccountCall) doRequest(alt string) (*http.Response, error) {
82149	reqHeaders := make(http.Header)
82150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82151	for k, v := range c.header_ {
82152		reqHeaders[k] = v
82153	}
82154	reqHeaders.Set("User-Agent", c.s.userAgent())
82155	var body io.Reader = nil
82156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancessetserviceaccountrequest)
82157	if err != nil {
82158		return nil, err
82159	}
82160	reqHeaders.Set("Content-Type", "application/json")
82161	c.urlParams_.Set("alt", alt)
82162	c.urlParams_.Set("prettyPrint", "false")
82163	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setServiceAccount")
82164	urls += "?" + c.urlParams_.Encode()
82165	req, err := http.NewRequest("POST", urls, body)
82166	if err != nil {
82167		return nil, err
82168	}
82169	req.Header = reqHeaders
82170	googleapi.Expand(req.URL, map[string]string{
82171		"project":  c.project,
82172		"zone":     c.zone,
82173		"instance": c.instance,
82174	})
82175	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82176}
82177
82178// Do executes the "compute.instances.setServiceAccount" call.
82179// Exactly one of *Operation or error will be non-nil. Any non-2xx
82180// status code is an error. Response headers are in either
82181// *Operation.ServerResponse.Header or (if a response was returned at
82182// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82183// to check whether the returned error was because
82184// http.StatusNotModified was returned.
82185func (c *InstancesSetServiceAccountCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82186	gensupport.SetOptions(c.urlParams_, opts...)
82187	res, err := c.doRequest("json")
82188	if res != nil && res.StatusCode == http.StatusNotModified {
82189		if res.Body != nil {
82190			res.Body.Close()
82191		}
82192		return nil, &googleapi.Error{
82193			Code:   res.StatusCode,
82194			Header: res.Header,
82195		}
82196	}
82197	if err != nil {
82198		return nil, err
82199	}
82200	defer googleapi.CloseBody(res)
82201	if err := googleapi.CheckResponse(res); err != nil {
82202		return nil, err
82203	}
82204	ret := &Operation{
82205		ServerResponse: googleapi.ServerResponse{
82206			Header:         res.Header,
82207			HTTPStatusCode: res.StatusCode,
82208		},
82209	}
82210	target := &ret
82211	if err := gensupport.DecodeResponse(target, res); err != nil {
82212		return nil, err
82213	}
82214	return ret, nil
82215	// {
82216	//   "description": "Sets the service account on the instance. For more information, read Changing the service account and access scopes for an instance.",
82217	//   "httpMethod": "POST",
82218	//   "id": "compute.instances.setServiceAccount",
82219	//   "parameterOrder": [
82220	//     "project",
82221	//     "zone",
82222	//     "instance"
82223	//   ],
82224	//   "parameters": {
82225	//     "instance": {
82226	//       "description": "Name of the instance resource to start.",
82227	//       "location": "path",
82228	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82229	//       "required": true,
82230	//       "type": "string"
82231	//     },
82232	//     "project": {
82233	//       "description": "Project ID for this request.",
82234	//       "location": "path",
82235	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82236	//       "required": true,
82237	//       "type": "string"
82238	//     },
82239	//     "requestId": {
82240	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82241	//       "location": "query",
82242	//       "type": "string"
82243	//     },
82244	//     "zone": {
82245	//       "description": "The name of the zone for this request.",
82246	//       "location": "path",
82247	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82248	//       "required": true,
82249	//       "type": "string"
82250	//     }
82251	//   },
82252	//   "path": "{project}/zones/{zone}/instances/{instance}/setServiceAccount",
82253	//   "request": {
82254	//     "$ref": "InstancesSetServiceAccountRequest"
82255	//   },
82256	//   "response": {
82257	//     "$ref": "Operation"
82258	//   },
82259	//   "scopes": [
82260	//     "https://www.googleapis.com/auth/cloud-platform",
82261	//     "https://www.googleapis.com/auth/compute"
82262	//   ]
82263	// }
82264
82265}
82266
82267// method id "compute.instances.setShieldedInstanceIntegrityPolicy":
82268
82269type InstancesSetShieldedInstanceIntegrityPolicyCall struct {
82270	s                               *Service
82271	project                         string
82272	zone                            string
82273	instance                        string
82274	shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy
82275	urlParams_                      gensupport.URLParams
82276	ctx_                            context.Context
82277	header_                         http.Header
82278}
82279
82280// SetShieldedInstanceIntegrityPolicy: Sets the Shielded Instance
82281// integrity policy for an instance. You can only use this method on a
82282// running instance. This method supports PATCH semantics and uses the
82283// JSON merge patch format and processing rules.
82284func (r *InstancesService) SetShieldedInstanceIntegrityPolicy(project string, zone string, instance string, shieldedinstanceintegritypolicy *ShieldedInstanceIntegrityPolicy) *InstancesSetShieldedInstanceIntegrityPolicyCall {
82285	c := &InstancesSetShieldedInstanceIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82286	c.project = project
82287	c.zone = zone
82288	c.instance = instance
82289	c.shieldedinstanceintegritypolicy = shieldedinstanceintegritypolicy
82290	return c
82291}
82292
82293// RequestId sets the optional parameter "requestId": An optional
82294// request ID to identify requests. Specify a unique request ID so that
82295// if you must retry your request, the server will know to ignore the
82296// request if it has already been completed.
82297//
82298// For example, consider a situation where you make an initial request
82299// and the request times out. If you make the request again with the
82300// same request ID, the server can check if original operation with the
82301// same request ID was received, and if so, will ignore the second
82302// request. This prevents clients from accidentally creating duplicate
82303// commitments.
82304//
82305// The request ID must be a valid UUID with the exception that zero UUID
82306// is not supported (00000000-0000-0000-0000-000000000000).
82307func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedInstanceIntegrityPolicyCall {
82308	c.urlParams_.Set("requestId", requestId)
82309	return c
82310}
82311
82312// Fields allows partial responses to be retrieved. See
82313// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82314// for more information.
82315func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedInstanceIntegrityPolicyCall {
82316	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82317	return c
82318}
82319
82320// Context sets the context to be used in this call's Do method. Any
82321// pending HTTP request will be aborted if the provided context is
82322// canceled.
82323func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedInstanceIntegrityPolicyCall {
82324	c.ctx_ = ctx
82325	return c
82326}
82327
82328// Header returns an http.Header that can be modified by the caller to
82329// add HTTP headers to the request.
82330func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Header() http.Header {
82331	if c.header_ == nil {
82332		c.header_ = make(http.Header)
82333	}
82334	return c.header_
82335}
82336
82337func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
82338	reqHeaders := make(http.Header)
82339	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82340	for k, v := range c.header_ {
82341		reqHeaders[k] = v
82342	}
82343	reqHeaders.Set("User-Agent", c.s.userAgent())
82344	var body io.Reader = nil
82345	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceintegritypolicy)
82346	if err != nil {
82347		return nil, err
82348	}
82349	reqHeaders.Set("Content-Type", "application/json")
82350	c.urlParams_.Set("alt", alt)
82351	c.urlParams_.Set("prettyPrint", "false")
82352	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy")
82353	urls += "?" + c.urlParams_.Encode()
82354	req, err := http.NewRequest("PATCH", urls, body)
82355	if err != nil {
82356		return nil, err
82357	}
82358	req.Header = reqHeaders
82359	googleapi.Expand(req.URL, map[string]string{
82360		"project":  c.project,
82361		"zone":     c.zone,
82362		"instance": c.instance,
82363	})
82364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82365}
82366
82367// Do executes the "compute.instances.setShieldedInstanceIntegrityPolicy" call.
82368// Exactly one of *Operation or error will be non-nil. Any non-2xx
82369// status code is an error. Response headers are in either
82370// *Operation.ServerResponse.Header or (if a response was returned at
82371// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82372// to check whether the returned error was because
82373// http.StatusNotModified was returned.
82374func (c *InstancesSetShieldedInstanceIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82375	gensupport.SetOptions(c.urlParams_, opts...)
82376	res, err := c.doRequest("json")
82377	if res != nil && res.StatusCode == http.StatusNotModified {
82378		if res.Body != nil {
82379			res.Body.Close()
82380		}
82381		return nil, &googleapi.Error{
82382			Code:   res.StatusCode,
82383			Header: res.Header,
82384		}
82385	}
82386	if err != nil {
82387		return nil, err
82388	}
82389	defer googleapi.CloseBody(res)
82390	if err := googleapi.CheckResponse(res); err != nil {
82391		return nil, err
82392	}
82393	ret := &Operation{
82394		ServerResponse: googleapi.ServerResponse{
82395			Header:         res.Header,
82396			HTTPStatusCode: res.StatusCode,
82397		},
82398	}
82399	target := &ret
82400	if err := gensupport.DecodeResponse(target, res); err != nil {
82401		return nil, err
82402	}
82403	return ret, nil
82404	// {
82405	//   "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.",
82406	//   "httpMethod": "PATCH",
82407	//   "id": "compute.instances.setShieldedInstanceIntegrityPolicy",
82408	//   "parameterOrder": [
82409	//     "project",
82410	//     "zone",
82411	//     "instance"
82412	//   ],
82413	//   "parameters": {
82414	//     "instance": {
82415	//       "description": "Name or id of the instance scoping this request.",
82416	//       "location": "path",
82417	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82418	//       "required": true,
82419	//       "type": "string"
82420	//     },
82421	//     "project": {
82422	//       "description": "Project ID for this request.",
82423	//       "location": "path",
82424	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82425	//       "required": true,
82426	//       "type": "string"
82427	//     },
82428	//     "requestId": {
82429	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82430	//       "location": "query",
82431	//       "type": "string"
82432	//     },
82433	//     "zone": {
82434	//       "description": "The name of the zone for this request.",
82435	//       "location": "path",
82436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82437	//       "required": true,
82438	//       "type": "string"
82439	//     }
82440	//   },
82441	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedInstanceIntegrityPolicy",
82442	//   "request": {
82443	//     "$ref": "ShieldedInstanceIntegrityPolicy"
82444	//   },
82445	//   "response": {
82446	//     "$ref": "Operation"
82447	//   },
82448	//   "scopes": [
82449	//     "https://www.googleapis.com/auth/cloud-platform",
82450	//     "https://www.googleapis.com/auth/compute"
82451	//   ]
82452	// }
82453
82454}
82455
82456// method id "compute.instances.setShieldedVmIntegrityPolicy":
82457
82458type InstancesSetShieldedVmIntegrityPolicyCall struct {
82459	s                         *Service
82460	project                   string
82461	zone                      string
82462	instance                  string
82463	shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy
82464	urlParams_                gensupport.URLParams
82465	ctx_                      context.Context
82466	header_                   http.Header
82467}
82468
82469// SetShieldedVmIntegrityPolicy: Sets the Shielded VM integrity policy
82470// for a VM instance. You can only use this method on a running VM
82471// instance. This method supports PATCH semantics and uses the JSON
82472// merge patch format and processing rules.
82473func (r *InstancesService) SetShieldedVmIntegrityPolicy(project string, zone string, instance string, shieldedvmintegritypolicy *ShieldedVmIntegrityPolicy) *InstancesSetShieldedVmIntegrityPolicyCall {
82474	c := &InstancesSetShieldedVmIntegrityPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82475	c.project = project
82476	c.zone = zone
82477	c.instance = instance
82478	c.shieldedvmintegritypolicy = shieldedvmintegritypolicy
82479	return c
82480}
82481
82482// RequestId sets the optional parameter "requestId": An optional
82483// request ID to identify requests. Specify a unique request ID so that
82484// if you must retry your request, the server will know to ignore the
82485// request if it has already been completed.
82486//
82487// For example, consider a situation where you make an initial request
82488// and the request times out. If you make the request again with the
82489// same request ID, the server can check if original operation with the
82490// same request ID was received, and if so, will ignore the second
82491// request. This prevents clients from accidentally creating duplicate
82492// commitments.
82493//
82494// The request ID must be a valid UUID with the exception that zero UUID
82495// is not supported (00000000-0000-0000-0000-000000000000).
82496func (c *InstancesSetShieldedVmIntegrityPolicyCall) RequestId(requestId string) *InstancesSetShieldedVmIntegrityPolicyCall {
82497	c.urlParams_.Set("requestId", requestId)
82498	return c
82499}
82500
82501// Fields allows partial responses to be retrieved. See
82502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82503// for more information.
82504func (c *InstancesSetShieldedVmIntegrityPolicyCall) Fields(s ...googleapi.Field) *InstancesSetShieldedVmIntegrityPolicyCall {
82505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82506	return c
82507}
82508
82509// Context sets the context to be used in this call's Do method. Any
82510// pending HTTP request will be aborted if the provided context is
82511// canceled.
82512func (c *InstancesSetShieldedVmIntegrityPolicyCall) Context(ctx context.Context) *InstancesSetShieldedVmIntegrityPolicyCall {
82513	c.ctx_ = ctx
82514	return c
82515}
82516
82517// Header returns an http.Header that can be modified by the caller to
82518// add HTTP headers to the request.
82519func (c *InstancesSetShieldedVmIntegrityPolicyCall) Header() http.Header {
82520	if c.header_ == nil {
82521		c.header_ = make(http.Header)
82522	}
82523	return c.header_
82524}
82525
82526func (c *InstancesSetShieldedVmIntegrityPolicyCall) doRequest(alt string) (*http.Response, error) {
82527	reqHeaders := make(http.Header)
82528	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82529	for k, v := range c.header_ {
82530		reqHeaders[k] = v
82531	}
82532	reqHeaders.Set("User-Agent", c.s.userAgent())
82533	var body io.Reader = nil
82534	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmintegritypolicy)
82535	if err != nil {
82536		return nil, err
82537	}
82538	reqHeaders.Set("Content-Type", "application/json")
82539	c.urlParams_.Set("alt", alt)
82540	c.urlParams_.Set("prettyPrint", "false")
82541	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy")
82542	urls += "?" + c.urlParams_.Encode()
82543	req, err := http.NewRequest("PATCH", urls, body)
82544	if err != nil {
82545		return nil, err
82546	}
82547	req.Header = reqHeaders
82548	googleapi.Expand(req.URL, map[string]string{
82549		"project":  c.project,
82550		"zone":     c.zone,
82551		"instance": c.instance,
82552	})
82553	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82554}
82555
82556// Do executes the "compute.instances.setShieldedVmIntegrityPolicy" call.
82557// Exactly one of *Operation or error will be non-nil. Any non-2xx
82558// status code is an error. Response headers are in either
82559// *Operation.ServerResponse.Header or (if a response was returned at
82560// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82561// to check whether the returned error was because
82562// http.StatusNotModified was returned.
82563func (c *InstancesSetShieldedVmIntegrityPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82564	gensupport.SetOptions(c.urlParams_, opts...)
82565	res, err := c.doRequest("json")
82566	if res != nil && res.StatusCode == http.StatusNotModified {
82567		if res.Body != nil {
82568			res.Body.Close()
82569		}
82570		return nil, &googleapi.Error{
82571			Code:   res.StatusCode,
82572			Header: res.Header,
82573		}
82574	}
82575	if err != nil {
82576		return nil, err
82577	}
82578	defer googleapi.CloseBody(res)
82579	if err := googleapi.CheckResponse(res); err != nil {
82580		return nil, err
82581	}
82582	ret := &Operation{
82583		ServerResponse: googleapi.ServerResponse{
82584			Header:         res.Header,
82585			HTTPStatusCode: res.StatusCode,
82586		},
82587	}
82588	target := &ret
82589	if err := gensupport.DecodeResponse(target, res); err != nil {
82590		return nil, err
82591	}
82592	return ret, nil
82593	// {
82594	//   "description": "Sets the Shielded VM integrity policy for a VM instance. You can only use this method on a running VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
82595	//   "httpMethod": "PATCH",
82596	//   "id": "compute.instances.setShieldedVmIntegrityPolicy",
82597	//   "parameterOrder": [
82598	//     "project",
82599	//     "zone",
82600	//     "instance"
82601	//   ],
82602	//   "parameters": {
82603	//     "instance": {
82604	//       "description": "Name of the instance scoping this request.",
82605	//       "location": "path",
82606	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82607	//       "required": true,
82608	//       "type": "string"
82609	//     },
82610	//     "project": {
82611	//       "description": "Project ID for this request.",
82612	//       "location": "path",
82613	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82614	//       "required": true,
82615	//       "type": "string"
82616	//     },
82617	//     "requestId": {
82618	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82619	//       "location": "query",
82620	//       "type": "string"
82621	//     },
82622	//     "zone": {
82623	//       "description": "The name of the zone for this request.",
82624	//       "location": "path",
82625	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82626	//       "required": true,
82627	//       "type": "string"
82628	//     }
82629	//   },
82630	//   "path": "{project}/zones/{zone}/instances/{instance}/setShieldedVmIntegrityPolicy",
82631	//   "request": {
82632	//     "$ref": "ShieldedVmIntegrityPolicy"
82633	//   },
82634	//   "response": {
82635	//     "$ref": "Operation"
82636	//   },
82637	//   "scopes": [
82638	//     "https://www.googleapis.com/auth/cloud-platform",
82639	//     "https://www.googleapis.com/auth/compute"
82640	//   ]
82641	// }
82642
82643}
82644
82645// method id "compute.instances.setTags":
82646
82647type InstancesSetTagsCall struct {
82648	s          *Service
82649	project    string
82650	zone       string
82651	instance   string
82652	tags       *Tags
82653	urlParams_ gensupport.URLParams
82654	ctx_       context.Context
82655	header_    http.Header
82656}
82657
82658// SetTags: Sets network tags for the specified instance to the data
82659// included in the request.
82660// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/setTags
82661func (r *InstancesService) SetTags(project string, zone string, instance string, tags *Tags) *InstancesSetTagsCall {
82662	c := &InstancesSetTagsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82663	c.project = project
82664	c.zone = zone
82665	c.instance = instance
82666	c.tags = tags
82667	return c
82668}
82669
82670// RequestId sets the optional parameter "requestId": An optional
82671// request ID to identify requests. Specify a unique request ID so that
82672// if you must retry your request, the server will know to ignore the
82673// request if it has already been completed.
82674//
82675// For example, consider a situation where you make an initial request
82676// and the request times out. If you make the request again with the
82677// same request ID, the server can check if original operation with the
82678// same request ID was received, and if so, will ignore the second
82679// request. This prevents clients from accidentally creating duplicate
82680// commitments.
82681//
82682// The request ID must be a valid UUID with the exception that zero UUID
82683// is not supported (00000000-0000-0000-0000-000000000000).
82684func (c *InstancesSetTagsCall) RequestId(requestId string) *InstancesSetTagsCall {
82685	c.urlParams_.Set("requestId", requestId)
82686	return c
82687}
82688
82689// Fields allows partial responses to be retrieved. See
82690// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82691// for more information.
82692func (c *InstancesSetTagsCall) Fields(s ...googleapi.Field) *InstancesSetTagsCall {
82693	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82694	return c
82695}
82696
82697// Context sets the context to be used in this call's Do method. Any
82698// pending HTTP request will be aborted if the provided context is
82699// canceled.
82700func (c *InstancesSetTagsCall) Context(ctx context.Context) *InstancesSetTagsCall {
82701	c.ctx_ = ctx
82702	return c
82703}
82704
82705// Header returns an http.Header that can be modified by the caller to
82706// add HTTP headers to the request.
82707func (c *InstancesSetTagsCall) Header() http.Header {
82708	if c.header_ == nil {
82709		c.header_ = make(http.Header)
82710	}
82711	return c.header_
82712}
82713
82714func (c *InstancesSetTagsCall) doRequest(alt string) (*http.Response, error) {
82715	reqHeaders := make(http.Header)
82716	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82717	for k, v := range c.header_ {
82718		reqHeaders[k] = v
82719	}
82720	reqHeaders.Set("User-Agent", c.s.userAgent())
82721	var body io.Reader = nil
82722	body, err := googleapi.WithoutDataWrapper.JSONReader(c.tags)
82723	if err != nil {
82724		return nil, err
82725	}
82726	reqHeaders.Set("Content-Type", "application/json")
82727	c.urlParams_.Set("alt", alt)
82728	c.urlParams_.Set("prettyPrint", "false")
82729	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/setTags")
82730	urls += "?" + c.urlParams_.Encode()
82731	req, err := http.NewRequest("POST", urls, body)
82732	if err != nil {
82733		return nil, err
82734	}
82735	req.Header = reqHeaders
82736	googleapi.Expand(req.URL, map[string]string{
82737		"project":  c.project,
82738		"zone":     c.zone,
82739		"instance": c.instance,
82740	})
82741	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82742}
82743
82744// Do executes the "compute.instances.setTags" call.
82745// Exactly one of *Operation or error will be non-nil. Any non-2xx
82746// status code is an error. Response headers are in either
82747// *Operation.ServerResponse.Header or (if a response was returned at
82748// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82749// to check whether the returned error was because
82750// http.StatusNotModified was returned.
82751func (c *InstancesSetTagsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82752	gensupport.SetOptions(c.urlParams_, opts...)
82753	res, err := c.doRequest("json")
82754	if res != nil && res.StatusCode == http.StatusNotModified {
82755		if res.Body != nil {
82756			res.Body.Close()
82757		}
82758		return nil, &googleapi.Error{
82759			Code:   res.StatusCode,
82760			Header: res.Header,
82761		}
82762	}
82763	if err != nil {
82764		return nil, err
82765	}
82766	defer googleapi.CloseBody(res)
82767	if err := googleapi.CheckResponse(res); err != nil {
82768		return nil, err
82769	}
82770	ret := &Operation{
82771		ServerResponse: googleapi.ServerResponse{
82772			Header:         res.Header,
82773			HTTPStatusCode: res.StatusCode,
82774		},
82775	}
82776	target := &ret
82777	if err := gensupport.DecodeResponse(target, res); err != nil {
82778		return nil, err
82779	}
82780	return ret, nil
82781	// {
82782	//   "description": "Sets network tags for the specified instance to the data included in the request.",
82783	//   "httpMethod": "POST",
82784	//   "id": "compute.instances.setTags",
82785	//   "parameterOrder": [
82786	//     "project",
82787	//     "zone",
82788	//     "instance"
82789	//   ],
82790	//   "parameters": {
82791	//     "instance": {
82792	//       "description": "Name of the instance scoping this request.",
82793	//       "location": "path",
82794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82795	//       "required": true,
82796	//       "type": "string"
82797	//     },
82798	//     "project": {
82799	//       "description": "Project ID for this request.",
82800	//       "location": "path",
82801	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82802	//       "required": true,
82803	//       "type": "string"
82804	//     },
82805	//     "requestId": {
82806	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
82807	//       "location": "query",
82808	//       "type": "string"
82809	//     },
82810	//     "zone": {
82811	//       "description": "The name of the zone for this request.",
82812	//       "location": "path",
82813	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82814	//       "required": true,
82815	//       "type": "string"
82816	//     }
82817	//   },
82818	//   "path": "{project}/zones/{zone}/instances/{instance}/setTags",
82819	//   "request": {
82820	//     "$ref": "Tags"
82821	//   },
82822	//   "response": {
82823	//     "$ref": "Operation"
82824	//   },
82825	//   "scopes": [
82826	//     "https://www.googleapis.com/auth/cloud-platform",
82827	//     "https://www.googleapis.com/auth/compute"
82828	//   ]
82829	// }
82830
82831}
82832
82833// method id "compute.instances.simulateMaintenanceEvent":
82834
82835type InstancesSimulateMaintenanceEventCall struct {
82836	s          *Service
82837	project    string
82838	zone       string
82839	instance   string
82840	urlParams_ gensupport.URLParams
82841	ctx_       context.Context
82842	header_    http.Header
82843}
82844
82845// SimulateMaintenanceEvent: Simulates a maintenance event on the
82846// instance.
82847func (r *InstancesService) SimulateMaintenanceEvent(project string, zone string, instance string) *InstancesSimulateMaintenanceEventCall {
82848	c := &InstancesSimulateMaintenanceEventCall{s: r.s, urlParams_: make(gensupport.URLParams)}
82849	c.project = project
82850	c.zone = zone
82851	c.instance = instance
82852	return c
82853}
82854
82855// Fields allows partial responses to be retrieved. See
82856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
82857// for more information.
82858func (c *InstancesSimulateMaintenanceEventCall) Fields(s ...googleapi.Field) *InstancesSimulateMaintenanceEventCall {
82859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
82860	return c
82861}
82862
82863// Context sets the context to be used in this call's Do method. Any
82864// pending HTTP request will be aborted if the provided context is
82865// canceled.
82866func (c *InstancesSimulateMaintenanceEventCall) Context(ctx context.Context) *InstancesSimulateMaintenanceEventCall {
82867	c.ctx_ = ctx
82868	return c
82869}
82870
82871// Header returns an http.Header that can be modified by the caller to
82872// add HTTP headers to the request.
82873func (c *InstancesSimulateMaintenanceEventCall) Header() http.Header {
82874	if c.header_ == nil {
82875		c.header_ = make(http.Header)
82876	}
82877	return c.header_
82878}
82879
82880func (c *InstancesSimulateMaintenanceEventCall) doRequest(alt string) (*http.Response, error) {
82881	reqHeaders := make(http.Header)
82882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
82883	for k, v := range c.header_ {
82884		reqHeaders[k] = v
82885	}
82886	reqHeaders.Set("User-Agent", c.s.userAgent())
82887	var body io.Reader = nil
82888	c.urlParams_.Set("alt", alt)
82889	c.urlParams_.Set("prettyPrint", "false")
82890	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent")
82891	urls += "?" + c.urlParams_.Encode()
82892	req, err := http.NewRequest("POST", urls, body)
82893	if err != nil {
82894		return nil, err
82895	}
82896	req.Header = reqHeaders
82897	googleapi.Expand(req.URL, map[string]string{
82898		"project":  c.project,
82899		"zone":     c.zone,
82900		"instance": c.instance,
82901	})
82902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
82903}
82904
82905// Do executes the "compute.instances.simulateMaintenanceEvent" call.
82906// Exactly one of *Operation or error will be non-nil. Any non-2xx
82907// status code is an error. Response headers are in either
82908// *Operation.ServerResponse.Header or (if a response was returned at
82909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
82910// to check whether the returned error was because
82911// http.StatusNotModified was returned.
82912func (c *InstancesSimulateMaintenanceEventCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
82913	gensupport.SetOptions(c.urlParams_, opts...)
82914	res, err := c.doRequest("json")
82915	if res != nil && res.StatusCode == http.StatusNotModified {
82916		if res.Body != nil {
82917			res.Body.Close()
82918		}
82919		return nil, &googleapi.Error{
82920			Code:   res.StatusCode,
82921			Header: res.Header,
82922		}
82923	}
82924	if err != nil {
82925		return nil, err
82926	}
82927	defer googleapi.CloseBody(res)
82928	if err := googleapi.CheckResponse(res); err != nil {
82929		return nil, err
82930	}
82931	ret := &Operation{
82932		ServerResponse: googleapi.ServerResponse{
82933			Header:         res.Header,
82934			HTTPStatusCode: res.StatusCode,
82935		},
82936	}
82937	target := &ret
82938	if err := gensupport.DecodeResponse(target, res); err != nil {
82939		return nil, err
82940	}
82941	return ret, nil
82942	// {
82943	//   "description": "Simulates a maintenance event on the instance.",
82944	//   "httpMethod": "POST",
82945	//   "id": "compute.instances.simulateMaintenanceEvent",
82946	//   "parameterOrder": [
82947	//     "project",
82948	//     "zone",
82949	//     "instance"
82950	//   ],
82951	//   "parameters": {
82952	//     "instance": {
82953	//       "description": "Name of the instance scoping this request.",
82954	//       "location": "path",
82955	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
82956	//       "required": true,
82957	//       "type": "string"
82958	//     },
82959	//     "project": {
82960	//       "description": "Project ID for this request.",
82961	//       "location": "path",
82962	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
82963	//       "required": true,
82964	//       "type": "string"
82965	//     },
82966	//     "zone": {
82967	//       "description": "The name of the zone for this request.",
82968	//       "location": "path",
82969	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
82970	//       "required": true,
82971	//       "type": "string"
82972	//     }
82973	//   },
82974	//   "path": "{project}/zones/{zone}/instances/{instance}/simulateMaintenanceEvent",
82975	//   "response": {
82976	//     "$ref": "Operation"
82977	//   },
82978	//   "scopes": [
82979	//     "https://www.googleapis.com/auth/cloud-platform",
82980	//     "https://www.googleapis.com/auth/compute"
82981	//   ]
82982	// }
82983
82984}
82985
82986// method id "compute.instances.start":
82987
82988type InstancesStartCall struct {
82989	s          *Service
82990	project    string
82991	zone       string
82992	instance   string
82993	urlParams_ gensupport.URLParams
82994	ctx_       context.Context
82995	header_    http.Header
82996}
82997
82998// Start: Starts an instance that was stopped using the instances().stop
82999// method. For more information, see Restart an instance.
83000// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/start
83001func (r *InstancesService) Start(project string, zone string, instance string) *InstancesStartCall {
83002	c := &InstancesStartCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83003	c.project = project
83004	c.zone = zone
83005	c.instance = instance
83006	return c
83007}
83008
83009// RequestId sets the optional parameter "requestId": An optional
83010// request ID to identify requests. Specify a unique request ID so that
83011// if you must retry your request, the server will know to ignore the
83012// request if it has already been completed.
83013//
83014// For example, consider a situation where you make an initial request
83015// and the request times out. If you make the request again with the
83016// same request ID, the server can check if original operation with the
83017// same request ID was received, and if so, will ignore the second
83018// request. This prevents clients from accidentally creating duplicate
83019// commitments.
83020//
83021// The request ID must be a valid UUID with the exception that zero UUID
83022// is not supported (00000000-0000-0000-0000-000000000000).
83023func (c *InstancesStartCall) RequestId(requestId string) *InstancesStartCall {
83024	c.urlParams_.Set("requestId", requestId)
83025	return c
83026}
83027
83028// Fields allows partial responses to be retrieved. See
83029// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83030// for more information.
83031func (c *InstancesStartCall) Fields(s ...googleapi.Field) *InstancesStartCall {
83032	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83033	return c
83034}
83035
83036// Context sets the context to be used in this call's Do method. Any
83037// pending HTTP request will be aborted if the provided context is
83038// canceled.
83039func (c *InstancesStartCall) Context(ctx context.Context) *InstancesStartCall {
83040	c.ctx_ = ctx
83041	return c
83042}
83043
83044// Header returns an http.Header that can be modified by the caller to
83045// add HTTP headers to the request.
83046func (c *InstancesStartCall) Header() http.Header {
83047	if c.header_ == nil {
83048		c.header_ = make(http.Header)
83049	}
83050	return c.header_
83051}
83052
83053func (c *InstancesStartCall) doRequest(alt string) (*http.Response, error) {
83054	reqHeaders := make(http.Header)
83055	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83056	for k, v := range c.header_ {
83057		reqHeaders[k] = v
83058	}
83059	reqHeaders.Set("User-Agent", c.s.userAgent())
83060	var body io.Reader = nil
83061	c.urlParams_.Set("alt", alt)
83062	c.urlParams_.Set("prettyPrint", "false")
83063	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/start")
83064	urls += "?" + c.urlParams_.Encode()
83065	req, err := http.NewRequest("POST", urls, body)
83066	if err != nil {
83067		return nil, err
83068	}
83069	req.Header = reqHeaders
83070	googleapi.Expand(req.URL, map[string]string{
83071		"project":  c.project,
83072		"zone":     c.zone,
83073		"instance": c.instance,
83074	})
83075	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83076}
83077
83078// Do executes the "compute.instances.start" call.
83079// Exactly one of *Operation or error will be non-nil. Any non-2xx
83080// status code is an error. Response headers are in either
83081// *Operation.ServerResponse.Header or (if a response was returned at
83082// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83083// to check whether the returned error was because
83084// http.StatusNotModified was returned.
83085func (c *InstancesStartCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83086	gensupport.SetOptions(c.urlParams_, opts...)
83087	res, err := c.doRequest("json")
83088	if res != nil && res.StatusCode == http.StatusNotModified {
83089		if res.Body != nil {
83090			res.Body.Close()
83091		}
83092		return nil, &googleapi.Error{
83093			Code:   res.StatusCode,
83094			Header: res.Header,
83095		}
83096	}
83097	if err != nil {
83098		return nil, err
83099	}
83100	defer googleapi.CloseBody(res)
83101	if err := googleapi.CheckResponse(res); err != nil {
83102		return nil, err
83103	}
83104	ret := &Operation{
83105		ServerResponse: googleapi.ServerResponse{
83106			Header:         res.Header,
83107			HTTPStatusCode: res.StatusCode,
83108		},
83109	}
83110	target := &ret
83111	if err := gensupport.DecodeResponse(target, res); err != nil {
83112		return nil, err
83113	}
83114	return ret, nil
83115	// {
83116	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
83117	//   "httpMethod": "POST",
83118	//   "id": "compute.instances.start",
83119	//   "parameterOrder": [
83120	//     "project",
83121	//     "zone",
83122	//     "instance"
83123	//   ],
83124	//   "parameters": {
83125	//     "instance": {
83126	//       "description": "Name of the instance resource to start.",
83127	//       "location": "path",
83128	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83129	//       "required": true,
83130	//       "type": "string"
83131	//     },
83132	//     "project": {
83133	//       "description": "Project ID for this request.",
83134	//       "location": "path",
83135	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83136	//       "required": true,
83137	//       "type": "string"
83138	//     },
83139	//     "requestId": {
83140	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83141	//       "location": "query",
83142	//       "type": "string"
83143	//     },
83144	//     "zone": {
83145	//       "description": "The name of the zone for this request.",
83146	//       "location": "path",
83147	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83148	//       "required": true,
83149	//       "type": "string"
83150	//     }
83151	//   },
83152	//   "path": "{project}/zones/{zone}/instances/{instance}/start",
83153	//   "response": {
83154	//     "$ref": "Operation"
83155	//   },
83156	//   "scopes": [
83157	//     "https://www.googleapis.com/auth/cloud-platform",
83158	//     "https://www.googleapis.com/auth/compute"
83159	//   ]
83160	// }
83161
83162}
83163
83164// method id "compute.instances.startWithEncryptionKey":
83165
83166type InstancesStartWithEncryptionKeyCall struct {
83167	s                                      *Service
83168	project                                string
83169	zone                                   string
83170	instance                               string
83171	instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest
83172	urlParams_                             gensupport.URLParams
83173	ctx_                                   context.Context
83174	header_                                http.Header
83175}
83176
83177// StartWithEncryptionKey: Starts an instance that was stopped using the
83178// instances().stop method. For more information, see Restart an
83179// instance.
83180func (r *InstancesService) StartWithEncryptionKey(project string, zone string, instance string, instancesstartwithencryptionkeyrequest *InstancesStartWithEncryptionKeyRequest) *InstancesStartWithEncryptionKeyCall {
83181	c := &InstancesStartWithEncryptionKeyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83182	c.project = project
83183	c.zone = zone
83184	c.instance = instance
83185	c.instancesstartwithencryptionkeyrequest = instancesstartwithencryptionkeyrequest
83186	return c
83187}
83188
83189// RequestId sets the optional parameter "requestId": An optional
83190// request ID to identify requests. Specify a unique request ID so that
83191// if you must retry your request, the server will know to ignore the
83192// request if it has already been completed.
83193//
83194// For example, consider a situation where you make an initial request
83195// and the request times out. If you make the request again with the
83196// same request ID, the server can check if original operation with the
83197// same request ID was received, and if so, will ignore the second
83198// request. This prevents clients from accidentally creating duplicate
83199// commitments.
83200//
83201// The request ID must be a valid UUID with the exception that zero UUID
83202// is not supported (00000000-0000-0000-0000-000000000000).
83203func (c *InstancesStartWithEncryptionKeyCall) RequestId(requestId string) *InstancesStartWithEncryptionKeyCall {
83204	c.urlParams_.Set("requestId", requestId)
83205	return c
83206}
83207
83208// Fields allows partial responses to be retrieved. See
83209// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83210// for more information.
83211func (c *InstancesStartWithEncryptionKeyCall) Fields(s ...googleapi.Field) *InstancesStartWithEncryptionKeyCall {
83212	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83213	return c
83214}
83215
83216// Context sets the context to be used in this call's Do method. Any
83217// pending HTTP request will be aborted if the provided context is
83218// canceled.
83219func (c *InstancesStartWithEncryptionKeyCall) Context(ctx context.Context) *InstancesStartWithEncryptionKeyCall {
83220	c.ctx_ = ctx
83221	return c
83222}
83223
83224// Header returns an http.Header that can be modified by the caller to
83225// add HTTP headers to the request.
83226func (c *InstancesStartWithEncryptionKeyCall) Header() http.Header {
83227	if c.header_ == nil {
83228		c.header_ = make(http.Header)
83229	}
83230	return c.header_
83231}
83232
83233func (c *InstancesStartWithEncryptionKeyCall) doRequest(alt string) (*http.Response, error) {
83234	reqHeaders := make(http.Header)
83235	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83236	for k, v := range c.header_ {
83237		reqHeaders[k] = v
83238	}
83239	reqHeaders.Set("User-Agent", c.s.userAgent())
83240	var body io.Reader = nil
83241	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancesstartwithencryptionkeyrequest)
83242	if err != nil {
83243		return nil, err
83244	}
83245	reqHeaders.Set("Content-Type", "application/json")
83246	c.urlParams_.Set("alt", alt)
83247	c.urlParams_.Set("prettyPrint", "false")
83248	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey")
83249	urls += "?" + c.urlParams_.Encode()
83250	req, err := http.NewRequest("POST", urls, body)
83251	if err != nil {
83252		return nil, err
83253	}
83254	req.Header = reqHeaders
83255	googleapi.Expand(req.URL, map[string]string{
83256		"project":  c.project,
83257		"zone":     c.zone,
83258		"instance": c.instance,
83259	})
83260	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83261}
83262
83263// Do executes the "compute.instances.startWithEncryptionKey" call.
83264// Exactly one of *Operation or error will be non-nil. Any non-2xx
83265// status code is an error. Response headers are in either
83266// *Operation.ServerResponse.Header or (if a response was returned at
83267// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83268// to check whether the returned error was because
83269// http.StatusNotModified was returned.
83270func (c *InstancesStartWithEncryptionKeyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83271	gensupport.SetOptions(c.urlParams_, opts...)
83272	res, err := c.doRequest("json")
83273	if res != nil && res.StatusCode == http.StatusNotModified {
83274		if res.Body != nil {
83275			res.Body.Close()
83276		}
83277		return nil, &googleapi.Error{
83278			Code:   res.StatusCode,
83279			Header: res.Header,
83280		}
83281	}
83282	if err != nil {
83283		return nil, err
83284	}
83285	defer googleapi.CloseBody(res)
83286	if err := googleapi.CheckResponse(res); err != nil {
83287		return nil, err
83288	}
83289	ret := &Operation{
83290		ServerResponse: googleapi.ServerResponse{
83291			Header:         res.Header,
83292			HTTPStatusCode: res.StatusCode,
83293		},
83294	}
83295	target := &ret
83296	if err := gensupport.DecodeResponse(target, res); err != nil {
83297		return nil, err
83298	}
83299	return ret, nil
83300	// {
83301	//   "description": "Starts an instance that was stopped using the instances().stop method. For more information, see Restart an instance.",
83302	//   "httpMethod": "POST",
83303	//   "id": "compute.instances.startWithEncryptionKey",
83304	//   "parameterOrder": [
83305	//     "project",
83306	//     "zone",
83307	//     "instance"
83308	//   ],
83309	//   "parameters": {
83310	//     "instance": {
83311	//       "description": "Name of the instance resource to start.",
83312	//       "location": "path",
83313	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83314	//       "required": true,
83315	//       "type": "string"
83316	//     },
83317	//     "project": {
83318	//       "description": "Project ID for this request.",
83319	//       "location": "path",
83320	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83321	//       "required": true,
83322	//       "type": "string"
83323	//     },
83324	//     "requestId": {
83325	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83326	//       "location": "query",
83327	//       "type": "string"
83328	//     },
83329	//     "zone": {
83330	//       "description": "The name of the zone for this request.",
83331	//       "location": "path",
83332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83333	//       "required": true,
83334	//       "type": "string"
83335	//     }
83336	//   },
83337	//   "path": "{project}/zones/{zone}/instances/{instance}/startWithEncryptionKey",
83338	//   "request": {
83339	//     "$ref": "InstancesStartWithEncryptionKeyRequest"
83340	//   },
83341	//   "response": {
83342	//     "$ref": "Operation"
83343	//   },
83344	//   "scopes": [
83345	//     "https://www.googleapis.com/auth/cloud-platform",
83346	//     "https://www.googleapis.com/auth/compute"
83347	//   ]
83348	// }
83349
83350}
83351
83352// method id "compute.instances.stop":
83353
83354type InstancesStopCall struct {
83355	s          *Service
83356	project    string
83357	zone       string
83358	instance   string
83359	urlParams_ gensupport.URLParams
83360	ctx_       context.Context
83361	header_    http.Header
83362}
83363
83364// Stop: Stops a running instance, shutting it down cleanly, and allows
83365// you to restart the instance at a later time. Stopped instances do not
83366// incur VM usage charges while they are stopped. However, resources
83367// that the VM is using, such as persistent disks and static IP
83368// addresses, will continue to be charged until they are deleted. For
83369// more information, see Stopping an instance.
83370// For details, see https://cloud.google.com/compute/docs/reference/latest/instances/stop
83371func (r *InstancesService) Stop(project string, zone string, instance string) *InstancesStopCall {
83372	c := &InstancesStopCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83373	c.project = project
83374	c.zone = zone
83375	c.instance = instance
83376	return c
83377}
83378
83379// RequestId sets the optional parameter "requestId": An optional
83380// request ID to identify requests. Specify a unique request ID so that
83381// if you must retry your request, the server will know to ignore the
83382// request if it has already been completed.
83383//
83384// For example, consider a situation where you make an initial request
83385// and the request times out. If you make the request again with the
83386// same request ID, the server can check if original operation with the
83387// same request ID was received, and if so, will ignore the second
83388// request. This prevents clients from accidentally creating duplicate
83389// commitments.
83390//
83391// The request ID must be a valid UUID with the exception that zero UUID
83392// is not supported (00000000-0000-0000-0000-000000000000).
83393func (c *InstancesStopCall) RequestId(requestId string) *InstancesStopCall {
83394	c.urlParams_.Set("requestId", requestId)
83395	return c
83396}
83397
83398// Fields allows partial responses to be retrieved. See
83399// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83400// for more information.
83401func (c *InstancesStopCall) Fields(s ...googleapi.Field) *InstancesStopCall {
83402	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83403	return c
83404}
83405
83406// Context sets the context to be used in this call's Do method. Any
83407// pending HTTP request will be aborted if the provided context is
83408// canceled.
83409func (c *InstancesStopCall) Context(ctx context.Context) *InstancesStopCall {
83410	c.ctx_ = ctx
83411	return c
83412}
83413
83414// Header returns an http.Header that can be modified by the caller to
83415// add HTTP headers to the request.
83416func (c *InstancesStopCall) Header() http.Header {
83417	if c.header_ == nil {
83418		c.header_ = make(http.Header)
83419	}
83420	return c.header_
83421}
83422
83423func (c *InstancesStopCall) doRequest(alt string) (*http.Response, error) {
83424	reqHeaders := make(http.Header)
83425	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83426	for k, v := range c.header_ {
83427		reqHeaders[k] = v
83428	}
83429	reqHeaders.Set("User-Agent", c.s.userAgent())
83430	var body io.Reader = nil
83431	c.urlParams_.Set("alt", alt)
83432	c.urlParams_.Set("prettyPrint", "false")
83433	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/stop")
83434	urls += "?" + c.urlParams_.Encode()
83435	req, err := http.NewRequest("POST", urls, body)
83436	if err != nil {
83437		return nil, err
83438	}
83439	req.Header = reqHeaders
83440	googleapi.Expand(req.URL, map[string]string{
83441		"project":  c.project,
83442		"zone":     c.zone,
83443		"instance": c.instance,
83444	})
83445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83446}
83447
83448// Do executes the "compute.instances.stop" call.
83449// Exactly one of *Operation or error will be non-nil. Any non-2xx
83450// status code is an error. Response headers are in either
83451// *Operation.ServerResponse.Header or (if a response was returned at
83452// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83453// to check whether the returned error was because
83454// http.StatusNotModified was returned.
83455func (c *InstancesStopCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83456	gensupport.SetOptions(c.urlParams_, opts...)
83457	res, err := c.doRequest("json")
83458	if res != nil && res.StatusCode == http.StatusNotModified {
83459		if res.Body != nil {
83460			res.Body.Close()
83461		}
83462		return nil, &googleapi.Error{
83463			Code:   res.StatusCode,
83464			Header: res.Header,
83465		}
83466	}
83467	if err != nil {
83468		return nil, err
83469	}
83470	defer googleapi.CloseBody(res)
83471	if err := googleapi.CheckResponse(res); err != nil {
83472		return nil, err
83473	}
83474	ret := &Operation{
83475		ServerResponse: googleapi.ServerResponse{
83476			Header:         res.Header,
83477			HTTPStatusCode: res.StatusCode,
83478		},
83479	}
83480	target := &ret
83481	if err := gensupport.DecodeResponse(target, res); err != nil {
83482		return nil, err
83483	}
83484	return ret, nil
83485	// {
83486	//   "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.",
83487	//   "httpMethod": "POST",
83488	//   "id": "compute.instances.stop",
83489	//   "parameterOrder": [
83490	//     "project",
83491	//     "zone",
83492	//     "instance"
83493	//   ],
83494	//   "parameters": {
83495	//     "instance": {
83496	//       "description": "Name of the instance resource to stop.",
83497	//       "location": "path",
83498	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83499	//       "required": true,
83500	//       "type": "string"
83501	//     },
83502	//     "project": {
83503	//       "description": "Project ID for this request.",
83504	//       "location": "path",
83505	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83506	//       "required": true,
83507	//       "type": "string"
83508	//     },
83509	//     "requestId": {
83510	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83511	//       "location": "query",
83512	//       "type": "string"
83513	//     },
83514	//     "zone": {
83515	//       "description": "The name of the zone for this request.",
83516	//       "location": "path",
83517	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83518	//       "required": true,
83519	//       "type": "string"
83520	//     }
83521	//   },
83522	//   "path": "{project}/zones/{zone}/instances/{instance}/stop",
83523	//   "response": {
83524	//     "$ref": "Operation"
83525	//   },
83526	//   "scopes": [
83527	//     "https://www.googleapis.com/auth/cloud-platform",
83528	//     "https://www.googleapis.com/auth/compute"
83529	//   ]
83530	// }
83531
83532}
83533
83534// method id "compute.instances.suspend":
83535
83536type InstancesSuspendCall struct {
83537	s          *Service
83538	project    string
83539	zone       string
83540	instance   string
83541	urlParams_ gensupport.URLParams
83542	ctx_       context.Context
83543	header_    http.Header
83544}
83545
83546// Suspend: This method suspends a running instance, saving its state to
83547// persistent storage, and allows you to resume the instance at a later
83548// time. Suspended instances incur reduced per-minute, virtual machine
83549// usage charges while they are suspended. Any resources the virtual
83550// machine is using, such as persistent disks and static IP addresses,
83551// will continue to be charged until they are deleted.
83552func (r *InstancesService) Suspend(project string, zone string, instance string) *InstancesSuspendCall {
83553	c := &InstancesSuspendCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83554	c.project = project
83555	c.zone = zone
83556	c.instance = instance
83557	return c
83558}
83559
83560// DiscardLocalSsd sets the optional parameter "discardLocalSsd": If
83561// true, discard the contents of any attached localSSD partitions.
83562// Default value is false (== preserve localSSD data).
83563func (c *InstancesSuspendCall) DiscardLocalSsd(discardLocalSsd bool) *InstancesSuspendCall {
83564	c.urlParams_.Set("discardLocalSsd", fmt.Sprint(discardLocalSsd))
83565	return c
83566}
83567
83568// RequestId sets the optional parameter "requestId": An optional
83569// request ID to identify requests. Specify a unique request ID so that
83570// if you must retry your request, the server will know to ignore the
83571// request if it has already been completed.
83572//
83573// For example, consider a situation where you make an initial request
83574// and the request times out. If you make the request again with the
83575// same request ID, the server can check if original operation with the
83576// same request ID was received, and if so, will ignore the second
83577// request. This prevents clients from accidentally creating duplicate
83578// commitments.
83579//
83580// The request ID must be a valid UUID with the exception that zero UUID
83581// is not supported (00000000-0000-0000-0000-000000000000).
83582func (c *InstancesSuspendCall) RequestId(requestId string) *InstancesSuspendCall {
83583	c.urlParams_.Set("requestId", requestId)
83584	return c
83585}
83586
83587// Fields allows partial responses to be retrieved. See
83588// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83589// for more information.
83590func (c *InstancesSuspendCall) Fields(s ...googleapi.Field) *InstancesSuspendCall {
83591	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83592	return c
83593}
83594
83595// Context sets the context to be used in this call's Do method. Any
83596// pending HTTP request will be aborted if the provided context is
83597// canceled.
83598func (c *InstancesSuspendCall) Context(ctx context.Context) *InstancesSuspendCall {
83599	c.ctx_ = ctx
83600	return c
83601}
83602
83603// Header returns an http.Header that can be modified by the caller to
83604// add HTTP headers to the request.
83605func (c *InstancesSuspendCall) Header() http.Header {
83606	if c.header_ == nil {
83607		c.header_ = make(http.Header)
83608	}
83609	return c.header_
83610}
83611
83612func (c *InstancesSuspendCall) doRequest(alt string) (*http.Response, error) {
83613	reqHeaders := make(http.Header)
83614	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83615	for k, v := range c.header_ {
83616		reqHeaders[k] = v
83617	}
83618	reqHeaders.Set("User-Agent", c.s.userAgent())
83619	var body io.Reader = nil
83620	c.urlParams_.Set("alt", alt)
83621	c.urlParams_.Set("prettyPrint", "false")
83622	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/suspend")
83623	urls += "?" + c.urlParams_.Encode()
83624	req, err := http.NewRequest("POST", urls, body)
83625	if err != nil {
83626		return nil, err
83627	}
83628	req.Header = reqHeaders
83629	googleapi.Expand(req.URL, map[string]string{
83630		"project":  c.project,
83631		"zone":     c.zone,
83632		"instance": c.instance,
83633	})
83634	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83635}
83636
83637// Do executes the "compute.instances.suspend" call.
83638// Exactly one of *Operation or error will be non-nil. Any non-2xx
83639// status code is an error. Response headers are in either
83640// *Operation.ServerResponse.Header or (if a response was returned at
83641// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83642// to check whether the returned error was because
83643// http.StatusNotModified was returned.
83644func (c *InstancesSuspendCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
83645	gensupport.SetOptions(c.urlParams_, opts...)
83646	res, err := c.doRequest("json")
83647	if res != nil && res.StatusCode == http.StatusNotModified {
83648		if res.Body != nil {
83649			res.Body.Close()
83650		}
83651		return nil, &googleapi.Error{
83652			Code:   res.StatusCode,
83653			Header: res.Header,
83654		}
83655	}
83656	if err != nil {
83657		return nil, err
83658	}
83659	defer googleapi.CloseBody(res)
83660	if err := googleapi.CheckResponse(res); err != nil {
83661		return nil, err
83662	}
83663	ret := &Operation{
83664		ServerResponse: googleapi.ServerResponse{
83665			Header:         res.Header,
83666			HTTPStatusCode: res.StatusCode,
83667		},
83668	}
83669	target := &ret
83670	if err := gensupport.DecodeResponse(target, res); err != nil {
83671		return nil, err
83672	}
83673	return ret, nil
83674	// {
83675	//   "description": "This method suspends a running instance, saving its state to persistent storage, and allows you to resume the instance at a later time. Suspended instances incur reduced per-minute, virtual machine usage charges while they are suspended. Any resources the virtual machine is using, such as persistent disks and static IP addresses, will continue to be charged until they are deleted.",
83676	//   "httpMethod": "POST",
83677	//   "id": "compute.instances.suspend",
83678	//   "parameterOrder": [
83679	//     "project",
83680	//     "zone",
83681	//     "instance"
83682	//   ],
83683	//   "parameters": {
83684	//     "discardLocalSsd": {
83685	//       "description": "If true, discard the contents of any attached localSSD partitions. Default value is false (== preserve localSSD data).",
83686	//       "location": "query",
83687	//       "type": "boolean"
83688	//     },
83689	//     "instance": {
83690	//       "description": "Name of the instance resource to suspend.",
83691	//       "location": "path",
83692	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83693	//       "required": true,
83694	//       "type": "string"
83695	//     },
83696	//     "project": {
83697	//       "description": "Project ID for this request.",
83698	//       "location": "path",
83699	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83700	//       "required": true,
83701	//       "type": "string"
83702	//     },
83703	//     "requestId": {
83704	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
83705	//       "location": "query",
83706	//       "type": "string"
83707	//     },
83708	//     "zone": {
83709	//       "description": "The name of the zone for this request.",
83710	//       "location": "path",
83711	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83712	//       "required": true,
83713	//       "type": "string"
83714	//     }
83715	//   },
83716	//   "path": "{project}/zones/{zone}/instances/{instance}/suspend",
83717	//   "response": {
83718	//     "$ref": "Operation"
83719	//   },
83720	//   "scopes": [
83721	//     "https://www.googleapis.com/auth/cloud-platform",
83722	//     "https://www.googleapis.com/auth/compute"
83723	//   ]
83724	// }
83725
83726}
83727
83728// method id "compute.instances.testIamPermissions":
83729
83730type InstancesTestIamPermissionsCall struct {
83731	s                      *Service
83732	project                string
83733	zone                   string
83734	resource               string
83735	testpermissionsrequest *TestPermissionsRequest
83736	urlParams_             gensupport.URLParams
83737	ctx_                   context.Context
83738	header_                http.Header
83739}
83740
83741// TestIamPermissions: Returns permissions that a caller has on the
83742// specified resource.
83743func (r *InstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *InstancesTestIamPermissionsCall {
83744	c := &InstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83745	c.project = project
83746	c.zone = zone
83747	c.resource = resource
83748	c.testpermissionsrequest = testpermissionsrequest
83749	return c
83750}
83751
83752// Fields allows partial responses to be retrieved. See
83753// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83754// for more information.
83755func (c *InstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *InstancesTestIamPermissionsCall {
83756	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83757	return c
83758}
83759
83760// Context sets the context to be used in this call's Do method. Any
83761// pending HTTP request will be aborted if the provided context is
83762// canceled.
83763func (c *InstancesTestIamPermissionsCall) Context(ctx context.Context) *InstancesTestIamPermissionsCall {
83764	c.ctx_ = ctx
83765	return c
83766}
83767
83768// Header returns an http.Header that can be modified by the caller to
83769// add HTTP headers to the request.
83770func (c *InstancesTestIamPermissionsCall) Header() http.Header {
83771	if c.header_ == nil {
83772		c.header_ = make(http.Header)
83773	}
83774	return c.header_
83775}
83776
83777func (c *InstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
83778	reqHeaders := make(http.Header)
83779	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83780	for k, v := range c.header_ {
83781		reqHeaders[k] = v
83782	}
83783	reqHeaders.Set("User-Agent", c.s.userAgent())
83784	var body io.Reader = nil
83785	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
83786	if err != nil {
83787		return nil, err
83788	}
83789	reqHeaders.Set("Content-Type", "application/json")
83790	c.urlParams_.Set("alt", alt)
83791	c.urlParams_.Set("prettyPrint", "false")
83792	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{resource}/testIamPermissions")
83793	urls += "?" + c.urlParams_.Encode()
83794	req, err := http.NewRequest("POST", urls, body)
83795	if err != nil {
83796		return nil, err
83797	}
83798	req.Header = reqHeaders
83799	googleapi.Expand(req.URL, map[string]string{
83800		"project":  c.project,
83801		"zone":     c.zone,
83802		"resource": c.resource,
83803	})
83804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83805}
83806
83807// Do executes the "compute.instances.testIamPermissions" call.
83808// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
83809// non-2xx status code is an error. Response headers are in either
83810// *TestPermissionsResponse.ServerResponse.Header or (if a response was
83811// returned at all) in error.(*googleapi.Error).Header. Use
83812// googleapi.IsNotModified to check whether the returned error was
83813// because http.StatusNotModified was returned.
83814func (c *InstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
83815	gensupport.SetOptions(c.urlParams_, opts...)
83816	res, err := c.doRequest("json")
83817	if res != nil && res.StatusCode == http.StatusNotModified {
83818		if res.Body != nil {
83819			res.Body.Close()
83820		}
83821		return nil, &googleapi.Error{
83822			Code:   res.StatusCode,
83823			Header: res.Header,
83824		}
83825	}
83826	if err != nil {
83827		return nil, err
83828	}
83829	defer googleapi.CloseBody(res)
83830	if err := googleapi.CheckResponse(res); err != nil {
83831		return nil, err
83832	}
83833	ret := &TestPermissionsResponse{
83834		ServerResponse: googleapi.ServerResponse{
83835			Header:         res.Header,
83836			HTTPStatusCode: res.StatusCode,
83837		},
83838	}
83839	target := &ret
83840	if err := gensupport.DecodeResponse(target, res); err != nil {
83841		return nil, err
83842	}
83843	return ret, nil
83844	// {
83845	//   "description": "Returns permissions that a caller has on the specified resource.",
83846	//   "httpMethod": "POST",
83847	//   "id": "compute.instances.testIamPermissions",
83848	//   "parameterOrder": [
83849	//     "project",
83850	//     "zone",
83851	//     "resource"
83852	//   ],
83853	//   "parameters": {
83854	//     "project": {
83855	//       "description": "Project ID for this request.",
83856	//       "location": "path",
83857	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
83858	//       "required": true,
83859	//       "type": "string"
83860	//     },
83861	//     "resource": {
83862	//       "description": "Name or id of the resource for this request.",
83863	//       "location": "path",
83864	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
83865	//       "required": true,
83866	//       "type": "string"
83867	//     },
83868	//     "zone": {
83869	//       "description": "The name of the zone for this request.",
83870	//       "location": "path",
83871	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
83872	//       "required": true,
83873	//       "type": "string"
83874	//     }
83875	//   },
83876	//   "path": "{project}/zones/{zone}/instances/{resource}/testIamPermissions",
83877	//   "request": {
83878	//     "$ref": "TestPermissionsRequest"
83879	//   },
83880	//   "response": {
83881	//     "$ref": "TestPermissionsResponse"
83882	//   },
83883	//   "scopes": [
83884	//     "https://www.googleapis.com/auth/cloud-platform",
83885	//     "https://www.googleapis.com/auth/compute",
83886	//     "https://www.googleapis.com/auth/compute.readonly"
83887	//   ]
83888	// }
83889
83890}
83891
83892// method id "compute.instances.updateAccessConfig":
83893
83894type InstancesUpdateAccessConfigCall struct {
83895	s            *Service
83896	project      string
83897	zone         string
83898	instance     string
83899	accessconfig *AccessConfig
83900	urlParams_   gensupport.URLParams
83901	ctx_         context.Context
83902	header_      http.Header
83903}
83904
83905// UpdateAccessConfig: Updates the specified access config from an
83906// instance's network interface with the data included in the request.
83907// This method supports PATCH semantics and uses the JSON merge patch
83908// format and processing rules.
83909func (r *InstancesService) UpdateAccessConfig(project string, zone string, instance string, networkInterface string, accessconfig *AccessConfig) *InstancesUpdateAccessConfigCall {
83910	c := &InstancesUpdateAccessConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
83911	c.project = project
83912	c.zone = zone
83913	c.instance = instance
83914	c.urlParams_.Set("networkInterface", networkInterface)
83915	c.accessconfig = accessconfig
83916	return c
83917}
83918
83919// RequestId sets the optional parameter "requestId": An optional
83920// request ID to identify requests. Specify a unique request ID so that
83921// if you must retry your request, the server will know to ignore the
83922// request if it has already been completed.
83923//
83924// For example, consider a situation where you make an initial request
83925// and the request times out. If you make the request again with the
83926// same request ID, the server can check if original operation with the
83927// same request ID was received, and if so, will ignore the second
83928// request. This prevents clients from accidentally creating duplicate
83929// commitments.
83930//
83931// The request ID must be a valid UUID with the exception that zero UUID
83932// is not supported (00000000-0000-0000-0000-000000000000).
83933func (c *InstancesUpdateAccessConfigCall) RequestId(requestId string) *InstancesUpdateAccessConfigCall {
83934	c.urlParams_.Set("requestId", requestId)
83935	return c
83936}
83937
83938// Fields allows partial responses to be retrieved. See
83939// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
83940// for more information.
83941func (c *InstancesUpdateAccessConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateAccessConfigCall {
83942	c.urlParams_.Set("fields", googleapi.CombineFields(s))
83943	return c
83944}
83945
83946// Context sets the context to be used in this call's Do method. Any
83947// pending HTTP request will be aborted if the provided context is
83948// canceled.
83949func (c *InstancesUpdateAccessConfigCall) Context(ctx context.Context) *InstancesUpdateAccessConfigCall {
83950	c.ctx_ = ctx
83951	return c
83952}
83953
83954// Header returns an http.Header that can be modified by the caller to
83955// add HTTP headers to the request.
83956func (c *InstancesUpdateAccessConfigCall) Header() http.Header {
83957	if c.header_ == nil {
83958		c.header_ = make(http.Header)
83959	}
83960	return c.header_
83961}
83962
83963func (c *InstancesUpdateAccessConfigCall) doRequest(alt string) (*http.Response, error) {
83964	reqHeaders := make(http.Header)
83965	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
83966	for k, v := range c.header_ {
83967		reqHeaders[k] = v
83968	}
83969	reqHeaders.Set("User-Agent", c.s.userAgent())
83970	var body io.Reader = nil
83971	body, err := googleapi.WithoutDataWrapper.JSONReader(c.accessconfig)
83972	if err != nil {
83973		return nil, err
83974	}
83975	reqHeaders.Set("Content-Type", "application/json")
83976	c.urlParams_.Set("alt", alt)
83977	c.urlParams_.Set("prettyPrint", "false")
83978	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateAccessConfig")
83979	urls += "?" + c.urlParams_.Encode()
83980	req, err := http.NewRequest("POST", urls, body)
83981	if err != nil {
83982		return nil, err
83983	}
83984	req.Header = reqHeaders
83985	googleapi.Expand(req.URL, map[string]string{
83986		"project":  c.project,
83987		"zone":     c.zone,
83988		"instance": c.instance,
83989	})
83990	return gensupport.SendRequest(c.ctx_, c.s.client, req)
83991}
83992
83993// Do executes the "compute.instances.updateAccessConfig" call.
83994// Exactly one of *Operation or error will be non-nil. Any non-2xx
83995// status code is an error. Response headers are in either
83996// *Operation.ServerResponse.Header or (if a response was returned at
83997// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
83998// to check whether the returned error was because
83999// http.StatusNotModified was returned.
84000func (c *InstancesUpdateAccessConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84001	gensupport.SetOptions(c.urlParams_, opts...)
84002	res, err := c.doRequest("json")
84003	if res != nil && res.StatusCode == http.StatusNotModified {
84004		if res.Body != nil {
84005			res.Body.Close()
84006		}
84007		return nil, &googleapi.Error{
84008			Code:   res.StatusCode,
84009			Header: res.Header,
84010		}
84011	}
84012	if err != nil {
84013		return nil, err
84014	}
84015	defer googleapi.CloseBody(res)
84016	if err := googleapi.CheckResponse(res); err != nil {
84017		return nil, err
84018	}
84019	ret := &Operation{
84020		ServerResponse: googleapi.ServerResponse{
84021			Header:         res.Header,
84022			HTTPStatusCode: res.StatusCode,
84023		},
84024	}
84025	target := &ret
84026	if err := gensupport.DecodeResponse(target, res); err != nil {
84027		return nil, err
84028	}
84029	return ret, nil
84030	// {
84031	//   "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.",
84032	//   "httpMethod": "POST",
84033	//   "id": "compute.instances.updateAccessConfig",
84034	//   "parameterOrder": [
84035	//     "project",
84036	//     "zone",
84037	//     "instance",
84038	//     "networkInterface"
84039	//   ],
84040	//   "parameters": {
84041	//     "instance": {
84042	//       "description": "The instance name for this request.",
84043	//       "location": "path",
84044	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84045	//       "required": true,
84046	//       "type": "string"
84047	//     },
84048	//     "networkInterface": {
84049	//       "description": "The name of the network interface where the access config is attached.",
84050	//       "location": "query",
84051	//       "required": true,
84052	//       "type": "string"
84053	//     },
84054	//     "project": {
84055	//       "description": "Project ID for this request.",
84056	//       "location": "path",
84057	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84058	//       "required": true,
84059	//       "type": "string"
84060	//     },
84061	//     "requestId": {
84062	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84063	//       "location": "query",
84064	//       "type": "string"
84065	//     },
84066	//     "zone": {
84067	//       "description": "The name of the zone for this request.",
84068	//       "location": "path",
84069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84070	//       "required": true,
84071	//       "type": "string"
84072	//     }
84073	//   },
84074	//   "path": "{project}/zones/{zone}/instances/{instance}/updateAccessConfig",
84075	//   "request": {
84076	//     "$ref": "AccessConfig"
84077	//   },
84078	//   "response": {
84079	//     "$ref": "Operation"
84080	//   },
84081	//   "scopes": [
84082	//     "https://www.googleapis.com/auth/cloud-platform",
84083	//     "https://www.googleapis.com/auth/compute"
84084	//   ]
84085	// }
84086
84087}
84088
84089// method id "compute.instances.updateDisplayDevice":
84090
84091type InstancesUpdateDisplayDeviceCall struct {
84092	s             *Service
84093	project       string
84094	zone          string
84095	instance      string
84096	displaydevice *DisplayDevice
84097	urlParams_    gensupport.URLParams
84098	ctx_          context.Context
84099	header_       http.Header
84100}
84101
84102// UpdateDisplayDevice: Updates the Display config for a VM instance.
84103// You can only use this method on a stopped VM instance. This method
84104// supports PATCH semantics and uses the JSON merge patch format and
84105// processing rules.
84106func (r *InstancesService) UpdateDisplayDevice(project string, zone string, instance string, displaydevice *DisplayDevice) *InstancesUpdateDisplayDeviceCall {
84107	c := &InstancesUpdateDisplayDeviceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84108	c.project = project
84109	c.zone = zone
84110	c.instance = instance
84111	c.displaydevice = displaydevice
84112	return c
84113}
84114
84115// RequestId sets the optional parameter "requestId": An optional
84116// request ID to identify requests. Specify a unique request ID so that
84117// if you must retry your request, the server will know to ignore the
84118// request if it has already been completed.
84119//
84120// For example, consider a situation where you make an initial request
84121// and the request times out. If you make the request again with the
84122// same request ID, the server can check if original operation with the
84123// same request ID was received, and if so, will ignore the second
84124// request. This prevents clients from accidentally creating duplicate
84125// commitments.
84126//
84127// The request ID must be a valid UUID with the exception that zero UUID
84128// is not supported (00000000-0000-0000-0000-000000000000).
84129func (c *InstancesUpdateDisplayDeviceCall) RequestId(requestId string) *InstancesUpdateDisplayDeviceCall {
84130	c.urlParams_.Set("requestId", requestId)
84131	return c
84132}
84133
84134// Fields allows partial responses to be retrieved. See
84135// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84136// for more information.
84137func (c *InstancesUpdateDisplayDeviceCall) Fields(s ...googleapi.Field) *InstancesUpdateDisplayDeviceCall {
84138	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84139	return c
84140}
84141
84142// Context sets the context to be used in this call's Do method. Any
84143// pending HTTP request will be aborted if the provided context is
84144// canceled.
84145func (c *InstancesUpdateDisplayDeviceCall) Context(ctx context.Context) *InstancesUpdateDisplayDeviceCall {
84146	c.ctx_ = ctx
84147	return c
84148}
84149
84150// Header returns an http.Header that can be modified by the caller to
84151// add HTTP headers to the request.
84152func (c *InstancesUpdateDisplayDeviceCall) Header() http.Header {
84153	if c.header_ == nil {
84154		c.header_ = make(http.Header)
84155	}
84156	return c.header_
84157}
84158
84159func (c *InstancesUpdateDisplayDeviceCall) doRequest(alt string) (*http.Response, error) {
84160	reqHeaders := make(http.Header)
84161	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84162	for k, v := range c.header_ {
84163		reqHeaders[k] = v
84164	}
84165	reqHeaders.Set("User-Agent", c.s.userAgent())
84166	var body io.Reader = nil
84167	body, err := googleapi.WithoutDataWrapper.JSONReader(c.displaydevice)
84168	if err != nil {
84169		return nil, err
84170	}
84171	reqHeaders.Set("Content-Type", "application/json")
84172	c.urlParams_.Set("alt", alt)
84173	c.urlParams_.Set("prettyPrint", "false")
84174	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice")
84175	urls += "?" + c.urlParams_.Encode()
84176	req, err := http.NewRequest("PATCH", urls, body)
84177	if err != nil {
84178		return nil, err
84179	}
84180	req.Header = reqHeaders
84181	googleapi.Expand(req.URL, map[string]string{
84182		"project":  c.project,
84183		"zone":     c.zone,
84184		"instance": c.instance,
84185	})
84186	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84187}
84188
84189// Do executes the "compute.instances.updateDisplayDevice" call.
84190// Exactly one of *Operation or error will be non-nil. Any non-2xx
84191// status code is an error. Response headers are in either
84192// *Operation.ServerResponse.Header or (if a response was returned at
84193// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84194// to check whether the returned error was because
84195// http.StatusNotModified was returned.
84196func (c *InstancesUpdateDisplayDeviceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84197	gensupport.SetOptions(c.urlParams_, opts...)
84198	res, err := c.doRequest("json")
84199	if res != nil && res.StatusCode == http.StatusNotModified {
84200		if res.Body != nil {
84201			res.Body.Close()
84202		}
84203		return nil, &googleapi.Error{
84204			Code:   res.StatusCode,
84205			Header: res.Header,
84206		}
84207	}
84208	if err != nil {
84209		return nil, err
84210	}
84211	defer googleapi.CloseBody(res)
84212	if err := googleapi.CheckResponse(res); err != nil {
84213		return nil, err
84214	}
84215	ret := &Operation{
84216		ServerResponse: googleapi.ServerResponse{
84217			Header:         res.Header,
84218			HTTPStatusCode: res.StatusCode,
84219		},
84220	}
84221	target := &ret
84222	if err := gensupport.DecodeResponse(target, res); err != nil {
84223		return nil, err
84224	}
84225	return ret, nil
84226	// {
84227	//   "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.",
84228	//   "httpMethod": "PATCH",
84229	//   "id": "compute.instances.updateDisplayDevice",
84230	//   "parameterOrder": [
84231	//     "project",
84232	//     "zone",
84233	//     "instance"
84234	//   ],
84235	//   "parameters": {
84236	//     "instance": {
84237	//       "description": "Name of the instance scoping this request.",
84238	//       "location": "path",
84239	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84240	//       "required": true,
84241	//       "type": "string"
84242	//     },
84243	//     "project": {
84244	//       "description": "Project ID for this request.",
84245	//       "location": "path",
84246	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84247	//       "required": true,
84248	//       "type": "string"
84249	//     },
84250	//     "requestId": {
84251	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84252	//       "location": "query",
84253	//       "type": "string"
84254	//     },
84255	//     "zone": {
84256	//       "description": "The name of the zone for this request.",
84257	//       "location": "path",
84258	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84259	//       "required": true,
84260	//       "type": "string"
84261	//     }
84262	//   },
84263	//   "path": "{project}/zones/{zone}/instances/{instance}/updateDisplayDevice",
84264	//   "request": {
84265	//     "$ref": "DisplayDevice"
84266	//   },
84267	//   "response": {
84268	//     "$ref": "Operation"
84269	//   },
84270	//   "scopes": [
84271	//     "https://www.googleapis.com/auth/cloud-platform",
84272	//     "https://www.googleapis.com/auth/compute"
84273	//   ]
84274	// }
84275
84276}
84277
84278// method id "compute.instances.updateNetworkInterface":
84279
84280type InstancesUpdateNetworkInterfaceCall struct {
84281	s                *Service
84282	project          string
84283	zone             string
84284	instance         string
84285	networkinterface *NetworkInterface
84286	urlParams_       gensupport.URLParams
84287	ctx_             context.Context
84288	header_          http.Header
84289}
84290
84291// UpdateNetworkInterface: Updates an instance's network interface. This
84292// method follows PATCH semantics.
84293func (r *InstancesService) UpdateNetworkInterface(project string, zone string, instance string, networkInterface string, networkinterface *NetworkInterface) *InstancesUpdateNetworkInterfaceCall {
84294	c := &InstancesUpdateNetworkInterfaceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84295	c.project = project
84296	c.zone = zone
84297	c.instance = instance
84298	c.urlParams_.Set("networkInterface", networkInterface)
84299	c.networkinterface = networkinterface
84300	return c
84301}
84302
84303// RequestId sets the optional parameter "requestId": An optional
84304// request ID to identify requests. Specify a unique request ID so that
84305// if you must retry your request, the server will know to ignore the
84306// request if it has already been completed.
84307//
84308// For example, consider a situation where you make an initial request
84309// and the request times out. If you make the request again with the
84310// same request ID, the server can check if original operation with the
84311// same request ID was received, and if so, will ignore the second
84312// request. This prevents clients from accidentally creating duplicate
84313// commitments.
84314//
84315// The request ID must be a valid UUID with the exception that zero UUID
84316// is not supported (00000000-0000-0000-0000-000000000000).
84317func (c *InstancesUpdateNetworkInterfaceCall) RequestId(requestId string) *InstancesUpdateNetworkInterfaceCall {
84318	c.urlParams_.Set("requestId", requestId)
84319	return c
84320}
84321
84322// Fields allows partial responses to be retrieved. See
84323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84324// for more information.
84325func (c *InstancesUpdateNetworkInterfaceCall) Fields(s ...googleapi.Field) *InstancesUpdateNetworkInterfaceCall {
84326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84327	return c
84328}
84329
84330// Context sets the context to be used in this call's Do method. Any
84331// pending HTTP request will be aborted if the provided context is
84332// canceled.
84333func (c *InstancesUpdateNetworkInterfaceCall) Context(ctx context.Context) *InstancesUpdateNetworkInterfaceCall {
84334	c.ctx_ = ctx
84335	return c
84336}
84337
84338// Header returns an http.Header that can be modified by the caller to
84339// add HTTP headers to the request.
84340func (c *InstancesUpdateNetworkInterfaceCall) Header() http.Header {
84341	if c.header_ == nil {
84342		c.header_ = make(http.Header)
84343	}
84344	return c.header_
84345}
84346
84347func (c *InstancesUpdateNetworkInterfaceCall) doRequest(alt string) (*http.Response, error) {
84348	reqHeaders := make(http.Header)
84349	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84350	for k, v := range c.header_ {
84351		reqHeaders[k] = v
84352	}
84353	reqHeaders.Set("User-Agent", c.s.userAgent())
84354	var body io.Reader = nil
84355	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkinterface)
84356	if err != nil {
84357		return nil, err
84358	}
84359	reqHeaders.Set("Content-Type", "application/json")
84360	c.urlParams_.Set("alt", alt)
84361	c.urlParams_.Set("prettyPrint", "false")
84362	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface")
84363	urls += "?" + c.urlParams_.Encode()
84364	req, err := http.NewRequest("PATCH", urls, body)
84365	if err != nil {
84366		return nil, err
84367	}
84368	req.Header = reqHeaders
84369	googleapi.Expand(req.URL, map[string]string{
84370		"project":  c.project,
84371		"zone":     c.zone,
84372		"instance": c.instance,
84373	})
84374	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84375}
84376
84377// Do executes the "compute.instances.updateNetworkInterface" call.
84378// Exactly one of *Operation or error will be non-nil. Any non-2xx
84379// status code is an error. Response headers are in either
84380// *Operation.ServerResponse.Header or (if a response was returned at
84381// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84382// to check whether the returned error was because
84383// http.StatusNotModified was returned.
84384func (c *InstancesUpdateNetworkInterfaceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84385	gensupport.SetOptions(c.urlParams_, opts...)
84386	res, err := c.doRequest("json")
84387	if res != nil && res.StatusCode == http.StatusNotModified {
84388		if res.Body != nil {
84389			res.Body.Close()
84390		}
84391		return nil, &googleapi.Error{
84392			Code:   res.StatusCode,
84393			Header: res.Header,
84394		}
84395	}
84396	if err != nil {
84397		return nil, err
84398	}
84399	defer googleapi.CloseBody(res)
84400	if err := googleapi.CheckResponse(res); err != nil {
84401		return nil, err
84402	}
84403	ret := &Operation{
84404		ServerResponse: googleapi.ServerResponse{
84405			Header:         res.Header,
84406			HTTPStatusCode: res.StatusCode,
84407		},
84408	}
84409	target := &ret
84410	if err := gensupport.DecodeResponse(target, res); err != nil {
84411		return nil, err
84412	}
84413	return ret, nil
84414	// {
84415	//   "description": "Updates an instance's network interface. This method follows PATCH semantics.",
84416	//   "httpMethod": "PATCH",
84417	//   "id": "compute.instances.updateNetworkInterface",
84418	//   "parameterOrder": [
84419	//     "project",
84420	//     "zone",
84421	//     "instance",
84422	//     "networkInterface"
84423	//   ],
84424	//   "parameters": {
84425	//     "instance": {
84426	//       "description": "The instance name for this request.",
84427	//       "location": "path",
84428	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84429	//       "required": true,
84430	//       "type": "string"
84431	//     },
84432	//     "networkInterface": {
84433	//       "description": "The name of the network interface to update.",
84434	//       "location": "query",
84435	//       "required": true,
84436	//       "type": "string"
84437	//     },
84438	//     "project": {
84439	//       "description": "Project ID for this request.",
84440	//       "location": "path",
84441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84442	//       "required": true,
84443	//       "type": "string"
84444	//     },
84445	//     "requestId": {
84446	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84447	//       "location": "query",
84448	//       "type": "string"
84449	//     },
84450	//     "zone": {
84451	//       "description": "The name of the zone for this request.",
84452	//       "location": "path",
84453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84454	//       "required": true,
84455	//       "type": "string"
84456	//     }
84457	//   },
84458	//   "path": "{project}/zones/{zone}/instances/{instance}/updateNetworkInterface",
84459	//   "request": {
84460	//     "$ref": "NetworkInterface"
84461	//   },
84462	//   "response": {
84463	//     "$ref": "Operation"
84464	//   },
84465	//   "scopes": [
84466	//     "https://www.googleapis.com/auth/cloud-platform",
84467	//     "https://www.googleapis.com/auth/compute"
84468	//   ]
84469	// }
84470
84471}
84472
84473// method id "compute.instances.updateShieldedInstanceConfig":
84474
84475type InstancesUpdateShieldedInstanceConfigCall struct {
84476	s                      *Service
84477	project                string
84478	zone                   string
84479	instance               string
84480	shieldedinstanceconfig *ShieldedInstanceConfig
84481	urlParams_             gensupport.URLParams
84482	ctx_                   context.Context
84483	header_                http.Header
84484}
84485
84486// UpdateShieldedInstanceConfig: Updates the Shielded Instance config
84487// for an instance. You can only use this method on a stopped instance.
84488// This method supports PATCH semantics and uses the JSON merge patch
84489// format and processing rules.
84490func (r *InstancesService) UpdateShieldedInstanceConfig(project string, zone string, instance string, shieldedinstanceconfig *ShieldedInstanceConfig) *InstancesUpdateShieldedInstanceConfigCall {
84491	c := &InstancesUpdateShieldedInstanceConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84492	c.project = project
84493	c.zone = zone
84494	c.instance = instance
84495	c.shieldedinstanceconfig = shieldedinstanceconfig
84496	return c
84497}
84498
84499// RequestId sets the optional parameter "requestId": An optional
84500// request ID to identify requests. Specify a unique request ID so that
84501// if you must retry your request, the server will know to ignore the
84502// request if it has already been completed.
84503//
84504// For example, consider a situation where you make an initial request
84505// and the request times out. If you make the request again with the
84506// same request ID, the server can check if original operation with the
84507// same request ID was received, and if so, will ignore the second
84508// request. This prevents clients from accidentally creating duplicate
84509// commitments.
84510//
84511// The request ID must be a valid UUID with the exception that zero UUID
84512// is not supported (00000000-0000-0000-0000-000000000000).
84513func (c *InstancesUpdateShieldedInstanceConfigCall) RequestId(requestId string) *InstancesUpdateShieldedInstanceConfigCall {
84514	c.urlParams_.Set("requestId", requestId)
84515	return c
84516}
84517
84518// Fields allows partial responses to be retrieved. See
84519// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84520// for more information.
84521func (c *InstancesUpdateShieldedInstanceConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedInstanceConfigCall {
84522	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84523	return c
84524}
84525
84526// Context sets the context to be used in this call's Do method. Any
84527// pending HTTP request will be aborted if the provided context is
84528// canceled.
84529func (c *InstancesUpdateShieldedInstanceConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedInstanceConfigCall {
84530	c.ctx_ = ctx
84531	return c
84532}
84533
84534// Header returns an http.Header that can be modified by the caller to
84535// add HTTP headers to the request.
84536func (c *InstancesUpdateShieldedInstanceConfigCall) Header() http.Header {
84537	if c.header_ == nil {
84538		c.header_ = make(http.Header)
84539	}
84540	return c.header_
84541}
84542
84543func (c *InstancesUpdateShieldedInstanceConfigCall) doRequest(alt string) (*http.Response, error) {
84544	reqHeaders := make(http.Header)
84545	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84546	for k, v := range c.header_ {
84547		reqHeaders[k] = v
84548	}
84549	reqHeaders.Set("User-Agent", c.s.userAgent())
84550	var body io.Reader = nil
84551	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedinstanceconfig)
84552	if err != nil {
84553		return nil, err
84554	}
84555	reqHeaders.Set("Content-Type", "application/json")
84556	c.urlParams_.Set("alt", alt)
84557	c.urlParams_.Set("prettyPrint", "false")
84558	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig")
84559	urls += "?" + c.urlParams_.Encode()
84560	req, err := http.NewRequest("PATCH", urls, body)
84561	if err != nil {
84562		return nil, err
84563	}
84564	req.Header = reqHeaders
84565	googleapi.Expand(req.URL, map[string]string{
84566		"project":  c.project,
84567		"zone":     c.zone,
84568		"instance": c.instance,
84569	})
84570	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84571}
84572
84573// Do executes the "compute.instances.updateShieldedInstanceConfig" call.
84574// Exactly one of *Operation or error will be non-nil. Any non-2xx
84575// status code is an error. Response headers are in either
84576// *Operation.ServerResponse.Header or (if a response was returned at
84577// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84578// to check whether the returned error was because
84579// http.StatusNotModified was returned.
84580func (c *InstancesUpdateShieldedInstanceConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84581	gensupport.SetOptions(c.urlParams_, opts...)
84582	res, err := c.doRequest("json")
84583	if res != nil && res.StatusCode == http.StatusNotModified {
84584		if res.Body != nil {
84585			res.Body.Close()
84586		}
84587		return nil, &googleapi.Error{
84588			Code:   res.StatusCode,
84589			Header: res.Header,
84590		}
84591	}
84592	if err != nil {
84593		return nil, err
84594	}
84595	defer googleapi.CloseBody(res)
84596	if err := googleapi.CheckResponse(res); err != nil {
84597		return nil, err
84598	}
84599	ret := &Operation{
84600		ServerResponse: googleapi.ServerResponse{
84601			Header:         res.Header,
84602			HTTPStatusCode: res.StatusCode,
84603		},
84604	}
84605	target := &ret
84606	if err := gensupport.DecodeResponse(target, res); err != nil {
84607		return nil, err
84608	}
84609	return ret, nil
84610	// {
84611	//   "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.",
84612	//   "httpMethod": "PATCH",
84613	//   "id": "compute.instances.updateShieldedInstanceConfig",
84614	//   "parameterOrder": [
84615	//     "project",
84616	//     "zone",
84617	//     "instance"
84618	//   ],
84619	//   "parameters": {
84620	//     "instance": {
84621	//       "description": "Name or id of the instance scoping this request.",
84622	//       "location": "path",
84623	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84624	//       "required": true,
84625	//       "type": "string"
84626	//     },
84627	//     "project": {
84628	//       "description": "Project ID for this request.",
84629	//       "location": "path",
84630	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84631	//       "required": true,
84632	//       "type": "string"
84633	//     },
84634	//     "requestId": {
84635	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84636	//       "location": "query",
84637	//       "type": "string"
84638	//     },
84639	//     "zone": {
84640	//       "description": "The name of the zone for this request.",
84641	//       "location": "path",
84642	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84643	//       "required": true,
84644	//       "type": "string"
84645	//     }
84646	//   },
84647	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedInstanceConfig",
84648	//   "request": {
84649	//     "$ref": "ShieldedInstanceConfig"
84650	//   },
84651	//   "response": {
84652	//     "$ref": "Operation"
84653	//   },
84654	//   "scopes": [
84655	//     "https://www.googleapis.com/auth/cloud-platform",
84656	//     "https://www.googleapis.com/auth/compute"
84657	//   ]
84658	// }
84659
84660}
84661
84662// method id "compute.instances.updateShieldedVmConfig":
84663
84664type InstancesUpdateShieldedVmConfigCall struct {
84665	s                *Service
84666	project          string
84667	zone             string
84668	instance         string
84669	shieldedvmconfig *ShieldedVmConfig
84670	urlParams_       gensupport.URLParams
84671	ctx_             context.Context
84672	header_          http.Header
84673}
84674
84675// UpdateShieldedVmConfig: Updates the Shielded VM config for a VM
84676// instance. You can only use this method on a stopped VM instance. This
84677// method supports PATCH semantics and uses the JSON merge patch format
84678// and processing rules.
84679func (r *InstancesService) UpdateShieldedVmConfig(project string, zone string, instance string, shieldedvmconfig *ShieldedVmConfig) *InstancesUpdateShieldedVmConfigCall {
84680	c := &InstancesUpdateShieldedVmConfigCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84681	c.project = project
84682	c.zone = zone
84683	c.instance = instance
84684	c.shieldedvmconfig = shieldedvmconfig
84685	return c
84686}
84687
84688// RequestId sets the optional parameter "requestId": An optional
84689// request ID to identify requests. Specify a unique request ID so that
84690// if you must retry your request, the server will know to ignore the
84691// request if it has already been completed.
84692//
84693// For example, consider a situation where you make an initial request
84694// and the request times out. If you make the request again with the
84695// same request ID, the server can check if original operation with the
84696// same request ID was received, and if so, will ignore the second
84697// request. This prevents clients from accidentally creating duplicate
84698// commitments.
84699//
84700// The request ID must be a valid UUID with the exception that zero UUID
84701// is not supported (00000000-0000-0000-0000-000000000000).
84702func (c *InstancesUpdateShieldedVmConfigCall) RequestId(requestId string) *InstancesUpdateShieldedVmConfigCall {
84703	c.urlParams_.Set("requestId", requestId)
84704	return c
84705}
84706
84707// Fields allows partial responses to be retrieved. See
84708// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84709// for more information.
84710func (c *InstancesUpdateShieldedVmConfigCall) Fields(s ...googleapi.Field) *InstancesUpdateShieldedVmConfigCall {
84711	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84712	return c
84713}
84714
84715// Context sets the context to be used in this call's Do method. Any
84716// pending HTTP request will be aborted if the provided context is
84717// canceled.
84718func (c *InstancesUpdateShieldedVmConfigCall) Context(ctx context.Context) *InstancesUpdateShieldedVmConfigCall {
84719	c.ctx_ = ctx
84720	return c
84721}
84722
84723// Header returns an http.Header that can be modified by the caller to
84724// add HTTP headers to the request.
84725func (c *InstancesUpdateShieldedVmConfigCall) Header() http.Header {
84726	if c.header_ == nil {
84727		c.header_ = make(http.Header)
84728	}
84729	return c.header_
84730}
84731
84732func (c *InstancesUpdateShieldedVmConfigCall) doRequest(alt string) (*http.Response, error) {
84733	reqHeaders := make(http.Header)
84734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84735	for k, v := range c.header_ {
84736		reqHeaders[k] = v
84737	}
84738	reqHeaders.Set("User-Agent", c.s.userAgent())
84739	var body io.Reader = nil
84740	body, err := googleapi.WithoutDataWrapper.JSONReader(c.shieldedvmconfig)
84741	if err != nil {
84742		return nil, err
84743	}
84744	reqHeaders.Set("Content-Type", "application/json")
84745	c.urlParams_.Set("alt", alt)
84746	c.urlParams_.Set("prettyPrint", "false")
84747	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig")
84748	urls += "?" + c.urlParams_.Encode()
84749	req, err := http.NewRequest("PATCH", urls, body)
84750	if err != nil {
84751		return nil, err
84752	}
84753	req.Header = reqHeaders
84754	googleapi.Expand(req.URL, map[string]string{
84755		"project":  c.project,
84756		"zone":     c.zone,
84757		"instance": c.instance,
84758	})
84759	return gensupport.SendRequest(c.ctx_, c.s.client, req)
84760}
84761
84762// Do executes the "compute.instances.updateShieldedVmConfig" call.
84763// Exactly one of *Operation or error will be non-nil. Any non-2xx
84764// status code is an error. Response headers are in either
84765// *Operation.ServerResponse.Header or (if a response was returned at
84766// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
84767// to check whether the returned error was because
84768// http.StatusNotModified was returned.
84769func (c *InstancesUpdateShieldedVmConfigCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
84770	gensupport.SetOptions(c.urlParams_, opts...)
84771	res, err := c.doRequest("json")
84772	if res != nil && res.StatusCode == http.StatusNotModified {
84773		if res.Body != nil {
84774			res.Body.Close()
84775		}
84776		return nil, &googleapi.Error{
84777			Code:   res.StatusCode,
84778			Header: res.Header,
84779		}
84780	}
84781	if err != nil {
84782		return nil, err
84783	}
84784	defer googleapi.CloseBody(res)
84785	if err := googleapi.CheckResponse(res); err != nil {
84786		return nil, err
84787	}
84788	ret := &Operation{
84789		ServerResponse: googleapi.ServerResponse{
84790			Header:         res.Header,
84791			HTTPStatusCode: res.StatusCode,
84792		},
84793	}
84794	target := &ret
84795	if err := gensupport.DecodeResponse(target, res); err != nil {
84796		return nil, err
84797	}
84798	return ret, nil
84799	// {
84800	//   "description": "Updates the Shielded VM config for a VM instance. You can only use this method on a stopped VM instance. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
84801	//   "httpMethod": "PATCH",
84802	//   "id": "compute.instances.updateShieldedVmConfig",
84803	//   "parameterOrder": [
84804	//     "project",
84805	//     "zone",
84806	//     "instance"
84807	//   ],
84808	//   "parameters": {
84809	//     "instance": {
84810	//       "description": "Name of the instance scoping this request.",
84811	//       "location": "path",
84812	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
84813	//       "required": true,
84814	//       "type": "string"
84815	//     },
84816	//     "project": {
84817	//       "description": "Project ID for this request.",
84818	//       "location": "path",
84819	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
84820	//       "required": true,
84821	//       "type": "string"
84822	//     },
84823	//     "requestId": {
84824	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
84825	//       "location": "query",
84826	//       "type": "string"
84827	//     },
84828	//     "zone": {
84829	//       "description": "The name of the zone for this request.",
84830	//       "location": "path",
84831	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
84832	//       "required": true,
84833	//       "type": "string"
84834	//     }
84835	//   },
84836	//   "path": "{project}/zones/{zone}/instances/{instance}/updateShieldedVmConfig",
84837	//   "request": {
84838	//     "$ref": "ShieldedVmConfig"
84839	//   },
84840	//   "response": {
84841	//     "$ref": "Operation"
84842	//   },
84843	//   "scopes": [
84844	//     "https://www.googleapis.com/auth/cloud-platform",
84845	//     "https://www.googleapis.com/auth/compute"
84846	//   ]
84847	// }
84848
84849}
84850
84851// method id "compute.interconnectAttachments.aggregatedList":
84852
84853type InterconnectAttachmentsAggregatedListCall struct {
84854	s            *Service
84855	project      string
84856	urlParams_   gensupport.URLParams
84857	ifNoneMatch_ string
84858	ctx_         context.Context
84859	header_      http.Header
84860}
84861
84862// AggregatedList: Retrieves an aggregated list of interconnect
84863// attachments.
84864func (r *InterconnectAttachmentsService) AggregatedList(project string) *InterconnectAttachmentsAggregatedListCall {
84865	c := &InterconnectAttachmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
84866	c.project = project
84867	return c
84868}
84869
84870// Filter sets the optional parameter "filter": A filter expression that
84871// filters resources listed in the response. The expression must specify
84872// the field name, a comparison operator, and the value that you want to
84873// use for filtering. The value must be a string, a number, or a
84874// boolean. The comparison operator must be either =, !=, >, or <.
84875//
84876// For example, if you are filtering Compute Engine instances, you can
84877// exclude instances named example-instance by specifying name !=
84878// example-instance.
84879//
84880// You can also filter nested fields. For example, you could specify
84881// scheduling.automaticRestart = false to include instances only if they
84882// are not scheduled for automatic restarts. You can use filtering on
84883// nested fields to filter based on resource labels.
84884//
84885// To filter on multiple expressions, provide each separate expression
84886// within parentheses. For example, (scheduling.automaticRestart = true)
84887// (cpuPlatform = "Intel Skylake"). By default, each expression is an
84888// AND expression. However, you can include AND and OR expressions
84889// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
84890// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
84891// true).
84892func (c *InterconnectAttachmentsAggregatedListCall) Filter(filter string) *InterconnectAttachmentsAggregatedListCall {
84893	c.urlParams_.Set("filter", filter)
84894	return c
84895}
84896
84897// IncludeAllScopes sets the optional parameter "includeAllScopes":
84898// Indicates whether every visible scope for each scope type (zone,
84899// region, global) should be included in the response. For new resource
84900// types added after this field, the flag has no effect as new resource
84901// types will always include every visible scope for each scope type in
84902// response. For resource types which predate this field, if this flag
84903// is omitted or false, only scopes of the scope types where the
84904// resource type is expected to be found will be included.
84905func (c *InterconnectAttachmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *InterconnectAttachmentsAggregatedListCall {
84906	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
84907	return c
84908}
84909
84910// MaxResults sets the optional parameter "maxResults": The maximum
84911// number of results per page that should be returned. If the number of
84912// available results is larger than maxResults, Compute Engine returns a
84913// nextPageToken that can be used to get the next page of results in
84914// subsequent list requests. Acceptable values are 0 to 500, inclusive.
84915// (Default: 500)
84916func (c *InterconnectAttachmentsAggregatedListCall) MaxResults(maxResults int64) *InterconnectAttachmentsAggregatedListCall {
84917	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
84918	return c
84919}
84920
84921// OrderBy sets the optional parameter "orderBy": Sorts list results by
84922// a certain order. By default, results are returned in alphanumerical
84923// order based on the resource name.
84924//
84925// You can also sort results in descending order based on the creation
84926// timestamp using orderBy="creationTimestamp desc". This sorts results
84927// based on the creationTimestamp field in reverse chronological order
84928// (newest result first). Use this to sort resources like operations so
84929// that the newest operation is returned first.
84930//
84931// Currently, only sorting by name or creationTimestamp desc is
84932// supported.
84933func (c *InterconnectAttachmentsAggregatedListCall) OrderBy(orderBy string) *InterconnectAttachmentsAggregatedListCall {
84934	c.urlParams_.Set("orderBy", orderBy)
84935	return c
84936}
84937
84938// PageToken sets the optional parameter "pageToken": Specifies a page
84939// token to use. Set pageToken to the nextPageToken returned by a
84940// previous list request to get the next page of results.
84941func (c *InterconnectAttachmentsAggregatedListCall) PageToken(pageToken string) *InterconnectAttachmentsAggregatedListCall {
84942	c.urlParams_.Set("pageToken", pageToken)
84943	return c
84944}
84945
84946// Fields allows partial responses to be retrieved. See
84947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
84948// for more information.
84949func (c *InterconnectAttachmentsAggregatedListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsAggregatedListCall {
84950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
84951	return c
84952}
84953
84954// IfNoneMatch sets the optional parameter which makes the operation
84955// fail if the object's ETag matches the given value. This is useful for
84956// getting updates only after the object has changed since the last
84957// request. Use googleapi.IsNotModified to check whether the response
84958// error from Do is the result of In-None-Match.
84959func (c *InterconnectAttachmentsAggregatedListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsAggregatedListCall {
84960	c.ifNoneMatch_ = entityTag
84961	return c
84962}
84963
84964// Context sets the context to be used in this call's Do method. Any
84965// pending HTTP request will be aborted if the provided context is
84966// canceled.
84967func (c *InterconnectAttachmentsAggregatedListCall) Context(ctx context.Context) *InterconnectAttachmentsAggregatedListCall {
84968	c.ctx_ = ctx
84969	return c
84970}
84971
84972// Header returns an http.Header that can be modified by the caller to
84973// add HTTP headers to the request.
84974func (c *InterconnectAttachmentsAggregatedListCall) Header() http.Header {
84975	if c.header_ == nil {
84976		c.header_ = make(http.Header)
84977	}
84978	return c.header_
84979}
84980
84981func (c *InterconnectAttachmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
84982	reqHeaders := make(http.Header)
84983	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
84984	for k, v := range c.header_ {
84985		reqHeaders[k] = v
84986	}
84987	reqHeaders.Set("User-Agent", c.s.userAgent())
84988	if c.ifNoneMatch_ != "" {
84989		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
84990	}
84991	var body io.Reader = nil
84992	c.urlParams_.Set("alt", alt)
84993	c.urlParams_.Set("prettyPrint", "false")
84994	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/interconnectAttachments")
84995	urls += "?" + c.urlParams_.Encode()
84996	req, err := http.NewRequest("GET", urls, body)
84997	if err != nil {
84998		return nil, err
84999	}
85000	req.Header = reqHeaders
85001	googleapi.Expand(req.URL, map[string]string{
85002		"project": c.project,
85003	})
85004	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85005}
85006
85007// Do executes the "compute.interconnectAttachments.aggregatedList" call.
85008// Exactly one of *InterconnectAttachmentAggregatedList or error will be
85009// non-nil. Any non-2xx status code is an error. Response headers are in
85010// either *InterconnectAttachmentAggregatedList.ServerResponse.Header or
85011// (if a response was returned at all) in
85012// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
85013// whether the returned error was because http.StatusNotModified was
85014// returned.
85015func (c *InterconnectAttachmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentAggregatedList, error) {
85016	gensupport.SetOptions(c.urlParams_, opts...)
85017	res, err := c.doRequest("json")
85018	if res != nil && res.StatusCode == http.StatusNotModified {
85019		if res.Body != nil {
85020			res.Body.Close()
85021		}
85022		return nil, &googleapi.Error{
85023			Code:   res.StatusCode,
85024			Header: res.Header,
85025		}
85026	}
85027	if err != nil {
85028		return nil, err
85029	}
85030	defer googleapi.CloseBody(res)
85031	if err := googleapi.CheckResponse(res); err != nil {
85032		return nil, err
85033	}
85034	ret := &InterconnectAttachmentAggregatedList{
85035		ServerResponse: googleapi.ServerResponse{
85036			Header:         res.Header,
85037			HTTPStatusCode: res.StatusCode,
85038		},
85039	}
85040	target := &ret
85041	if err := gensupport.DecodeResponse(target, res); err != nil {
85042		return nil, err
85043	}
85044	return ret, nil
85045	// {
85046	//   "description": "Retrieves an aggregated list of interconnect attachments.",
85047	//   "httpMethod": "GET",
85048	//   "id": "compute.interconnectAttachments.aggregatedList",
85049	//   "parameterOrder": [
85050	//     "project"
85051	//   ],
85052	//   "parameters": {
85053	//     "filter": {
85054	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
85055	//       "location": "query",
85056	//       "type": "string"
85057	//     },
85058	//     "includeAllScopes": {
85059	//       "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.",
85060	//       "location": "query",
85061	//       "type": "boolean"
85062	//     },
85063	//     "maxResults": {
85064	//       "default": "500",
85065	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
85066	//       "format": "uint32",
85067	//       "location": "query",
85068	//       "minimum": "0",
85069	//       "type": "integer"
85070	//     },
85071	//     "orderBy": {
85072	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
85073	//       "location": "query",
85074	//       "type": "string"
85075	//     },
85076	//     "pageToken": {
85077	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
85078	//       "location": "query",
85079	//       "type": "string"
85080	//     },
85081	//     "project": {
85082	//       "description": "Project ID for this request.",
85083	//       "location": "path",
85084	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85085	//       "required": true,
85086	//       "type": "string"
85087	//     }
85088	//   },
85089	//   "path": "{project}/aggregated/interconnectAttachments",
85090	//   "response": {
85091	//     "$ref": "InterconnectAttachmentAggregatedList"
85092	//   },
85093	//   "scopes": [
85094	//     "https://www.googleapis.com/auth/cloud-platform",
85095	//     "https://www.googleapis.com/auth/compute",
85096	//     "https://www.googleapis.com/auth/compute.readonly"
85097	//   ]
85098	// }
85099
85100}
85101
85102// Pages invokes f for each page of results.
85103// A non-nil error returned from f will halt the iteration.
85104// The provided context supersedes any context provided to the Context method.
85105func (c *InterconnectAttachmentsAggregatedListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentAggregatedList) error) error {
85106	c.ctx_ = ctx
85107	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85108	for {
85109		x, err := c.Do()
85110		if err != nil {
85111			return err
85112		}
85113		if err := f(x); err != nil {
85114			return err
85115		}
85116		if x.NextPageToken == "" {
85117			return nil
85118		}
85119		c.PageToken(x.NextPageToken)
85120	}
85121}
85122
85123// method id "compute.interconnectAttachments.delete":
85124
85125type InterconnectAttachmentsDeleteCall struct {
85126	s                      *Service
85127	project                string
85128	region                 string
85129	interconnectAttachment string
85130	urlParams_             gensupport.URLParams
85131	ctx_                   context.Context
85132	header_                http.Header
85133}
85134
85135// Delete: Deletes the specified interconnect attachment.
85136func (r *InterconnectAttachmentsService) Delete(project string, region string, interconnectAttachment string) *InterconnectAttachmentsDeleteCall {
85137	c := &InterconnectAttachmentsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85138	c.project = project
85139	c.region = region
85140	c.interconnectAttachment = interconnectAttachment
85141	return c
85142}
85143
85144// RequestId sets the optional parameter "requestId": An optional
85145// request ID to identify requests. Specify a unique request ID so that
85146// if you must retry your request, the server will know to ignore the
85147// request if it has already been completed.
85148//
85149// For example, consider a situation where you make an initial request
85150// and the request times out. If you make the request again with the
85151// same request ID, the server can check if original operation with the
85152// same request ID was received, and if so, will ignore the second
85153// request. This prevents clients from accidentally creating duplicate
85154// commitments.
85155//
85156// The request ID must be a valid UUID with the exception that zero UUID
85157// is not supported (00000000-0000-0000-0000-000000000000).
85158func (c *InterconnectAttachmentsDeleteCall) RequestId(requestId string) *InterconnectAttachmentsDeleteCall {
85159	c.urlParams_.Set("requestId", requestId)
85160	return c
85161}
85162
85163// Fields allows partial responses to be retrieved. See
85164// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85165// for more information.
85166func (c *InterconnectAttachmentsDeleteCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsDeleteCall {
85167	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85168	return c
85169}
85170
85171// Context sets the context to be used in this call's Do method. Any
85172// pending HTTP request will be aborted if the provided context is
85173// canceled.
85174func (c *InterconnectAttachmentsDeleteCall) Context(ctx context.Context) *InterconnectAttachmentsDeleteCall {
85175	c.ctx_ = ctx
85176	return c
85177}
85178
85179// Header returns an http.Header that can be modified by the caller to
85180// add HTTP headers to the request.
85181func (c *InterconnectAttachmentsDeleteCall) Header() http.Header {
85182	if c.header_ == nil {
85183		c.header_ = make(http.Header)
85184	}
85185	return c.header_
85186}
85187
85188func (c *InterconnectAttachmentsDeleteCall) doRequest(alt string) (*http.Response, error) {
85189	reqHeaders := make(http.Header)
85190	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85191	for k, v := range c.header_ {
85192		reqHeaders[k] = v
85193	}
85194	reqHeaders.Set("User-Agent", c.s.userAgent())
85195	var body io.Reader = nil
85196	c.urlParams_.Set("alt", alt)
85197	c.urlParams_.Set("prettyPrint", "false")
85198	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
85199	urls += "?" + c.urlParams_.Encode()
85200	req, err := http.NewRequest("DELETE", urls, body)
85201	if err != nil {
85202		return nil, err
85203	}
85204	req.Header = reqHeaders
85205	googleapi.Expand(req.URL, map[string]string{
85206		"project":                c.project,
85207		"region":                 c.region,
85208		"interconnectAttachment": c.interconnectAttachment,
85209	})
85210	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85211}
85212
85213// Do executes the "compute.interconnectAttachments.delete" call.
85214// Exactly one of *Operation or error will be non-nil. Any non-2xx
85215// status code is an error. Response headers are in either
85216// *Operation.ServerResponse.Header or (if a response was returned at
85217// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85218// to check whether the returned error was because
85219// http.StatusNotModified was returned.
85220func (c *InterconnectAttachmentsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85221	gensupport.SetOptions(c.urlParams_, opts...)
85222	res, err := c.doRequest("json")
85223	if res != nil && res.StatusCode == http.StatusNotModified {
85224		if res.Body != nil {
85225			res.Body.Close()
85226		}
85227		return nil, &googleapi.Error{
85228			Code:   res.StatusCode,
85229			Header: res.Header,
85230		}
85231	}
85232	if err != nil {
85233		return nil, err
85234	}
85235	defer googleapi.CloseBody(res)
85236	if err := googleapi.CheckResponse(res); err != nil {
85237		return nil, err
85238	}
85239	ret := &Operation{
85240		ServerResponse: googleapi.ServerResponse{
85241			Header:         res.Header,
85242			HTTPStatusCode: res.StatusCode,
85243		},
85244	}
85245	target := &ret
85246	if err := gensupport.DecodeResponse(target, res); err != nil {
85247		return nil, err
85248	}
85249	return ret, nil
85250	// {
85251	//   "description": "Deletes the specified interconnect attachment.",
85252	//   "httpMethod": "DELETE",
85253	//   "id": "compute.interconnectAttachments.delete",
85254	//   "parameterOrder": [
85255	//     "project",
85256	//     "region",
85257	//     "interconnectAttachment"
85258	//   ],
85259	//   "parameters": {
85260	//     "interconnectAttachment": {
85261	//       "description": "Name of the interconnect attachment to delete.",
85262	//       "location": "path",
85263	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85264	//       "required": true,
85265	//       "type": "string"
85266	//     },
85267	//     "project": {
85268	//       "description": "Project ID for this request.",
85269	//       "location": "path",
85270	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85271	//       "required": true,
85272	//       "type": "string"
85273	//     },
85274	//     "region": {
85275	//       "description": "Name of the region for this request.",
85276	//       "location": "path",
85277	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85278	//       "required": true,
85279	//       "type": "string"
85280	//     },
85281	//     "requestId": {
85282	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85283	//       "location": "query",
85284	//       "type": "string"
85285	//     }
85286	//   },
85287	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
85288	//   "response": {
85289	//     "$ref": "Operation"
85290	//   },
85291	//   "scopes": [
85292	//     "https://www.googleapis.com/auth/cloud-platform",
85293	//     "https://www.googleapis.com/auth/compute"
85294	//   ]
85295	// }
85296
85297}
85298
85299// method id "compute.interconnectAttachments.get":
85300
85301type InterconnectAttachmentsGetCall struct {
85302	s                      *Service
85303	project                string
85304	region                 string
85305	interconnectAttachment string
85306	urlParams_             gensupport.URLParams
85307	ifNoneMatch_           string
85308	ctx_                   context.Context
85309	header_                http.Header
85310}
85311
85312// Get: Returns the specified interconnect attachment.
85313func (r *InterconnectAttachmentsService) Get(project string, region string, interconnectAttachment string) *InterconnectAttachmentsGetCall {
85314	c := &InterconnectAttachmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85315	c.project = project
85316	c.region = region
85317	c.interconnectAttachment = interconnectAttachment
85318	return c
85319}
85320
85321// Fields allows partial responses to be retrieved. See
85322// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85323// for more information.
85324func (c *InterconnectAttachmentsGetCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsGetCall {
85325	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85326	return c
85327}
85328
85329// IfNoneMatch sets the optional parameter which makes the operation
85330// fail if the object's ETag matches the given value. This is useful for
85331// getting updates only after the object has changed since the last
85332// request. Use googleapi.IsNotModified to check whether the response
85333// error from Do is the result of In-None-Match.
85334func (c *InterconnectAttachmentsGetCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsGetCall {
85335	c.ifNoneMatch_ = entityTag
85336	return c
85337}
85338
85339// Context sets the context to be used in this call's Do method. Any
85340// pending HTTP request will be aborted if the provided context is
85341// canceled.
85342func (c *InterconnectAttachmentsGetCall) Context(ctx context.Context) *InterconnectAttachmentsGetCall {
85343	c.ctx_ = ctx
85344	return c
85345}
85346
85347// Header returns an http.Header that can be modified by the caller to
85348// add HTTP headers to the request.
85349func (c *InterconnectAttachmentsGetCall) Header() http.Header {
85350	if c.header_ == nil {
85351		c.header_ = make(http.Header)
85352	}
85353	return c.header_
85354}
85355
85356func (c *InterconnectAttachmentsGetCall) doRequest(alt string) (*http.Response, error) {
85357	reqHeaders := make(http.Header)
85358	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85359	for k, v := range c.header_ {
85360		reqHeaders[k] = v
85361	}
85362	reqHeaders.Set("User-Agent", c.s.userAgent())
85363	if c.ifNoneMatch_ != "" {
85364		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85365	}
85366	var body io.Reader = nil
85367	c.urlParams_.Set("alt", alt)
85368	c.urlParams_.Set("prettyPrint", "false")
85369	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
85370	urls += "?" + c.urlParams_.Encode()
85371	req, err := http.NewRequest("GET", urls, body)
85372	if err != nil {
85373		return nil, err
85374	}
85375	req.Header = reqHeaders
85376	googleapi.Expand(req.URL, map[string]string{
85377		"project":                c.project,
85378		"region":                 c.region,
85379		"interconnectAttachment": c.interconnectAttachment,
85380	})
85381	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85382}
85383
85384// Do executes the "compute.interconnectAttachments.get" call.
85385// Exactly one of *InterconnectAttachment or error will be non-nil. Any
85386// non-2xx status code is an error. Response headers are in either
85387// *InterconnectAttachment.ServerResponse.Header or (if a response was
85388// returned at all) in error.(*googleapi.Error).Header. Use
85389// googleapi.IsNotModified to check whether the returned error was
85390// because http.StatusNotModified was returned.
85391func (c *InterconnectAttachmentsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachment, error) {
85392	gensupport.SetOptions(c.urlParams_, opts...)
85393	res, err := c.doRequest("json")
85394	if res != nil && res.StatusCode == http.StatusNotModified {
85395		if res.Body != nil {
85396			res.Body.Close()
85397		}
85398		return nil, &googleapi.Error{
85399			Code:   res.StatusCode,
85400			Header: res.Header,
85401		}
85402	}
85403	if err != nil {
85404		return nil, err
85405	}
85406	defer googleapi.CloseBody(res)
85407	if err := googleapi.CheckResponse(res); err != nil {
85408		return nil, err
85409	}
85410	ret := &InterconnectAttachment{
85411		ServerResponse: googleapi.ServerResponse{
85412			Header:         res.Header,
85413			HTTPStatusCode: res.StatusCode,
85414		},
85415	}
85416	target := &ret
85417	if err := gensupport.DecodeResponse(target, res); err != nil {
85418		return nil, err
85419	}
85420	return ret, nil
85421	// {
85422	//   "description": "Returns the specified interconnect attachment.",
85423	//   "httpMethod": "GET",
85424	//   "id": "compute.interconnectAttachments.get",
85425	//   "parameterOrder": [
85426	//     "project",
85427	//     "region",
85428	//     "interconnectAttachment"
85429	//   ],
85430	//   "parameters": {
85431	//     "interconnectAttachment": {
85432	//       "description": "Name of the interconnect attachment to return.",
85433	//       "location": "path",
85434	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
85435	//       "required": true,
85436	//       "type": "string"
85437	//     },
85438	//     "project": {
85439	//       "description": "Project ID for this request.",
85440	//       "location": "path",
85441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85442	//       "required": true,
85443	//       "type": "string"
85444	//     },
85445	//     "region": {
85446	//       "description": "Name of the region for this request.",
85447	//       "location": "path",
85448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85449	//       "required": true,
85450	//       "type": "string"
85451	//     }
85452	//   },
85453	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
85454	//   "response": {
85455	//     "$ref": "InterconnectAttachment"
85456	//   },
85457	//   "scopes": [
85458	//     "https://www.googleapis.com/auth/cloud-platform",
85459	//     "https://www.googleapis.com/auth/compute",
85460	//     "https://www.googleapis.com/auth/compute.readonly"
85461	//   ]
85462	// }
85463
85464}
85465
85466// method id "compute.interconnectAttachments.insert":
85467
85468type InterconnectAttachmentsInsertCall struct {
85469	s                      *Service
85470	project                string
85471	region                 string
85472	interconnectattachment *InterconnectAttachment
85473	urlParams_             gensupport.URLParams
85474	ctx_                   context.Context
85475	header_                http.Header
85476}
85477
85478// Insert: Creates an InterconnectAttachment in the specified project
85479// using the data included in the request.
85480func (r *InterconnectAttachmentsService) Insert(project string, region string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsInsertCall {
85481	c := &InterconnectAttachmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85482	c.project = project
85483	c.region = region
85484	c.interconnectattachment = interconnectattachment
85485	return c
85486}
85487
85488// RequestId sets the optional parameter "requestId": An optional
85489// request ID to identify requests. Specify a unique request ID so that
85490// if you must retry your request, the server will know to ignore the
85491// request if it has already been completed.
85492//
85493// For example, consider a situation where you make an initial request
85494// and the request times out. If you make the request again with the
85495// same request ID, the server can check if original operation with the
85496// same request ID was received, and if so, will ignore the second
85497// request. This prevents clients from accidentally creating duplicate
85498// commitments.
85499//
85500// The request ID must be a valid UUID with the exception that zero UUID
85501// is not supported (00000000-0000-0000-0000-000000000000).
85502func (c *InterconnectAttachmentsInsertCall) RequestId(requestId string) *InterconnectAttachmentsInsertCall {
85503	c.urlParams_.Set("requestId", requestId)
85504	return c
85505}
85506
85507// ValidateOnly sets the optional parameter "validateOnly": If true, the
85508// request will not be committed.
85509func (c *InterconnectAttachmentsInsertCall) ValidateOnly(validateOnly bool) *InterconnectAttachmentsInsertCall {
85510	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
85511	return c
85512}
85513
85514// Fields allows partial responses to be retrieved. See
85515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85516// for more information.
85517func (c *InterconnectAttachmentsInsertCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsInsertCall {
85518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85519	return c
85520}
85521
85522// Context sets the context to be used in this call's Do method. Any
85523// pending HTTP request will be aborted if the provided context is
85524// canceled.
85525func (c *InterconnectAttachmentsInsertCall) Context(ctx context.Context) *InterconnectAttachmentsInsertCall {
85526	c.ctx_ = ctx
85527	return c
85528}
85529
85530// Header returns an http.Header that can be modified by the caller to
85531// add HTTP headers to the request.
85532func (c *InterconnectAttachmentsInsertCall) Header() http.Header {
85533	if c.header_ == nil {
85534		c.header_ = make(http.Header)
85535	}
85536	return c.header_
85537}
85538
85539func (c *InterconnectAttachmentsInsertCall) doRequest(alt string) (*http.Response, error) {
85540	reqHeaders := make(http.Header)
85541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85542	for k, v := range c.header_ {
85543		reqHeaders[k] = v
85544	}
85545	reqHeaders.Set("User-Agent", c.s.userAgent())
85546	var body io.Reader = nil
85547	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
85548	if err != nil {
85549		return nil, err
85550	}
85551	reqHeaders.Set("Content-Type", "application/json")
85552	c.urlParams_.Set("alt", alt)
85553	c.urlParams_.Set("prettyPrint", "false")
85554	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
85555	urls += "?" + c.urlParams_.Encode()
85556	req, err := http.NewRequest("POST", urls, body)
85557	if err != nil {
85558		return nil, err
85559	}
85560	req.Header = reqHeaders
85561	googleapi.Expand(req.URL, map[string]string{
85562		"project": c.project,
85563		"region":  c.region,
85564	})
85565	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85566}
85567
85568// Do executes the "compute.interconnectAttachments.insert" call.
85569// Exactly one of *Operation or error will be non-nil. Any non-2xx
85570// status code is an error. Response headers are in either
85571// *Operation.ServerResponse.Header or (if a response was returned at
85572// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
85573// to check whether the returned error was because
85574// http.StatusNotModified was returned.
85575func (c *InterconnectAttachmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
85576	gensupport.SetOptions(c.urlParams_, opts...)
85577	res, err := c.doRequest("json")
85578	if res != nil && res.StatusCode == http.StatusNotModified {
85579		if res.Body != nil {
85580			res.Body.Close()
85581		}
85582		return nil, &googleapi.Error{
85583			Code:   res.StatusCode,
85584			Header: res.Header,
85585		}
85586	}
85587	if err != nil {
85588		return nil, err
85589	}
85590	defer googleapi.CloseBody(res)
85591	if err := googleapi.CheckResponse(res); err != nil {
85592		return nil, err
85593	}
85594	ret := &Operation{
85595		ServerResponse: googleapi.ServerResponse{
85596			Header:         res.Header,
85597			HTTPStatusCode: res.StatusCode,
85598		},
85599	}
85600	target := &ret
85601	if err := gensupport.DecodeResponse(target, res); err != nil {
85602		return nil, err
85603	}
85604	return ret, nil
85605	// {
85606	//   "description": "Creates an InterconnectAttachment in the specified project using the data included in the request.",
85607	//   "httpMethod": "POST",
85608	//   "id": "compute.interconnectAttachments.insert",
85609	//   "parameterOrder": [
85610	//     "project",
85611	//     "region"
85612	//   ],
85613	//   "parameters": {
85614	//     "project": {
85615	//       "description": "Project ID for this request.",
85616	//       "location": "path",
85617	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85618	//       "required": true,
85619	//       "type": "string"
85620	//     },
85621	//     "region": {
85622	//       "description": "Name of the region for this request.",
85623	//       "location": "path",
85624	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85625	//       "required": true,
85626	//       "type": "string"
85627	//     },
85628	//     "requestId": {
85629	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
85630	//       "location": "query",
85631	//       "type": "string"
85632	//     },
85633	//     "validateOnly": {
85634	//       "description": "If true, the request will not be committed.",
85635	//       "location": "query",
85636	//       "type": "boolean"
85637	//     }
85638	//   },
85639	//   "path": "{project}/regions/{region}/interconnectAttachments",
85640	//   "request": {
85641	//     "$ref": "InterconnectAttachment"
85642	//   },
85643	//   "response": {
85644	//     "$ref": "Operation"
85645	//   },
85646	//   "scopes": [
85647	//     "https://www.googleapis.com/auth/cloud-platform",
85648	//     "https://www.googleapis.com/auth/compute"
85649	//   ]
85650	// }
85651
85652}
85653
85654// method id "compute.interconnectAttachments.list":
85655
85656type InterconnectAttachmentsListCall struct {
85657	s            *Service
85658	project      string
85659	region       string
85660	urlParams_   gensupport.URLParams
85661	ifNoneMatch_ string
85662	ctx_         context.Context
85663	header_      http.Header
85664}
85665
85666// List: Retrieves the list of interconnect attachments contained within
85667// the specified region.
85668func (r *InterconnectAttachmentsService) List(project string, region string) *InterconnectAttachmentsListCall {
85669	c := &InterconnectAttachmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85670	c.project = project
85671	c.region = region
85672	return c
85673}
85674
85675// Filter sets the optional parameter "filter": A filter expression that
85676// filters resources listed in the response. The expression must specify
85677// the field name, a comparison operator, and the value that you want to
85678// use for filtering. The value must be a string, a number, or a
85679// boolean. The comparison operator must be either =, !=, >, or <.
85680//
85681// For example, if you are filtering Compute Engine instances, you can
85682// exclude instances named example-instance by specifying name !=
85683// example-instance.
85684//
85685// You can also filter nested fields. For example, you could specify
85686// scheduling.automaticRestart = false to include instances only if they
85687// are not scheduled for automatic restarts. You can use filtering on
85688// nested fields to filter based on resource labels.
85689//
85690// To filter on multiple expressions, provide each separate expression
85691// within parentheses. For example, (scheduling.automaticRestart = true)
85692// (cpuPlatform = "Intel Skylake"). By default, each expression is an
85693// AND expression. However, you can include AND and OR expressions
85694// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
85695// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
85696// true).
85697func (c *InterconnectAttachmentsListCall) Filter(filter string) *InterconnectAttachmentsListCall {
85698	c.urlParams_.Set("filter", filter)
85699	return c
85700}
85701
85702// MaxResults sets the optional parameter "maxResults": The maximum
85703// number of results per page that should be returned. If the number of
85704// available results is larger than maxResults, Compute Engine returns a
85705// nextPageToken that can be used to get the next page of results in
85706// subsequent list requests. Acceptable values are 0 to 500, inclusive.
85707// (Default: 500)
85708func (c *InterconnectAttachmentsListCall) MaxResults(maxResults int64) *InterconnectAttachmentsListCall {
85709	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
85710	return c
85711}
85712
85713// OrderBy sets the optional parameter "orderBy": Sorts list results by
85714// a certain order. By default, results are returned in alphanumerical
85715// order based on the resource name.
85716//
85717// You can also sort results in descending order based on the creation
85718// timestamp using orderBy="creationTimestamp desc". This sorts results
85719// based on the creationTimestamp field in reverse chronological order
85720// (newest result first). Use this to sort resources like operations so
85721// that the newest operation is returned first.
85722//
85723// Currently, only sorting by name or creationTimestamp desc is
85724// supported.
85725func (c *InterconnectAttachmentsListCall) OrderBy(orderBy string) *InterconnectAttachmentsListCall {
85726	c.urlParams_.Set("orderBy", orderBy)
85727	return c
85728}
85729
85730// PageToken sets the optional parameter "pageToken": Specifies a page
85731// token to use. Set pageToken to the nextPageToken returned by a
85732// previous list request to get the next page of results.
85733func (c *InterconnectAttachmentsListCall) PageToken(pageToken string) *InterconnectAttachmentsListCall {
85734	c.urlParams_.Set("pageToken", pageToken)
85735	return c
85736}
85737
85738// Fields allows partial responses to be retrieved. See
85739// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85740// for more information.
85741func (c *InterconnectAttachmentsListCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsListCall {
85742	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85743	return c
85744}
85745
85746// IfNoneMatch sets the optional parameter which makes the operation
85747// fail if the object's ETag matches the given value. This is useful for
85748// getting updates only after the object has changed since the last
85749// request. Use googleapi.IsNotModified to check whether the response
85750// error from Do is the result of In-None-Match.
85751func (c *InterconnectAttachmentsListCall) IfNoneMatch(entityTag string) *InterconnectAttachmentsListCall {
85752	c.ifNoneMatch_ = entityTag
85753	return c
85754}
85755
85756// Context sets the context to be used in this call's Do method. Any
85757// pending HTTP request will be aborted if the provided context is
85758// canceled.
85759func (c *InterconnectAttachmentsListCall) Context(ctx context.Context) *InterconnectAttachmentsListCall {
85760	c.ctx_ = ctx
85761	return c
85762}
85763
85764// Header returns an http.Header that can be modified by the caller to
85765// add HTTP headers to the request.
85766func (c *InterconnectAttachmentsListCall) Header() http.Header {
85767	if c.header_ == nil {
85768		c.header_ = make(http.Header)
85769	}
85770	return c.header_
85771}
85772
85773func (c *InterconnectAttachmentsListCall) doRequest(alt string) (*http.Response, error) {
85774	reqHeaders := make(http.Header)
85775	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85776	for k, v := range c.header_ {
85777		reqHeaders[k] = v
85778	}
85779	reqHeaders.Set("User-Agent", c.s.userAgent())
85780	if c.ifNoneMatch_ != "" {
85781		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
85782	}
85783	var body io.Reader = nil
85784	c.urlParams_.Set("alt", alt)
85785	c.urlParams_.Set("prettyPrint", "false")
85786	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments")
85787	urls += "?" + c.urlParams_.Encode()
85788	req, err := http.NewRequest("GET", urls, body)
85789	if err != nil {
85790		return nil, err
85791	}
85792	req.Header = reqHeaders
85793	googleapi.Expand(req.URL, map[string]string{
85794		"project": c.project,
85795		"region":  c.region,
85796	})
85797	return gensupport.SendRequest(c.ctx_, c.s.client, req)
85798}
85799
85800// Do executes the "compute.interconnectAttachments.list" call.
85801// Exactly one of *InterconnectAttachmentList or error will be non-nil.
85802// Any non-2xx status code is an error. Response headers are in either
85803// *InterconnectAttachmentList.ServerResponse.Header or (if a response
85804// was returned at all) in error.(*googleapi.Error).Header. Use
85805// googleapi.IsNotModified to check whether the returned error was
85806// because http.StatusNotModified was returned.
85807func (c *InterconnectAttachmentsListCall) Do(opts ...googleapi.CallOption) (*InterconnectAttachmentList, error) {
85808	gensupport.SetOptions(c.urlParams_, opts...)
85809	res, err := c.doRequest("json")
85810	if res != nil && res.StatusCode == http.StatusNotModified {
85811		if res.Body != nil {
85812			res.Body.Close()
85813		}
85814		return nil, &googleapi.Error{
85815			Code:   res.StatusCode,
85816			Header: res.Header,
85817		}
85818	}
85819	if err != nil {
85820		return nil, err
85821	}
85822	defer googleapi.CloseBody(res)
85823	if err := googleapi.CheckResponse(res); err != nil {
85824		return nil, err
85825	}
85826	ret := &InterconnectAttachmentList{
85827		ServerResponse: googleapi.ServerResponse{
85828			Header:         res.Header,
85829			HTTPStatusCode: res.StatusCode,
85830		},
85831	}
85832	target := &ret
85833	if err := gensupport.DecodeResponse(target, res); err != nil {
85834		return nil, err
85835	}
85836	return ret, nil
85837	// {
85838	//   "description": "Retrieves the list of interconnect attachments contained within the specified region.",
85839	//   "httpMethod": "GET",
85840	//   "id": "compute.interconnectAttachments.list",
85841	//   "parameterOrder": [
85842	//     "project",
85843	//     "region"
85844	//   ],
85845	//   "parameters": {
85846	//     "filter": {
85847	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
85848	//       "location": "query",
85849	//       "type": "string"
85850	//     },
85851	//     "maxResults": {
85852	//       "default": "500",
85853	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
85854	//       "format": "uint32",
85855	//       "location": "query",
85856	//       "minimum": "0",
85857	//       "type": "integer"
85858	//     },
85859	//     "orderBy": {
85860	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
85861	//       "location": "query",
85862	//       "type": "string"
85863	//     },
85864	//     "pageToken": {
85865	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
85866	//       "location": "query",
85867	//       "type": "string"
85868	//     },
85869	//     "project": {
85870	//       "description": "Project ID for this request.",
85871	//       "location": "path",
85872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
85873	//       "required": true,
85874	//       "type": "string"
85875	//     },
85876	//     "region": {
85877	//       "description": "Name of the region for this request.",
85878	//       "location": "path",
85879	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
85880	//       "required": true,
85881	//       "type": "string"
85882	//     }
85883	//   },
85884	//   "path": "{project}/regions/{region}/interconnectAttachments",
85885	//   "response": {
85886	//     "$ref": "InterconnectAttachmentList"
85887	//   },
85888	//   "scopes": [
85889	//     "https://www.googleapis.com/auth/cloud-platform",
85890	//     "https://www.googleapis.com/auth/compute",
85891	//     "https://www.googleapis.com/auth/compute.readonly"
85892	//   ]
85893	// }
85894
85895}
85896
85897// Pages invokes f for each page of results.
85898// A non-nil error returned from f will halt the iteration.
85899// The provided context supersedes any context provided to the Context method.
85900func (c *InterconnectAttachmentsListCall) Pages(ctx context.Context, f func(*InterconnectAttachmentList) error) error {
85901	c.ctx_ = ctx
85902	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
85903	for {
85904		x, err := c.Do()
85905		if err != nil {
85906			return err
85907		}
85908		if err := f(x); err != nil {
85909			return err
85910		}
85911		if x.NextPageToken == "" {
85912			return nil
85913		}
85914		c.PageToken(x.NextPageToken)
85915	}
85916}
85917
85918// method id "compute.interconnectAttachments.patch":
85919
85920type InterconnectAttachmentsPatchCall struct {
85921	s                      *Service
85922	project                string
85923	region                 string
85924	interconnectAttachment string
85925	interconnectattachment *InterconnectAttachment
85926	urlParams_             gensupport.URLParams
85927	ctx_                   context.Context
85928	header_                http.Header
85929}
85930
85931// Patch: Updates the specified interconnect attachment with the data
85932// included in the request. This method supports PATCH semantics and
85933// uses the JSON merge patch format and processing rules.
85934func (r *InterconnectAttachmentsService) Patch(project string, region string, interconnectAttachment string, interconnectattachment *InterconnectAttachment) *InterconnectAttachmentsPatchCall {
85935	c := &InterconnectAttachmentsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
85936	c.project = project
85937	c.region = region
85938	c.interconnectAttachment = interconnectAttachment
85939	c.interconnectattachment = interconnectattachment
85940	return c
85941}
85942
85943// RequestId sets the optional parameter "requestId": An optional
85944// request ID to identify requests. Specify a unique request ID so that
85945// if you must retry your request, the server will know to ignore the
85946// request if it has already been completed.
85947//
85948// For example, consider a situation where you make an initial request
85949// and the request times out. If you make the request again with the
85950// same request ID, the server can check if original operation with the
85951// same request ID was received, and if so, will ignore the second
85952// request. This prevents clients from accidentally creating duplicate
85953// commitments.
85954//
85955// The request ID must be a valid UUID with the exception that zero UUID
85956// is not supported (00000000-0000-0000-0000-000000000000).
85957func (c *InterconnectAttachmentsPatchCall) RequestId(requestId string) *InterconnectAttachmentsPatchCall {
85958	c.urlParams_.Set("requestId", requestId)
85959	return c
85960}
85961
85962// Fields allows partial responses to be retrieved. See
85963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
85964// for more information.
85965func (c *InterconnectAttachmentsPatchCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsPatchCall {
85966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
85967	return c
85968}
85969
85970// Context sets the context to be used in this call's Do method. Any
85971// pending HTTP request will be aborted if the provided context is
85972// canceled.
85973func (c *InterconnectAttachmentsPatchCall) Context(ctx context.Context) *InterconnectAttachmentsPatchCall {
85974	c.ctx_ = ctx
85975	return c
85976}
85977
85978// Header returns an http.Header that can be modified by the caller to
85979// add HTTP headers to the request.
85980func (c *InterconnectAttachmentsPatchCall) Header() http.Header {
85981	if c.header_ == nil {
85982		c.header_ = make(http.Header)
85983	}
85984	return c.header_
85985}
85986
85987func (c *InterconnectAttachmentsPatchCall) doRequest(alt string) (*http.Response, error) {
85988	reqHeaders := make(http.Header)
85989	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
85990	for k, v := range c.header_ {
85991		reqHeaders[k] = v
85992	}
85993	reqHeaders.Set("User-Agent", c.s.userAgent())
85994	var body io.Reader = nil
85995	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnectattachment)
85996	if err != nil {
85997		return nil, err
85998	}
85999	reqHeaders.Set("Content-Type", "application/json")
86000	c.urlParams_.Set("alt", alt)
86001	c.urlParams_.Set("prettyPrint", "false")
86002	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}")
86003	urls += "?" + c.urlParams_.Encode()
86004	req, err := http.NewRequest("PATCH", urls, body)
86005	if err != nil {
86006		return nil, err
86007	}
86008	req.Header = reqHeaders
86009	googleapi.Expand(req.URL, map[string]string{
86010		"project":                c.project,
86011		"region":                 c.region,
86012		"interconnectAttachment": c.interconnectAttachment,
86013	})
86014	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86015}
86016
86017// Do executes the "compute.interconnectAttachments.patch" call.
86018// Exactly one of *Operation or error will be non-nil. Any non-2xx
86019// status code is an error. Response headers are in either
86020// *Operation.ServerResponse.Header or (if a response was returned at
86021// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86022// to check whether the returned error was because
86023// http.StatusNotModified was returned.
86024func (c *InterconnectAttachmentsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86025	gensupport.SetOptions(c.urlParams_, opts...)
86026	res, err := c.doRequest("json")
86027	if res != nil && res.StatusCode == http.StatusNotModified {
86028		if res.Body != nil {
86029			res.Body.Close()
86030		}
86031		return nil, &googleapi.Error{
86032			Code:   res.StatusCode,
86033			Header: res.Header,
86034		}
86035	}
86036	if err != nil {
86037		return nil, err
86038	}
86039	defer googleapi.CloseBody(res)
86040	if err := googleapi.CheckResponse(res); err != nil {
86041		return nil, err
86042	}
86043	ret := &Operation{
86044		ServerResponse: googleapi.ServerResponse{
86045			Header:         res.Header,
86046			HTTPStatusCode: res.StatusCode,
86047		},
86048	}
86049	target := &ret
86050	if err := gensupport.DecodeResponse(target, res); err != nil {
86051		return nil, err
86052	}
86053	return ret, nil
86054	// {
86055	//   "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.",
86056	//   "httpMethod": "PATCH",
86057	//   "id": "compute.interconnectAttachments.patch",
86058	//   "parameterOrder": [
86059	//     "project",
86060	//     "region",
86061	//     "interconnectAttachment"
86062	//   ],
86063	//   "parameters": {
86064	//     "interconnectAttachment": {
86065	//       "description": "Name of the interconnect attachment to patch.",
86066	//       "location": "path",
86067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86068	//       "required": true,
86069	//       "type": "string"
86070	//     },
86071	//     "project": {
86072	//       "description": "Project ID for this request.",
86073	//       "location": "path",
86074	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86075	//       "required": true,
86076	//       "type": "string"
86077	//     },
86078	//     "region": {
86079	//       "description": "Name of the region scoping this request.",
86080	//       "location": "path",
86081	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86082	//       "required": true,
86083	//       "type": "string"
86084	//     },
86085	//     "requestId": {
86086	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86087	//       "location": "query",
86088	//       "type": "string"
86089	//     }
86090	//   },
86091	//   "path": "{project}/regions/{region}/interconnectAttachments/{interconnectAttachment}",
86092	//   "request": {
86093	//     "$ref": "InterconnectAttachment"
86094	//   },
86095	//   "response": {
86096	//     "$ref": "Operation"
86097	//   },
86098	//   "scopes": [
86099	//     "https://www.googleapis.com/auth/cloud-platform",
86100	//     "https://www.googleapis.com/auth/compute"
86101	//   ]
86102	// }
86103
86104}
86105
86106// method id "compute.interconnectAttachments.setLabels":
86107
86108type InterconnectAttachmentsSetLabelsCall struct {
86109	s                      *Service
86110	project                string
86111	region                 string
86112	resource               string
86113	regionsetlabelsrequest *RegionSetLabelsRequest
86114	urlParams_             gensupport.URLParams
86115	ctx_                   context.Context
86116	header_                http.Header
86117}
86118
86119// SetLabels: Sets the labels on an InterconnectAttachment. To learn
86120// more about labels, read the Labeling Resources documentation.
86121func (r *InterconnectAttachmentsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *InterconnectAttachmentsSetLabelsCall {
86122	c := &InterconnectAttachmentsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86123	c.project = project
86124	c.region = region
86125	c.resource = resource
86126	c.regionsetlabelsrequest = regionsetlabelsrequest
86127	return c
86128}
86129
86130// RequestId sets the optional parameter "requestId": An optional
86131// request ID to identify requests. Specify a unique request ID so that
86132// if you must retry your request, the server will know to ignore the
86133// request if it has already been completed.
86134//
86135// For example, consider a situation where you make an initial request
86136// and the request times out. If you make the request again with the
86137// same request ID, the server can check if original operation with the
86138// same request ID was received, and if so, will ignore the second
86139// request. This prevents clients from accidentally creating duplicate
86140// commitments.
86141//
86142// The request ID must be a valid UUID with the exception that zero UUID
86143// is not supported (00000000-0000-0000-0000-000000000000).
86144func (c *InterconnectAttachmentsSetLabelsCall) RequestId(requestId string) *InterconnectAttachmentsSetLabelsCall {
86145	c.urlParams_.Set("requestId", requestId)
86146	return c
86147}
86148
86149// Fields allows partial responses to be retrieved. See
86150// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86151// for more information.
86152func (c *InterconnectAttachmentsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsSetLabelsCall {
86153	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86154	return c
86155}
86156
86157// Context sets the context to be used in this call's Do method. Any
86158// pending HTTP request will be aborted if the provided context is
86159// canceled.
86160func (c *InterconnectAttachmentsSetLabelsCall) Context(ctx context.Context) *InterconnectAttachmentsSetLabelsCall {
86161	c.ctx_ = ctx
86162	return c
86163}
86164
86165// Header returns an http.Header that can be modified by the caller to
86166// add HTTP headers to the request.
86167func (c *InterconnectAttachmentsSetLabelsCall) Header() http.Header {
86168	if c.header_ == nil {
86169		c.header_ = make(http.Header)
86170	}
86171	return c.header_
86172}
86173
86174func (c *InterconnectAttachmentsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
86175	reqHeaders := make(http.Header)
86176	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86177	for k, v := range c.header_ {
86178		reqHeaders[k] = v
86179	}
86180	reqHeaders.Set("User-Agent", c.s.userAgent())
86181	var body io.Reader = nil
86182	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
86183	if err != nil {
86184		return nil, err
86185	}
86186	reqHeaders.Set("Content-Type", "application/json")
86187	c.urlParams_.Set("alt", alt)
86188	c.urlParams_.Set("prettyPrint", "false")
86189	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels")
86190	urls += "?" + c.urlParams_.Encode()
86191	req, err := http.NewRequest("POST", urls, body)
86192	if err != nil {
86193		return nil, err
86194	}
86195	req.Header = reqHeaders
86196	googleapi.Expand(req.URL, map[string]string{
86197		"project":  c.project,
86198		"region":   c.region,
86199		"resource": c.resource,
86200	})
86201	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86202}
86203
86204// Do executes the "compute.interconnectAttachments.setLabels" call.
86205// Exactly one of *Operation or error will be non-nil. Any non-2xx
86206// status code is an error. Response headers are in either
86207// *Operation.ServerResponse.Header or (if a response was returned at
86208// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86209// to check whether the returned error was because
86210// http.StatusNotModified was returned.
86211func (c *InterconnectAttachmentsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86212	gensupport.SetOptions(c.urlParams_, opts...)
86213	res, err := c.doRequest("json")
86214	if res != nil && res.StatusCode == http.StatusNotModified {
86215		if res.Body != nil {
86216			res.Body.Close()
86217		}
86218		return nil, &googleapi.Error{
86219			Code:   res.StatusCode,
86220			Header: res.Header,
86221		}
86222	}
86223	if err != nil {
86224		return nil, err
86225	}
86226	defer googleapi.CloseBody(res)
86227	if err := googleapi.CheckResponse(res); err != nil {
86228		return nil, err
86229	}
86230	ret := &Operation{
86231		ServerResponse: googleapi.ServerResponse{
86232			Header:         res.Header,
86233			HTTPStatusCode: res.StatusCode,
86234		},
86235	}
86236	target := &ret
86237	if err := gensupport.DecodeResponse(target, res); err != nil {
86238		return nil, err
86239	}
86240	return ret, nil
86241	// {
86242	//   "description": "Sets the labels on an InterconnectAttachment. To learn more about labels, read the Labeling Resources documentation.",
86243	//   "httpMethod": "POST",
86244	//   "id": "compute.interconnectAttachments.setLabels",
86245	//   "parameterOrder": [
86246	//     "project",
86247	//     "region",
86248	//     "resource"
86249	//   ],
86250	//   "parameters": {
86251	//     "project": {
86252	//       "description": "Project ID for this request.",
86253	//       "location": "path",
86254	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86255	//       "required": true,
86256	//       "type": "string"
86257	//     },
86258	//     "region": {
86259	//       "description": "The region for this request.",
86260	//       "location": "path",
86261	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86262	//       "required": true,
86263	//       "type": "string"
86264	//     },
86265	//     "requestId": {
86266	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
86267	//       "location": "query",
86268	//       "type": "string"
86269	//     },
86270	//     "resource": {
86271	//       "description": "Name or id of the resource for this request.",
86272	//       "location": "path",
86273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86274	//       "required": true,
86275	//       "type": "string"
86276	//     }
86277	//   },
86278	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/setLabels",
86279	//   "request": {
86280	//     "$ref": "RegionSetLabelsRequest"
86281	//   },
86282	//   "response": {
86283	//     "$ref": "Operation"
86284	//   },
86285	//   "scopes": [
86286	//     "https://www.googleapis.com/auth/cloud-platform",
86287	//     "https://www.googleapis.com/auth/compute"
86288	//   ]
86289	// }
86290
86291}
86292
86293// method id "compute.interconnectAttachments.testIamPermissions":
86294
86295type InterconnectAttachmentsTestIamPermissionsCall struct {
86296	s                      *Service
86297	project                string
86298	region                 string
86299	resource               string
86300	testpermissionsrequest *TestPermissionsRequest
86301	urlParams_             gensupport.URLParams
86302	ctx_                   context.Context
86303	header_                http.Header
86304}
86305
86306// TestIamPermissions: Returns permissions that a caller has on the
86307// specified resource.
86308func (r *InterconnectAttachmentsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectAttachmentsTestIamPermissionsCall {
86309	c := &InterconnectAttachmentsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86310	c.project = project
86311	c.region = region
86312	c.resource = resource
86313	c.testpermissionsrequest = testpermissionsrequest
86314	return c
86315}
86316
86317// Fields allows partial responses to be retrieved. See
86318// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86319// for more information.
86320func (c *InterconnectAttachmentsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectAttachmentsTestIamPermissionsCall {
86321	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86322	return c
86323}
86324
86325// Context sets the context to be used in this call's Do method. Any
86326// pending HTTP request will be aborted if the provided context is
86327// canceled.
86328func (c *InterconnectAttachmentsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectAttachmentsTestIamPermissionsCall {
86329	c.ctx_ = ctx
86330	return c
86331}
86332
86333// Header returns an http.Header that can be modified by the caller to
86334// add HTTP headers to the request.
86335func (c *InterconnectAttachmentsTestIamPermissionsCall) Header() http.Header {
86336	if c.header_ == nil {
86337		c.header_ = make(http.Header)
86338	}
86339	return c.header_
86340}
86341
86342func (c *InterconnectAttachmentsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
86343	reqHeaders := make(http.Header)
86344	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86345	for k, v := range c.header_ {
86346		reqHeaders[k] = v
86347	}
86348	reqHeaders.Set("User-Agent", c.s.userAgent())
86349	var body io.Reader = nil
86350	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
86351	if err != nil {
86352		return nil, err
86353	}
86354	reqHeaders.Set("Content-Type", "application/json")
86355	c.urlParams_.Set("alt", alt)
86356	c.urlParams_.Set("prettyPrint", "false")
86357	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions")
86358	urls += "?" + c.urlParams_.Encode()
86359	req, err := http.NewRequest("POST", urls, body)
86360	if err != nil {
86361		return nil, err
86362	}
86363	req.Header = reqHeaders
86364	googleapi.Expand(req.URL, map[string]string{
86365		"project":  c.project,
86366		"region":   c.region,
86367		"resource": c.resource,
86368	})
86369	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86370}
86371
86372// Do executes the "compute.interconnectAttachments.testIamPermissions" call.
86373// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
86374// non-2xx status code is an error. Response headers are in either
86375// *TestPermissionsResponse.ServerResponse.Header or (if a response was
86376// returned at all) in error.(*googleapi.Error).Header. Use
86377// googleapi.IsNotModified to check whether the returned error was
86378// because http.StatusNotModified was returned.
86379func (c *InterconnectAttachmentsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
86380	gensupport.SetOptions(c.urlParams_, opts...)
86381	res, err := c.doRequest("json")
86382	if res != nil && res.StatusCode == http.StatusNotModified {
86383		if res.Body != nil {
86384			res.Body.Close()
86385		}
86386		return nil, &googleapi.Error{
86387			Code:   res.StatusCode,
86388			Header: res.Header,
86389		}
86390	}
86391	if err != nil {
86392		return nil, err
86393	}
86394	defer googleapi.CloseBody(res)
86395	if err := googleapi.CheckResponse(res); err != nil {
86396		return nil, err
86397	}
86398	ret := &TestPermissionsResponse{
86399		ServerResponse: googleapi.ServerResponse{
86400			Header:         res.Header,
86401			HTTPStatusCode: res.StatusCode,
86402		},
86403	}
86404	target := &ret
86405	if err := gensupport.DecodeResponse(target, res); err != nil {
86406		return nil, err
86407	}
86408	return ret, nil
86409	// {
86410	//   "description": "Returns permissions that a caller has on the specified resource.",
86411	//   "httpMethod": "POST",
86412	//   "id": "compute.interconnectAttachments.testIamPermissions",
86413	//   "parameterOrder": [
86414	//     "project",
86415	//     "region",
86416	//     "resource"
86417	//   ],
86418	//   "parameters": {
86419	//     "project": {
86420	//       "description": "Project ID for this request.",
86421	//       "location": "path",
86422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86423	//       "required": true,
86424	//       "type": "string"
86425	//     },
86426	//     "region": {
86427	//       "description": "The name of the region for this request.",
86428	//       "location": "path",
86429	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
86430	//       "required": true,
86431	//       "type": "string"
86432	//     },
86433	//     "resource": {
86434	//       "description": "Name or id of the resource for this request.",
86435	//       "location": "path",
86436	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86437	//       "required": true,
86438	//       "type": "string"
86439	//     }
86440	//   },
86441	//   "path": "{project}/regions/{region}/interconnectAttachments/{resource}/testIamPermissions",
86442	//   "request": {
86443	//     "$ref": "TestPermissionsRequest"
86444	//   },
86445	//   "response": {
86446	//     "$ref": "TestPermissionsResponse"
86447	//   },
86448	//   "scopes": [
86449	//     "https://www.googleapis.com/auth/cloud-platform",
86450	//     "https://www.googleapis.com/auth/compute",
86451	//     "https://www.googleapis.com/auth/compute.readonly"
86452	//   ]
86453	// }
86454
86455}
86456
86457// method id "compute.interconnectLocations.get":
86458
86459type InterconnectLocationsGetCall struct {
86460	s                    *Service
86461	project              string
86462	interconnectLocation string
86463	urlParams_           gensupport.URLParams
86464	ifNoneMatch_         string
86465	ctx_                 context.Context
86466	header_              http.Header
86467}
86468
86469// Get: Returns the details for the specified interconnect location.
86470// Gets a list of available interconnect locations by making a list()
86471// request.
86472func (r *InterconnectLocationsService) Get(project string, interconnectLocation string) *InterconnectLocationsGetCall {
86473	c := &InterconnectLocationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86474	c.project = project
86475	c.interconnectLocation = interconnectLocation
86476	return c
86477}
86478
86479// Fields allows partial responses to be retrieved. See
86480// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86481// for more information.
86482func (c *InterconnectLocationsGetCall) Fields(s ...googleapi.Field) *InterconnectLocationsGetCall {
86483	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86484	return c
86485}
86486
86487// IfNoneMatch sets the optional parameter which makes the operation
86488// fail if the object's ETag matches the given value. This is useful for
86489// getting updates only after the object has changed since the last
86490// request. Use googleapi.IsNotModified to check whether the response
86491// error from Do is the result of In-None-Match.
86492func (c *InterconnectLocationsGetCall) IfNoneMatch(entityTag string) *InterconnectLocationsGetCall {
86493	c.ifNoneMatch_ = entityTag
86494	return c
86495}
86496
86497// Context sets the context to be used in this call's Do method. Any
86498// pending HTTP request will be aborted if the provided context is
86499// canceled.
86500func (c *InterconnectLocationsGetCall) Context(ctx context.Context) *InterconnectLocationsGetCall {
86501	c.ctx_ = ctx
86502	return c
86503}
86504
86505// Header returns an http.Header that can be modified by the caller to
86506// add HTTP headers to the request.
86507func (c *InterconnectLocationsGetCall) Header() http.Header {
86508	if c.header_ == nil {
86509		c.header_ = make(http.Header)
86510	}
86511	return c.header_
86512}
86513
86514func (c *InterconnectLocationsGetCall) doRequest(alt string) (*http.Response, error) {
86515	reqHeaders := make(http.Header)
86516	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86517	for k, v := range c.header_ {
86518		reqHeaders[k] = v
86519	}
86520	reqHeaders.Set("User-Agent", c.s.userAgent())
86521	if c.ifNoneMatch_ != "" {
86522		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86523	}
86524	var body io.Reader = nil
86525	c.urlParams_.Set("alt", alt)
86526	c.urlParams_.Set("prettyPrint", "false")
86527	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations/{interconnectLocation}")
86528	urls += "?" + c.urlParams_.Encode()
86529	req, err := http.NewRequest("GET", urls, body)
86530	if err != nil {
86531		return nil, err
86532	}
86533	req.Header = reqHeaders
86534	googleapi.Expand(req.URL, map[string]string{
86535		"project":              c.project,
86536		"interconnectLocation": c.interconnectLocation,
86537	})
86538	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86539}
86540
86541// Do executes the "compute.interconnectLocations.get" call.
86542// Exactly one of *InterconnectLocation or error will be non-nil. Any
86543// non-2xx status code is an error. Response headers are in either
86544// *InterconnectLocation.ServerResponse.Header or (if a response was
86545// returned at all) in error.(*googleapi.Error).Header. Use
86546// googleapi.IsNotModified to check whether the returned error was
86547// because http.StatusNotModified was returned.
86548func (c *InterconnectLocationsGetCall) Do(opts ...googleapi.CallOption) (*InterconnectLocation, error) {
86549	gensupport.SetOptions(c.urlParams_, opts...)
86550	res, err := c.doRequest("json")
86551	if res != nil && res.StatusCode == http.StatusNotModified {
86552		if res.Body != nil {
86553			res.Body.Close()
86554		}
86555		return nil, &googleapi.Error{
86556			Code:   res.StatusCode,
86557			Header: res.Header,
86558		}
86559	}
86560	if err != nil {
86561		return nil, err
86562	}
86563	defer googleapi.CloseBody(res)
86564	if err := googleapi.CheckResponse(res); err != nil {
86565		return nil, err
86566	}
86567	ret := &InterconnectLocation{
86568		ServerResponse: googleapi.ServerResponse{
86569			Header:         res.Header,
86570			HTTPStatusCode: res.StatusCode,
86571		},
86572	}
86573	target := &ret
86574	if err := gensupport.DecodeResponse(target, res); err != nil {
86575		return nil, err
86576	}
86577	return ret, nil
86578	// {
86579	//   "description": "Returns the details for the specified interconnect location. Gets a list of available interconnect locations by making a list() request.",
86580	//   "httpMethod": "GET",
86581	//   "id": "compute.interconnectLocations.get",
86582	//   "parameterOrder": [
86583	//     "project",
86584	//     "interconnectLocation"
86585	//   ],
86586	//   "parameters": {
86587	//     "interconnectLocation": {
86588	//       "description": "Name of the interconnect location to return.",
86589	//       "location": "path",
86590	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
86591	//       "required": true,
86592	//       "type": "string"
86593	//     },
86594	//     "project": {
86595	//       "description": "Project ID for this request.",
86596	//       "location": "path",
86597	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86598	//       "required": true,
86599	//       "type": "string"
86600	//     }
86601	//   },
86602	//   "path": "{project}/global/interconnectLocations/{interconnectLocation}",
86603	//   "response": {
86604	//     "$ref": "InterconnectLocation"
86605	//   },
86606	//   "scopes": [
86607	//     "https://www.googleapis.com/auth/cloud-platform",
86608	//     "https://www.googleapis.com/auth/compute",
86609	//     "https://www.googleapis.com/auth/compute.readonly"
86610	//   ]
86611	// }
86612
86613}
86614
86615// method id "compute.interconnectLocations.list":
86616
86617type InterconnectLocationsListCall struct {
86618	s            *Service
86619	project      string
86620	urlParams_   gensupport.URLParams
86621	ifNoneMatch_ string
86622	ctx_         context.Context
86623	header_      http.Header
86624}
86625
86626// List: Retrieves the list of interconnect locations available to the
86627// specified project.
86628func (r *InterconnectLocationsService) List(project string) *InterconnectLocationsListCall {
86629	c := &InterconnectLocationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86630	c.project = project
86631	return c
86632}
86633
86634// Filter sets the optional parameter "filter": A filter expression that
86635// filters resources listed in the response. The expression must specify
86636// the field name, a comparison operator, and the value that you want to
86637// use for filtering. The value must be a string, a number, or a
86638// boolean. The comparison operator must be either =, !=, >, or <.
86639//
86640// For example, if you are filtering Compute Engine instances, you can
86641// exclude instances named example-instance by specifying name !=
86642// example-instance.
86643//
86644// You can also filter nested fields. For example, you could specify
86645// scheduling.automaticRestart = false to include instances only if they
86646// are not scheduled for automatic restarts. You can use filtering on
86647// nested fields to filter based on resource labels.
86648//
86649// To filter on multiple expressions, provide each separate expression
86650// within parentheses. For example, (scheduling.automaticRestart = true)
86651// (cpuPlatform = "Intel Skylake"). By default, each expression is an
86652// AND expression. However, you can include AND and OR expressions
86653// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
86654// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
86655// true).
86656func (c *InterconnectLocationsListCall) Filter(filter string) *InterconnectLocationsListCall {
86657	c.urlParams_.Set("filter", filter)
86658	return c
86659}
86660
86661// MaxResults sets the optional parameter "maxResults": The maximum
86662// number of results per page that should be returned. If the number of
86663// available results is larger than maxResults, Compute Engine returns a
86664// nextPageToken that can be used to get the next page of results in
86665// subsequent list requests. Acceptable values are 0 to 500, inclusive.
86666// (Default: 500)
86667func (c *InterconnectLocationsListCall) MaxResults(maxResults int64) *InterconnectLocationsListCall {
86668	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
86669	return c
86670}
86671
86672// OrderBy sets the optional parameter "orderBy": Sorts list results by
86673// a certain order. By default, results are returned in alphanumerical
86674// order based on the resource name.
86675//
86676// You can also sort results in descending order based on the creation
86677// timestamp using orderBy="creationTimestamp desc". This sorts results
86678// based on the creationTimestamp field in reverse chronological order
86679// (newest result first). Use this to sort resources like operations so
86680// that the newest operation is returned first.
86681//
86682// Currently, only sorting by name or creationTimestamp desc is
86683// supported.
86684func (c *InterconnectLocationsListCall) OrderBy(orderBy string) *InterconnectLocationsListCall {
86685	c.urlParams_.Set("orderBy", orderBy)
86686	return c
86687}
86688
86689// PageToken sets the optional parameter "pageToken": Specifies a page
86690// token to use. Set pageToken to the nextPageToken returned by a
86691// previous list request to get the next page of results.
86692func (c *InterconnectLocationsListCall) PageToken(pageToken string) *InterconnectLocationsListCall {
86693	c.urlParams_.Set("pageToken", pageToken)
86694	return c
86695}
86696
86697// Fields allows partial responses to be retrieved. See
86698// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86699// for more information.
86700func (c *InterconnectLocationsListCall) Fields(s ...googleapi.Field) *InterconnectLocationsListCall {
86701	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86702	return c
86703}
86704
86705// IfNoneMatch sets the optional parameter which makes the operation
86706// fail if the object's ETag matches the given value. This is useful for
86707// getting updates only after the object has changed since the last
86708// request. Use googleapi.IsNotModified to check whether the response
86709// error from Do is the result of In-None-Match.
86710func (c *InterconnectLocationsListCall) IfNoneMatch(entityTag string) *InterconnectLocationsListCall {
86711	c.ifNoneMatch_ = entityTag
86712	return c
86713}
86714
86715// Context sets the context to be used in this call's Do method. Any
86716// pending HTTP request will be aborted if the provided context is
86717// canceled.
86718func (c *InterconnectLocationsListCall) Context(ctx context.Context) *InterconnectLocationsListCall {
86719	c.ctx_ = ctx
86720	return c
86721}
86722
86723// Header returns an http.Header that can be modified by the caller to
86724// add HTTP headers to the request.
86725func (c *InterconnectLocationsListCall) Header() http.Header {
86726	if c.header_ == nil {
86727		c.header_ = make(http.Header)
86728	}
86729	return c.header_
86730}
86731
86732func (c *InterconnectLocationsListCall) doRequest(alt string) (*http.Response, error) {
86733	reqHeaders := make(http.Header)
86734	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86735	for k, v := range c.header_ {
86736		reqHeaders[k] = v
86737	}
86738	reqHeaders.Set("User-Agent", c.s.userAgent())
86739	if c.ifNoneMatch_ != "" {
86740		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
86741	}
86742	var body io.Reader = nil
86743	c.urlParams_.Set("alt", alt)
86744	c.urlParams_.Set("prettyPrint", "false")
86745	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnectLocations")
86746	urls += "?" + c.urlParams_.Encode()
86747	req, err := http.NewRequest("GET", urls, body)
86748	if err != nil {
86749		return nil, err
86750	}
86751	req.Header = reqHeaders
86752	googleapi.Expand(req.URL, map[string]string{
86753		"project": c.project,
86754	})
86755	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86756}
86757
86758// Do executes the "compute.interconnectLocations.list" call.
86759// Exactly one of *InterconnectLocationList or error will be non-nil.
86760// Any non-2xx status code is an error. Response headers are in either
86761// *InterconnectLocationList.ServerResponse.Header or (if a response was
86762// returned at all) in error.(*googleapi.Error).Header. Use
86763// googleapi.IsNotModified to check whether the returned error was
86764// because http.StatusNotModified was returned.
86765func (c *InterconnectLocationsListCall) Do(opts ...googleapi.CallOption) (*InterconnectLocationList, error) {
86766	gensupport.SetOptions(c.urlParams_, opts...)
86767	res, err := c.doRequest("json")
86768	if res != nil && res.StatusCode == http.StatusNotModified {
86769		if res.Body != nil {
86770			res.Body.Close()
86771		}
86772		return nil, &googleapi.Error{
86773			Code:   res.StatusCode,
86774			Header: res.Header,
86775		}
86776	}
86777	if err != nil {
86778		return nil, err
86779	}
86780	defer googleapi.CloseBody(res)
86781	if err := googleapi.CheckResponse(res); err != nil {
86782		return nil, err
86783	}
86784	ret := &InterconnectLocationList{
86785		ServerResponse: googleapi.ServerResponse{
86786			Header:         res.Header,
86787			HTTPStatusCode: res.StatusCode,
86788		},
86789	}
86790	target := &ret
86791	if err := gensupport.DecodeResponse(target, res); err != nil {
86792		return nil, err
86793	}
86794	return ret, nil
86795	// {
86796	//   "description": "Retrieves the list of interconnect locations available to the specified project.",
86797	//   "httpMethod": "GET",
86798	//   "id": "compute.interconnectLocations.list",
86799	//   "parameterOrder": [
86800	//     "project"
86801	//   ],
86802	//   "parameters": {
86803	//     "filter": {
86804	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
86805	//       "location": "query",
86806	//       "type": "string"
86807	//     },
86808	//     "maxResults": {
86809	//       "default": "500",
86810	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
86811	//       "format": "uint32",
86812	//       "location": "query",
86813	//       "minimum": "0",
86814	//       "type": "integer"
86815	//     },
86816	//     "orderBy": {
86817	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
86818	//       "location": "query",
86819	//       "type": "string"
86820	//     },
86821	//     "pageToken": {
86822	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
86823	//       "location": "query",
86824	//       "type": "string"
86825	//     },
86826	//     "project": {
86827	//       "description": "Project ID for this request.",
86828	//       "location": "path",
86829	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
86830	//       "required": true,
86831	//       "type": "string"
86832	//     }
86833	//   },
86834	//   "path": "{project}/global/interconnectLocations",
86835	//   "response": {
86836	//     "$ref": "InterconnectLocationList"
86837	//   },
86838	//   "scopes": [
86839	//     "https://www.googleapis.com/auth/cloud-platform",
86840	//     "https://www.googleapis.com/auth/compute",
86841	//     "https://www.googleapis.com/auth/compute.readonly"
86842	//   ]
86843	// }
86844
86845}
86846
86847// Pages invokes f for each page of results.
86848// A non-nil error returned from f will halt the iteration.
86849// The provided context supersedes any context provided to the Context method.
86850func (c *InterconnectLocationsListCall) Pages(ctx context.Context, f func(*InterconnectLocationList) error) error {
86851	c.ctx_ = ctx
86852	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
86853	for {
86854		x, err := c.Do()
86855		if err != nil {
86856			return err
86857		}
86858		if err := f(x); err != nil {
86859			return err
86860		}
86861		if x.NextPageToken == "" {
86862			return nil
86863		}
86864		c.PageToken(x.NextPageToken)
86865	}
86866}
86867
86868// method id "compute.interconnects.delete":
86869
86870type InterconnectsDeleteCall struct {
86871	s            *Service
86872	project      string
86873	interconnect string
86874	urlParams_   gensupport.URLParams
86875	ctx_         context.Context
86876	header_      http.Header
86877}
86878
86879// Delete: Deletes the specified interconnect.
86880func (r *InterconnectsService) Delete(project string, interconnect string) *InterconnectsDeleteCall {
86881	c := &InterconnectsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
86882	c.project = project
86883	c.interconnect = interconnect
86884	return c
86885}
86886
86887// RequestId sets the optional parameter "requestId": An optional
86888// request ID to identify requests. Specify a unique request ID so that
86889// if you must retry your request, the server will know to ignore the
86890// request if it has already been completed.
86891//
86892// For example, consider a situation where you make an initial request
86893// and the request times out. If you make the request again with the
86894// same request ID, the server can check if original operation with the
86895// same request ID was received, and if so, will ignore the second
86896// request. This prevents clients from accidentally creating duplicate
86897// commitments.
86898//
86899// The request ID must be a valid UUID with the exception that zero UUID
86900// is not supported (00000000-0000-0000-0000-000000000000).
86901func (c *InterconnectsDeleteCall) RequestId(requestId string) *InterconnectsDeleteCall {
86902	c.urlParams_.Set("requestId", requestId)
86903	return c
86904}
86905
86906// Fields allows partial responses to be retrieved. See
86907// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
86908// for more information.
86909func (c *InterconnectsDeleteCall) Fields(s ...googleapi.Field) *InterconnectsDeleteCall {
86910	c.urlParams_.Set("fields", googleapi.CombineFields(s))
86911	return c
86912}
86913
86914// Context sets the context to be used in this call's Do method. Any
86915// pending HTTP request will be aborted if the provided context is
86916// canceled.
86917func (c *InterconnectsDeleteCall) Context(ctx context.Context) *InterconnectsDeleteCall {
86918	c.ctx_ = ctx
86919	return c
86920}
86921
86922// Header returns an http.Header that can be modified by the caller to
86923// add HTTP headers to the request.
86924func (c *InterconnectsDeleteCall) Header() http.Header {
86925	if c.header_ == nil {
86926		c.header_ = make(http.Header)
86927	}
86928	return c.header_
86929}
86930
86931func (c *InterconnectsDeleteCall) doRequest(alt string) (*http.Response, error) {
86932	reqHeaders := make(http.Header)
86933	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
86934	for k, v := range c.header_ {
86935		reqHeaders[k] = v
86936	}
86937	reqHeaders.Set("User-Agent", c.s.userAgent())
86938	var body io.Reader = nil
86939	c.urlParams_.Set("alt", alt)
86940	c.urlParams_.Set("prettyPrint", "false")
86941	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
86942	urls += "?" + c.urlParams_.Encode()
86943	req, err := http.NewRequest("DELETE", urls, body)
86944	if err != nil {
86945		return nil, err
86946	}
86947	req.Header = reqHeaders
86948	googleapi.Expand(req.URL, map[string]string{
86949		"project":      c.project,
86950		"interconnect": c.interconnect,
86951	})
86952	return gensupport.SendRequest(c.ctx_, c.s.client, req)
86953}
86954
86955// Do executes the "compute.interconnects.delete" call.
86956// Exactly one of *Operation or error will be non-nil. Any non-2xx
86957// status code is an error. Response headers are in either
86958// *Operation.ServerResponse.Header or (if a response was returned at
86959// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
86960// to check whether the returned error was because
86961// http.StatusNotModified was returned.
86962func (c *InterconnectsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
86963	gensupport.SetOptions(c.urlParams_, opts...)
86964	res, err := c.doRequest("json")
86965	if res != nil && res.StatusCode == http.StatusNotModified {
86966		if res.Body != nil {
86967			res.Body.Close()
86968		}
86969		return nil, &googleapi.Error{
86970			Code:   res.StatusCode,
86971			Header: res.Header,
86972		}
86973	}
86974	if err != nil {
86975		return nil, err
86976	}
86977	defer googleapi.CloseBody(res)
86978	if err := googleapi.CheckResponse(res); err != nil {
86979		return nil, err
86980	}
86981	ret := &Operation{
86982		ServerResponse: googleapi.ServerResponse{
86983			Header:         res.Header,
86984			HTTPStatusCode: res.StatusCode,
86985		},
86986	}
86987	target := &ret
86988	if err := gensupport.DecodeResponse(target, res); err != nil {
86989		return nil, err
86990	}
86991	return ret, nil
86992	// {
86993	//   "description": "Deletes the specified interconnect.",
86994	//   "httpMethod": "DELETE",
86995	//   "id": "compute.interconnects.delete",
86996	//   "parameterOrder": [
86997	//     "project",
86998	//     "interconnect"
86999	//   ],
87000	//   "parameters": {
87001	//     "interconnect": {
87002	//       "description": "Name of the interconnect to delete.",
87003	//       "location": "path",
87004	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87005	//       "required": true,
87006	//       "type": "string"
87007	//     },
87008	//     "project": {
87009	//       "description": "Project ID for this request.",
87010	//       "location": "path",
87011	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87012	//       "required": true,
87013	//       "type": "string"
87014	//     },
87015	//     "requestId": {
87016	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87017	//       "location": "query",
87018	//       "type": "string"
87019	//     }
87020	//   },
87021	//   "path": "{project}/global/interconnects/{interconnect}",
87022	//   "response": {
87023	//     "$ref": "Operation"
87024	//   },
87025	//   "scopes": [
87026	//     "https://www.googleapis.com/auth/cloud-platform",
87027	//     "https://www.googleapis.com/auth/compute"
87028	//   ]
87029	// }
87030
87031}
87032
87033// method id "compute.interconnects.get":
87034
87035type InterconnectsGetCall struct {
87036	s            *Service
87037	project      string
87038	interconnect string
87039	urlParams_   gensupport.URLParams
87040	ifNoneMatch_ string
87041	ctx_         context.Context
87042	header_      http.Header
87043}
87044
87045// Get: Returns the specified interconnect. Get a list of available
87046// interconnects by making a list() request.
87047func (r *InterconnectsService) Get(project string, interconnect string) *InterconnectsGetCall {
87048	c := &InterconnectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87049	c.project = project
87050	c.interconnect = interconnect
87051	return c
87052}
87053
87054// Fields allows partial responses to be retrieved. See
87055// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87056// for more information.
87057func (c *InterconnectsGetCall) Fields(s ...googleapi.Field) *InterconnectsGetCall {
87058	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87059	return c
87060}
87061
87062// IfNoneMatch sets the optional parameter which makes the operation
87063// fail if the object's ETag matches the given value. This is useful for
87064// getting updates only after the object has changed since the last
87065// request. Use googleapi.IsNotModified to check whether the response
87066// error from Do is the result of In-None-Match.
87067func (c *InterconnectsGetCall) IfNoneMatch(entityTag string) *InterconnectsGetCall {
87068	c.ifNoneMatch_ = entityTag
87069	return c
87070}
87071
87072// Context sets the context to be used in this call's Do method. Any
87073// pending HTTP request will be aborted if the provided context is
87074// canceled.
87075func (c *InterconnectsGetCall) Context(ctx context.Context) *InterconnectsGetCall {
87076	c.ctx_ = ctx
87077	return c
87078}
87079
87080// Header returns an http.Header that can be modified by the caller to
87081// add HTTP headers to the request.
87082func (c *InterconnectsGetCall) Header() http.Header {
87083	if c.header_ == nil {
87084		c.header_ = make(http.Header)
87085	}
87086	return c.header_
87087}
87088
87089func (c *InterconnectsGetCall) doRequest(alt string) (*http.Response, error) {
87090	reqHeaders := make(http.Header)
87091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87092	for k, v := range c.header_ {
87093		reqHeaders[k] = v
87094	}
87095	reqHeaders.Set("User-Agent", c.s.userAgent())
87096	if c.ifNoneMatch_ != "" {
87097		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87098	}
87099	var body io.Reader = nil
87100	c.urlParams_.Set("alt", alt)
87101	c.urlParams_.Set("prettyPrint", "false")
87102	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
87103	urls += "?" + c.urlParams_.Encode()
87104	req, err := http.NewRequest("GET", urls, body)
87105	if err != nil {
87106		return nil, err
87107	}
87108	req.Header = reqHeaders
87109	googleapi.Expand(req.URL, map[string]string{
87110		"project":      c.project,
87111		"interconnect": c.interconnect,
87112	})
87113	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87114}
87115
87116// Do executes the "compute.interconnects.get" call.
87117// Exactly one of *Interconnect or error will be non-nil. Any non-2xx
87118// status code is an error. Response headers are in either
87119// *Interconnect.ServerResponse.Header or (if a response was returned at
87120// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87121// to check whether the returned error was because
87122// http.StatusNotModified was returned.
87123func (c *InterconnectsGetCall) Do(opts ...googleapi.CallOption) (*Interconnect, error) {
87124	gensupport.SetOptions(c.urlParams_, opts...)
87125	res, err := c.doRequest("json")
87126	if res != nil && res.StatusCode == http.StatusNotModified {
87127		if res.Body != nil {
87128			res.Body.Close()
87129		}
87130		return nil, &googleapi.Error{
87131			Code:   res.StatusCode,
87132			Header: res.Header,
87133		}
87134	}
87135	if err != nil {
87136		return nil, err
87137	}
87138	defer googleapi.CloseBody(res)
87139	if err := googleapi.CheckResponse(res); err != nil {
87140		return nil, err
87141	}
87142	ret := &Interconnect{
87143		ServerResponse: googleapi.ServerResponse{
87144			Header:         res.Header,
87145			HTTPStatusCode: res.StatusCode,
87146		},
87147	}
87148	target := &ret
87149	if err := gensupport.DecodeResponse(target, res); err != nil {
87150		return nil, err
87151	}
87152	return ret, nil
87153	// {
87154	//   "description": "Returns the specified interconnect. Get a list of available interconnects by making a list() request.",
87155	//   "httpMethod": "GET",
87156	//   "id": "compute.interconnects.get",
87157	//   "parameterOrder": [
87158	//     "project",
87159	//     "interconnect"
87160	//   ],
87161	//   "parameters": {
87162	//     "interconnect": {
87163	//       "description": "Name of the interconnect to return.",
87164	//       "location": "path",
87165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87166	//       "required": true,
87167	//       "type": "string"
87168	//     },
87169	//     "project": {
87170	//       "description": "Project ID for this request.",
87171	//       "location": "path",
87172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87173	//       "required": true,
87174	//       "type": "string"
87175	//     }
87176	//   },
87177	//   "path": "{project}/global/interconnects/{interconnect}",
87178	//   "response": {
87179	//     "$ref": "Interconnect"
87180	//   },
87181	//   "scopes": [
87182	//     "https://www.googleapis.com/auth/cloud-platform",
87183	//     "https://www.googleapis.com/auth/compute",
87184	//     "https://www.googleapis.com/auth/compute.readonly"
87185	//   ]
87186	// }
87187
87188}
87189
87190// method id "compute.interconnects.getDiagnostics":
87191
87192type InterconnectsGetDiagnosticsCall struct {
87193	s            *Service
87194	project      string
87195	interconnect string
87196	urlParams_   gensupport.URLParams
87197	ifNoneMatch_ string
87198	ctx_         context.Context
87199	header_      http.Header
87200}
87201
87202// GetDiagnostics: Returns the interconnectDiagnostics for the specified
87203// interconnect.
87204func (r *InterconnectsService) GetDiagnostics(project string, interconnect string) *InterconnectsGetDiagnosticsCall {
87205	c := &InterconnectsGetDiagnosticsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87206	c.project = project
87207	c.interconnect = interconnect
87208	return c
87209}
87210
87211// Fields allows partial responses to be retrieved. See
87212// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87213// for more information.
87214func (c *InterconnectsGetDiagnosticsCall) Fields(s ...googleapi.Field) *InterconnectsGetDiagnosticsCall {
87215	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87216	return c
87217}
87218
87219// IfNoneMatch sets the optional parameter which makes the operation
87220// fail if the object's ETag matches the given value. This is useful for
87221// getting updates only after the object has changed since the last
87222// request. Use googleapi.IsNotModified to check whether the response
87223// error from Do is the result of In-None-Match.
87224func (c *InterconnectsGetDiagnosticsCall) IfNoneMatch(entityTag string) *InterconnectsGetDiagnosticsCall {
87225	c.ifNoneMatch_ = entityTag
87226	return c
87227}
87228
87229// Context sets the context to be used in this call's Do method. Any
87230// pending HTTP request will be aborted if the provided context is
87231// canceled.
87232func (c *InterconnectsGetDiagnosticsCall) Context(ctx context.Context) *InterconnectsGetDiagnosticsCall {
87233	c.ctx_ = ctx
87234	return c
87235}
87236
87237// Header returns an http.Header that can be modified by the caller to
87238// add HTTP headers to the request.
87239func (c *InterconnectsGetDiagnosticsCall) Header() http.Header {
87240	if c.header_ == nil {
87241		c.header_ = make(http.Header)
87242	}
87243	return c.header_
87244}
87245
87246func (c *InterconnectsGetDiagnosticsCall) doRequest(alt string) (*http.Response, error) {
87247	reqHeaders := make(http.Header)
87248	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87249	for k, v := range c.header_ {
87250		reqHeaders[k] = v
87251	}
87252	reqHeaders.Set("User-Agent", c.s.userAgent())
87253	if c.ifNoneMatch_ != "" {
87254		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87255	}
87256	var body io.Reader = nil
87257	c.urlParams_.Set("alt", alt)
87258	c.urlParams_.Set("prettyPrint", "false")
87259	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}/getDiagnostics")
87260	urls += "?" + c.urlParams_.Encode()
87261	req, err := http.NewRequest("GET", urls, body)
87262	if err != nil {
87263		return nil, err
87264	}
87265	req.Header = reqHeaders
87266	googleapi.Expand(req.URL, map[string]string{
87267		"project":      c.project,
87268		"interconnect": c.interconnect,
87269	})
87270	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87271}
87272
87273// Do executes the "compute.interconnects.getDiagnostics" call.
87274// Exactly one of *InterconnectsGetDiagnosticsResponse or error will be
87275// non-nil. Any non-2xx status code is an error. Response headers are in
87276// either *InterconnectsGetDiagnosticsResponse.ServerResponse.Header or
87277// (if a response was returned at all) in
87278// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
87279// whether the returned error was because http.StatusNotModified was
87280// returned.
87281func (c *InterconnectsGetDiagnosticsCall) Do(opts ...googleapi.CallOption) (*InterconnectsGetDiagnosticsResponse, error) {
87282	gensupport.SetOptions(c.urlParams_, opts...)
87283	res, err := c.doRequest("json")
87284	if res != nil && res.StatusCode == http.StatusNotModified {
87285		if res.Body != nil {
87286			res.Body.Close()
87287		}
87288		return nil, &googleapi.Error{
87289			Code:   res.StatusCode,
87290			Header: res.Header,
87291		}
87292	}
87293	if err != nil {
87294		return nil, err
87295	}
87296	defer googleapi.CloseBody(res)
87297	if err := googleapi.CheckResponse(res); err != nil {
87298		return nil, err
87299	}
87300	ret := &InterconnectsGetDiagnosticsResponse{
87301		ServerResponse: googleapi.ServerResponse{
87302			Header:         res.Header,
87303			HTTPStatusCode: res.StatusCode,
87304		},
87305	}
87306	target := &ret
87307	if err := gensupport.DecodeResponse(target, res); err != nil {
87308		return nil, err
87309	}
87310	return ret, nil
87311	// {
87312	//   "description": "Returns the interconnectDiagnostics for the specified interconnect.",
87313	//   "httpMethod": "GET",
87314	//   "id": "compute.interconnects.getDiagnostics",
87315	//   "parameterOrder": [
87316	//     "project",
87317	//     "interconnect"
87318	//   ],
87319	//   "parameters": {
87320	//     "interconnect": {
87321	//       "description": "Name of the interconnect resource to query.",
87322	//       "location": "path",
87323	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87324	//       "required": true,
87325	//       "type": "string"
87326	//     },
87327	//     "project": {
87328	//       "description": "Project ID for this request.",
87329	//       "location": "path",
87330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87331	//       "required": true,
87332	//       "type": "string"
87333	//     }
87334	//   },
87335	//   "path": "{project}/global/interconnects/{interconnect}/getDiagnostics",
87336	//   "response": {
87337	//     "$ref": "InterconnectsGetDiagnosticsResponse"
87338	//   },
87339	//   "scopes": [
87340	//     "https://www.googleapis.com/auth/cloud-platform",
87341	//     "https://www.googleapis.com/auth/compute",
87342	//     "https://www.googleapis.com/auth/compute.readonly"
87343	//   ]
87344	// }
87345
87346}
87347
87348// method id "compute.interconnects.insert":
87349
87350type InterconnectsInsertCall struct {
87351	s            *Service
87352	project      string
87353	interconnect *Interconnect
87354	urlParams_   gensupport.URLParams
87355	ctx_         context.Context
87356	header_      http.Header
87357}
87358
87359// Insert: Creates a Interconnect in the specified project using the
87360// data included in the request.
87361func (r *InterconnectsService) Insert(project string, interconnect *Interconnect) *InterconnectsInsertCall {
87362	c := &InterconnectsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87363	c.project = project
87364	c.interconnect = interconnect
87365	return c
87366}
87367
87368// RequestId sets the optional parameter "requestId": An optional
87369// request ID to identify requests. Specify a unique request ID so that
87370// if you must retry your request, the server will know to ignore the
87371// request if it has already been completed.
87372//
87373// For example, consider a situation where you make an initial request
87374// and the request times out. If you make the request again with the
87375// same request ID, the server can check if original operation with the
87376// same request ID was received, and if so, will ignore the second
87377// request. This prevents clients from accidentally creating duplicate
87378// commitments.
87379//
87380// The request ID must be a valid UUID with the exception that zero UUID
87381// is not supported (00000000-0000-0000-0000-000000000000).
87382func (c *InterconnectsInsertCall) RequestId(requestId string) *InterconnectsInsertCall {
87383	c.urlParams_.Set("requestId", requestId)
87384	return c
87385}
87386
87387// Fields allows partial responses to be retrieved. See
87388// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87389// for more information.
87390func (c *InterconnectsInsertCall) Fields(s ...googleapi.Field) *InterconnectsInsertCall {
87391	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87392	return c
87393}
87394
87395// Context sets the context to be used in this call's Do method. Any
87396// pending HTTP request will be aborted if the provided context is
87397// canceled.
87398func (c *InterconnectsInsertCall) Context(ctx context.Context) *InterconnectsInsertCall {
87399	c.ctx_ = ctx
87400	return c
87401}
87402
87403// Header returns an http.Header that can be modified by the caller to
87404// add HTTP headers to the request.
87405func (c *InterconnectsInsertCall) Header() http.Header {
87406	if c.header_ == nil {
87407		c.header_ = make(http.Header)
87408	}
87409	return c.header_
87410}
87411
87412func (c *InterconnectsInsertCall) doRequest(alt string) (*http.Response, error) {
87413	reqHeaders := make(http.Header)
87414	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87415	for k, v := range c.header_ {
87416		reqHeaders[k] = v
87417	}
87418	reqHeaders.Set("User-Agent", c.s.userAgent())
87419	var body io.Reader = nil
87420	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect)
87421	if err != nil {
87422		return nil, err
87423	}
87424	reqHeaders.Set("Content-Type", "application/json")
87425	c.urlParams_.Set("alt", alt)
87426	c.urlParams_.Set("prettyPrint", "false")
87427	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
87428	urls += "?" + c.urlParams_.Encode()
87429	req, err := http.NewRequest("POST", urls, body)
87430	if err != nil {
87431		return nil, err
87432	}
87433	req.Header = reqHeaders
87434	googleapi.Expand(req.URL, map[string]string{
87435		"project": c.project,
87436	})
87437	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87438}
87439
87440// Do executes the "compute.interconnects.insert" call.
87441// Exactly one of *Operation or error will be non-nil. Any non-2xx
87442// status code is an error. Response headers are in either
87443// *Operation.ServerResponse.Header or (if a response was returned at
87444// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87445// to check whether the returned error was because
87446// http.StatusNotModified was returned.
87447func (c *InterconnectsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87448	gensupport.SetOptions(c.urlParams_, opts...)
87449	res, err := c.doRequest("json")
87450	if res != nil && res.StatusCode == http.StatusNotModified {
87451		if res.Body != nil {
87452			res.Body.Close()
87453		}
87454		return nil, &googleapi.Error{
87455			Code:   res.StatusCode,
87456			Header: res.Header,
87457		}
87458	}
87459	if err != nil {
87460		return nil, err
87461	}
87462	defer googleapi.CloseBody(res)
87463	if err := googleapi.CheckResponse(res); err != nil {
87464		return nil, err
87465	}
87466	ret := &Operation{
87467		ServerResponse: googleapi.ServerResponse{
87468			Header:         res.Header,
87469			HTTPStatusCode: res.StatusCode,
87470		},
87471	}
87472	target := &ret
87473	if err := gensupport.DecodeResponse(target, res); err != nil {
87474		return nil, err
87475	}
87476	return ret, nil
87477	// {
87478	//   "description": "Creates a Interconnect in the specified project using the data included in the request.",
87479	//   "httpMethod": "POST",
87480	//   "id": "compute.interconnects.insert",
87481	//   "parameterOrder": [
87482	//     "project"
87483	//   ],
87484	//   "parameters": {
87485	//     "project": {
87486	//       "description": "Project ID for this request.",
87487	//       "location": "path",
87488	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87489	//       "required": true,
87490	//       "type": "string"
87491	//     },
87492	//     "requestId": {
87493	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87494	//       "location": "query",
87495	//       "type": "string"
87496	//     }
87497	//   },
87498	//   "path": "{project}/global/interconnects",
87499	//   "request": {
87500	//     "$ref": "Interconnect"
87501	//   },
87502	//   "response": {
87503	//     "$ref": "Operation"
87504	//   },
87505	//   "scopes": [
87506	//     "https://www.googleapis.com/auth/cloud-platform",
87507	//     "https://www.googleapis.com/auth/compute"
87508	//   ]
87509	// }
87510
87511}
87512
87513// method id "compute.interconnects.list":
87514
87515type InterconnectsListCall struct {
87516	s            *Service
87517	project      string
87518	urlParams_   gensupport.URLParams
87519	ifNoneMatch_ string
87520	ctx_         context.Context
87521	header_      http.Header
87522}
87523
87524// List: Retrieves the list of interconnect available to the specified
87525// project.
87526func (r *InterconnectsService) List(project string) *InterconnectsListCall {
87527	c := &InterconnectsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87528	c.project = project
87529	return c
87530}
87531
87532// Filter sets the optional parameter "filter": A filter expression that
87533// filters resources listed in the response. The expression must specify
87534// the field name, a comparison operator, and the value that you want to
87535// use for filtering. The value must be a string, a number, or a
87536// boolean. The comparison operator must be either =, !=, >, or <.
87537//
87538// For example, if you are filtering Compute Engine instances, you can
87539// exclude instances named example-instance by specifying name !=
87540// example-instance.
87541//
87542// You can also filter nested fields. For example, you could specify
87543// scheduling.automaticRestart = false to include instances only if they
87544// are not scheduled for automatic restarts. You can use filtering on
87545// nested fields to filter based on resource labels.
87546//
87547// To filter on multiple expressions, provide each separate expression
87548// within parentheses. For example, (scheduling.automaticRestart = true)
87549// (cpuPlatform = "Intel Skylake"). By default, each expression is an
87550// AND expression. However, you can include AND and OR expressions
87551// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
87552// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
87553// true).
87554func (c *InterconnectsListCall) Filter(filter string) *InterconnectsListCall {
87555	c.urlParams_.Set("filter", filter)
87556	return c
87557}
87558
87559// MaxResults sets the optional parameter "maxResults": The maximum
87560// number of results per page that should be returned. If the number of
87561// available results is larger than maxResults, Compute Engine returns a
87562// nextPageToken that can be used to get the next page of results in
87563// subsequent list requests. Acceptable values are 0 to 500, inclusive.
87564// (Default: 500)
87565func (c *InterconnectsListCall) MaxResults(maxResults int64) *InterconnectsListCall {
87566	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
87567	return c
87568}
87569
87570// OrderBy sets the optional parameter "orderBy": Sorts list results by
87571// a certain order. By default, results are returned in alphanumerical
87572// order based on the resource name.
87573//
87574// You can also sort results in descending order based on the creation
87575// timestamp using orderBy="creationTimestamp desc". This sorts results
87576// based on the creationTimestamp field in reverse chronological order
87577// (newest result first). Use this to sort resources like operations so
87578// that the newest operation is returned first.
87579//
87580// Currently, only sorting by name or creationTimestamp desc is
87581// supported.
87582func (c *InterconnectsListCall) OrderBy(orderBy string) *InterconnectsListCall {
87583	c.urlParams_.Set("orderBy", orderBy)
87584	return c
87585}
87586
87587// PageToken sets the optional parameter "pageToken": Specifies a page
87588// token to use. Set pageToken to the nextPageToken returned by a
87589// previous list request to get the next page of results.
87590func (c *InterconnectsListCall) PageToken(pageToken string) *InterconnectsListCall {
87591	c.urlParams_.Set("pageToken", pageToken)
87592	return c
87593}
87594
87595// Fields allows partial responses to be retrieved. See
87596// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87597// for more information.
87598func (c *InterconnectsListCall) Fields(s ...googleapi.Field) *InterconnectsListCall {
87599	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87600	return c
87601}
87602
87603// IfNoneMatch sets the optional parameter which makes the operation
87604// fail if the object's ETag matches the given value. This is useful for
87605// getting updates only after the object has changed since the last
87606// request. Use googleapi.IsNotModified to check whether the response
87607// error from Do is the result of In-None-Match.
87608func (c *InterconnectsListCall) IfNoneMatch(entityTag string) *InterconnectsListCall {
87609	c.ifNoneMatch_ = entityTag
87610	return c
87611}
87612
87613// Context sets the context to be used in this call's Do method. Any
87614// pending HTTP request will be aborted if the provided context is
87615// canceled.
87616func (c *InterconnectsListCall) Context(ctx context.Context) *InterconnectsListCall {
87617	c.ctx_ = ctx
87618	return c
87619}
87620
87621// Header returns an http.Header that can be modified by the caller to
87622// add HTTP headers to the request.
87623func (c *InterconnectsListCall) Header() http.Header {
87624	if c.header_ == nil {
87625		c.header_ = make(http.Header)
87626	}
87627	return c.header_
87628}
87629
87630func (c *InterconnectsListCall) doRequest(alt string) (*http.Response, error) {
87631	reqHeaders := make(http.Header)
87632	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87633	for k, v := range c.header_ {
87634		reqHeaders[k] = v
87635	}
87636	reqHeaders.Set("User-Agent", c.s.userAgent())
87637	if c.ifNoneMatch_ != "" {
87638		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
87639	}
87640	var body io.Reader = nil
87641	c.urlParams_.Set("alt", alt)
87642	c.urlParams_.Set("prettyPrint", "false")
87643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects")
87644	urls += "?" + c.urlParams_.Encode()
87645	req, err := http.NewRequest("GET", urls, body)
87646	if err != nil {
87647		return nil, err
87648	}
87649	req.Header = reqHeaders
87650	googleapi.Expand(req.URL, map[string]string{
87651		"project": c.project,
87652	})
87653	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87654}
87655
87656// Do executes the "compute.interconnects.list" call.
87657// Exactly one of *InterconnectList or error will be non-nil. Any
87658// non-2xx status code is an error. Response headers are in either
87659// *InterconnectList.ServerResponse.Header or (if a response was
87660// returned at all) in error.(*googleapi.Error).Header. Use
87661// googleapi.IsNotModified to check whether the returned error was
87662// because http.StatusNotModified was returned.
87663func (c *InterconnectsListCall) Do(opts ...googleapi.CallOption) (*InterconnectList, error) {
87664	gensupport.SetOptions(c.urlParams_, opts...)
87665	res, err := c.doRequest("json")
87666	if res != nil && res.StatusCode == http.StatusNotModified {
87667		if res.Body != nil {
87668			res.Body.Close()
87669		}
87670		return nil, &googleapi.Error{
87671			Code:   res.StatusCode,
87672			Header: res.Header,
87673		}
87674	}
87675	if err != nil {
87676		return nil, err
87677	}
87678	defer googleapi.CloseBody(res)
87679	if err := googleapi.CheckResponse(res); err != nil {
87680		return nil, err
87681	}
87682	ret := &InterconnectList{
87683		ServerResponse: googleapi.ServerResponse{
87684			Header:         res.Header,
87685			HTTPStatusCode: res.StatusCode,
87686		},
87687	}
87688	target := &ret
87689	if err := gensupport.DecodeResponse(target, res); err != nil {
87690		return nil, err
87691	}
87692	return ret, nil
87693	// {
87694	//   "description": "Retrieves the list of interconnect available to the specified project.",
87695	//   "httpMethod": "GET",
87696	//   "id": "compute.interconnects.list",
87697	//   "parameterOrder": [
87698	//     "project"
87699	//   ],
87700	//   "parameters": {
87701	//     "filter": {
87702	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
87703	//       "location": "query",
87704	//       "type": "string"
87705	//     },
87706	//     "maxResults": {
87707	//       "default": "500",
87708	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
87709	//       "format": "uint32",
87710	//       "location": "query",
87711	//       "minimum": "0",
87712	//       "type": "integer"
87713	//     },
87714	//     "orderBy": {
87715	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
87716	//       "location": "query",
87717	//       "type": "string"
87718	//     },
87719	//     "pageToken": {
87720	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
87721	//       "location": "query",
87722	//       "type": "string"
87723	//     },
87724	//     "project": {
87725	//       "description": "Project ID for this request.",
87726	//       "location": "path",
87727	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87728	//       "required": true,
87729	//       "type": "string"
87730	//     }
87731	//   },
87732	//   "path": "{project}/global/interconnects",
87733	//   "response": {
87734	//     "$ref": "InterconnectList"
87735	//   },
87736	//   "scopes": [
87737	//     "https://www.googleapis.com/auth/cloud-platform",
87738	//     "https://www.googleapis.com/auth/compute",
87739	//     "https://www.googleapis.com/auth/compute.readonly"
87740	//   ]
87741	// }
87742
87743}
87744
87745// Pages invokes f for each page of results.
87746// A non-nil error returned from f will halt the iteration.
87747// The provided context supersedes any context provided to the Context method.
87748func (c *InterconnectsListCall) Pages(ctx context.Context, f func(*InterconnectList) error) error {
87749	c.ctx_ = ctx
87750	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
87751	for {
87752		x, err := c.Do()
87753		if err != nil {
87754			return err
87755		}
87756		if err := f(x); err != nil {
87757			return err
87758		}
87759		if x.NextPageToken == "" {
87760			return nil
87761		}
87762		c.PageToken(x.NextPageToken)
87763	}
87764}
87765
87766// method id "compute.interconnects.patch":
87767
87768type InterconnectsPatchCall struct {
87769	s             *Service
87770	project       string
87771	interconnect  string
87772	interconnect2 *Interconnect
87773	urlParams_    gensupport.URLParams
87774	ctx_          context.Context
87775	header_       http.Header
87776}
87777
87778// Patch: Updates the specified interconnect with the data included in
87779// the request. This method supports PATCH semantics and uses the JSON
87780// merge patch format and processing rules.
87781func (r *InterconnectsService) Patch(project string, interconnect string, interconnect2 *Interconnect) *InterconnectsPatchCall {
87782	c := &InterconnectsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87783	c.project = project
87784	c.interconnect = interconnect
87785	c.interconnect2 = interconnect2
87786	return c
87787}
87788
87789// RequestId sets the optional parameter "requestId": An optional
87790// request ID to identify requests. Specify a unique request ID so that
87791// if you must retry your request, the server will know to ignore the
87792// request if it has already been completed.
87793//
87794// For example, consider a situation where you make an initial request
87795// and the request times out. If you make the request again with the
87796// same request ID, the server can check if original operation with the
87797// same request ID was received, and if so, will ignore the second
87798// request. This prevents clients from accidentally creating duplicate
87799// commitments.
87800//
87801// The request ID must be a valid UUID with the exception that zero UUID
87802// is not supported (00000000-0000-0000-0000-000000000000).
87803func (c *InterconnectsPatchCall) RequestId(requestId string) *InterconnectsPatchCall {
87804	c.urlParams_.Set("requestId", requestId)
87805	return c
87806}
87807
87808// Fields allows partial responses to be retrieved. See
87809// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87810// for more information.
87811func (c *InterconnectsPatchCall) Fields(s ...googleapi.Field) *InterconnectsPatchCall {
87812	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87813	return c
87814}
87815
87816// Context sets the context to be used in this call's Do method. Any
87817// pending HTTP request will be aborted if the provided context is
87818// canceled.
87819func (c *InterconnectsPatchCall) Context(ctx context.Context) *InterconnectsPatchCall {
87820	c.ctx_ = ctx
87821	return c
87822}
87823
87824// Header returns an http.Header that can be modified by the caller to
87825// add HTTP headers to the request.
87826func (c *InterconnectsPatchCall) Header() http.Header {
87827	if c.header_ == nil {
87828		c.header_ = make(http.Header)
87829	}
87830	return c.header_
87831}
87832
87833func (c *InterconnectsPatchCall) doRequest(alt string) (*http.Response, error) {
87834	reqHeaders := make(http.Header)
87835	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87836	for k, v := range c.header_ {
87837		reqHeaders[k] = v
87838	}
87839	reqHeaders.Set("User-Agent", c.s.userAgent())
87840	var body io.Reader = nil
87841	body, err := googleapi.WithoutDataWrapper.JSONReader(c.interconnect2)
87842	if err != nil {
87843		return nil, err
87844	}
87845	reqHeaders.Set("Content-Type", "application/json")
87846	c.urlParams_.Set("alt", alt)
87847	c.urlParams_.Set("prettyPrint", "false")
87848	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{interconnect}")
87849	urls += "?" + c.urlParams_.Encode()
87850	req, err := http.NewRequest("PATCH", urls, body)
87851	if err != nil {
87852		return nil, err
87853	}
87854	req.Header = reqHeaders
87855	googleapi.Expand(req.URL, map[string]string{
87856		"project":      c.project,
87857		"interconnect": c.interconnect,
87858	})
87859	return gensupport.SendRequest(c.ctx_, c.s.client, req)
87860}
87861
87862// Do executes the "compute.interconnects.patch" call.
87863// Exactly one of *Operation or error will be non-nil. Any non-2xx
87864// status code is an error. Response headers are in either
87865// *Operation.ServerResponse.Header or (if a response was returned at
87866// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
87867// to check whether the returned error was because
87868// http.StatusNotModified was returned.
87869func (c *InterconnectsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
87870	gensupport.SetOptions(c.urlParams_, opts...)
87871	res, err := c.doRequest("json")
87872	if res != nil && res.StatusCode == http.StatusNotModified {
87873		if res.Body != nil {
87874			res.Body.Close()
87875		}
87876		return nil, &googleapi.Error{
87877			Code:   res.StatusCode,
87878			Header: res.Header,
87879		}
87880	}
87881	if err != nil {
87882		return nil, err
87883	}
87884	defer googleapi.CloseBody(res)
87885	if err := googleapi.CheckResponse(res); err != nil {
87886		return nil, err
87887	}
87888	ret := &Operation{
87889		ServerResponse: googleapi.ServerResponse{
87890			Header:         res.Header,
87891			HTTPStatusCode: res.StatusCode,
87892		},
87893	}
87894	target := &ret
87895	if err := gensupport.DecodeResponse(target, res); err != nil {
87896		return nil, err
87897	}
87898	return ret, nil
87899	// {
87900	//   "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.",
87901	//   "httpMethod": "PATCH",
87902	//   "id": "compute.interconnects.patch",
87903	//   "parameterOrder": [
87904	//     "project",
87905	//     "interconnect"
87906	//   ],
87907	//   "parameters": {
87908	//     "interconnect": {
87909	//       "description": "Name of the interconnect to update.",
87910	//       "location": "path",
87911	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
87912	//       "required": true,
87913	//       "type": "string"
87914	//     },
87915	//     "project": {
87916	//       "description": "Project ID for this request.",
87917	//       "location": "path",
87918	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
87919	//       "required": true,
87920	//       "type": "string"
87921	//     },
87922	//     "requestId": {
87923	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
87924	//       "location": "query",
87925	//       "type": "string"
87926	//     }
87927	//   },
87928	//   "path": "{project}/global/interconnects/{interconnect}",
87929	//   "request": {
87930	//     "$ref": "Interconnect"
87931	//   },
87932	//   "response": {
87933	//     "$ref": "Operation"
87934	//   },
87935	//   "scopes": [
87936	//     "https://www.googleapis.com/auth/cloud-platform",
87937	//     "https://www.googleapis.com/auth/compute"
87938	//   ]
87939	// }
87940
87941}
87942
87943// method id "compute.interconnects.setLabels":
87944
87945type InterconnectsSetLabelsCall struct {
87946	s                      *Service
87947	project                string
87948	resource               string
87949	globalsetlabelsrequest *GlobalSetLabelsRequest
87950	urlParams_             gensupport.URLParams
87951	ctx_                   context.Context
87952	header_                http.Header
87953}
87954
87955// SetLabels: Sets the labels on an Interconnect. To learn more about
87956// labels, read the Labeling Resources documentation.
87957func (r *InterconnectsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *InterconnectsSetLabelsCall {
87958	c := &InterconnectsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
87959	c.project = project
87960	c.resource = resource
87961	c.globalsetlabelsrequest = globalsetlabelsrequest
87962	return c
87963}
87964
87965// Fields allows partial responses to be retrieved. See
87966// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
87967// for more information.
87968func (c *InterconnectsSetLabelsCall) Fields(s ...googleapi.Field) *InterconnectsSetLabelsCall {
87969	c.urlParams_.Set("fields", googleapi.CombineFields(s))
87970	return c
87971}
87972
87973// Context sets the context to be used in this call's Do method. Any
87974// pending HTTP request will be aborted if the provided context is
87975// canceled.
87976func (c *InterconnectsSetLabelsCall) Context(ctx context.Context) *InterconnectsSetLabelsCall {
87977	c.ctx_ = ctx
87978	return c
87979}
87980
87981// Header returns an http.Header that can be modified by the caller to
87982// add HTTP headers to the request.
87983func (c *InterconnectsSetLabelsCall) Header() http.Header {
87984	if c.header_ == nil {
87985		c.header_ = make(http.Header)
87986	}
87987	return c.header_
87988}
87989
87990func (c *InterconnectsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
87991	reqHeaders := make(http.Header)
87992	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
87993	for k, v := range c.header_ {
87994		reqHeaders[k] = v
87995	}
87996	reqHeaders.Set("User-Agent", c.s.userAgent())
87997	var body io.Reader = nil
87998	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
87999	if err != nil {
88000		return nil, err
88001	}
88002	reqHeaders.Set("Content-Type", "application/json")
88003	c.urlParams_.Set("alt", alt)
88004	c.urlParams_.Set("prettyPrint", "false")
88005	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/setLabels")
88006	urls += "?" + c.urlParams_.Encode()
88007	req, err := http.NewRequest("POST", urls, body)
88008	if err != nil {
88009		return nil, err
88010	}
88011	req.Header = reqHeaders
88012	googleapi.Expand(req.URL, map[string]string{
88013		"project":  c.project,
88014		"resource": c.resource,
88015	})
88016	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88017}
88018
88019// Do executes the "compute.interconnects.setLabels" call.
88020// Exactly one of *Operation or error will be non-nil. Any non-2xx
88021// status code is an error. Response headers are in either
88022// *Operation.ServerResponse.Header or (if a response was returned at
88023// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88024// to check whether the returned error was because
88025// http.StatusNotModified was returned.
88026func (c *InterconnectsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88027	gensupport.SetOptions(c.urlParams_, opts...)
88028	res, err := c.doRequest("json")
88029	if res != nil && res.StatusCode == http.StatusNotModified {
88030		if res.Body != nil {
88031			res.Body.Close()
88032		}
88033		return nil, &googleapi.Error{
88034			Code:   res.StatusCode,
88035			Header: res.Header,
88036		}
88037	}
88038	if err != nil {
88039		return nil, err
88040	}
88041	defer googleapi.CloseBody(res)
88042	if err := googleapi.CheckResponse(res); err != nil {
88043		return nil, err
88044	}
88045	ret := &Operation{
88046		ServerResponse: googleapi.ServerResponse{
88047			Header:         res.Header,
88048			HTTPStatusCode: res.StatusCode,
88049		},
88050	}
88051	target := &ret
88052	if err := gensupport.DecodeResponse(target, res); err != nil {
88053		return nil, err
88054	}
88055	return ret, nil
88056	// {
88057	//   "description": "Sets the labels on an Interconnect. To learn more about labels, read the Labeling Resources documentation.",
88058	//   "httpMethod": "POST",
88059	//   "id": "compute.interconnects.setLabels",
88060	//   "parameterOrder": [
88061	//     "project",
88062	//     "resource"
88063	//   ],
88064	//   "parameters": {
88065	//     "project": {
88066	//       "description": "Project ID for this request.",
88067	//       "location": "path",
88068	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88069	//       "required": true,
88070	//       "type": "string"
88071	//     },
88072	//     "resource": {
88073	//       "description": "Name or id of the resource for this request.",
88074	//       "location": "path",
88075	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88076	//       "required": true,
88077	//       "type": "string"
88078	//     }
88079	//   },
88080	//   "path": "{project}/global/interconnects/{resource}/setLabels",
88081	//   "request": {
88082	//     "$ref": "GlobalSetLabelsRequest"
88083	//   },
88084	//   "response": {
88085	//     "$ref": "Operation"
88086	//   },
88087	//   "scopes": [
88088	//     "https://www.googleapis.com/auth/cloud-platform",
88089	//     "https://www.googleapis.com/auth/compute"
88090	//   ]
88091	// }
88092
88093}
88094
88095// method id "compute.interconnects.testIamPermissions":
88096
88097type InterconnectsTestIamPermissionsCall struct {
88098	s                      *Service
88099	project                string
88100	resource               string
88101	testpermissionsrequest *TestPermissionsRequest
88102	urlParams_             gensupport.URLParams
88103	ctx_                   context.Context
88104	header_                http.Header
88105}
88106
88107// TestIamPermissions: Returns permissions that a caller has on the
88108// specified resource.
88109func (r *InterconnectsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *InterconnectsTestIamPermissionsCall {
88110	c := &InterconnectsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88111	c.project = project
88112	c.resource = resource
88113	c.testpermissionsrequest = testpermissionsrequest
88114	return c
88115}
88116
88117// Fields allows partial responses to be retrieved. See
88118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88119// for more information.
88120func (c *InterconnectsTestIamPermissionsCall) Fields(s ...googleapi.Field) *InterconnectsTestIamPermissionsCall {
88121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88122	return c
88123}
88124
88125// Context sets the context to be used in this call's Do method. Any
88126// pending HTTP request will be aborted if the provided context is
88127// canceled.
88128func (c *InterconnectsTestIamPermissionsCall) Context(ctx context.Context) *InterconnectsTestIamPermissionsCall {
88129	c.ctx_ = ctx
88130	return c
88131}
88132
88133// Header returns an http.Header that can be modified by the caller to
88134// add HTTP headers to the request.
88135func (c *InterconnectsTestIamPermissionsCall) Header() http.Header {
88136	if c.header_ == nil {
88137		c.header_ = make(http.Header)
88138	}
88139	return c.header_
88140}
88141
88142func (c *InterconnectsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
88143	reqHeaders := make(http.Header)
88144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88145	for k, v := range c.header_ {
88146		reqHeaders[k] = v
88147	}
88148	reqHeaders.Set("User-Agent", c.s.userAgent())
88149	var body io.Reader = nil
88150	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
88151	if err != nil {
88152		return nil, err
88153	}
88154	reqHeaders.Set("Content-Type", "application/json")
88155	c.urlParams_.Set("alt", alt)
88156	c.urlParams_.Set("prettyPrint", "false")
88157	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/interconnects/{resource}/testIamPermissions")
88158	urls += "?" + c.urlParams_.Encode()
88159	req, err := http.NewRequest("POST", urls, body)
88160	if err != nil {
88161		return nil, err
88162	}
88163	req.Header = reqHeaders
88164	googleapi.Expand(req.URL, map[string]string{
88165		"project":  c.project,
88166		"resource": c.resource,
88167	})
88168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88169}
88170
88171// Do executes the "compute.interconnects.testIamPermissions" call.
88172// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
88173// non-2xx status code is an error. Response headers are in either
88174// *TestPermissionsResponse.ServerResponse.Header or (if a response was
88175// returned at all) in error.(*googleapi.Error).Header. Use
88176// googleapi.IsNotModified to check whether the returned error was
88177// because http.StatusNotModified was returned.
88178func (c *InterconnectsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
88179	gensupport.SetOptions(c.urlParams_, opts...)
88180	res, err := c.doRequest("json")
88181	if res != nil && res.StatusCode == http.StatusNotModified {
88182		if res.Body != nil {
88183			res.Body.Close()
88184		}
88185		return nil, &googleapi.Error{
88186			Code:   res.StatusCode,
88187			Header: res.Header,
88188		}
88189	}
88190	if err != nil {
88191		return nil, err
88192	}
88193	defer googleapi.CloseBody(res)
88194	if err := googleapi.CheckResponse(res); err != nil {
88195		return nil, err
88196	}
88197	ret := &TestPermissionsResponse{
88198		ServerResponse: googleapi.ServerResponse{
88199			Header:         res.Header,
88200			HTTPStatusCode: res.StatusCode,
88201		},
88202	}
88203	target := &ret
88204	if err := gensupport.DecodeResponse(target, res); err != nil {
88205		return nil, err
88206	}
88207	return ret, nil
88208	// {
88209	//   "description": "Returns permissions that a caller has on the specified resource.",
88210	//   "httpMethod": "POST",
88211	//   "id": "compute.interconnects.testIamPermissions",
88212	//   "parameterOrder": [
88213	//     "project",
88214	//     "resource"
88215	//   ],
88216	//   "parameters": {
88217	//     "project": {
88218	//       "description": "Project ID for this request.",
88219	//       "location": "path",
88220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88221	//       "required": true,
88222	//       "type": "string"
88223	//     },
88224	//     "resource": {
88225	//       "description": "Name or id of the resource for this request.",
88226	//       "location": "path",
88227	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88228	//       "required": true,
88229	//       "type": "string"
88230	//     }
88231	//   },
88232	//   "path": "{project}/global/interconnects/{resource}/testIamPermissions",
88233	//   "request": {
88234	//     "$ref": "TestPermissionsRequest"
88235	//   },
88236	//   "response": {
88237	//     "$ref": "TestPermissionsResponse"
88238	//   },
88239	//   "scopes": [
88240	//     "https://www.googleapis.com/auth/cloud-platform",
88241	//     "https://www.googleapis.com/auth/compute",
88242	//     "https://www.googleapis.com/auth/compute.readonly"
88243	//   ]
88244	// }
88245
88246}
88247
88248// method id "compute.licenseCodes.get":
88249
88250type LicenseCodesGetCall struct {
88251	s            *Service
88252	project      string
88253	licenseCode  string
88254	urlParams_   gensupport.URLParams
88255	ifNoneMatch_ string
88256	ctx_         context.Context
88257	header_      http.Header
88258}
88259
88260// Get: Return a specified license code. License codes are mirrored
88261// across all projects that have permissions to read the License Code.
88262func (r *LicenseCodesService) Get(project string, licenseCode string) *LicenseCodesGetCall {
88263	c := &LicenseCodesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88264	c.project = project
88265	c.licenseCode = licenseCode
88266	return c
88267}
88268
88269// Fields allows partial responses to be retrieved. See
88270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88271// for more information.
88272func (c *LicenseCodesGetCall) Fields(s ...googleapi.Field) *LicenseCodesGetCall {
88273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88274	return c
88275}
88276
88277// IfNoneMatch sets the optional parameter which makes the operation
88278// fail if the object's ETag matches the given value. This is useful for
88279// getting updates only after the object has changed since the last
88280// request. Use googleapi.IsNotModified to check whether the response
88281// error from Do is the result of In-None-Match.
88282func (c *LicenseCodesGetCall) IfNoneMatch(entityTag string) *LicenseCodesGetCall {
88283	c.ifNoneMatch_ = entityTag
88284	return c
88285}
88286
88287// Context sets the context to be used in this call's Do method. Any
88288// pending HTTP request will be aborted if the provided context is
88289// canceled.
88290func (c *LicenseCodesGetCall) Context(ctx context.Context) *LicenseCodesGetCall {
88291	c.ctx_ = ctx
88292	return c
88293}
88294
88295// Header returns an http.Header that can be modified by the caller to
88296// add HTTP headers to the request.
88297func (c *LicenseCodesGetCall) Header() http.Header {
88298	if c.header_ == nil {
88299		c.header_ = make(http.Header)
88300	}
88301	return c.header_
88302}
88303
88304func (c *LicenseCodesGetCall) doRequest(alt string) (*http.Response, error) {
88305	reqHeaders := make(http.Header)
88306	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88307	for k, v := range c.header_ {
88308		reqHeaders[k] = v
88309	}
88310	reqHeaders.Set("User-Agent", c.s.userAgent())
88311	if c.ifNoneMatch_ != "" {
88312		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88313	}
88314	var body io.Reader = nil
88315	c.urlParams_.Set("alt", alt)
88316	c.urlParams_.Set("prettyPrint", "false")
88317	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenseCodes/{licenseCode}")
88318	urls += "?" + c.urlParams_.Encode()
88319	req, err := http.NewRequest("GET", urls, body)
88320	if err != nil {
88321		return nil, err
88322	}
88323	req.Header = reqHeaders
88324	googleapi.Expand(req.URL, map[string]string{
88325		"project":     c.project,
88326		"licenseCode": c.licenseCode,
88327	})
88328	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88329}
88330
88331// Do executes the "compute.licenseCodes.get" call.
88332// Exactly one of *LicenseCode or error will be non-nil. Any non-2xx
88333// status code is an error. Response headers are in either
88334// *LicenseCode.ServerResponse.Header or (if a response was returned at
88335// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88336// to check whether the returned error was because
88337// http.StatusNotModified was returned.
88338func (c *LicenseCodesGetCall) Do(opts ...googleapi.CallOption) (*LicenseCode, error) {
88339	gensupport.SetOptions(c.urlParams_, opts...)
88340	res, err := c.doRequest("json")
88341	if res != nil && res.StatusCode == http.StatusNotModified {
88342		if res.Body != nil {
88343			res.Body.Close()
88344		}
88345		return nil, &googleapi.Error{
88346			Code:   res.StatusCode,
88347			Header: res.Header,
88348		}
88349	}
88350	if err != nil {
88351		return nil, err
88352	}
88353	defer googleapi.CloseBody(res)
88354	if err := googleapi.CheckResponse(res); err != nil {
88355		return nil, err
88356	}
88357	ret := &LicenseCode{
88358		ServerResponse: googleapi.ServerResponse{
88359			Header:         res.Header,
88360			HTTPStatusCode: res.StatusCode,
88361		},
88362	}
88363	target := &ret
88364	if err := gensupport.DecodeResponse(target, res); err != nil {
88365		return nil, err
88366	}
88367	return ret, nil
88368	// {
88369	//   "description": "Return a specified license code. License codes are mirrored across all projects that have permissions to read the License Code.",
88370	//   "httpMethod": "GET",
88371	//   "id": "compute.licenseCodes.get",
88372	//   "parameterOrder": [
88373	//     "project",
88374	//     "licenseCode"
88375	//   ],
88376	//   "parameters": {
88377	//     "licenseCode": {
88378	//       "description": "Number corresponding to the License code resource to return.",
88379	//       "location": "path",
88380	//       "pattern": "[0-9]{0,61}?",
88381	//       "required": true,
88382	//       "type": "string"
88383	//     },
88384	//     "project": {
88385	//       "description": "Project ID for this request.",
88386	//       "location": "path",
88387	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88388	//       "required": true,
88389	//       "type": "string"
88390	//     }
88391	//   },
88392	//   "path": "{project}/global/licenseCodes/{licenseCode}",
88393	//   "response": {
88394	//     "$ref": "LicenseCode"
88395	//   },
88396	//   "scopes": [
88397	//     "https://www.googleapis.com/auth/cloud-platform",
88398	//     "https://www.googleapis.com/auth/compute",
88399	//     "https://www.googleapis.com/auth/compute.readonly"
88400	//   ]
88401	// }
88402
88403}
88404
88405// method id "compute.licenses.delete":
88406
88407type LicensesDeleteCall struct {
88408	s          *Service
88409	project    string
88410	license    string
88411	urlParams_ gensupport.URLParams
88412	ctx_       context.Context
88413	header_    http.Header
88414}
88415
88416// Delete: Deletes the specified license.
88417func (r *LicensesService) Delete(project string, license string) *LicensesDeleteCall {
88418	c := &LicensesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88419	c.project = project
88420	c.license = license
88421	return c
88422}
88423
88424// RequestId sets the optional parameter "requestId": An optional
88425// request ID to identify requests. Specify a unique request ID so that
88426// if you must retry your request, the server will know to ignore the
88427// request if it has already been completed.
88428//
88429// For example, consider a situation where you make an initial request
88430// and the request times out. If you make the request again with the
88431// same request ID, the server can check if original operation with the
88432// same request ID was received, and if so, will ignore the second
88433// request. This prevents clients from accidentally creating duplicate
88434// commitments.
88435//
88436// The request ID must be a valid UUID with the exception that zero UUID
88437// is not supported (00000000-0000-0000-0000-000000000000).
88438func (c *LicensesDeleteCall) RequestId(requestId string) *LicensesDeleteCall {
88439	c.urlParams_.Set("requestId", requestId)
88440	return c
88441}
88442
88443// Fields allows partial responses to be retrieved. See
88444// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88445// for more information.
88446func (c *LicensesDeleteCall) Fields(s ...googleapi.Field) *LicensesDeleteCall {
88447	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88448	return c
88449}
88450
88451// Context sets the context to be used in this call's Do method. Any
88452// pending HTTP request will be aborted if the provided context is
88453// canceled.
88454func (c *LicensesDeleteCall) Context(ctx context.Context) *LicensesDeleteCall {
88455	c.ctx_ = ctx
88456	return c
88457}
88458
88459// Header returns an http.Header that can be modified by the caller to
88460// add HTTP headers to the request.
88461func (c *LicensesDeleteCall) Header() http.Header {
88462	if c.header_ == nil {
88463		c.header_ = make(http.Header)
88464	}
88465	return c.header_
88466}
88467
88468func (c *LicensesDeleteCall) doRequest(alt string) (*http.Response, error) {
88469	reqHeaders := make(http.Header)
88470	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88471	for k, v := range c.header_ {
88472		reqHeaders[k] = v
88473	}
88474	reqHeaders.Set("User-Agent", c.s.userAgent())
88475	var body io.Reader = nil
88476	c.urlParams_.Set("alt", alt)
88477	c.urlParams_.Set("prettyPrint", "false")
88478	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
88479	urls += "?" + c.urlParams_.Encode()
88480	req, err := http.NewRequest("DELETE", urls, body)
88481	if err != nil {
88482		return nil, err
88483	}
88484	req.Header = reqHeaders
88485	googleapi.Expand(req.URL, map[string]string{
88486		"project": c.project,
88487		"license": c.license,
88488	})
88489	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88490}
88491
88492// Do executes the "compute.licenses.delete" call.
88493// Exactly one of *Operation or error will be non-nil. Any non-2xx
88494// status code is an error. Response headers are in either
88495// *Operation.ServerResponse.Header or (if a response was returned at
88496// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88497// to check whether the returned error was because
88498// http.StatusNotModified was returned.
88499func (c *LicensesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88500	gensupport.SetOptions(c.urlParams_, opts...)
88501	res, err := c.doRequest("json")
88502	if res != nil && res.StatusCode == http.StatusNotModified {
88503		if res.Body != nil {
88504			res.Body.Close()
88505		}
88506		return nil, &googleapi.Error{
88507			Code:   res.StatusCode,
88508			Header: res.Header,
88509		}
88510	}
88511	if err != nil {
88512		return nil, err
88513	}
88514	defer googleapi.CloseBody(res)
88515	if err := googleapi.CheckResponse(res); err != nil {
88516		return nil, err
88517	}
88518	ret := &Operation{
88519		ServerResponse: googleapi.ServerResponse{
88520			Header:         res.Header,
88521			HTTPStatusCode: res.StatusCode,
88522		},
88523	}
88524	target := &ret
88525	if err := gensupport.DecodeResponse(target, res); err != nil {
88526		return nil, err
88527	}
88528	return ret, nil
88529	// {
88530	//   "description": "Deletes the specified license.",
88531	//   "httpMethod": "DELETE",
88532	//   "id": "compute.licenses.delete",
88533	//   "parameterOrder": [
88534	//     "project",
88535	//     "license"
88536	//   ],
88537	//   "parameters": {
88538	//     "license": {
88539	//       "description": "Name of the license resource to delete.",
88540	//       "location": "path",
88541	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88542	//       "required": true,
88543	//       "type": "string"
88544	//     },
88545	//     "project": {
88546	//       "description": "Project ID for this request.",
88547	//       "location": "path",
88548	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88549	//       "required": true,
88550	//       "type": "string"
88551	//     },
88552	//     "requestId": {
88553	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
88554	//       "location": "query",
88555	//       "type": "string"
88556	//     }
88557	//   },
88558	//   "path": "{project}/global/licenses/{license}",
88559	//   "response": {
88560	//     "$ref": "Operation"
88561	//   },
88562	//   "scopes": [
88563	//     "https://www.googleapis.com/auth/cloud-platform",
88564	//     "https://www.googleapis.com/auth/compute"
88565	//   ]
88566	// }
88567
88568}
88569
88570// method id "compute.licenses.get":
88571
88572type LicensesGetCall struct {
88573	s            *Service
88574	project      string
88575	license      string
88576	urlParams_   gensupport.URLParams
88577	ifNoneMatch_ string
88578	ctx_         context.Context
88579	header_      http.Header
88580}
88581
88582// Get: Returns the specified License resource.
88583// For details, see https://cloud.google.com/compute/docs/reference/latest/licenses/get
88584func (r *LicensesService) Get(project string, license string) *LicensesGetCall {
88585	c := &LicensesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88586	c.project = project
88587	c.license = license
88588	return c
88589}
88590
88591// Fields allows partial responses to be retrieved. See
88592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88593// for more information.
88594func (c *LicensesGetCall) Fields(s ...googleapi.Field) *LicensesGetCall {
88595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88596	return c
88597}
88598
88599// IfNoneMatch sets the optional parameter which makes the operation
88600// fail if the object's ETag matches the given value. This is useful for
88601// getting updates only after the object has changed since the last
88602// request. Use googleapi.IsNotModified to check whether the response
88603// error from Do is the result of In-None-Match.
88604func (c *LicensesGetCall) IfNoneMatch(entityTag string) *LicensesGetCall {
88605	c.ifNoneMatch_ = entityTag
88606	return c
88607}
88608
88609// Context sets the context to be used in this call's Do method. Any
88610// pending HTTP request will be aborted if the provided context is
88611// canceled.
88612func (c *LicensesGetCall) Context(ctx context.Context) *LicensesGetCall {
88613	c.ctx_ = ctx
88614	return c
88615}
88616
88617// Header returns an http.Header that can be modified by the caller to
88618// add HTTP headers to the request.
88619func (c *LicensesGetCall) Header() http.Header {
88620	if c.header_ == nil {
88621		c.header_ = make(http.Header)
88622	}
88623	return c.header_
88624}
88625
88626func (c *LicensesGetCall) doRequest(alt string) (*http.Response, error) {
88627	reqHeaders := make(http.Header)
88628	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88629	for k, v := range c.header_ {
88630		reqHeaders[k] = v
88631	}
88632	reqHeaders.Set("User-Agent", c.s.userAgent())
88633	if c.ifNoneMatch_ != "" {
88634		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88635	}
88636	var body io.Reader = nil
88637	c.urlParams_.Set("alt", alt)
88638	c.urlParams_.Set("prettyPrint", "false")
88639	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{license}")
88640	urls += "?" + c.urlParams_.Encode()
88641	req, err := http.NewRequest("GET", urls, body)
88642	if err != nil {
88643		return nil, err
88644	}
88645	req.Header = reqHeaders
88646	googleapi.Expand(req.URL, map[string]string{
88647		"project": c.project,
88648		"license": c.license,
88649	})
88650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88651}
88652
88653// Do executes the "compute.licenses.get" call.
88654// Exactly one of *License or error will be non-nil. Any non-2xx status
88655// code is an error. Response headers are in either
88656// *License.ServerResponse.Header or (if a response was returned at all)
88657// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
88658// check whether the returned error was because http.StatusNotModified
88659// was returned.
88660func (c *LicensesGetCall) Do(opts ...googleapi.CallOption) (*License, error) {
88661	gensupport.SetOptions(c.urlParams_, opts...)
88662	res, err := c.doRequest("json")
88663	if res != nil && res.StatusCode == http.StatusNotModified {
88664		if res.Body != nil {
88665			res.Body.Close()
88666		}
88667		return nil, &googleapi.Error{
88668			Code:   res.StatusCode,
88669			Header: res.Header,
88670		}
88671	}
88672	if err != nil {
88673		return nil, err
88674	}
88675	defer googleapi.CloseBody(res)
88676	if err := googleapi.CheckResponse(res); err != nil {
88677		return nil, err
88678	}
88679	ret := &License{
88680		ServerResponse: googleapi.ServerResponse{
88681			Header:         res.Header,
88682			HTTPStatusCode: res.StatusCode,
88683		},
88684	}
88685	target := &ret
88686	if err := gensupport.DecodeResponse(target, res); err != nil {
88687		return nil, err
88688	}
88689	return ret, nil
88690	// {
88691	//   "description": "Returns the specified License resource.",
88692	//   "httpMethod": "GET",
88693	//   "id": "compute.licenses.get",
88694	//   "parameterOrder": [
88695	//     "project",
88696	//     "license"
88697	//   ],
88698	//   "parameters": {
88699	//     "license": {
88700	//       "description": "Name of the License resource to return.",
88701	//       "location": "path",
88702	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88703	//       "required": true,
88704	//       "type": "string"
88705	//     },
88706	//     "project": {
88707	//       "description": "Project ID for this request.",
88708	//       "location": "path",
88709	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88710	//       "required": true,
88711	//       "type": "string"
88712	//     }
88713	//   },
88714	//   "path": "{project}/global/licenses/{license}",
88715	//   "response": {
88716	//     "$ref": "License"
88717	//   },
88718	//   "scopes": [
88719	//     "https://www.googleapis.com/auth/cloud-platform",
88720	//     "https://www.googleapis.com/auth/compute",
88721	//     "https://www.googleapis.com/auth/compute.readonly"
88722	//   ]
88723	// }
88724
88725}
88726
88727// method id "compute.licenses.getIamPolicy":
88728
88729type LicensesGetIamPolicyCall struct {
88730	s            *Service
88731	project      string
88732	resource     string
88733	urlParams_   gensupport.URLParams
88734	ifNoneMatch_ string
88735	ctx_         context.Context
88736	header_      http.Header
88737}
88738
88739// GetIamPolicy: Gets the access control policy for a resource. May be
88740// empty if no such policy or resource exists.
88741func (r *LicensesService) GetIamPolicy(project string, resource string) *LicensesGetIamPolicyCall {
88742	c := &LicensesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88743	c.project = project
88744	c.resource = resource
88745	return c
88746}
88747
88748// OptionsRequestedPolicyVersion sets the optional parameter
88749// "optionsRequestedPolicyVersion": Requested IAM Policy version.
88750func (c *LicensesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *LicensesGetIamPolicyCall {
88751	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
88752	return c
88753}
88754
88755// Fields allows partial responses to be retrieved. See
88756// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88757// for more information.
88758func (c *LicensesGetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesGetIamPolicyCall {
88759	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88760	return c
88761}
88762
88763// IfNoneMatch sets the optional parameter which makes the operation
88764// fail if the object's ETag matches the given value. This is useful for
88765// getting updates only after the object has changed since the last
88766// request. Use googleapi.IsNotModified to check whether the response
88767// error from Do is the result of In-None-Match.
88768func (c *LicensesGetIamPolicyCall) IfNoneMatch(entityTag string) *LicensesGetIamPolicyCall {
88769	c.ifNoneMatch_ = entityTag
88770	return c
88771}
88772
88773// Context sets the context to be used in this call's Do method. Any
88774// pending HTTP request will be aborted if the provided context is
88775// canceled.
88776func (c *LicensesGetIamPolicyCall) Context(ctx context.Context) *LicensesGetIamPolicyCall {
88777	c.ctx_ = ctx
88778	return c
88779}
88780
88781// Header returns an http.Header that can be modified by the caller to
88782// add HTTP headers to the request.
88783func (c *LicensesGetIamPolicyCall) Header() http.Header {
88784	if c.header_ == nil {
88785		c.header_ = make(http.Header)
88786	}
88787	return c.header_
88788}
88789
88790func (c *LicensesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
88791	reqHeaders := make(http.Header)
88792	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88793	for k, v := range c.header_ {
88794		reqHeaders[k] = v
88795	}
88796	reqHeaders.Set("User-Agent", c.s.userAgent())
88797	if c.ifNoneMatch_ != "" {
88798		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
88799	}
88800	var body io.Reader = nil
88801	c.urlParams_.Set("alt", alt)
88802	c.urlParams_.Set("prettyPrint", "false")
88803	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/getIamPolicy")
88804	urls += "?" + c.urlParams_.Encode()
88805	req, err := http.NewRequest("GET", urls, body)
88806	if err != nil {
88807		return nil, err
88808	}
88809	req.Header = reqHeaders
88810	googleapi.Expand(req.URL, map[string]string{
88811		"project":  c.project,
88812		"resource": c.resource,
88813	})
88814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88815}
88816
88817// Do executes the "compute.licenses.getIamPolicy" call.
88818// Exactly one of *Policy or error will be non-nil. Any non-2xx status
88819// code is an error. Response headers are in either
88820// *Policy.ServerResponse.Header or (if a response was returned at all)
88821// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
88822// check whether the returned error was because http.StatusNotModified
88823// was returned.
88824func (c *LicensesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
88825	gensupport.SetOptions(c.urlParams_, opts...)
88826	res, err := c.doRequest("json")
88827	if res != nil && res.StatusCode == http.StatusNotModified {
88828		if res.Body != nil {
88829			res.Body.Close()
88830		}
88831		return nil, &googleapi.Error{
88832			Code:   res.StatusCode,
88833			Header: res.Header,
88834		}
88835	}
88836	if err != nil {
88837		return nil, err
88838	}
88839	defer googleapi.CloseBody(res)
88840	if err := googleapi.CheckResponse(res); err != nil {
88841		return nil, err
88842	}
88843	ret := &Policy{
88844		ServerResponse: googleapi.ServerResponse{
88845			Header:         res.Header,
88846			HTTPStatusCode: res.StatusCode,
88847		},
88848	}
88849	target := &ret
88850	if err := gensupport.DecodeResponse(target, res); err != nil {
88851		return nil, err
88852	}
88853	return ret, nil
88854	// {
88855	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
88856	//   "httpMethod": "GET",
88857	//   "id": "compute.licenses.getIamPolicy",
88858	//   "parameterOrder": [
88859	//     "project",
88860	//     "resource"
88861	//   ],
88862	//   "parameters": {
88863	//     "optionsRequestedPolicyVersion": {
88864	//       "description": "Requested IAM Policy version.",
88865	//       "format": "int32",
88866	//       "location": "query",
88867	//       "type": "integer"
88868	//     },
88869	//     "project": {
88870	//       "description": "Project ID for this request.",
88871	//       "location": "path",
88872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
88873	//       "required": true,
88874	//       "type": "string"
88875	//     },
88876	//     "resource": {
88877	//       "description": "Name or id of the resource for this request.",
88878	//       "location": "path",
88879	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
88880	//       "required": true,
88881	//       "type": "string"
88882	//     }
88883	//   },
88884	//   "path": "{project}/global/licenses/{resource}/getIamPolicy",
88885	//   "response": {
88886	//     "$ref": "Policy"
88887	//   },
88888	//   "scopes": [
88889	//     "https://www.googleapis.com/auth/cloud-platform",
88890	//     "https://www.googleapis.com/auth/compute",
88891	//     "https://www.googleapis.com/auth/compute.readonly"
88892	//   ]
88893	// }
88894
88895}
88896
88897// method id "compute.licenses.insert":
88898
88899type LicensesInsertCall struct {
88900	s          *Service
88901	project    string
88902	license    *License
88903	urlParams_ gensupport.URLParams
88904	ctx_       context.Context
88905	header_    http.Header
88906}
88907
88908// Insert: Create a License resource in the specified project.
88909func (r *LicensesService) Insert(project string, license *License) *LicensesInsertCall {
88910	c := &LicensesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
88911	c.project = project
88912	c.license = license
88913	return c
88914}
88915
88916// RequestId sets the optional parameter "requestId": An optional
88917// request ID to identify requests. Specify a unique request ID so that
88918// if you must retry your request, the server will know to ignore the
88919// request if it has already been completed.
88920//
88921// For example, consider a situation where you make an initial request
88922// and the request times out. If you make the request again with the
88923// same request ID, the server can check if original operation with the
88924// same request ID was received, and if so, will ignore the second
88925// request. This prevents clients from accidentally creating duplicate
88926// commitments.
88927//
88928// The request ID must be a valid UUID with the exception that zero UUID
88929// is not supported (00000000-0000-0000-0000-000000000000).
88930func (c *LicensesInsertCall) RequestId(requestId string) *LicensesInsertCall {
88931	c.urlParams_.Set("requestId", requestId)
88932	return c
88933}
88934
88935// Fields allows partial responses to be retrieved. See
88936// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
88937// for more information.
88938func (c *LicensesInsertCall) Fields(s ...googleapi.Field) *LicensesInsertCall {
88939	c.urlParams_.Set("fields", googleapi.CombineFields(s))
88940	return c
88941}
88942
88943// Context sets the context to be used in this call's Do method. Any
88944// pending HTTP request will be aborted if the provided context is
88945// canceled.
88946func (c *LicensesInsertCall) Context(ctx context.Context) *LicensesInsertCall {
88947	c.ctx_ = ctx
88948	return c
88949}
88950
88951// Header returns an http.Header that can be modified by the caller to
88952// add HTTP headers to the request.
88953func (c *LicensesInsertCall) Header() http.Header {
88954	if c.header_ == nil {
88955		c.header_ = make(http.Header)
88956	}
88957	return c.header_
88958}
88959
88960func (c *LicensesInsertCall) doRequest(alt string) (*http.Response, error) {
88961	reqHeaders := make(http.Header)
88962	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
88963	for k, v := range c.header_ {
88964		reqHeaders[k] = v
88965	}
88966	reqHeaders.Set("User-Agent", c.s.userAgent())
88967	var body io.Reader = nil
88968	body, err := googleapi.WithoutDataWrapper.JSONReader(c.license)
88969	if err != nil {
88970		return nil, err
88971	}
88972	reqHeaders.Set("Content-Type", "application/json")
88973	c.urlParams_.Set("alt", alt)
88974	c.urlParams_.Set("prettyPrint", "false")
88975	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
88976	urls += "?" + c.urlParams_.Encode()
88977	req, err := http.NewRequest("POST", urls, body)
88978	if err != nil {
88979		return nil, err
88980	}
88981	req.Header = reqHeaders
88982	googleapi.Expand(req.URL, map[string]string{
88983		"project": c.project,
88984	})
88985	return gensupport.SendRequest(c.ctx_, c.s.client, req)
88986}
88987
88988// Do executes the "compute.licenses.insert" call.
88989// Exactly one of *Operation or error will be non-nil. Any non-2xx
88990// status code is an error. Response headers are in either
88991// *Operation.ServerResponse.Header or (if a response was returned at
88992// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
88993// to check whether the returned error was because
88994// http.StatusNotModified was returned.
88995func (c *LicensesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
88996	gensupport.SetOptions(c.urlParams_, opts...)
88997	res, err := c.doRequest("json")
88998	if res != nil && res.StatusCode == http.StatusNotModified {
88999		if res.Body != nil {
89000			res.Body.Close()
89001		}
89002		return nil, &googleapi.Error{
89003			Code:   res.StatusCode,
89004			Header: res.Header,
89005		}
89006	}
89007	if err != nil {
89008		return nil, err
89009	}
89010	defer googleapi.CloseBody(res)
89011	if err := googleapi.CheckResponse(res); err != nil {
89012		return nil, err
89013	}
89014	ret := &Operation{
89015		ServerResponse: googleapi.ServerResponse{
89016			Header:         res.Header,
89017			HTTPStatusCode: res.StatusCode,
89018		},
89019	}
89020	target := &ret
89021	if err := gensupport.DecodeResponse(target, res); err != nil {
89022		return nil, err
89023	}
89024	return ret, nil
89025	// {
89026	//   "description": "Create a License resource in the specified project.",
89027	//   "httpMethod": "POST",
89028	//   "id": "compute.licenses.insert",
89029	//   "parameterOrder": [
89030	//     "project"
89031	//   ],
89032	//   "parameters": {
89033	//     "project": {
89034	//       "description": "Project ID for this request.",
89035	//       "location": "path",
89036	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89037	//       "required": true,
89038	//       "type": "string"
89039	//     },
89040	//     "requestId": {
89041	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89042	//       "location": "query",
89043	//       "type": "string"
89044	//     }
89045	//   },
89046	//   "path": "{project}/global/licenses",
89047	//   "request": {
89048	//     "$ref": "License"
89049	//   },
89050	//   "response": {
89051	//     "$ref": "Operation"
89052	//   },
89053	//   "scopes": [
89054	//     "https://www.googleapis.com/auth/cloud-platform",
89055	//     "https://www.googleapis.com/auth/compute",
89056	//     "https://www.googleapis.com/auth/devstorage.full_control",
89057	//     "https://www.googleapis.com/auth/devstorage.read_only",
89058	//     "https://www.googleapis.com/auth/devstorage.read_write"
89059	//   ]
89060	// }
89061
89062}
89063
89064// method id "compute.licenses.list":
89065
89066type LicensesListCall struct {
89067	s            *Service
89068	project      string
89069	urlParams_   gensupport.URLParams
89070	ifNoneMatch_ string
89071	ctx_         context.Context
89072	header_      http.Header
89073}
89074
89075// List: Retrieves the list of licenses available in the specified
89076// project. This method does not get any licenses that belong to other
89077// projects, including licenses attached to publicly-available images,
89078// like Debian 9. If you want to get a list of publicly-available
89079// licenses, use this method to make a request to the respective image
89080// project, such as debian-cloud or windows-cloud.
89081func (r *LicensesService) List(project string) *LicensesListCall {
89082	c := &LicensesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89083	c.project = project
89084	return c
89085}
89086
89087// Filter sets the optional parameter "filter": A filter expression that
89088// filters resources listed in the response. The expression must specify
89089// the field name, a comparison operator, and the value that you want to
89090// use for filtering. The value must be a string, a number, or a
89091// boolean. The comparison operator must be either =, !=, >, or <.
89092//
89093// For example, if you are filtering Compute Engine instances, you can
89094// exclude instances named example-instance by specifying name !=
89095// example-instance.
89096//
89097// You can also filter nested fields. For example, you could specify
89098// scheduling.automaticRestart = false to include instances only if they
89099// are not scheduled for automatic restarts. You can use filtering on
89100// nested fields to filter based on resource labels.
89101//
89102// To filter on multiple expressions, provide each separate expression
89103// within parentheses. For example, (scheduling.automaticRestart = true)
89104// (cpuPlatform = "Intel Skylake"). By default, each expression is an
89105// AND expression. However, you can include AND and OR expressions
89106// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
89107// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
89108// true).
89109func (c *LicensesListCall) Filter(filter string) *LicensesListCall {
89110	c.urlParams_.Set("filter", filter)
89111	return c
89112}
89113
89114// MaxResults sets the optional parameter "maxResults": The maximum
89115// number of results per page that should be returned. If the number of
89116// available results is larger than maxResults, Compute Engine returns a
89117// nextPageToken that can be used to get the next page of results in
89118// subsequent list requests. Acceptable values are 0 to 500, inclusive.
89119// (Default: 500)
89120func (c *LicensesListCall) MaxResults(maxResults int64) *LicensesListCall {
89121	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
89122	return c
89123}
89124
89125// OrderBy sets the optional parameter "orderBy": Sorts list results by
89126// a certain order. By default, results are returned in alphanumerical
89127// order based on the resource name.
89128//
89129// You can also sort results in descending order based on the creation
89130// timestamp using orderBy="creationTimestamp desc". This sorts results
89131// based on the creationTimestamp field in reverse chronological order
89132// (newest result first). Use this to sort resources like operations so
89133// that the newest operation is returned first.
89134//
89135// Currently, only sorting by name or creationTimestamp desc is
89136// supported.
89137func (c *LicensesListCall) OrderBy(orderBy string) *LicensesListCall {
89138	c.urlParams_.Set("orderBy", orderBy)
89139	return c
89140}
89141
89142// PageToken sets the optional parameter "pageToken": Specifies a page
89143// token to use. Set pageToken to the nextPageToken returned by a
89144// previous list request to get the next page of results.
89145func (c *LicensesListCall) PageToken(pageToken string) *LicensesListCall {
89146	c.urlParams_.Set("pageToken", pageToken)
89147	return c
89148}
89149
89150// Fields allows partial responses to be retrieved. See
89151// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89152// for more information.
89153func (c *LicensesListCall) Fields(s ...googleapi.Field) *LicensesListCall {
89154	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89155	return c
89156}
89157
89158// IfNoneMatch sets the optional parameter which makes the operation
89159// fail if the object's ETag matches the given value. This is useful for
89160// getting updates only after the object has changed since the last
89161// request. Use googleapi.IsNotModified to check whether the response
89162// error from Do is the result of In-None-Match.
89163func (c *LicensesListCall) IfNoneMatch(entityTag string) *LicensesListCall {
89164	c.ifNoneMatch_ = entityTag
89165	return c
89166}
89167
89168// Context sets the context to be used in this call's Do method. Any
89169// pending HTTP request will be aborted if the provided context is
89170// canceled.
89171func (c *LicensesListCall) Context(ctx context.Context) *LicensesListCall {
89172	c.ctx_ = ctx
89173	return c
89174}
89175
89176// Header returns an http.Header that can be modified by the caller to
89177// add HTTP headers to the request.
89178func (c *LicensesListCall) Header() http.Header {
89179	if c.header_ == nil {
89180		c.header_ = make(http.Header)
89181	}
89182	return c.header_
89183}
89184
89185func (c *LicensesListCall) doRequest(alt string) (*http.Response, error) {
89186	reqHeaders := make(http.Header)
89187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89188	for k, v := range c.header_ {
89189		reqHeaders[k] = v
89190	}
89191	reqHeaders.Set("User-Agent", c.s.userAgent())
89192	if c.ifNoneMatch_ != "" {
89193		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89194	}
89195	var body io.Reader = nil
89196	c.urlParams_.Set("alt", alt)
89197	c.urlParams_.Set("prettyPrint", "false")
89198	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses")
89199	urls += "?" + c.urlParams_.Encode()
89200	req, err := http.NewRequest("GET", urls, body)
89201	if err != nil {
89202		return nil, err
89203	}
89204	req.Header = reqHeaders
89205	googleapi.Expand(req.URL, map[string]string{
89206		"project": c.project,
89207	})
89208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89209}
89210
89211// Do executes the "compute.licenses.list" call.
89212// Exactly one of *LicensesListResponse or error will be non-nil. Any
89213// non-2xx status code is an error. Response headers are in either
89214// *LicensesListResponse.ServerResponse.Header or (if a response was
89215// returned at all) in error.(*googleapi.Error).Header. Use
89216// googleapi.IsNotModified to check whether the returned error was
89217// because http.StatusNotModified was returned.
89218func (c *LicensesListCall) Do(opts ...googleapi.CallOption) (*LicensesListResponse, error) {
89219	gensupport.SetOptions(c.urlParams_, opts...)
89220	res, err := c.doRequest("json")
89221	if res != nil && res.StatusCode == http.StatusNotModified {
89222		if res.Body != nil {
89223			res.Body.Close()
89224		}
89225		return nil, &googleapi.Error{
89226			Code:   res.StatusCode,
89227			Header: res.Header,
89228		}
89229	}
89230	if err != nil {
89231		return nil, err
89232	}
89233	defer googleapi.CloseBody(res)
89234	if err := googleapi.CheckResponse(res); err != nil {
89235		return nil, err
89236	}
89237	ret := &LicensesListResponse{
89238		ServerResponse: googleapi.ServerResponse{
89239			Header:         res.Header,
89240			HTTPStatusCode: res.StatusCode,
89241		},
89242	}
89243	target := &ret
89244	if err := gensupport.DecodeResponse(target, res); err != nil {
89245		return nil, err
89246	}
89247	return ret, nil
89248	// {
89249	//   "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.",
89250	//   "httpMethod": "GET",
89251	//   "id": "compute.licenses.list",
89252	//   "parameterOrder": [
89253	//     "project"
89254	//   ],
89255	//   "parameters": {
89256	//     "filter": {
89257	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
89258	//       "location": "query",
89259	//       "type": "string"
89260	//     },
89261	//     "maxResults": {
89262	//       "default": "500",
89263	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
89264	//       "format": "uint32",
89265	//       "location": "query",
89266	//       "minimum": "0",
89267	//       "type": "integer"
89268	//     },
89269	//     "orderBy": {
89270	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
89271	//       "location": "query",
89272	//       "type": "string"
89273	//     },
89274	//     "pageToken": {
89275	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
89276	//       "location": "query",
89277	//       "type": "string"
89278	//     },
89279	//     "project": {
89280	//       "description": "Project ID for this request.",
89281	//       "location": "path",
89282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89283	//       "required": true,
89284	//       "type": "string"
89285	//     }
89286	//   },
89287	//   "path": "{project}/global/licenses",
89288	//   "response": {
89289	//     "$ref": "LicensesListResponse"
89290	//   },
89291	//   "scopes": [
89292	//     "https://www.googleapis.com/auth/cloud-platform",
89293	//     "https://www.googleapis.com/auth/compute",
89294	//     "https://www.googleapis.com/auth/compute.readonly"
89295	//   ]
89296	// }
89297
89298}
89299
89300// Pages invokes f for each page of results.
89301// A non-nil error returned from f will halt the iteration.
89302// The provided context supersedes any context provided to the Context method.
89303func (c *LicensesListCall) Pages(ctx context.Context, f func(*LicensesListResponse) error) error {
89304	c.ctx_ = ctx
89305	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
89306	for {
89307		x, err := c.Do()
89308		if err != nil {
89309			return err
89310		}
89311		if err := f(x); err != nil {
89312			return err
89313		}
89314		if x.NextPageToken == "" {
89315			return nil
89316		}
89317		c.PageToken(x.NextPageToken)
89318	}
89319}
89320
89321// method id "compute.licenses.setIamPolicy":
89322
89323type LicensesSetIamPolicyCall struct {
89324	s                      *Service
89325	project                string
89326	resource               string
89327	globalsetpolicyrequest *GlobalSetPolicyRequest
89328	urlParams_             gensupport.URLParams
89329	ctx_                   context.Context
89330	header_                http.Header
89331}
89332
89333// SetIamPolicy: Sets the access control policy on the specified
89334// resource. Replaces any existing policy.
89335func (r *LicensesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *LicensesSetIamPolicyCall {
89336	c := &LicensesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89337	c.project = project
89338	c.resource = resource
89339	c.globalsetpolicyrequest = globalsetpolicyrequest
89340	return c
89341}
89342
89343// Fields allows partial responses to be retrieved. See
89344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89345// for more information.
89346func (c *LicensesSetIamPolicyCall) Fields(s ...googleapi.Field) *LicensesSetIamPolicyCall {
89347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89348	return c
89349}
89350
89351// Context sets the context to be used in this call's Do method. Any
89352// pending HTTP request will be aborted if the provided context is
89353// canceled.
89354func (c *LicensesSetIamPolicyCall) Context(ctx context.Context) *LicensesSetIamPolicyCall {
89355	c.ctx_ = ctx
89356	return c
89357}
89358
89359// Header returns an http.Header that can be modified by the caller to
89360// add HTTP headers to the request.
89361func (c *LicensesSetIamPolicyCall) Header() http.Header {
89362	if c.header_ == nil {
89363		c.header_ = make(http.Header)
89364	}
89365	return c.header_
89366}
89367
89368func (c *LicensesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
89369	reqHeaders := make(http.Header)
89370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89371	for k, v := range c.header_ {
89372		reqHeaders[k] = v
89373	}
89374	reqHeaders.Set("User-Agent", c.s.userAgent())
89375	var body io.Reader = nil
89376	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
89377	if err != nil {
89378		return nil, err
89379	}
89380	reqHeaders.Set("Content-Type", "application/json")
89381	c.urlParams_.Set("alt", alt)
89382	c.urlParams_.Set("prettyPrint", "false")
89383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/licenses/{resource}/setIamPolicy")
89384	urls += "?" + c.urlParams_.Encode()
89385	req, err := http.NewRequest("POST", urls, body)
89386	if err != nil {
89387		return nil, err
89388	}
89389	req.Header = reqHeaders
89390	googleapi.Expand(req.URL, map[string]string{
89391		"project":  c.project,
89392		"resource": c.resource,
89393	})
89394	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89395}
89396
89397// Do executes the "compute.licenses.setIamPolicy" call.
89398// Exactly one of *Policy or error will be non-nil. Any non-2xx status
89399// code is an error. Response headers are in either
89400// *Policy.ServerResponse.Header or (if a response was returned at all)
89401// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
89402// check whether the returned error was because http.StatusNotModified
89403// was returned.
89404func (c *LicensesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
89405	gensupport.SetOptions(c.urlParams_, opts...)
89406	res, err := c.doRequest("json")
89407	if res != nil && res.StatusCode == http.StatusNotModified {
89408		if res.Body != nil {
89409			res.Body.Close()
89410		}
89411		return nil, &googleapi.Error{
89412			Code:   res.StatusCode,
89413			Header: res.Header,
89414		}
89415	}
89416	if err != nil {
89417		return nil, err
89418	}
89419	defer googleapi.CloseBody(res)
89420	if err := googleapi.CheckResponse(res); err != nil {
89421		return nil, err
89422	}
89423	ret := &Policy{
89424		ServerResponse: googleapi.ServerResponse{
89425			Header:         res.Header,
89426			HTTPStatusCode: res.StatusCode,
89427		},
89428	}
89429	target := &ret
89430	if err := gensupport.DecodeResponse(target, res); err != nil {
89431		return nil, err
89432	}
89433	return ret, nil
89434	// {
89435	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
89436	//   "httpMethod": "POST",
89437	//   "id": "compute.licenses.setIamPolicy",
89438	//   "parameterOrder": [
89439	//     "project",
89440	//     "resource"
89441	//   ],
89442	//   "parameters": {
89443	//     "project": {
89444	//       "description": "Project ID for this request.",
89445	//       "location": "path",
89446	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89447	//       "required": true,
89448	//       "type": "string"
89449	//     },
89450	//     "resource": {
89451	//       "description": "Name or id of the resource for this request.",
89452	//       "location": "path",
89453	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89454	//       "required": true,
89455	//       "type": "string"
89456	//     }
89457	//   },
89458	//   "path": "{project}/global/licenses/{resource}/setIamPolicy",
89459	//   "request": {
89460	//     "$ref": "GlobalSetPolicyRequest"
89461	//   },
89462	//   "response": {
89463	//     "$ref": "Policy"
89464	//   },
89465	//   "scopes": [
89466	//     "https://www.googleapis.com/auth/cloud-platform",
89467	//     "https://www.googleapis.com/auth/compute"
89468	//   ]
89469	// }
89470
89471}
89472
89473// method id "compute.machineImages.delete":
89474
89475type MachineImagesDeleteCall struct {
89476	s            *Service
89477	project      string
89478	machineImage string
89479	urlParams_   gensupport.URLParams
89480	ctx_         context.Context
89481	header_      http.Header
89482}
89483
89484// Delete: Deletes the specified machine image. Deleting a machine image
89485// is permanent and cannot be undone.
89486func (r *MachineImagesService) Delete(project string, machineImage string) *MachineImagesDeleteCall {
89487	c := &MachineImagesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89488	c.project = project
89489	c.machineImage = machineImage
89490	return c
89491}
89492
89493// RequestId sets the optional parameter "requestId": An optional
89494// request ID to identify requests. Specify a unique request ID so that
89495// if you must retry your request, the server will know to ignore the
89496// request if it has already been completed.
89497//
89498// For example, consider a situation where you make an initial request
89499// and the request times out. If you make the request again with the
89500// same request ID, the server can check if original operation with the
89501// same request ID was received, and if so, will ignore the second
89502// request. This prevents clients from accidentally creating duplicate
89503// commitments.
89504//
89505// The request ID must be a valid UUID with the exception that zero UUID
89506// is not supported (00000000-0000-0000-0000-000000000000).
89507func (c *MachineImagesDeleteCall) RequestId(requestId string) *MachineImagesDeleteCall {
89508	c.urlParams_.Set("requestId", requestId)
89509	return c
89510}
89511
89512// Fields allows partial responses to be retrieved. See
89513// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89514// for more information.
89515func (c *MachineImagesDeleteCall) Fields(s ...googleapi.Field) *MachineImagesDeleteCall {
89516	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89517	return c
89518}
89519
89520// Context sets the context to be used in this call's Do method. Any
89521// pending HTTP request will be aborted if the provided context is
89522// canceled.
89523func (c *MachineImagesDeleteCall) Context(ctx context.Context) *MachineImagesDeleteCall {
89524	c.ctx_ = ctx
89525	return c
89526}
89527
89528// Header returns an http.Header that can be modified by the caller to
89529// add HTTP headers to the request.
89530func (c *MachineImagesDeleteCall) Header() http.Header {
89531	if c.header_ == nil {
89532		c.header_ = make(http.Header)
89533	}
89534	return c.header_
89535}
89536
89537func (c *MachineImagesDeleteCall) doRequest(alt string) (*http.Response, error) {
89538	reqHeaders := make(http.Header)
89539	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89540	for k, v := range c.header_ {
89541		reqHeaders[k] = v
89542	}
89543	reqHeaders.Set("User-Agent", c.s.userAgent())
89544	var body io.Reader = nil
89545	c.urlParams_.Set("alt", alt)
89546	c.urlParams_.Set("prettyPrint", "false")
89547	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
89548	urls += "?" + c.urlParams_.Encode()
89549	req, err := http.NewRequest("DELETE", urls, body)
89550	if err != nil {
89551		return nil, err
89552	}
89553	req.Header = reqHeaders
89554	googleapi.Expand(req.URL, map[string]string{
89555		"project":      c.project,
89556		"machineImage": c.machineImage,
89557	})
89558	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89559}
89560
89561// Do executes the "compute.machineImages.delete" call.
89562// Exactly one of *Operation or error will be non-nil. Any non-2xx
89563// status code is an error. Response headers are in either
89564// *Operation.ServerResponse.Header or (if a response was returned at
89565// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89566// to check whether the returned error was because
89567// http.StatusNotModified was returned.
89568func (c *MachineImagesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
89569	gensupport.SetOptions(c.urlParams_, opts...)
89570	res, err := c.doRequest("json")
89571	if res != nil && res.StatusCode == http.StatusNotModified {
89572		if res.Body != nil {
89573			res.Body.Close()
89574		}
89575		return nil, &googleapi.Error{
89576			Code:   res.StatusCode,
89577			Header: res.Header,
89578		}
89579	}
89580	if err != nil {
89581		return nil, err
89582	}
89583	defer googleapi.CloseBody(res)
89584	if err := googleapi.CheckResponse(res); err != nil {
89585		return nil, err
89586	}
89587	ret := &Operation{
89588		ServerResponse: googleapi.ServerResponse{
89589			Header:         res.Header,
89590			HTTPStatusCode: res.StatusCode,
89591		},
89592	}
89593	target := &ret
89594	if err := gensupport.DecodeResponse(target, res); err != nil {
89595		return nil, err
89596	}
89597	return ret, nil
89598	// {
89599	//   "description": "Deletes the specified machine image. Deleting a machine image is permanent and cannot be undone.",
89600	//   "httpMethod": "DELETE",
89601	//   "id": "compute.machineImages.delete",
89602	//   "parameterOrder": [
89603	//     "project",
89604	//     "machineImage"
89605	//   ],
89606	//   "parameters": {
89607	//     "machineImage": {
89608	//       "description": "The name of the machine image to delete.",
89609	//       "location": "path",
89610	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89611	//       "required": true,
89612	//       "type": "string"
89613	//     },
89614	//     "project": {
89615	//       "description": "Project ID for this request.",
89616	//       "location": "path",
89617	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89618	//       "required": true,
89619	//       "type": "string"
89620	//     },
89621	//     "requestId": {
89622	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
89623	//       "location": "query",
89624	//       "type": "string"
89625	//     }
89626	//   },
89627	//   "path": "{project}/global/machineImages/{machineImage}",
89628	//   "response": {
89629	//     "$ref": "Operation"
89630	//   },
89631	//   "scopes": [
89632	//     "https://www.googleapis.com/auth/cloud-platform",
89633	//     "https://www.googleapis.com/auth/compute"
89634	//   ]
89635	// }
89636
89637}
89638
89639// method id "compute.machineImages.get":
89640
89641type MachineImagesGetCall struct {
89642	s            *Service
89643	project      string
89644	machineImage string
89645	urlParams_   gensupport.URLParams
89646	ifNoneMatch_ string
89647	ctx_         context.Context
89648	header_      http.Header
89649}
89650
89651// Get: Returns the specified machine image. Gets a list of available
89652// machine images by making a list() request.
89653func (r *MachineImagesService) Get(project string, machineImage string) *MachineImagesGetCall {
89654	c := &MachineImagesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89655	c.project = project
89656	c.machineImage = machineImage
89657	return c
89658}
89659
89660// Fields allows partial responses to be retrieved. See
89661// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89662// for more information.
89663func (c *MachineImagesGetCall) Fields(s ...googleapi.Field) *MachineImagesGetCall {
89664	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89665	return c
89666}
89667
89668// IfNoneMatch sets the optional parameter which makes the operation
89669// fail if the object's ETag matches the given value. This is useful for
89670// getting updates only after the object has changed since the last
89671// request. Use googleapi.IsNotModified to check whether the response
89672// error from Do is the result of In-None-Match.
89673func (c *MachineImagesGetCall) IfNoneMatch(entityTag string) *MachineImagesGetCall {
89674	c.ifNoneMatch_ = entityTag
89675	return c
89676}
89677
89678// Context sets the context to be used in this call's Do method. Any
89679// pending HTTP request will be aborted if the provided context is
89680// canceled.
89681func (c *MachineImagesGetCall) Context(ctx context.Context) *MachineImagesGetCall {
89682	c.ctx_ = ctx
89683	return c
89684}
89685
89686// Header returns an http.Header that can be modified by the caller to
89687// add HTTP headers to the request.
89688func (c *MachineImagesGetCall) Header() http.Header {
89689	if c.header_ == nil {
89690		c.header_ = make(http.Header)
89691	}
89692	return c.header_
89693}
89694
89695func (c *MachineImagesGetCall) doRequest(alt string) (*http.Response, error) {
89696	reqHeaders := make(http.Header)
89697	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89698	for k, v := range c.header_ {
89699		reqHeaders[k] = v
89700	}
89701	reqHeaders.Set("User-Agent", c.s.userAgent())
89702	if c.ifNoneMatch_ != "" {
89703		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89704	}
89705	var body io.Reader = nil
89706	c.urlParams_.Set("alt", alt)
89707	c.urlParams_.Set("prettyPrint", "false")
89708	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{machineImage}")
89709	urls += "?" + c.urlParams_.Encode()
89710	req, err := http.NewRequest("GET", urls, body)
89711	if err != nil {
89712		return nil, err
89713	}
89714	req.Header = reqHeaders
89715	googleapi.Expand(req.URL, map[string]string{
89716		"project":      c.project,
89717		"machineImage": c.machineImage,
89718	})
89719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89720}
89721
89722// Do executes the "compute.machineImages.get" call.
89723// Exactly one of *MachineImage or error will be non-nil. Any non-2xx
89724// status code is an error. Response headers are in either
89725// *MachineImage.ServerResponse.Header or (if a response was returned at
89726// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
89727// to check whether the returned error was because
89728// http.StatusNotModified was returned.
89729func (c *MachineImagesGetCall) Do(opts ...googleapi.CallOption) (*MachineImage, error) {
89730	gensupport.SetOptions(c.urlParams_, opts...)
89731	res, err := c.doRequest("json")
89732	if res != nil && res.StatusCode == http.StatusNotModified {
89733		if res.Body != nil {
89734			res.Body.Close()
89735		}
89736		return nil, &googleapi.Error{
89737			Code:   res.StatusCode,
89738			Header: res.Header,
89739		}
89740	}
89741	if err != nil {
89742		return nil, err
89743	}
89744	defer googleapi.CloseBody(res)
89745	if err := googleapi.CheckResponse(res); err != nil {
89746		return nil, err
89747	}
89748	ret := &MachineImage{
89749		ServerResponse: googleapi.ServerResponse{
89750			Header:         res.Header,
89751			HTTPStatusCode: res.StatusCode,
89752		},
89753	}
89754	target := &ret
89755	if err := gensupport.DecodeResponse(target, res); err != nil {
89756		return nil, err
89757	}
89758	return ret, nil
89759	// {
89760	//   "description": "Returns the specified machine image. Gets a list of available machine images by making a list() request.",
89761	//   "httpMethod": "GET",
89762	//   "id": "compute.machineImages.get",
89763	//   "parameterOrder": [
89764	//     "project",
89765	//     "machineImage"
89766	//   ],
89767	//   "parameters": {
89768	//     "machineImage": {
89769	//       "description": "The name of the machine image.",
89770	//       "location": "path",
89771	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89772	//       "required": true,
89773	//       "type": "string"
89774	//     },
89775	//     "project": {
89776	//       "description": "Project ID for this request.",
89777	//       "location": "path",
89778	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89779	//       "required": true,
89780	//       "type": "string"
89781	//     }
89782	//   },
89783	//   "path": "{project}/global/machineImages/{machineImage}",
89784	//   "response": {
89785	//     "$ref": "MachineImage"
89786	//   },
89787	//   "scopes": [
89788	//     "https://www.googleapis.com/auth/cloud-platform",
89789	//     "https://www.googleapis.com/auth/compute",
89790	//     "https://www.googleapis.com/auth/compute.readonly"
89791	//   ]
89792	// }
89793
89794}
89795
89796// method id "compute.machineImages.getIamPolicy":
89797
89798type MachineImagesGetIamPolicyCall struct {
89799	s            *Service
89800	project      string
89801	resource     string
89802	urlParams_   gensupport.URLParams
89803	ifNoneMatch_ string
89804	ctx_         context.Context
89805	header_      http.Header
89806}
89807
89808// GetIamPolicy: Gets the access control policy for a resource. May be
89809// empty if no such policy or resource exists.
89810func (r *MachineImagesService) GetIamPolicy(project string, resource string) *MachineImagesGetIamPolicyCall {
89811	c := &MachineImagesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89812	c.project = project
89813	c.resource = resource
89814	return c
89815}
89816
89817// OptionsRequestedPolicyVersion sets the optional parameter
89818// "optionsRequestedPolicyVersion": Requested IAM Policy version.
89819func (c *MachineImagesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *MachineImagesGetIamPolicyCall {
89820	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
89821	return c
89822}
89823
89824// Fields allows partial responses to be retrieved. See
89825// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
89826// for more information.
89827func (c *MachineImagesGetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesGetIamPolicyCall {
89828	c.urlParams_.Set("fields", googleapi.CombineFields(s))
89829	return c
89830}
89831
89832// IfNoneMatch sets the optional parameter which makes the operation
89833// fail if the object's ETag matches the given value. This is useful for
89834// getting updates only after the object has changed since the last
89835// request. Use googleapi.IsNotModified to check whether the response
89836// error from Do is the result of In-None-Match.
89837func (c *MachineImagesGetIamPolicyCall) IfNoneMatch(entityTag string) *MachineImagesGetIamPolicyCall {
89838	c.ifNoneMatch_ = entityTag
89839	return c
89840}
89841
89842// Context sets the context to be used in this call's Do method. Any
89843// pending HTTP request will be aborted if the provided context is
89844// canceled.
89845func (c *MachineImagesGetIamPolicyCall) Context(ctx context.Context) *MachineImagesGetIamPolicyCall {
89846	c.ctx_ = ctx
89847	return c
89848}
89849
89850// Header returns an http.Header that can be modified by the caller to
89851// add HTTP headers to the request.
89852func (c *MachineImagesGetIamPolicyCall) Header() http.Header {
89853	if c.header_ == nil {
89854		c.header_ = make(http.Header)
89855	}
89856	return c.header_
89857}
89858
89859func (c *MachineImagesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
89860	reqHeaders := make(http.Header)
89861	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
89862	for k, v := range c.header_ {
89863		reqHeaders[k] = v
89864	}
89865	reqHeaders.Set("User-Agent", c.s.userAgent())
89866	if c.ifNoneMatch_ != "" {
89867		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
89868	}
89869	var body io.Reader = nil
89870	c.urlParams_.Set("alt", alt)
89871	c.urlParams_.Set("prettyPrint", "false")
89872	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/getIamPolicy")
89873	urls += "?" + c.urlParams_.Encode()
89874	req, err := http.NewRequest("GET", urls, body)
89875	if err != nil {
89876		return nil, err
89877	}
89878	req.Header = reqHeaders
89879	googleapi.Expand(req.URL, map[string]string{
89880		"project":  c.project,
89881		"resource": c.resource,
89882	})
89883	return gensupport.SendRequest(c.ctx_, c.s.client, req)
89884}
89885
89886// Do executes the "compute.machineImages.getIamPolicy" call.
89887// Exactly one of *Policy or error will be non-nil. Any non-2xx status
89888// code is an error. Response headers are in either
89889// *Policy.ServerResponse.Header or (if a response was returned at all)
89890// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
89891// check whether the returned error was because http.StatusNotModified
89892// was returned.
89893func (c *MachineImagesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
89894	gensupport.SetOptions(c.urlParams_, opts...)
89895	res, err := c.doRequest("json")
89896	if res != nil && res.StatusCode == http.StatusNotModified {
89897		if res.Body != nil {
89898			res.Body.Close()
89899		}
89900		return nil, &googleapi.Error{
89901			Code:   res.StatusCode,
89902			Header: res.Header,
89903		}
89904	}
89905	if err != nil {
89906		return nil, err
89907	}
89908	defer googleapi.CloseBody(res)
89909	if err := googleapi.CheckResponse(res); err != nil {
89910		return nil, err
89911	}
89912	ret := &Policy{
89913		ServerResponse: googleapi.ServerResponse{
89914			Header:         res.Header,
89915			HTTPStatusCode: res.StatusCode,
89916		},
89917	}
89918	target := &ret
89919	if err := gensupport.DecodeResponse(target, res); err != nil {
89920		return nil, err
89921	}
89922	return ret, nil
89923	// {
89924	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
89925	//   "httpMethod": "GET",
89926	//   "id": "compute.machineImages.getIamPolicy",
89927	//   "parameterOrder": [
89928	//     "project",
89929	//     "resource"
89930	//   ],
89931	//   "parameters": {
89932	//     "optionsRequestedPolicyVersion": {
89933	//       "description": "Requested IAM Policy version.",
89934	//       "format": "int32",
89935	//       "location": "query",
89936	//       "type": "integer"
89937	//     },
89938	//     "project": {
89939	//       "description": "Project ID for this request.",
89940	//       "location": "path",
89941	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
89942	//       "required": true,
89943	//       "type": "string"
89944	//     },
89945	//     "resource": {
89946	//       "description": "Name or id of the resource for this request.",
89947	//       "location": "path",
89948	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
89949	//       "required": true,
89950	//       "type": "string"
89951	//     }
89952	//   },
89953	//   "path": "{project}/global/machineImages/{resource}/getIamPolicy",
89954	//   "response": {
89955	//     "$ref": "Policy"
89956	//   },
89957	//   "scopes": [
89958	//     "https://www.googleapis.com/auth/cloud-platform",
89959	//     "https://www.googleapis.com/auth/compute",
89960	//     "https://www.googleapis.com/auth/compute.readonly"
89961	//   ]
89962	// }
89963
89964}
89965
89966// method id "compute.machineImages.insert":
89967
89968type MachineImagesInsertCall struct {
89969	s            *Service
89970	project      string
89971	machineimage *MachineImage
89972	urlParams_   gensupport.URLParams
89973	ctx_         context.Context
89974	header_      http.Header
89975}
89976
89977// Insert: Creates a machine image in the specified project using the
89978// data that is included in the request. If you are creating a new
89979// machine image to update an existing instance, your new machine image
89980// should use the same network or, if applicable, the same subnetwork as
89981// the original instance.
89982func (r *MachineImagesService) Insert(project string, machineimage *MachineImage) *MachineImagesInsertCall {
89983	c := &MachineImagesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
89984	c.project = project
89985	c.machineimage = machineimage
89986	return c
89987}
89988
89989// RequestId sets the optional parameter "requestId": An optional
89990// request ID to identify requests. Specify a unique request ID so that
89991// if you must retry your request, the server will know to ignore the
89992// request if it has already been completed.
89993//
89994// For example, consider a situation where you make an initial request
89995// and the request times out. If you make the request again with the
89996// same request ID, the server can check if original operation with the
89997// same request ID was received, and if so, will ignore the second
89998// request. This prevents clients from accidentally creating duplicate
89999// commitments.
90000//
90001// The request ID must be a valid UUID with the exception that zero UUID
90002// is not supported (00000000-0000-0000-0000-000000000000).
90003func (c *MachineImagesInsertCall) RequestId(requestId string) *MachineImagesInsertCall {
90004	c.urlParams_.Set("requestId", requestId)
90005	return c
90006}
90007
90008// SourceInstance sets the optional parameter "sourceInstance":
90009// Required. Source instance that is used to create the machine image
90010// from.
90011func (c *MachineImagesInsertCall) SourceInstance(sourceInstance string) *MachineImagesInsertCall {
90012	c.urlParams_.Set("sourceInstance", sourceInstance)
90013	return c
90014}
90015
90016// Fields allows partial responses to be retrieved. See
90017// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90018// for more information.
90019func (c *MachineImagesInsertCall) Fields(s ...googleapi.Field) *MachineImagesInsertCall {
90020	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90021	return c
90022}
90023
90024// Context sets the context to be used in this call's Do method. Any
90025// pending HTTP request will be aborted if the provided context is
90026// canceled.
90027func (c *MachineImagesInsertCall) Context(ctx context.Context) *MachineImagesInsertCall {
90028	c.ctx_ = ctx
90029	return c
90030}
90031
90032// Header returns an http.Header that can be modified by the caller to
90033// add HTTP headers to the request.
90034func (c *MachineImagesInsertCall) Header() http.Header {
90035	if c.header_ == nil {
90036		c.header_ = make(http.Header)
90037	}
90038	return c.header_
90039}
90040
90041func (c *MachineImagesInsertCall) doRequest(alt string) (*http.Response, error) {
90042	reqHeaders := make(http.Header)
90043	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90044	for k, v := range c.header_ {
90045		reqHeaders[k] = v
90046	}
90047	reqHeaders.Set("User-Agent", c.s.userAgent())
90048	var body io.Reader = nil
90049	body, err := googleapi.WithoutDataWrapper.JSONReader(c.machineimage)
90050	if err != nil {
90051		return nil, err
90052	}
90053	reqHeaders.Set("Content-Type", "application/json")
90054	c.urlParams_.Set("alt", alt)
90055	c.urlParams_.Set("prettyPrint", "false")
90056	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
90057	urls += "?" + c.urlParams_.Encode()
90058	req, err := http.NewRequest("POST", urls, body)
90059	if err != nil {
90060		return nil, err
90061	}
90062	req.Header = reqHeaders
90063	googleapi.Expand(req.URL, map[string]string{
90064		"project": c.project,
90065	})
90066	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90067}
90068
90069// Do executes the "compute.machineImages.insert" call.
90070// Exactly one of *Operation or error will be non-nil. Any non-2xx
90071// status code is an error. Response headers are in either
90072// *Operation.ServerResponse.Header or (if a response was returned at
90073// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
90074// to check whether the returned error was because
90075// http.StatusNotModified was returned.
90076func (c *MachineImagesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
90077	gensupport.SetOptions(c.urlParams_, opts...)
90078	res, err := c.doRequest("json")
90079	if res != nil && res.StatusCode == http.StatusNotModified {
90080		if res.Body != nil {
90081			res.Body.Close()
90082		}
90083		return nil, &googleapi.Error{
90084			Code:   res.StatusCode,
90085			Header: res.Header,
90086		}
90087	}
90088	if err != nil {
90089		return nil, err
90090	}
90091	defer googleapi.CloseBody(res)
90092	if err := googleapi.CheckResponse(res); err != nil {
90093		return nil, err
90094	}
90095	ret := &Operation{
90096		ServerResponse: googleapi.ServerResponse{
90097			Header:         res.Header,
90098			HTTPStatusCode: res.StatusCode,
90099		},
90100	}
90101	target := &ret
90102	if err := gensupport.DecodeResponse(target, res); err != nil {
90103		return nil, err
90104	}
90105	return ret, nil
90106	// {
90107	//   "description": "Creates a machine image in the specified project using the data that is included in the request. If you are creating a new machine image to update an existing instance, your new machine image should use the same network or, if applicable, the same subnetwork as the original instance.",
90108	//   "httpMethod": "POST",
90109	//   "id": "compute.machineImages.insert",
90110	//   "parameterOrder": [
90111	//     "project"
90112	//   ],
90113	//   "parameters": {
90114	//     "project": {
90115	//       "description": "Project ID for this request.",
90116	//       "location": "path",
90117	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90118	//       "required": true,
90119	//       "type": "string"
90120	//     },
90121	//     "requestId": {
90122	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
90123	//       "location": "query",
90124	//       "type": "string"
90125	//     },
90126	//     "sourceInstance": {
90127	//       "description": "Required. Source instance that is used to create the machine image from.",
90128	//       "location": "query",
90129	//       "type": "string"
90130	//     }
90131	//   },
90132	//   "path": "{project}/global/machineImages",
90133	//   "request": {
90134	//     "$ref": "MachineImage"
90135	//   },
90136	//   "response": {
90137	//     "$ref": "Operation"
90138	//   },
90139	//   "scopes": [
90140	//     "https://www.googleapis.com/auth/cloud-platform",
90141	//     "https://www.googleapis.com/auth/compute"
90142	//   ]
90143	// }
90144
90145}
90146
90147// method id "compute.machineImages.list":
90148
90149type MachineImagesListCall struct {
90150	s            *Service
90151	project      string
90152	urlParams_   gensupport.URLParams
90153	ifNoneMatch_ string
90154	ctx_         context.Context
90155	header_      http.Header
90156}
90157
90158// List: Retrieves a list of machine images that are contained within
90159// the specified project.
90160func (r *MachineImagesService) List(project string) *MachineImagesListCall {
90161	c := &MachineImagesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90162	c.project = project
90163	return c
90164}
90165
90166// Filter sets the optional parameter "filter": A filter expression that
90167// filters resources listed in the response. The expression must specify
90168// the field name, a comparison operator, and the value that you want to
90169// use for filtering. The value must be a string, a number, or a
90170// boolean. The comparison operator must be either =, !=, >, or <.
90171//
90172// For example, if you are filtering Compute Engine instances, you can
90173// exclude instances named example-instance by specifying name !=
90174// example-instance.
90175//
90176// You can also filter nested fields. For example, you could specify
90177// scheduling.automaticRestart = false to include instances only if they
90178// are not scheduled for automatic restarts. You can use filtering on
90179// nested fields to filter based on resource labels.
90180//
90181// To filter on multiple expressions, provide each separate expression
90182// within parentheses. For example, (scheduling.automaticRestart = true)
90183// (cpuPlatform = "Intel Skylake"). By default, each expression is an
90184// AND expression. However, you can include AND and OR expressions
90185// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
90186// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
90187// true).
90188func (c *MachineImagesListCall) Filter(filter string) *MachineImagesListCall {
90189	c.urlParams_.Set("filter", filter)
90190	return c
90191}
90192
90193// MaxResults sets the optional parameter "maxResults": The maximum
90194// number of results per page that should be returned. If the number of
90195// available results is larger than maxResults, Compute Engine returns a
90196// nextPageToken that can be used to get the next page of results in
90197// subsequent list requests. Acceptable values are 0 to 500, inclusive.
90198// (Default: 500)
90199func (c *MachineImagesListCall) MaxResults(maxResults int64) *MachineImagesListCall {
90200	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90201	return c
90202}
90203
90204// OrderBy sets the optional parameter "orderBy": Sorts list results by
90205// a certain order. By default, results are returned in alphanumerical
90206// order based on the resource name.
90207//
90208// You can also sort results in descending order based on the creation
90209// timestamp using orderBy="creationTimestamp desc". This sorts results
90210// based on the creationTimestamp field in reverse chronological order
90211// (newest result first). Use this to sort resources like operations so
90212// that the newest operation is returned first.
90213//
90214// Currently, only sorting by name or creationTimestamp desc is
90215// supported.
90216func (c *MachineImagesListCall) OrderBy(orderBy string) *MachineImagesListCall {
90217	c.urlParams_.Set("orderBy", orderBy)
90218	return c
90219}
90220
90221// PageToken sets the optional parameter "pageToken": Specifies a page
90222// token to use. Set pageToken to the nextPageToken returned by a
90223// previous list request to get the next page of results.
90224func (c *MachineImagesListCall) PageToken(pageToken string) *MachineImagesListCall {
90225	c.urlParams_.Set("pageToken", pageToken)
90226	return c
90227}
90228
90229// Fields allows partial responses to be retrieved. See
90230// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90231// for more information.
90232func (c *MachineImagesListCall) Fields(s ...googleapi.Field) *MachineImagesListCall {
90233	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90234	return c
90235}
90236
90237// IfNoneMatch sets the optional parameter which makes the operation
90238// fail if the object's ETag matches the given value. This is useful for
90239// getting updates only after the object has changed since the last
90240// request. Use googleapi.IsNotModified to check whether the response
90241// error from Do is the result of In-None-Match.
90242func (c *MachineImagesListCall) IfNoneMatch(entityTag string) *MachineImagesListCall {
90243	c.ifNoneMatch_ = entityTag
90244	return c
90245}
90246
90247// Context sets the context to be used in this call's Do method. Any
90248// pending HTTP request will be aborted if the provided context is
90249// canceled.
90250func (c *MachineImagesListCall) Context(ctx context.Context) *MachineImagesListCall {
90251	c.ctx_ = ctx
90252	return c
90253}
90254
90255// Header returns an http.Header that can be modified by the caller to
90256// add HTTP headers to the request.
90257func (c *MachineImagesListCall) Header() http.Header {
90258	if c.header_ == nil {
90259		c.header_ = make(http.Header)
90260	}
90261	return c.header_
90262}
90263
90264func (c *MachineImagesListCall) doRequest(alt string) (*http.Response, error) {
90265	reqHeaders := make(http.Header)
90266	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90267	for k, v := range c.header_ {
90268		reqHeaders[k] = v
90269	}
90270	reqHeaders.Set("User-Agent", c.s.userAgent())
90271	if c.ifNoneMatch_ != "" {
90272		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90273	}
90274	var body io.Reader = nil
90275	c.urlParams_.Set("alt", alt)
90276	c.urlParams_.Set("prettyPrint", "false")
90277	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages")
90278	urls += "?" + c.urlParams_.Encode()
90279	req, err := http.NewRequest("GET", urls, body)
90280	if err != nil {
90281		return nil, err
90282	}
90283	req.Header = reqHeaders
90284	googleapi.Expand(req.URL, map[string]string{
90285		"project": c.project,
90286	})
90287	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90288}
90289
90290// Do executes the "compute.machineImages.list" call.
90291// Exactly one of *MachineImageList or error will be non-nil. Any
90292// non-2xx status code is an error. Response headers are in either
90293// *MachineImageList.ServerResponse.Header or (if a response was
90294// returned at all) in error.(*googleapi.Error).Header. Use
90295// googleapi.IsNotModified to check whether the returned error was
90296// because http.StatusNotModified was returned.
90297func (c *MachineImagesListCall) Do(opts ...googleapi.CallOption) (*MachineImageList, error) {
90298	gensupport.SetOptions(c.urlParams_, opts...)
90299	res, err := c.doRequest("json")
90300	if res != nil && res.StatusCode == http.StatusNotModified {
90301		if res.Body != nil {
90302			res.Body.Close()
90303		}
90304		return nil, &googleapi.Error{
90305			Code:   res.StatusCode,
90306			Header: res.Header,
90307		}
90308	}
90309	if err != nil {
90310		return nil, err
90311	}
90312	defer googleapi.CloseBody(res)
90313	if err := googleapi.CheckResponse(res); err != nil {
90314		return nil, err
90315	}
90316	ret := &MachineImageList{
90317		ServerResponse: googleapi.ServerResponse{
90318			Header:         res.Header,
90319			HTTPStatusCode: res.StatusCode,
90320		},
90321	}
90322	target := &ret
90323	if err := gensupport.DecodeResponse(target, res); err != nil {
90324		return nil, err
90325	}
90326	return ret, nil
90327	// {
90328	//   "description": "Retrieves a list of machine images that are contained within the specified project.",
90329	//   "httpMethod": "GET",
90330	//   "id": "compute.machineImages.list",
90331	//   "parameterOrder": [
90332	//     "project"
90333	//   ],
90334	//   "parameters": {
90335	//     "filter": {
90336	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
90337	//       "location": "query",
90338	//       "type": "string"
90339	//     },
90340	//     "maxResults": {
90341	//       "default": "500",
90342	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
90343	//       "format": "uint32",
90344	//       "location": "query",
90345	//       "minimum": "0",
90346	//       "type": "integer"
90347	//     },
90348	//     "orderBy": {
90349	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
90350	//       "location": "query",
90351	//       "type": "string"
90352	//     },
90353	//     "pageToken": {
90354	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
90355	//       "location": "query",
90356	//       "type": "string"
90357	//     },
90358	//     "project": {
90359	//       "description": "Project ID for this request.",
90360	//       "location": "path",
90361	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90362	//       "required": true,
90363	//       "type": "string"
90364	//     }
90365	//   },
90366	//   "path": "{project}/global/machineImages",
90367	//   "response": {
90368	//     "$ref": "MachineImageList"
90369	//   },
90370	//   "scopes": [
90371	//     "https://www.googleapis.com/auth/cloud-platform",
90372	//     "https://www.googleapis.com/auth/compute",
90373	//     "https://www.googleapis.com/auth/compute.readonly"
90374	//   ]
90375	// }
90376
90377}
90378
90379// Pages invokes f for each page of results.
90380// A non-nil error returned from f will halt the iteration.
90381// The provided context supersedes any context provided to the Context method.
90382func (c *MachineImagesListCall) Pages(ctx context.Context, f func(*MachineImageList) error) error {
90383	c.ctx_ = ctx
90384	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90385	for {
90386		x, err := c.Do()
90387		if err != nil {
90388			return err
90389		}
90390		if err := f(x); err != nil {
90391			return err
90392		}
90393		if x.NextPageToken == "" {
90394			return nil
90395		}
90396		c.PageToken(x.NextPageToken)
90397	}
90398}
90399
90400// method id "compute.machineImages.setIamPolicy":
90401
90402type MachineImagesSetIamPolicyCall struct {
90403	s                      *Service
90404	project                string
90405	resource               string
90406	globalsetpolicyrequest *GlobalSetPolicyRequest
90407	urlParams_             gensupport.URLParams
90408	ctx_                   context.Context
90409	header_                http.Header
90410}
90411
90412// SetIamPolicy: Sets the access control policy on the specified
90413// resource. Replaces any existing policy.
90414func (r *MachineImagesService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *MachineImagesSetIamPolicyCall {
90415	c := &MachineImagesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90416	c.project = project
90417	c.resource = resource
90418	c.globalsetpolicyrequest = globalsetpolicyrequest
90419	return c
90420}
90421
90422// Fields allows partial responses to be retrieved. See
90423// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90424// for more information.
90425func (c *MachineImagesSetIamPolicyCall) Fields(s ...googleapi.Field) *MachineImagesSetIamPolicyCall {
90426	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90427	return c
90428}
90429
90430// Context sets the context to be used in this call's Do method. Any
90431// pending HTTP request will be aborted if the provided context is
90432// canceled.
90433func (c *MachineImagesSetIamPolicyCall) Context(ctx context.Context) *MachineImagesSetIamPolicyCall {
90434	c.ctx_ = ctx
90435	return c
90436}
90437
90438// Header returns an http.Header that can be modified by the caller to
90439// add HTTP headers to the request.
90440func (c *MachineImagesSetIamPolicyCall) Header() http.Header {
90441	if c.header_ == nil {
90442		c.header_ = make(http.Header)
90443	}
90444	return c.header_
90445}
90446
90447func (c *MachineImagesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
90448	reqHeaders := make(http.Header)
90449	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90450	for k, v := range c.header_ {
90451		reqHeaders[k] = v
90452	}
90453	reqHeaders.Set("User-Agent", c.s.userAgent())
90454	var body io.Reader = nil
90455	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
90456	if err != nil {
90457		return nil, err
90458	}
90459	reqHeaders.Set("Content-Type", "application/json")
90460	c.urlParams_.Set("alt", alt)
90461	c.urlParams_.Set("prettyPrint", "false")
90462	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/setIamPolicy")
90463	urls += "?" + c.urlParams_.Encode()
90464	req, err := http.NewRequest("POST", urls, body)
90465	if err != nil {
90466		return nil, err
90467	}
90468	req.Header = reqHeaders
90469	googleapi.Expand(req.URL, map[string]string{
90470		"project":  c.project,
90471		"resource": c.resource,
90472	})
90473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90474}
90475
90476// Do executes the "compute.machineImages.setIamPolicy" call.
90477// Exactly one of *Policy or error will be non-nil. Any non-2xx status
90478// code is an error. Response headers are in either
90479// *Policy.ServerResponse.Header or (if a response was returned at all)
90480// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
90481// check whether the returned error was because http.StatusNotModified
90482// was returned.
90483func (c *MachineImagesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
90484	gensupport.SetOptions(c.urlParams_, opts...)
90485	res, err := c.doRequest("json")
90486	if res != nil && res.StatusCode == http.StatusNotModified {
90487		if res.Body != nil {
90488			res.Body.Close()
90489		}
90490		return nil, &googleapi.Error{
90491			Code:   res.StatusCode,
90492			Header: res.Header,
90493		}
90494	}
90495	if err != nil {
90496		return nil, err
90497	}
90498	defer googleapi.CloseBody(res)
90499	if err := googleapi.CheckResponse(res); err != nil {
90500		return nil, err
90501	}
90502	ret := &Policy{
90503		ServerResponse: googleapi.ServerResponse{
90504			Header:         res.Header,
90505			HTTPStatusCode: res.StatusCode,
90506		},
90507	}
90508	target := &ret
90509	if err := gensupport.DecodeResponse(target, res); err != nil {
90510		return nil, err
90511	}
90512	return ret, nil
90513	// {
90514	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
90515	//   "httpMethod": "POST",
90516	//   "id": "compute.machineImages.setIamPolicy",
90517	//   "parameterOrder": [
90518	//     "project",
90519	//     "resource"
90520	//   ],
90521	//   "parameters": {
90522	//     "project": {
90523	//       "description": "Project ID for this request.",
90524	//       "location": "path",
90525	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90526	//       "required": true,
90527	//       "type": "string"
90528	//     },
90529	//     "resource": {
90530	//       "description": "Name or id of the resource for this request.",
90531	//       "location": "path",
90532	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90533	//       "required": true,
90534	//       "type": "string"
90535	//     }
90536	//   },
90537	//   "path": "{project}/global/machineImages/{resource}/setIamPolicy",
90538	//   "request": {
90539	//     "$ref": "GlobalSetPolicyRequest"
90540	//   },
90541	//   "response": {
90542	//     "$ref": "Policy"
90543	//   },
90544	//   "scopes": [
90545	//     "https://www.googleapis.com/auth/cloud-platform",
90546	//     "https://www.googleapis.com/auth/compute"
90547	//   ]
90548	// }
90549
90550}
90551
90552// method id "compute.machineImages.testIamPermissions":
90553
90554type MachineImagesTestIamPermissionsCall struct {
90555	s                      *Service
90556	project                string
90557	resource               string
90558	testpermissionsrequest *TestPermissionsRequest
90559	urlParams_             gensupport.URLParams
90560	ctx_                   context.Context
90561	header_                http.Header
90562}
90563
90564// TestIamPermissions: Returns permissions that a caller has on the
90565// specified resource.
90566func (r *MachineImagesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *MachineImagesTestIamPermissionsCall {
90567	c := &MachineImagesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90568	c.project = project
90569	c.resource = resource
90570	c.testpermissionsrequest = testpermissionsrequest
90571	return c
90572}
90573
90574// Fields allows partial responses to be retrieved. See
90575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90576// for more information.
90577func (c *MachineImagesTestIamPermissionsCall) Fields(s ...googleapi.Field) *MachineImagesTestIamPermissionsCall {
90578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90579	return c
90580}
90581
90582// Context sets the context to be used in this call's Do method. Any
90583// pending HTTP request will be aborted if the provided context is
90584// canceled.
90585func (c *MachineImagesTestIamPermissionsCall) Context(ctx context.Context) *MachineImagesTestIamPermissionsCall {
90586	c.ctx_ = ctx
90587	return c
90588}
90589
90590// Header returns an http.Header that can be modified by the caller to
90591// add HTTP headers to the request.
90592func (c *MachineImagesTestIamPermissionsCall) Header() http.Header {
90593	if c.header_ == nil {
90594		c.header_ = make(http.Header)
90595	}
90596	return c.header_
90597}
90598
90599func (c *MachineImagesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
90600	reqHeaders := make(http.Header)
90601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90602	for k, v := range c.header_ {
90603		reqHeaders[k] = v
90604	}
90605	reqHeaders.Set("User-Agent", c.s.userAgent())
90606	var body io.Reader = nil
90607	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
90608	if err != nil {
90609		return nil, err
90610	}
90611	reqHeaders.Set("Content-Type", "application/json")
90612	c.urlParams_.Set("alt", alt)
90613	c.urlParams_.Set("prettyPrint", "false")
90614	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/machineImages/{resource}/testIamPermissions")
90615	urls += "?" + c.urlParams_.Encode()
90616	req, err := http.NewRequest("POST", urls, body)
90617	if err != nil {
90618		return nil, err
90619	}
90620	req.Header = reqHeaders
90621	googleapi.Expand(req.URL, map[string]string{
90622		"project":  c.project,
90623		"resource": c.resource,
90624	})
90625	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90626}
90627
90628// Do executes the "compute.machineImages.testIamPermissions" call.
90629// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
90630// non-2xx status code is an error. Response headers are in either
90631// *TestPermissionsResponse.ServerResponse.Header or (if a response was
90632// returned at all) in error.(*googleapi.Error).Header. Use
90633// googleapi.IsNotModified to check whether the returned error was
90634// because http.StatusNotModified was returned.
90635func (c *MachineImagesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
90636	gensupport.SetOptions(c.urlParams_, opts...)
90637	res, err := c.doRequest("json")
90638	if res != nil && res.StatusCode == http.StatusNotModified {
90639		if res.Body != nil {
90640			res.Body.Close()
90641		}
90642		return nil, &googleapi.Error{
90643			Code:   res.StatusCode,
90644			Header: res.Header,
90645		}
90646	}
90647	if err != nil {
90648		return nil, err
90649	}
90650	defer googleapi.CloseBody(res)
90651	if err := googleapi.CheckResponse(res); err != nil {
90652		return nil, err
90653	}
90654	ret := &TestPermissionsResponse{
90655		ServerResponse: googleapi.ServerResponse{
90656			Header:         res.Header,
90657			HTTPStatusCode: res.StatusCode,
90658		},
90659	}
90660	target := &ret
90661	if err := gensupport.DecodeResponse(target, res); err != nil {
90662		return nil, err
90663	}
90664	return ret, nil
90665	// {
90666	//   "description": "Returns permissions that a caller has on the specified resource.",
90667	//   "httpMethod": "POST",
90668	//   "id": "compute.machineImages.testIamPermissions",
90669	//   "parameterOrder": [
90670	//     "project",
90671	//     "resource"
90672	//   ],
90673	//   "parameters": {
90674	//     "project": {
90675	//       "description": "Project ID for this request.",
90676	//       "location": "path",
90677	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90678	//       "required": true,
90679	//       "type": "string"
90680	//     },
90681	//     "resource": {
90682	//       "description": "Name or id of the resource for this request.",
90683	//       "location": "path",
90684	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
90685	//       "required": true,
90686	//       "type": "string"
90687	//     }
90688	//   },
90689	//   "path": "{project}/global/machineImages/{resource}/testIamPermissions",
90690	//   "request": {
90691	//     "$ref": "TestPermissionsRequest"
90692	//   },
90693	//   "response": {
90694	//     "$ref": "TestPermissionsResponse"
90695	//   },
90696	//   "scopes": [
90697	//     "https://www.googleapis.com/auth/cloud-platform",
90698	//     "https://www.googleapis.com/auth/compute",
90699	//     "https://www.googleapis.com/auth/compute.readonly"
90700	//   ]
90701	// }
90702
90703}
90704
90705// method id "compute.machineTypes.aggregatedList":
90706
90707type MachineTypesAggregatedListCall struct {
90708	s            *Service
90709	project      string
90710	urlParams_   gensupport.URLParams
90711	ifNoneMatch_ string
90712	ctx_         context.Context
90713	header_      http.Header
90714}
90715
90716// AggregatedList: Retrieves an aggregated list of machine types.
90717// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/aggregatedList
90718func (r *MachineTypesService) AggregatedList(project string) *MachineTypesAggregatedListCall {
90719	c := &MachineTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90720	c.project = project
90721	return c
90722}
90723
90724// Filter sets the optional parameter "filter": A filter expression that
90725// filters resources listed in the response. The expression must specify
90726// the field name, a comparison operator, and the value that you want to
90727// use for filtering. The value must be a string, a number, or a
90728// boolean. The comparison operator must be either =, !=, >, or <.
90729//
90730// For example, if you are filtering Compute Engine instances, you can
90731// exclude instances named example-instance by specifying name !=
90732// example-instance.
90733//
90734// You can also filter nested fields. For example, you could specify
90735// scheduling.automaticRestart = false to include instances only if they
90736// are not scheduled for automatic restarts. You can use filtering on
90737// nested fields to filter based on resource labels.
90738//
90739// To filter on multiple expressions, provide each separate expression
90740// within parentheses. For example, (scheduling.automaticRestart = true)
90741// (cpuPlatform = "Intel Skylake"). By default, each expression is an
90742// AND expression. However, you can include AND and OR expressions
90743// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
90744// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
90745// true).
90746func (c *MachineTypesAggregatedListCall) Filter(filter string) *MachineTypesAggregatedListCall {
90747	c.urlParams_.Set("filter", filter)
90748	return c
90749}
90750
90751// IncludeAllScopes sets the optional parameter "includeAllScopes":
90752// Indicates whether every visible scope for each scope type (zone,
90753// region, global) should be included in the response. For new resource
90754// types added after this field, the flag has no effect as new resource
90755// types will always include every visible scope for each scope type in
90756// response. For resource types which predate this field, if this flag
90757// is omitted or false, only scopes of the scope types where the
90758// resource type is expected to be found will be included.
90759func (c *MachineTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *MachineTypesAggregatedListCall {
90760	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
90761	return c
90762}
90763
90764// MaxResults sets the optional parameter "maxResults": The maximum
90765// number of results per page that should be returned. If the number of
90766// available results is larger than maxResults, Compute Engine returns a
90767// nextPageToken that can be used to get the next page of results in
90768// subsequent list requests. Acceptable values are 0 to 500, inclusive.
90769// (Default: 500)
90770func (c *MachineTypesAggregatedListCall) MaxResults(maxResults int64) *MachineTypesAggregatedListCall {
90771	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
90772	return c
90773}
90774
90775// OrderBy sets the optional parameter "orderBy": Sorts list results by
90776// a certain order. By default, results are returned in alphanumerical
90777// order based on the resource name.
90778//
90779// You can also sort results in descending order based on the creation
90780// timestamp using orderBy="creationTimestamp desc". This sorts results
90781// based on the creationTimestamp field in reverse chronological order
90782// (newest result first). Use this to sort resources like operations so
90783// that the newest operation is returned first.
90784//
90785// Currently, only sorting by name or creationTimestamp desc is
90786// supported.
90787func (c *MachineTypesAggregatedListCall) OrderBy(orderBy string) *MachineTypesAggregatedListCall {
90788	c.urlParams_.Set("orderBy", orderBy)
90789	return c
90790}
90791
90792// PageToken sets the optional parameter "pageToken": Specifies a page
90793// token to use. Set pageToken to the nextPageToken returned by a
90794// previous list request to get the next page of results.
90795func (c *MachineTypesAggregatedListCall) PageToken(pageToken string) *MachineTypesAggregatedListCall {
90796	c.urlParams_.Set("pageToken", pageToken)
90797	return c
90798}
90799
90800// Fields allows partial responses to be retrieved. See
90801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
90802// for more information.
90803func (c *MachineTypesAggregatedListCall) Fields(s ...googleapi.Field) *MachineTypesAggregatedListCall {
90804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
90805	return c
90806}
90807
90808// IfNoneMatch sets the optional parameter which makes the operation
90809// fail if the object's ETag matches the given value. This is useful for
90810// getting updates only after the object has changed since the last
90811// request. Use googleapi.IsNotModified to check whether the response
90812// error from Do is the result of In-None-Match.
90813func (c *MachineTypesAggregatedListCall) IfNoneMatch(entityTag string) *MachineTypesAggregatedListCall {
90814	c.ifNoneMatch_ = entityTag
90815	return c
90816}
90817
90818// Context sets the context to be used in this call's Do method. Any
90819// pending HTTP request will be aborted if the provided context is
90820// canceled.
90821func (c *MachineTypesAggregatedListCall) Context(ctx context.Context) *MachineTypesAggregatedListCall {
90822	c.ctx_ = ctx
90823	return c
90824}
90825
90826// Header returns an http.Header that can be modified by the caller to
90827// add HTTP headers to the request.
90828func (c *MachineTypesAggregatedListCall) Header() http.Header {
90829	if c.header_ == nil {
90830		c.header_ = make(http.Header)
90831	}
90832	return c.header_
90833}
90834
90835func (c *MachineTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
90836	reqHeaders := make(http.Header)
90837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
90838	for k, v := range c.header_ {
90839		reqHeaders[k] = v
90840	}
90841	reqHeaders.Set("User-Agent", c.s.userAgent())
90842	if c.ifNoneMatch_ != "" {
90843		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
90844	}
90845	var body io.Reader = nil
90846	c.urlParams_.Set("alt", alt)
90847	c.urlParams_.Set("prettyPrint", "false")
90848	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/machineTypes")
90849	urls += "?" + c.urlParams_.Encode()
90850	req, err := http.NewRequest("GET", urls, body)
90851	if err != nil {
90852		return nil, err
90853	}
90854	req.Header = reqHeaders
90855	googleapi.Expand(req.URL, map[string]string{
90856		"project": c.project,
90857	})
90858	return gensupport.SendRequest(c.ctx_, c.s.client, req)
90859}
90860
90861// Do executes the "compute.machineTypes.aggregatedList" call.
90862// Exactly one of *MachineTypeAggregatedList or error will be non-nil.
90863// Any non-2xx status code is an error. Response headers are in either
90864// *MachineTypeAggregatedList.ServerResponse.Header or (if a response
90865// was returned at all) in error.(*googleapi.Error).Header. Use
90866// googleapi.IsNotModified to check whether the returned error was
90867// because http.StatusNotModified was returned.
90868func (c *MachineTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*MachineTypeAggregatedList, error) {
90869	gensupport.SetOptions(c.urlParams_, opts...)
90870	res, err := c.doRequest("json")
90871	if res != nil && res.StatusCode == http.StatusNotModified {
90872		if res.Body != nil {
90873			res.Body.Close()
90874		}
90875		return nil, &googleapi.Error{
90876			Code:   res.StatusCode,
90877			Header: res.Header,
90878		}
90879	}
90880	if err != nil {
90881		return nil, err
90882	}
90883	defer googleapi.CloseBody(res)
90884	if err := googleapi.CheckResponse(res); err != nil {
90885		return nil, err
90886	}
90887	ret := &MachineTypeAggregatedList{
90888		ServerResponse: googleapi.ServerResponse{
90889			Header:         res.Header,
90890			HTTPStatusCode: res.StatusCode,
90891		},
90892	}
90893	target := &ret
90894	if err := gensupport.DecodeResponse(target, res); err != nil {
90895		return nil, err
90896	}
90897	return ret, nil
90898	// {
90899	//   "description": "Retrieves an aggregated list of machine types.",
90900	//   "httpMethod": "GET",
90901	//   "id": "compute.machineTypes.aggregatedList",
90902	//   "parameterOrder": [
90903	//     "project"
90904	//   ],
90905	//   "parameters": {
90906	//     "filter": {
90907	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
90908	//       "location": "query",
90909	//       "type": "string"
90910	//     },
90911	//     "includeAllScopes": {
90912	//       "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.",
90913	//       "location": "query",
90914	//       "type": "boolean"
90915	//     },
90916	//     "maxResults": {
90917	//       "default": "500",
90918	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
90919	//       "format": "uint32",
90920	//       "location": "query",
90921	//       "minimum": "0",
90922	//       "type": "integer"
90923	//     },
90924	//     "orderBy": {
90925	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
90926	//       "location": "query",
90927	//       "type": "string"
90928	//     },
90929	//     "pageToken": {
90930	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
90931	//       "location": "query",
90932	//       "type": "string"
90933	//     },
90934	//     "project": {
90935	//       "description": "Project ID for this request.",
90936	//       "location": "path",
90937	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
90938	//       "required": true,
90939	//       "type": "string"
90940	//     }
90941	//   },
90942	//   "path": "{project}/aggregated/machineTypes",
90943	//   "response": {
90944	//     "$ref": "MachineTypeAggregatedList"
90945	//   },
90946	//   "scopes": [
90947	//     "https://www.googleapis.com/auth/cloud-platform",
90948	//     "https://www.googleapis.com/auth/compute",
90949	//     "https://www.googleapis.com/auth/compute.readonly"
90950	//   ]
90951	// }
90952
90953}
90954
90955// Pages invokes f for each page of results.
90956// A non-nil error returned from f will halt the iteration.
90957// The provided context supersedes any context provided to the Context method.
90958func (c *MachineTypesAggregatedListCall) Pages(ctx context.Context, f func(*MachineTypeAggregatedList) error) error {
90959	c.ctx_ = ctx
90960	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
90961	for {
90962		x, err := c.Do()
90963		if err != nil {
90964			return err
90965		}
90966		if err := f(x); err != nil {
90967			return err
90968		}
90969		if x.NextPageToken == "" {
90970			return nil
90971		}
90972		c.PageToken(x.NextPageToken)
90973	}
90974}
90975
90976// method id "compute.machineTypes.get":
90977
90978type MachineTypesGetCall struct {
90979	s            *Service
90980	project      string
90981	zone         string
90982	machineType  string
90983	urlParams_   gensupport.URLParams
90984	ifNoneMatch_ string
90985	ctx_         context.Context
90986	header_      http.Header
90987}
90988
90989// Get: Returns the specified machine type. Gets a list of available
90990// machine types by making a list() request.
90991// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/get
90992func (r *MachineTypesService) Get(project string, zone string, machineType string) *MachineTypesGetCall {
90993	c := &MachineTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
90994	c.project = project
90995	c.zone = zone
90996	c.machineType = machineType
90997	return c
90998}
90999
91000// Fields allows partial responses to be retrieved. See
91001// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91002// for more information.
91003func (c *MachineTypesGetCall) Fields(s ...googleapi.Field) *MachineTypesGetCall {
91004	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91005	return c
91006}
91007
91008// IfNoneMatch sets the optional parameter which makes the operation
91009// fail if the object's ETag matches the given value. This is useful for
91010// getting updates only after the object has changed since the last
91011// request. Use googleapi.IsNotModified to check whether the response
91012// error from Do is the result of In-None-Match.
91013func (c *MachineTypesGetCall) IfNoneMatch(entityTag string) *MachineTypesGetCall {
91014	c.ifNoneMatch_ = entityTag
91015	return c
91016}
91017
91018// Context sets the context to be used in this call's Do method. Any
91019// pending HTTP request will be aborted if the provided context is
91020// canceled.
91021func (c *MachineTypesGetCall) Context(ctx context.Context) *MachineTypesGetCall {
91022	c.ctx_ = ctx
91023	return c
91024}
91025
91026// Header returns an http.Header that can be modified by the caller to
91027// add HTTP headers to the request.
91028func (c *MachineTypesGetCall) Header() http.Header {
91029	if c.header_ == nil {
91030		c.header_ = make(http.Header)
91031	}
91032	return c.header_
91033}
91034
91035func (c *MachineTypesGetCall) doRequest(alt string) (*http.Response, error) {
91036	reqHeaders := make(http.Header)
91037	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91038	for k, v := range c.header_ {
91039		reqHeaders[k] = v
91040	}
91041	reqHeaders.Set("User-Agent", c.s.userAgent())
91042	if c.ifNoneMatch_ != "" {
91043		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91044	}
91045	var body io.Reader = nil
91046	c.urlParams_.Set("alt", alt)
91047	c.urlParams_.Set("prettyPrint", "false")
91048	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes/{machineType}")
91049	urls += "?" + c.urlParams_.Encode()
91050	req, err := http.NewRequest("GET", urls, body)
91051	if err != nil {
91052		return nil, err
91053	}
91054	req.Header = reqHeaders
91055	googleapi.Expand(req.URL, map[string]string{
91056		"project":     c.project,
91057		"zone":        c.zone,
91058		"machineType": c.machineType,
91059	})
91060	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91061}
91062
91063// Do executes the "compute.machineTypes.get" call.
91064// Exactly one of *MachineType or error will be non-nil. Any non-2xx
91065// status code is an error. Response headers are in either
91066// *MachineType.ServerResponse.Header or (if a response was returned at
91067// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91068// to check whether the returned error was because
91069// http.StatusNotModified was returned.
91070func (c *MachineTypesGetCall) Do(opts ...googleapi.CallOption) (*MachineType, error) {
91071	gensupport.SetOptions(c.urlParams_, opts...)
91072	res, err := c.doRequest("json")
91073	if res != nil && res.StatusCode == http.StatusNotModified {
91074		if res.Body != nil {
91075			res.Body.Close()
91076		}
91077		return nil, &googleapi.Error{
91078			Code:   res.StatusCode,
91079			Header: res.Header,
91080		}
91081	}
91082	if err != nil {
91083		return nil, err
91084	}
91085	defer googleapi.CloseBody(res)
91086	if err := googleapi.CheckResponse(res); err != nil {
91087		return nil, err
91088	}
91089	ret := &MachineType{
91090		ServerResponse: googleapi.ServerResponse{
91091			Header:         res.Header,
91092			HTTPStatusCode: res.StatusCode,
91093		},
91094	}
91095	target := &ret
91096	if err := gensupport.DecodeResponse(target, res); err != nil {
91097		return nil, err
91098	}
91099	return ret, nil
91100	// {
91101	//   "description": "Returns the specified machine type. Gets a list of available machine types by making a list() request.",
91102	//   "httpMethod": "GET",
91103	//   "id": "compute.machineTypes.get",
91104	//   "parameterOrder": [
91105	//     "project",
91106	//     "zone",
91107	//     "machineType"
91108	//   ],
91109	//   "parameters": {
91110	//     "machineType": {
91111	//       "description": "Name of the machine type to return.",
91112	//       "location": "path",
91113	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
91114	//       "required": true,
91115	//       "type": "string"
91116	//     },
91117	//     "project": {
91118	//       "description": "Project ID for this request.",
91119	//       "location": "path",
91120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91121	//       "required": true,
91122	//       "type": "string"
91123	//     },
91124	//     "zone": {
91125	//       "description": "The name of the zone for this request.",
91126	//       "location": "path",
91127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91128	//       "required": true,
91129	//       "type": "string"
91130	//     }
91131	//   },
91132	//   "path": "{project}/zones/{zone}/machineTypes/{machineType}",
91133	//   "response": {
91134	//     "$ref": "MachineType"
91135	//   },
91136	//   "scopes": [
91137	//     "https://www.googleapis.com/auth/cloud-platform",
91138	//     "https://www.googleapis.com/auth/compute",
91139	//     "https://www.googleapis.com/auth/compute.readonly"
91140	//   ]
91141	// }
91142
91143}
91144
91145// method id "compute.machineTypes.list":
91146
91147type MachineTypesListCall struct {
91148	s            *Service
91149	project      string
91150	zone         string
91151	urlParams_   gensupport.URLParams
91152	ifNoneMatch_ string
91153	ctx_         context.Context
91154	header_      http.Header
91155}
91156
91157// List: Retrieves a list of machine types available to the specified
91158// project.
91159// For details, see https://cloud.google.com/compute/docs/reference/latest/machineTypes/list
91160func (r *MachineTypesService) List(project string, zone string) *MachineTypesListCall {
91161	c := &MachineTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91162	c.project = project
91163	c.zone = zone
91164	return c
91165}
91166
91167// Filter sets the optional parameter "filter": A filter expression that
91168// filters resources listed in the response. The expression must specify
91169// the field name, a comparison operator, and the value that you want to
91170// use for filtering. The value must be a string, a number, or a
91171// boolean. The comparison operator must be either =, !=, >, or <.
91172//
91173// For example, if you are filtering Compute Engine instances, you can
91174// exclude instances named example-instance by specifying name !=
91175// example-instance.
91176//
91177// You can also filter nested fields. For example, you could specify
91178// scheduling.automaticRestart = false to include instances only if they
91179// are not scheduled for automatic restarts. You can use filtering on
91180// nested fields to filter based on resource labels.
91181//
91182// To filter on multiple expressions, provide each separate expression
91183// within parentheses. For example, (scheduling.automaticRestart = true)
91184// (cpuPlatform = "Intel Skylake"). By default, each expression is an
91185// AND expression. However, you can include AND and OR expressions
91186// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
91187// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
91188// true).
91189func (c *MachineTypesListCall) Filter(filter string) *MachineTypesListCall {
91190	c.urlParams_.Set("filter", filter)
91191	return c
91192}
91193
91194// MaxResults sets the optional parameter "maxResults": The maximum
91195// number of results per page that should be returned. If the number of
91196// available results is larger than maxResults, Compute Engine returns a
91197// nextPageToken that can be used to get the next page of results in
91198// subsequent list requests. Acceptable values are 0 to 500, inclusive.
91199// (Default: 500)
91200func (c *MachineTypesListCall) MaxResults(maxResults int64) *MachineTypesListCall {
91201	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91202	return c
91203}
91204
91205// OrderBy sets the optional parameter "orderBy": Sorts list results by
91206// a certain order. By default, results are returned in alphanumerical
91207// order based on the resource name.
91208//
91209// You can also sort results in descending order based on the creation
91210// timestamp using orderBy="creationTimestamp desc". This sorts results
91211// based on the creationTimestamp field in reverse chronological order
91212// (newest result first). Use this to sort resources like operations so
91213// that the newest operation is returned first.
91214//
91215// Currently, only sorting by name or creationTimestamp desc is
91216// supported.
91217func (c *MachineTypesListCall) OrderBy(orderBy string) *MachineTypesListCall {
91218	c.urlParams_.Set("orderBy", orderBy)
91219	return c
91220}
91221
91222// PageToken sets the optional parameter "pageToken": Specifies a page
91223// token to use. Set pageToken to the nextPageToken returned by a
91224// previous list request to get the next page of results.
91225func (c *MachineTypesListCall) PageToken(pageToken string) *MachineTypesListCall {
91226	c.urlParams_.Set("pageToken", pageToken)
91227	return c
91228}
91229
91230// Fields allows partial responses to be retrieved. See
91231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91232// for more information.
91233func (c *MachineTypesListCall) Fields(s ...googleapi.Field) *MachineTypesListCall {
91234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91235	return c
91236}
91237
91238// IfNoneMatch sets the optional parameter which makes the operation
91239// fail if the object's ETag matches the given value. This is useful for
91240// getting updates only after the object has changed since the last
91241// request. Use googleapi.IsNotModified to check whether the response
91242// error from Do is the result of In-None-Match.
91243func (c *MachineTypesListCall) IfNoneMatch(entityTag string) *MachineTypesListCall {
91244	c.ifNoneMatch_ = entityTag
91245	return c
91246}
91247
91248// Context sets the context to be used in this call's Do method. Any
91249// pending HTTP request will be aborted if the provided context is
91250// canceled.
91251func (c *MachineTypesListCall) Context(ctx context.Context) *MachineTypesListCall {
91252	c.ctx_ = ctx
91253	return c
91254}
91255
91256// Header returns an http.Header that can be modified by the caller to
91257// add HTTP headers to the request.
91258func (c *MachineTypesListCall) Header() http.Header {
91259	if c.header_ == nil {
91260		c.header_ = make(http.Header)
91261	}
91262	return c.header_
91263}
91264
91265func (c *MachineTypesListCall) doRequest(alt string) (*http.Response, error) {
91266	reqHeaders := make(http.Header)
91267	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91268	for k, v := range c.header_ {
91269		reqHeaders[k] = v
91270	}
91271	reqHeaders.Set("User-Agent", c.s.userAgent())
91272	if c.ifNoneMatch_ != "" {
91273		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91274	}
91275	var body io.Reader = nil
91276	c.urlParams_.Set("alt", alt)
91277	c.urlParams_.Set("prettyPrint", "false")
91278	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/machineTypes")
91279	urls += "?" + c.urlParams_.Encode()
91280	req, err := http.NewRequest("GET", urls, body)
91281	if err != nil {
91282		return nil, err
91283	}
91284	req.Header = reqHeaders
91285	googleapi.Expand(req.URL, map[string]string{
91286		"project": c.project,
91287		"zone":    c.zone,
91288	})
91289	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91290}
91291
91292// Do executes the "compute.machineTypes.list" call.
91293// Exactly one of *MachineTypeList or error will be non-nil. Any non-2xx
91294// status code is an error. Response headers are in either
91295// *MachineTypeList.ServerResponse.Header or (if a response was returned
91296// at all) in error.(*googleapi.Error).Header. Use
91297// googleapi.IsNotModified to check whether the returned error was
91298// because http.StatusNotModified was returned.
91299func (c *MachineTypesListCall) Do(opts ...googleapi.CallOption) (*MachineTypeList, error) {
91300	gensupport.SetOptions(c.urlParams_, opts...)
91301	res, err := c.doRequest("json")
91302	if res != nil && res.StatusCode == http.StatusNotModified {
91303		if res.Body != nil {
91304			res.Body.Close()
91305		}
91306		return nil, &googleapi.Error{
91307			Code:   res.StatusCode,
91308			Header: res.Header,
91309		}
91310	}
91311	if err != nil {
91312		return nil, err
91313	}
91314	defer googleapi.CloseBody(res)
91315	if err := googleapi.CheckResponse(res); err != nil {
91316		return nil, err
91317	}
91318	ret := &MachineTypeList{
91319		ServerResponse: googleapi.ServerResponse{
91320			Header:         res.Header,
91321			HTTPStatusCode: res.StatusCode,
91322		},
91323	}
91324	target := &ret
91325	if err := gensupport.DecodeResponse(target, res); err != nil {
91326		return nil, err
91327	}
91328	return ret, nil
91329	// {
91330	//   "description": "Retrieves a list of machine types available to the specified project.",
91331	//   "httpMethod": "GET",
91332	//   "id": "compute.machineTypes.list",
91333	//   "parameterOrder": [
91334	//     "project",
91335	//     "zone"
91336	//   ],
91337	//   "parameters": {
91338	//     "filter": {
91339	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
91340	//       "location": "query",
91341	//       "type": "string"
91342	//     },
91343	//     "maxResults": {
91344	//       "default": "500",
91345	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
91346	//       "format": "uint32",
91347	//       "location": "query",
91348	//       "minimum": "0",
91349	//       "type": "integer"
91350	//     },
91351	//     "orderBy": {
91352	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
91353	//       "location": "query",
91354	//       "type": "string"
91355	//     },
91356	//     "pageToken": {
91357	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
91358	//       "location": "query",
91359	//       "type": "string"
91360	//     },
91361	//     "project": {
91362	//       "description": "Project ID for this request.",
91363	//       "location": "path",
91364	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91365	//       "required": true,
91366	//       "type": "string"
91367	//     },
91368	//     "zone": {
91369	//       "description": "The name of the zone for this request.",
91370	//       "location": "path",
91371	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
91372	//       "required": true,
91373	//       "type": "string"
91374	//     }
91375	//   },
91376	//   "path": "{project}/zones/{zone}/machineTypes",
91377	//   "response": {
91378	//     "$ref": "MachineTypeList"
91379	//   },
91380	//   "scopes": [
91381	//     "https://www.googleapis.com/auth/cloud-platform",
91382	//     "https://www.googleapis.com/auth/compute",
91383	//     "https://www.googleapis.com/auth/compute.readonly"
91384	//   ]
91385	// }
91386
91387}
91388
91389// Pages invokes f for each page of results.
91390// A non-nil error returned from f will halt the iteration.
91391// The provided context supersedes any context provided to the Context method.
91392func (c *MachineTypesListCall) Pages(ctx context.Context, f func(*MachineTypeList) error) error {
91393	c.ctx_ = ctx
91394	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
91395	for {
91396		x, err := c.Do()
91397		if err != nil {
91398			return err
91399		}
91400		if err := f(x); err != nil {
91401			return err
91402		}
91403		if x.NextPageToken == "" {
91404			return nil
91405		}
91406		c.PageToken(x.NextPageToken)
91407	}
91408}
91409
91410// method id "compute.networkEndpointGroups.aggregatedList":
91411
91412type NetworkEndpointGroupsAggregatedListCall struct {
91413	s            *Service
91414	project      string
91415	urlParams_   gensupport.URLParams
91416	ifNoneMatch_ string
91417	ctx_         context.Context
91418	header_      http.Header
91419}
91420
91421// AggregatedList: Retrieves the list of network endpoint groups and
91422// sorts them by zone.
91423func (r *NetworkEndpointGroupsService) AggregatedList(project string) *NetworkEndpointGroupsAggregatedListCall {
91424	c := &NetworkEndpointGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91425	c.project = project
91426	return c
91427}
91428
91429// Filter sets the optional parameter "filter": A filter expression that
91430// filters resources listed in the response. The expression must specify
91431// the field name, a comparison operator, and the value that you want to
91432// use for filtering. The value must be a string, a number, or a
91433// boolean. The comparison operator must be either =, !=, >, or <.
91434//
91435// For example, if you are filtering Compute Engine instances, you can
91436// exclude instances named example-instance by specifying name !=
91437// example-instance.
91438//
91439// You can also filter nested fields. For example, you could specify
91440// scheduling.automaticRestart = false to include instances only if they
91441// are not scheduled for automatic restarts. You can use filtering on
91442// nested fields to filter based on resource labels.
91443//
91444// To filter on multiple expressions, provide each separate expression
91445// within parentheses. For example, (scheduling.automaticRestart = true)
91446// (cpuPlatform = "Intel Skylake"). By default, each expression is an
91447// AND expression. However, you can include AND and OR expressions
91448// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
91449// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
91450// true).
91451func (c *NetworkEndpointGroupsAggregatedListCall) Filter(filter string) *NetworkEndpointGroupsAggregatedListCall {
91452	c.urlParams_.Set("filter", filter)
91453	return c
91454}
91455
91456// IncludeAllScopes sets the optional parameter "includeAllScopes":
91457// Indicates whether every visible scope for each scope type (zone,
91458// region, global) should be included in the response. For new resource
91459// types added after this field, the flag has no effect as new resource
91460// types will always include every visible scope for each scope type in
91461// response. For resource types which predate this field, if this flag
91462// is omitted or false, only scopes of the scope types where the
91463// resource type is expected to be found will be included.
91464func (c *NetworkEndpointGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NetworkEndpointGroupsAggregatedListCall {
91465	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
91466	return c
91467}
91468
91469// MaxResults sets the optional parameter "maxResults": The maximum
91470// number of results per page that should be returned. If the number of
91471// available results is larger than maxResults, Compute Engine returns a
91472// nextPageToken that can be used to get the next page of results in
91473// subsequent list requests. Acceptable values are 0 to 500, inclusive.
91474// (Default: 500)
91475func (c *NetworkEndpointGroupsAggregatedListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsAggregatedListCall {
91476	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
91477	return c
91478}
91479
91480// OrderBy sets the optional parameter "orderBy": Sorts list results by
91481// a certain order. By default, results are returned in alphanumerical
91482// order based on the resource name.
91483//
91484// You can also sort results in descending order based on the creation
91485// timestamp using orderBy="creationTimestamp desc". This sorts results
91486// based on the creationTimestamp field in reverse chronological order
91487// (newest result first). Use this to sort resources like operations so
91488// that the newest operation is returned first.
91489//
91490// Currently, only sorting by name or creationTimestamp desc is
91491// supported.
91492func (c *NetworkEndpointGroupsAggregatedListCall) OrderBy(orderBy string) *NetworkEndpointGroupsAggregatedListCall {
91493	c.urlParams_.Set("orderBy", orderBy)
91494	return c
91495}
91496
91497// PageToken sets the optional parameter "pageToken": Specifies a page
91498// token to use. Set pageToken to the nextPageToken returned by a
91499// previous list request to get the next page of results.
91500func (c *NetworkEndpointGroupsAggregatedListCall) PageToken(pageToken string) *NetworkEndpointGroupsAggregatedListCall {
91501	c.urlParams_.Set("pageToken", pageToken)
91502	return c
91503}
91504
91505// Fields allows partial responses to be retrieved. See
91506// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91507// for more information.
91508func (c *NetworkEndpointGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAggregatedListCall {
91509	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91510	return c
91511}
91512
91513// IfNoneMatch sets the optional parameter which makes the operation
91514// fail if the object's ETag matches the given value. This is useful for
91515// getting updates only after the object has changed since the last
91516// request. Use googleapi.IsNotModified to check whether the response
91517// error from Do is the result of In-None-Match.
91518func (c *NetworkEndpointGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsAggregatedListCall {
91519	c.ifNoneMatch_ = entityTag
91520	return c
91521}
91522
91523// Context sets the context to be used in this call's Do method. Any
91524// pending HTTP request will be aborted if the provided context is
91525// canceled.
91526func (c *NetworkEndpointGroupsAggregatedListCall) Context(ctx context.Context) *NetworkEndpointGroupsAggregatedListCall {
91527	c.ctx_ = ctx
91528	return c
91529}
91530
91531// Header returns an http.Header that can be modified by the caller to
91532// add HTTP headers to the request.
91533func (c *NetworkEndpointGroupsAggregatedListCall) Header() http.Header {
91534	if c.header_ == nil {
91535		c.header_ = make(http.Header)
91536	}
91537	return c.header_
91538}
91539
91540func (c *NetworkEndpointGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
91541	reqHeaders := make(http.Header)
91542	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91543	for k, v := range c.header_ {
91544		reqHeaders[k] = v
91545	}
91546	reqHeaders.Set("User-Agent", c.s.userAgent())
91547	if c.ifNoneMatch_ != "" {
91548		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
91549	}
91550	var body io.Reader = nil
91551	c.urlParams_.Set("alt", alt)
91552	c.urlParams_.Set("prettyPrint", "false")
91553	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/networkEndpointGroups")
91554	urls += "?" + c.urlParams_.Encode()
91555	req, err := http.NewRequest("GET", urls, body)
91556	if err != nil {
91557		return nil, err
91558	}
91559	req.Header = reqHeaders
91560	googleapi.Expand(req.URL, map[string]string{
91561		"project": c.project,
91562	})
91563	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91564}
91565
91566// Do executes the "compute.networkEndpointGroups.aggregatedList" call.
91567// Exactly one of *NetworkEndpointGroupAggregatedList or error will be
91568// non-nil. Any non-2xx status code is an error. Response headers are in
91569// either *NetworkEndpointGroupAggregatedList.ServerResponse.Header or
91570// (if a response was returned at all) in
91571// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
91572// whether the returned error was because http.StatusNotModified was
91573// returned.
91574func (c *NetworkEndpointGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupAggregatedList, error) {
91575	gensupport.SetOptions(c.urlParams_, opts...)
91576	res, err := c.doRequest("json")
91577	if res != nil && res.StatusCode == http.StatusNotModified {
91578		if res.Body != nil {
91579			res.Body.Close()
91580		}
91581		return nil, &googleapi.Error{
91582			Code:   res.StatusCode,
91583			Header: res.Header,
91584		}
91585	}
91586	if err != nil {
91587		return nil, err
91588	}
91589	defer googleapi.CloseBody(res)
91590	if err := googleapi.CheckResponse(res); err != nil {
91591		return nil, err
91592	}
91593	ret := &NetworkEndpointGroupAggregatedList{
91594		ServerResponse: googleapi.ServerResponse{
91595			Header:         res.Header,
91596			HTTPStatusCode: res.StatusCode,
91597		},
91598	}
91599	target := &ret
91600	if err := gensupport.DecodeResponse(target, res); err != nil {
91601		return nil, err
91602	}
91603	return ret, nil
91604	// {
91605	//   "description": "Retrieves the list of network endpoint groups and sorts them by zone.",
91606	//   "httpMethod": "GET",
91607	//   "id": "compute.networkEndpointGroups.aggregatedList",
91608	//   "parameterOrder": [
91609	//     "project"
91610	//   ],
91611	//   "parameters": {
91612	//     "filter": {
91613	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
91614	//       "location": "query",
91615	//       "type": "string"
91616	//     },
91617	//     "includeAllScopes": {
91618	//       "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.",
91619	//       "location": "query",
91620	//       "type": "boolean"
91621	//     },
91622	//     "maxResults": {
91623	//       "default": "500",
91624	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
91625	//       "format": "uint32",
91626	//       "location": "query",
91627	//       "minimum": "0",
91628	//       "type": "integer"
91629	//     },
91630	//     "orderBy": {
91631	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
91632	//       "location": "query",
91633	//       "type": "string"
91634	//     },
91635	//     "pageToken": {
91636	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
91637	//       "location": "query",
91638	//       "type": "string"
91639	//     },
91640	//     "project": {
91641	//       "description": "Project ID for this request.",
91642	//       "location": "path",
91643	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91644	//       "required": true,
91645	//       "type": "string"
91646	//     }
91647	//   },
91648	//   "path": "{project}/aggregated/networkEndpointGroups",
91649	//   "response": {
91650	//     "$ref": "NetworkEndpointGroupAggregatedList"
91651	//   },
91652	//   "scopes": [
91653	//     "https://www.googleapis.com/auth/cloud-platform",
91654	//     "https://www.googleapis.com/auth/compute",
91655	//     "https://www.googleapis.com/auth/compute.readonly"
91656	//   ]
91657	// }
91658
91659}
91660
91661// Pages invokes f for each page of results.
91662// A non-nil error returned from f will halt the iteration.
91663// The provided context supersedes any context provided to the Context method.
91664func (c *NetworkEndpointGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupAggregatedList) error) error {
91665	c.ctx_ = ctx
91666	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
91667	for {
91668		x, err := c.Do()
91669		if err != nil {
91670			return err
91671		}
91672		if err := f(x); err != nil {
91673			return err
91674		}
91675		if x.NextPageToken == "" {
91676			return nil
91677		}
91678		c.PageToken(x.NextPageToken)
91679	}
91680}
91681
91682// method id "compute.networkEndpointGroups.attachNetworkEndpoints":
91683
91684type NetworkEndpointGroupsAttachNetworkEndpointsCall struct {
91685	s                                           *Service
91686	project                                     string
91687	zone                                        string
91688	networkEndpointGroup                        string
91689	networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest
91690	urlParams_                                  gensupport.URLParams
91691	ctx_                                        context.Context
91692	header_                                     http.Header
91693}
91694
91695// AttachNetworkEndpoints: Attach a list of network endpoints to the
91696// specified network endpoint group.
91697func (r *NetworkEndpointGroupsService) AttachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsattachendpointsrequest *NetworkEndpointGroupsAttachEndpointsRequest) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
91698	c := &NetworkEndpointGroupsAttachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91699	c.project = project
91700	c.zone = zone
91701	c.networkEndpointGroup = networkEndpointGroup
91702	c.networkendpointgroupsattachendpointsrequest = networkendpointgroupsattachendpointsrequest
91703	return c
91704}
91705
91706// RequestId sets the optional parameter "requestId": An optional
91707// request ID to identify requests. Specify a unique request ID so that
91708// if you must retry your request, the server will know to ignore the
91709// request if it has already been completed.
91710//
91711// For example, consider a situation where you make an initial request
91712// and the request times out. If you make the request again with the
91713// same request ID, the server can check if original operation with the
91714// same request ID was received, and if so, will ignore the second
91715// request. This prevents clients from accidentally creating duplicate
91716// commitments.
91717//
91718// The request ID must be a valid UUID with the exception that zero UUID
91719// is not supported (00000000-0000-0000-0000-000000000000).
91720func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
91721	c.urlParams_.Set("requestId", requestId)
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 *NetworkEndpointGroupsAttachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
91729	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91730	return c
91731}
91732
91733// Context sets the context to be used in this call's Do method. Any
91734// pending HTTP request will be aborted if the provided context is
91735// canceled.
91736func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsAttachNetworkEndpointsCall {
91737	c.ctx_ = ctx
91738	return c
91739}
91740
91741// Header returns an http.Header that can be modified by the caller to
91742// add HTTP headers to the request.
91743func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Header() http.Header {
91744	if c.header_ == nil {
91745		c.header_ = make(http.Header)
91746	}
91747	return c.header_
91748}
91749
91750func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
91751	reqHeaders := make(http.Header)
91752	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91753	for k, v := range c.header_ {
91754		reqHeaders[k] = v
91755	}
91756	reqHeaders.Set("User-Agent", c.s.userAgent())
91757	var body io.Reader = nil
91758	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsattachendpointsrequest)
91759	if err != nil {
91760		return nil, err
91761	}
91762	reqHeaders.Set("Content-Type", "application/json")
91763	c.urlParams_.Set("alt", alt)
91764	c.urlParams_.Set("prettyPrint", "false")
91765	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints")
91766	urls += "?" + c.urlParams_.Encode()
91767	req, err := http.NewRequest("POST", urls, body)
91768	if err != nil {
91769		return nil, err
91770	}
91771	req.Header = reqHeaders
91772	googleapi.Expand(req.URL, map[string]string{
91773		"project":              c.project,
91774		"zone":                 c.zone,
91775		"networkEndpointGroup": c.networkEndpointGroup,
91776	})
91777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91778}
91779
91780// Do executes the "compute.networkEndpointGroups.attachNetworkEndpoints" call.
91781// Exactly one of *Operation or error will be non-nil. Any non-2xx
91782// status code is an error. Response headers are in either
91783// *Operation.ServerResponse.Header or (if a response was returned at
91784// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91785// to check whether the returned error was because
91786// http.StatusNotModified was returned.
91787func (c *NetworkEndpointGroupsAttachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91788	gensupport.SetOptions(c.urlParams_, opts...)
91789	res, err := c.doRequest("json")
91790	if res != nil && res.StatusCode == http.StatusNotModified {
91791		if res.Body != nil {
91792			res.Body.Close()
91793		}
91794		return nil, &googleapi.Error{
91795			Code:   res.StatusCode,
91796			Header: res.Header,
91797		}
91798	}
91799	if err != nil {
91800		return nil, err
91801	}
91802	defer googleapi.CloseBody(res)
91803	if err := googleapi.CheckResponse(res); err != nil {
91804		return nil, err
91805	}
91806	ret := &Operation{
91807		ServerResponse: googleapi.ServerResponse{
91808			Header:         res.Header,
91809			HTTPStatusCode: res.StatusCode,
91810		},
91811	}
91812	target := &ret
91813	if err := gensupport.DecodeResponse(target, res); err != nil {
91814		return nil, err
91815	}
91816	return ret, nil
91817	// {
91818	//   "description": "Attach a list of network endpoints to the specified network endpoint group.",
91819	//   "httpMethod": "POST",
91820	//   "id": "compute.networkEndpointGroups.attachNetworkEndpoints",
91821	//   "parameterOrder": [
91822	//     "project",
91823	//     "zone",
91824	//     "networkEndpointGroup"
91825	//   ],
91826	//   "parameters": {
91827	//     "networkEndpointGroup": {
91828	//       "description": "The name of the network endpoint group where you are attaching network endpoints to. It should comply with RFC1035.",
91829	//       "location": "path",
91830	//       "required": true,
91831	//       "type": "string"
91832	//     },
91833	//     "project": {
91834	//       "description": "Project ID for this request.",
91835	//       "location": "path",
91836	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
91837	//       "required": true,
91838	//       "type": "string"
91839	//     },
91840	//     "requestId": {
91841	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
91842	//       "location": "query",
91843	//       "type": "string"
91844	//     },
91845	//     "zone": {
91846	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
91847	//       "location": "path",
91848	//       "required": true,
91849	//       "type": "string"
91850	//     }
91851	//   },
91852	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/attachNetworkEndpoints",
91853	//   "request": {
91854	//     "$ref": "NetworkEndpointGroupsAttachEndpointsRequest"
91855	//   },
91856	//   "response": {
91857	//     "$ref": "Operation"
91858	//   },
91859	//   "scopes": [
91860	//     "https://www.googleapis.com/auth/cloud-platform",
91861	//     "https://www.googleapis.com/auth/compute"
91862	//   ]
91863	// }
91864
91865}
91866
91867// method id "compute.networkEndpointGroups.delete":
91868
91869type NetworkEndpointGroupsDeleteCall struct {
91870	s                    *Service
91871	project              string
91872	zone                 string
91873	networkEndpointGroup string
91874	urlParams_           gensupport.URLParams
91875	ctx_                 context.Context
91876	header_              http.Header
91877}
91878
91879// Delete: Deletes the specified network endpoint group. The network
91880// endpoints in the NEG and the VM instances they belong to are not
91881// terminated when the NEG is deleted. Note that the NEG cannot be
91882// deleted if there are backend services referencing it.
91883func (r *NetworkEndpointGroupsService) Delete(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsDeleteCall {
91884	c := &NetworkEndpointGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
91885	c.project = project
91886	c.zone = zone
91887	c.networkEndpointGroup = networkEndpointGroup
91888	return c
91889}
91890
91891// RequestId sets the optional parameter "requestId": An optional
91892// request ID to identify requests. Specify a unique request ID so that
91893// if you must retry your request, the server will know to ignore the
91894// request if it has already been completed.
91895//
91896// For example, consider a situation where you make an initial request
91897// and the request times out. If you make the request again with the
91898// same request ID, the server can check if original operation with the
91899// same request ID was received, and if so, will ignore the second
91900// request. This prevents clients from accidentally creating duplicate
91901// commitments.
91902//
91903// The request ID must be a valid UUID with the exception that zero UUID
91904// is not supported (00000000-0000-0000-0000-000000000000).
91905func (c *NetworkEndpointGroupsDeleteCall) RequestId(requestId string) *NetworkEndpointGroupsDeleteCall {
91906	c.urlParams_.Set("requestId", requestId)
91907	return c
91908}
91909
91910// Fields allows partial responses to be retrieved. See
91911// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
91912// for more information.
91913func (c *NetworkEndpointGroupsDeleteCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDeleteCall {
91914	c.urlParams_.Set("fields", googleapi.CombineFields(s))
91915	return c
91916}
91917
91918// Context sets the context to be used in this call's Do method. Any
91919// pending HTTP request will be aborted if the provided context is
91920// canceled.
91921func (c *NetworkEndpointGroupsDeleteCall) Context(ctx context.Context) *NetworkEndpointGroupsDeleteCall {
91922	c.ctx_ = ctx
91923	return c
91924}
91925
91926// Header returns an http.Header that can be modified by the caller to
91927// add HTTP headers to the request.
91928func (c *NetworkEndpointGroupsDeleteCall) Header() http.Header {
91929	if c.header_ == nil {
91930		c.header_ = make(http.Header)
91931	}
91932	return c.header_
91933}
91934
91935func (c *NetworkEndpointGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
91936	reqHeaders := make(http.Header)
91937	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
91938	for k, v := range c.header_ {
91939		reqHeaders[k] = v
91940	}
91941	reqHeaders.Set("User-Agent", c.s.userAgent())
91942	var body io.Reader = nil
91943	c.urlParams_.Set("alt", alt)
91944	c.urlParams_.Set("prettyPrint", "false")
91945	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
91946	urls += "?" + c.urlParams_.Encode()
91947	req, err := http.NewRequest("DELETE", urls, body)
91948	if err != nil {
91949		return nil, err
91950	}
91951	req.Header = reqHeaders
91952	googleapi.Expand(req.URL, map[string]string{
91953		"project":              c.project,
91954		"zone":                 c.zone,
91955		"networkEndpointGroup": c.networkEndpointGroup,
91956	})
91957	return gensupport.SendRequest(c.ctx_, c.s.client, req)
91958}
91959
91960// Do executes the "compute.networkEndpointGroups.delete" call.
91961// Exactly one of *Operation or error will be non-nil. Any non-2xx
91962// status code is an error. Response headers are in either
91963// *Operation.ServerResponse.Header or (if a response was returned at
91964// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
91965// to check whether the returned error was because
91966// http.StatusNotModified was returned.
91967func (c *NetworkEndpointGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
91968	gensupport.SetOptions(c.urlParams_, opts...)
91969	res, err := c.doRequest("json")
91970	if res != nil && res.StatusCode == http.StatusNotModified {
91971		if res.Body != nil {
91972			res.Body.Close()
91973		}
91974		return nil, &googleapi.Error{
91975			Code:   res.StatusCode,
91976			Header: res.Header,
91977		}
91978	}
91979	if err != nil {
91980		return nil, err
91981	}
91982	defer googleapi.CloseBody(res)
91983	if err := googleapi.CheckResponse(res); err != nil {
91984		return nil, err
91985	}
91986	ret := &Operation{
91987		ServerResponse: googleapi.ServerResponse{
91988			Header:         res.Header,
91989			HTTPStatusCode: res.StatusCode,
91990		},
91991	}
91992	target := &ret
91993	if err := gensupport.DecodeResponse(target, res); err != nil {
91994		return nil, err
91995	}
91996	return ret, nil
91997	// {
91998	//   "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.",
91999	//   "httpMethod": "DELETE",
92000	//   "id": "compute.networkEndpointGroups.delete",
92001	//   "parameterOrder": [
92002	//     "project",
92003	//     "zone",
92004	//     "networkEndpointGroup"
92005	//   ],
92006	//   "parameters": {
92007	//     "networkEndpointGroup": {
92008	//       "description": "The name of the network endpoint group to delete. It should comply with RFC1035.",
92009	//       "location": "path",
92010	//       "required": true,
92011	//       "type": "string"
92012	//     },
92013	//     "project": {
92014	//       "description": "Project ID for this request.",
92015	//       "location": "path",
92016	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92017	//       "required": true,
92018	//       "type": "string"
92019	//     },
92020	//     "requestId": {
92021	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92022	//       "location": "query",
92023	//       "type": "string"
92024	//     },
92025	//     "zone": {
92026	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
92027	//       "location": "path",
92028	//       "required": true,
92029	//       "type": "string"
92030	//     }
92031	//   },
92032	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
92033	//   "response": {
92034	//     "$ref": "Operation"
92035	//   },
92036	//   "scopes": [
92037	//     "https://www.googleapis.com/auth/cloud-platform",
92038	//     "https://www.googleapis.com/auth/compute"
92039	//   ]
92040	// }
92041
92042}
92043
92044// method id "compute.networkEndpointGroups.detachNetworkEndpoints":
92045
92046type NetworkEndpointGroupsDetachNetworkEndpointsCall struct {
92047	s                                           *Service
92048	project                                     string
92049	zone                                        string
92050	networkEndpointGroup                        string
92051	networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest
92052	urlParams_                                  gensupport.URLParams
92053	ctx_                                        context.Context
92054	header_                                     http.Header
92055}
92056
92057// DetachNetworkEndpoints: Detach a list of network endpoints from the
92058// specified network endpoint group.
92059func (r *NetworkEndpointGroupsService) DetachNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupsdetachendpointsrequest *NetworkEndpointGroupsDetachEndpointsRequest) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
92060	c := &NetworkEndpointGroupsDetachNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92061	c.project = project
92062	c.zone = zone
92063	c.networkEndpointGroup = networkEndpointGroup
92064	c.networkendpointgroupsdetachendpointsrequest = networkendpointgroupsdetachendpointsrequest
92065	return c
92066}
92067
92068// RequestId sets the optional parameter "requestId": An optional
92069// request ID to identify requests. Specify a unique request ID so that
92070// if you must retry your request, the server will know to ignore the
92071// request if it has already been completed.
92072//
92073// For example, consider a situation where you make an initial request
92074// and the request times out. If you make the request again with the
92075// same request ID, the server can check if original operation with the
92076// same request ID was received, and if so, will ignore the second
92077// request. This prevents clients from accidentally creating duplicate
92078// commitments.
92079//
92080// The request ID must be a valid UUID with the exception that zero UUID
92081// is not supported (00000000-0000-0000-0000-000000000000).
92082func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) RequestId(requestId string) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
92083	c.urlParams_.Set("requestId", requestId)
92084	return c
92085}
92086
92087// Fields allows partial responses to be retrieved. See
92088// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92089// for more information.
92090func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
92091	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92092	return c
92093}
92094
92095// Context sets the context to be used in this call's Do method. Any
92096// pending HTTP request will be aborted if the provided context is
92097// canceled.
92098func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsDetachNetworkEndpointsCall {
92099	c.ctx_ = ctx
92100	return c
92101}
92102
92103// Header returns an http.Header that can be modified by the caller to
92104// add HTTP headers to the request.
92105func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Header() http.Header {
92106	if c.header_ == nil {
92107		c.header_ = make(http.Header)
92108	}
92109	return c.header_
92110}
92111
92112func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
92113	reqHeaders := make(http.Header)
92114	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92115	for k, v := range c.header_ {
92116		reqHeaders[k] = v
92117	}
92118	reqHeaders.Set("User-Agent", c.s.userAgent())
92119	var body io.Reader = nil
92120	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupsdetachendpointsrequest)
92121	if err != nil {
92122		return nil, err
92123	}
92124	reqHeaders.Set("Content-Type", "application/json")
92125	c.urlParams_.Set("alt", alt)
92126	c.urlParams_.Set("prettyPrint", "false")
92127	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints")
92128	urls += "?" + c.urlParams_.Encode()
92129	req, err := http.NewRequest("POST", urls, body)
92130	if err != nil {
92131		return nil, err
92132	}
92133	req.Header = reqHeaders
92134	googleapi.Expand(req.URL, map[string]string{
92135		"project":              c.project,
92136		"zone":                 c.zone,
92137		"networkEndpointGroup": c.networkEndpointGroup,
92138	})
92139	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92140}
92141
92142// Do executes the "compute.networkEndpointGroups.detachNetworkEndpoints" call.
92143// Exactly one of *Operation or error will be non-nil. Any non-2xx
92144// status code is an error. Response headers are in either
92145// *Operation.ServerResponse.Header or (if a response was returned at
92146// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92147// to check whether the returned error was because
92148// http.StatusNotModified was returned.
92149func (c *NetworkEndpointGroupsDetachNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92150	gensupport.SetOptions(c.urlParams_, opts...)
92151	res, err := c.doRequest("json")
92152	if res != nil && res.StatusCode == http.StatusNotModified {
92153		if res.Body != nil {
92154			res.Body.Close()
92155		}
92156		return nil, &googleapi.Error{
92157			Code:   res.StatusCode,
92158			Header: res.Header,
92159		}
92160	}
92161	if err != nil {
92162		return nil, err
92163	}
92164	defer googleapi.CloseBody(res)
92165	if err := googleapi.CheckResponse(res); err != nil {
92166		return nil, err
92167	}
92168	ret := &Operation{
92169		ServerResponse: googleapi.ServerResponse{
92170			Header:         res.Header,
92171			HTTPStatusCode: res.StatusCode,
92172		},
92173	}
92174	target := &ret
92175	if err := gensupport.DecodeResponse(target, res); err != nil {
92176		return nil, err
92177	}
92178	return ret, nil
92179	// {
92180	//   "description": "Detach a list of network endpoints from the specified network endpoint group.",
92181	//   "httpMethod": "POST",
92182	//   "id": "compute.networkEndpointGroups.detachNetworkEndpoints",
92183	//   "parameterOrder": [
92184	//     "project",
92185	//     "zone",
92186	//     "networkEndpointGroup"
92187	//   ],
92188	//   "parameters": {
92189	//     "networkEndpointGroup": {
92190	//       "description": "The name of the network endpoint group where you are removing network endpoints. It should comply with RFC1035.",
92191	//       "location": "path",
92192	//       "required": true,
92193	//       "type": "string"
92194	//     },
92195	//     "project": {
92196	//       "description": "Project ID for this request.",
92197	//       "location": "path",
92198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92199	//       "required": true,
92200	//       "type": "string"
92201	//     },
92202	//     "requestId": {
92203	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92204	//       "location": "query",
92205	//       "type": "string"
92206	//     },
92207	//     "zone": {
92208	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
92209	//       "location": "path",
92210	//       "required": true,
92211	//       "type": "string"
92212	//     }
92213	//   },
92214	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/detachNetworkEndpoints",
92215	//   "request": {
92216	//     "$ref": "NetworkEndpointGroupsDetachEndpointsRequest"
92217	//   },
92218	//   "response": {
92219	//     "$ref": "Operation"
92220	//   },
92221	//   "scopes": [
92222	//     "https://www.googleapis.com/auth/cloud-platform",
92223	//     "https://www.googleapis.com/auth/compute"
92224	//   ]
92225	// }
92226
92227}
92228
92229// method id "compute.networkEndpointGroups.get":
92230
92231type NetworkEndpointGroupsGetCall struct {
92232	s                    *Service
92233	project              string
92234	zone                 string
92235	networkEndpointGroup string
92236	urlParams_           gensupport.URLParams
92237	ifNoneMatch_         string
92238	ctx_                 context.Context
92239	header_              http.Header
92240}
92241
92242// Get: Returns the specified network endpoint group. Gets a list of
92243// available network endpoint groups by making a list() request.
92244func (r *NetworkEndpointGroupsService) Get(project string, zone string, networkEndpointGroup string) *NetworkEndpointGroupsGetCall {
92245	c := &NetworkEndpointGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92246	c.project = project
92247	c.zone = zone
92248	c.networkEndpointGroup = networkEndpointGroup
92249	return c
92250}
92251
92252// Fields allows partial responses to be retrieved. See
92253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92254// for more information.
92255func (c *NetworkEndpointGroupsGetCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsGetCall {
92256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92257	return c
92258}
92259
92260// IfNoneMatch sets the optional parameter which makes the operation
92261// fail if the object's ETag matches the given value. This is useful for
92262// getting updates only after the object has changed since the last
92263// request. Use googleapi.IsNotModified to check whether the response
92264// error from Do is the result of In-None-Match.
92265func (c *NetworkEndpointGroupsGetCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsGetCall {
92266	c.ifNoneMatch_ = entityTag
92267	return c
92268}
92269
92270// Context sets the context to be used in this call's Do method. Any
92271// pending HTTP request will be aborted if the provided context is
92272// canceled.
92273func (c *NetworkEndpointGroupsGetCall) Context(ctx context.Context) *NetworkEndpointGroupsGetCall {
92274	c.ctx_ = ctx
92275	return c
92276}
92277
92278// Header returns an http.Header that can be modified by the caller to
92279// add HTTP headers to the request.
92280func (c *NetworkEndpointGroupsGetCall) Header() http.Header {
92281	if c.header_ == nil {
92282		c.header_ = make(http.Header)
92283	}
92284	return c.header_
92285}
92286
92287func (c *NetworkEndpointGroupsGetCall) doRequest(alt string) (*http.Response, error) {
92288	reqHeaders := make(http.Header)
92289	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92290	for k, v := range c.header_ {
92291		reqHeaders[k] = v
92292	}
92293	reqHeaders.Set("User-Agent", c.s.userAgent())
92294	if c.ifNoneMatch_ != "" {
92295		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92296	}
92297	var body io.Reader = nil
92298	c.urlParams_.Set("alt", alt)
92299	c.urlParams_.Set("prettyPrint", "false")
92300	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}")
92301	urls += "?" + c.urlParams_.Encode()
92302	req, err := http.NewRequest("GET", urls, body)
92303	if err != nil {
92304		return nil, err
92305	}
92306	req.Header = reqHeaders
92307	googleapi.Expand(req.URL, map[string]string{
92308		"project":              c.project,
92309		"zone":                 c.zone,
92310		"networkEndpointGroup": c.networkEndpointGroup,
92311	})
92312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92313}
92314
92315// Do executes the "compute.networkEndpointGroups.get" call.
92316// Exactly one of *NetworkEndpointGroup or error will be non-nil. Any
92317// non-2xx status code is an error. Response headers are in either
92318// *NetworkEndpointGroup.ServerResponse.Header or (if a response was
92319// returned at all) in error.(*googleapi.Error).Header. Use
92320// googleapi.IsNotModified to check whether the returned error was
92321// because http.StatusNotModified was returned.
92322func (c *NetworkEndpointGroupsGetCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroup, error) {
92323	gensupport.SetOptions(c.urlParams_, opts...)
92324	res, err := c.doRequest("json")
92325	if res != nil && res.StatusCode == http.StatusNotModified {
92326		if res.Body != nil {
92327			res.Body.Close()
92328		}
92329		return nil, &googleapi.Error{
92330			Code:   res.StatusCode,
92331			Header: res.Header,
92332		}
92333	}
92334	if err != nil {
92335		return nil, err
92336	}
92337	defer googleapi.CloseBody(res)
92338	if err := googleapi.CheckResponse(res); err != nil {
92339		return nil, err
92340	}
92341	ret := &NetworkEndpointGroup{
92342		ServerResponse: googleapi.ServerResponse{
92343			Header:         res.Header,
92344			HTTPStatusCode: res.StatusCode,
92345		},
92346	}
92347	target := &ret
92348	if err := gensupport.DecodeResponse(target, res); err != nil {
92349		return nil, err
92350	}
92351	return ret, nil
92352	// {
92353	//   "description": "Returns the specified network endpoint group. Gets a list of available network endpoint groups by making a list() request.",
92354	//   "httpMethod": "GET",
92355	//   "id": "compute.networkEndpointGroups.get",
92356	//   "parameterOrder": [
92357	//     "project",
92358	//     "zone",
92359	//     "networkEndpointGroup"
92360	//   ],
92361	//   "parameters": {
92362	//     "networkEndpointGroup": {
92363	//       "description": "The name of the network endpoint group. It should comply with RFC1035.",
92364	//       "location": "path",
92365	//       "required": true,
92366	//       "type": "string"
92367	//     },
92368	//     "project": {
92369	//       "description": "Project ID for this request.",
92370	//       "location": "path",
92371	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92372	//       "required": true,
92373	//       "type": "string"
92374	//     },
92375	//     "zone": {
92376	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
92377	//       "location": "path",
92378	//       "required": true,
92379	//       "type": "string"
92380	//     }
92381	//   },
92382	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}",
92383	//   "response": {
92384	//     "$ref": "NetworkEndpointGroup"
92385	//   },
92386	//   "scopes": [
92387	//     "https://www.googleapis.com/auth/cloud-platform",
92388	//     "https://www.googleapis.com/auth/compute",
92389	//     "https://www.googleapis.com/auth/compute.readonly"
92390	//   ]
92391	// }
92392
92393}
92394
92395// method id "compute.networkEndpointGroups.insert":
92396
92397type NetworkEndpointGroupsInsertCall struct {
92398	s                    *Service
92399	project              string
92400	zone                 string
92401	networkendpointgroup *NetworkEndpointGroup
92402	urlParams_           gensupport.URLParams
92403	ctx_                 context.Context
92404	header_              http.Header
92405}
92406
92407// Insert: Creates a network endpoint group in the specified project
92408// using the parameters that are included in the request.
92409func (r *NetworkEndpointGroupsService) Insert(project string, zone string, networkendpointgroup *NetworkEndpointGroup) *NetworkEndpointGroupsInsertCall {
92410	c := &NetworkEndpointGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92411	c.project = project
92412	c.zone = zone
92413	c.networkendpointgroup = networkendpointgroup
92414	return c
92415}
92416
92417// RequestId sets the optional parameter "requestId": An optional
92418// request ID to identify requests. Specify a unique request ID so that
92419// if you must retry your request, the server will know to ignore the
92420// request if it has already been completed.
92421//
92422// For example, consider a situation where you make an initial request
92423// and the request times out. If you make the request again with the
92424// same request ID, the server can check if original operation with the
92425// same request ID was received, and if so, will ignore the second
92426// request. This prevents clients from accidentally creating duplicate
92427// commitments.
92428//
92429// The request ID must be a valid UUID with the exception that zero UUID
92430// is not supported (00000000-0000-0000-0000-000000000000).
92431func (c *NetworkEndpointGroupsInsertCall) RequestId(requestId string) *NetworkEndpointGroupsInsertCall {
92432	c.urlParams_.Set("requestId", requestId)
92433	return c
92434}
92435
92436// Fields allows partial responses to be retrieved. See
92437// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92438// for more information.
92439func (c *NetworkEndpointGroupsInsertCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsInsertCall {
92440	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92441	return c
92442}
92443
92444// Context sets the context to be used in this call's Do method. Any
92445// pending HTTP request will be aborted if the provided context is
92446// canceled.
92447func (c *NetworkEndpointGroupsInsertCall) Context(ctx context.Context) *NetworkEndpointGroupsInsertCall {
92448	c.ctx_ = ctx
92449	return c
92450}
92451
92452// Header returns an http.Header that can be modified by the caller to
92453// add HTTP headers to the request.
92454func (c *NetworkEndpointGroupsInsertCall) Header() http.Header {
92455	if c.header_ == nil {
92456		c.header_ = make(http.Header)
92457	}
92458	return c.header_
92459}
92460
92461func (c *NetworkEndpointGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
92462	reqHeaders := make(http.Header)
92463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92464	for k, v := range c.header_ {
92465		reqHeaders[k] = v
92466	}
92467	reqHeaders.Set("User-Agent", c.s.userAgent())
92468	var body io.Reader = nil
92469	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroup)
92470	if err != nil {
92471		return nil, err
92472	}
92473	reqHeaders.Set("Content-Type", "application/json")
92474	c.urlParams_.Set("alt", alt)
92475	c.urlParams_.Set("prettyPrint", "false")
92476	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
92477	urls += "?" + c.urlParams_.Encode()
92478	req, err := http.NewRequest("POST", urls, body)
92479	if err != nil {
92480		return nil, err
92481	}
92482	req.Header = reqHeaders
92483	googleapi.Expand(req.URL, map[string]string{
92484		"project": c.project,
92485		"zone":    c.zone,
92486	})
92487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92488}
92489
92490// Do executes the "compute.networkEndpointGroups.insert" call.
92491// Exactly one of *Operation or error will be non-nil. Any non-2xx
92492// status code is an error. Response headers are in either
92493// *Operation.ServerResponse.Header or (if a response was returned at
92494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
92495// to check whether the returned error was because
92496// http.StatusNotModified was returned.
92497func (c *NetworkEndpointGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
92498	gensupport.SetOptions(c.urlParams_, opts...)
92499	res, err := c.doRequest("json")
92500	if res != nil && res.StatusCode == http.StatusNotModified {
92501		if res.Body != nil {
92502			res.Body.Close()
92503		}
92504		return nil, &googleapi.Error{
92505			Code:   res.StatusCode,
92506			Header: res.Header,
92507		}
92508	}
92509	if err != nil {
92510		return nil, err
92511	}
92512	defer googleapi.CloseBody(res)
92513	if err := googleapi.CheckResponse(res); err != nil {
92514		return nil, err
92515	}
92516	ret := &Operation{
92517		ServerResponse: googleapi.ServerResponse{
92518			Header:         res.Header,
92519			HTTPStatusCode: res.StatusCode,
92520		},
92521	}
92522	target := &ret
92523	if err := gensupport.DecodeResponse(target, res); err != nil {
92524		return nil, err
92525	}
92526	return ret, nil
92527	// {
92528	//   "description": "Creates a network endpoint group in the specified project using the parameters that are included in the request.",
92529	//   "httpMethod": "POST",
92530	//   "id": "compute.networkEndpointGroups.insert",
92531	//   "parameterOrder": [
92532	//     "project",
92533	//     "zone"
92534	//   ],
92535	//   "parameters": {
92536	//     "project": {
92537	//       "description": "Project ID for this request.",
92538	//       "location": "path",
92539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92540	//       "required": true,
92541	//       "type": "string"
92542	//     },
92543	//     "requestId": {
92544	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
92545	//       "location": "query",
92546	//       "type": "string"
92547	//     },
92548	//     "zone": {
92549	//       "description": "The name of the zone where you want to create the network endpoint group. It should comply with RFC1035.",
92550	//       "location": "path",
92551	//       "required": true,
92552	//       "type": "string"
92553	//     }
92554	//   },
92555	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
92556	//   "request": {
92557	//     "$ref": "NetworkEndpointGroup"
92558	//   },
92559	//   "response": {
92560	//     "$ref": "Operation"
92561	//   },
92562	//   "scopes": [
92563	//     "https://www.googleapis.com/auth/cloud-platform",
92564	//     "https://www.googleapis.com/auth/compute"
92565	//   ]
92566	// }
92567
92568}
92569
92570// method id "compute.networkEndpointGroups.list":
92571
92572type NetworkEndpointGroupsListCall struct {
92573	s            *Service
92574	project      string
92575	zone         string
92576	urlParams_   gensupport.URLParams
92577	ifNoneMatch_ string
92578	ctx_         context.Context
92579	header_      http.Header
92580}
92581
92582// List: Retrieves the list of network endpoint groups that are located
92583// in the specified project and zone.
92584func (r *NetworkEndpointGroupsService) List(project string, zone string) *NetworkEndpointGroupsListCall {
92585	c := &NetworkEndpointGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92586	c.project = project
92587	c.zone = zone
92588	return c
92589}
92590
92591// Filter sets the optional parameter "filter": A filter expression that
92592// filters resources listed in the response. The expression must specify
92593// the field name, a comparison operator, and the value that you want to
92594// use for filtering. The value must be a string, a number, or a
92595// boolean. The comparison operator must be either =, !=, >, or <.
92596//
92597// For example, if you are filtering Compute Engine instances, you can
92598// exclude instances named example-instance by specifying name !=
92599// example-instance.
92600//
92601// You can also filter nested fields. For example, you could specify
92602// scheduling.automaticRestart = false to include instances only if they
92603// are not scheduled for automatic restarts. You can use filtering on
92604// nested fields to filter based on resource labels.
92605//
92606// To filter on multiple expressions, provide each separate expression
92607// within parentheses. For example, (scheduling.automaticRestart = true)
92608// (cpuPlatform = "Intel Skylake"). By default, each expression is an
92609// AND expression. However, you can include AND and OR expressions
92610// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
92611// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
92612// true).
92613func (c *NetworkEndpointGroupsListCall) Filter(filter string) *NetworkEndpointGroupsListCall {
92614	c.urlParams_.Set("filter", filter)
92615	return c
92616}
92617
92618// MaxResults sets the optional parameter "maxResults": The maximum
92619// number of results per page that should be returned. If the number of
92620// available results is larger than maxResults, Compute Engine returns a
92621// nextPageToken that can be used to get the next page of results in
92622// subsequent list requests. Acceptable values are 0 to 500, inclusive.
92623// (Default: 500)
92624func (c *NetworkEndpointGroupsListCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListCall {
92625	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92626	return c
92627}
92628
92629// OrderBy sets the optional parameter "orderBy": Sorts list results by
92630// a certain order. By default, results are returned in alphanumerical
92631// order based on the resource name.
92632//
92633// You can also sort results in descending order based on the creation
92634// timestamp using orderBy="creationTimestamp desc". This sorts results
92635// based on the creationTimestamp field in reverse chronological order
92636// (newest result first). Use this to sort resources like operations so
92637// that the newest operation is returned first.
92638//
92639// Currently, only sorting by name or creationTimestamp desc is
92640// supported.
92641func (c *NetworkEndpointGroupsListCall) OrderBy(orderBy string) *NetworkEndpointGroupsListCall {
92642	c.urlParams_.Set("orderBy", orderBy)
92643	return c
92644}
92645
92646// PageToken sets the optional parameter "pageToken": Specifies a page
92647// token to use. Set pageToken to the nextPageToken returned by a
92648// previous list request to get the next page of results.
92649func (c *NetworkEndpointGroupsListCall) PageToken(pageToken string) *NetworkEndpointGroupsListCall {
92650	c.urlParams_.Set("pageToken", pageToken)
92651	return c
92652}
92653
92654// Fields allows partial responses to be retrieved. See
92655// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92656// for more information.
92657func (c *NetworkEndpointGroupsListCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListCall {
92658	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92659	return c
92660}
92661
92662// IfNoneMatch sets the optional parameter which makes the operation
92663// fail if the object's ETag matches the given value. This is useful for
92664// getting updates only after the object has changed since the last
92665// request. Use googleapi.IsNotModified to check whether the response
92666// error from Do is the result of In-None-Match.
92667func (c *NetworkEndpointGroupsListCall) IfNoneMatch(entityTag string) *NetworkEndpointGroupsListCall {
92668	c.ifNoneMatch_ = entityTag
92669	return c
92670}
92671
92672// Context sets the context to be used in this call's Do method. Any
92673// pending HTTP request will be aborted if the provided context is
92674// canceled.
92675func (c *NetworkEndpointGroupsListCall) Context(ctx context.Context) *NetworkEndpointGroupsListCall {
92676	c.ctx_ = ctx
92677	return c
92678}
92679
92680// Header returns an http.Header that can be modified by the caller to
92681// add HTTP headers to the request.
92682func (c *NetworkEndpointGroupsListCall) Header() http.Header {
92683	if c.header_ == nil {
92684		c.header_ = make(http.Header)
92685	}
92686	return c.header_
92687}
92688
92689func (c *NetworkEndpointGroupsListCall) doRequest(alt string) (*http.Response, error) {
92690	reqHeaders := make(http.Header)
92691	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92692	for k, v := range c.header_ {
92693		reqHeaders[k] = v
92694	}
92695	reqHeaders.Set("User-Agent", c.s.userAgent())
92696	if c.ifNoneMatch_ != "" {
92697		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
92698	}
92699	var body io.Reader = nil
92700	c.urlParams_.Set("alt", alt)
92701	c.urlParams_.Set("prettyPrint", "false")
92702	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups")
92703	urls += "?" + c.urlParams_.Encode()
92704	req, err := http.NewRequest("GET", urls, body)
92705	if err != nil {
92706		return nil, err
92707	}
92708	req.Header = reqHeaders
92709	googleapi.Expand(req.URL, map[string]string{
92710		"project": c.project,
92711		"zone":    c.zone,
92712	})
92713	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92714}
92715
92716// Do executes the "compute.networkEndpointGroups.list" call.
92717// Exactly one of *NetworkEndpointGroupList or error will be non-nil.
92718// Any non-2xx status code is an error. Response headers are in either
92719// *NetworkEndpointGroupList.ServerResponse.Header or (if a response was
92720// returned at all) in error.(*googleapi.Error).Header. Use
92721// googleapi.IsNotModified to check whether the returned error was
92722// because http.StatusNotModified was returned.
92723func (c *NetworkEndpointGroupsListCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupList, error) {
92724	gensupport.SetOptions(c.urlParams_, opts...)
92725	res, err := c.doRequest("json")
92726	if res != nil && res.StatusCode == http.StatusNotModified {
92727		if res.Body != nil {
92728			res.Body.Close()
92729		}
92730		return nil, &googleapi.Error{
92731			Code:   res.StatusCode,
92732			Header: res.Header,
92733		}
92734	}
92735	if err != nil {
92736		return nil, err
92737	}
92738	defer googleapi.CloseBody(res)
92739	if err := googleapi.CheckResponse(res); err != nil {
92740		return nil, err
92741	}
92742	ret := &NetworkEndpointGroupList{
92743		ServerResponse: googleapi.ServerResponse{
92744			Header:         res.Header,
92745			HTTPStatusCode: res.StatusCode,
92746		},
92747	}
92748	target := &ret
92749	if err := gensupport.DecodeResponse(target, res); err != nil {
92750		return nil, err
92751	}
92752	return ret, nil
92753	// {
92754	//   "description": "Retrieves the list of network endpoint groups that are located in the specified project and zone.",
92755	//   "httpMethod": "GET",
92756	//   "id": "compute.networkEndpointGroups.list",
92757	//   "parameterOrder": [
92758	//     "project",
92759	//     "zone"
92760	//   ],
92761	//   "parameters": {
92762	//     "filter": {
92763	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
92764	//       "location": "query",
92765	//       "type": "string"
92766	//     },
92767	//     "maxResults": {
92768	//       "default": "500",
92769	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
92770	//       "format": "uint32",
92771	//       "location": "query",
92772	//       "minimum": "0",
92773	//       "type": "integer"
92774	//     },
92775	//     "orderBy": {
92776	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
92777	//       "location": "query",
92778	//       "type": "string"
92779	//     },
92780	//     "pageToken": {
92781	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
92782	//       "location": "query",
92783	//       "type": "string"
92784	//     },
92785	//     "project": {
92786	//       "description": "Project ID for this request.",
92787	//       "location": "path",
92788	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
92789	//       "required": true,
92790	//       "type": "string"
92791	//     },
92792	//     "zone": {
92793	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
92794	//       "location": "path",
92795	//       "required": true,
92796	//       "type": "string"
92797	//     }
92798	//   },
92799	//   "path": "{project}/zones/{zone}/networkEndpointGroups",
92800	//   "response": {
92801	//     "$ref": "NetworkEndpointGroupList"
92802	//   },
92803	//   "scopes": [
92804	//     "https://www.googleapis.com/auth/cloud-platform",
92805	//     "https://www.googleapis.com/auth/compute",
92806	//     "https://www.googleapis.com/auth/compute.readonly"
92807	//   ]
92808	// }
92809
92810}
92811
92812// Pages invokes f for each page of results.
92813// A non-nil error returned from f will halt the iteration.
92814// The provided context supersedes any context provided to the Context method.
92815func (c *NetworkEndpointGroupsListCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupList) error) error {
92816	c.ctx_ = ctx
92817	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
92818	for {
92819		x, err := c.Do()
92820		if err != nil {
92821			return err
92822		}
92823		if err := f(x); err != nil {
92824			return err
92825		}
92826		if x.NextPageToken == "" {
92827			return nil
92828		}
92829		c.PageToken(x.NextPageToken)
92830	}
92831}
92832
92833// method id "compute.networkEndpointGroups.listNetworkEndpoints":
92834
92835type NetworkEndpointGroupsListNetworkEndpointsCall struct {
92836	s                                         *Service
92837	project                                   string
92838	zone                                      string
92839	networkEndpointGroup                      string
92840	networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest
92841	urlParams_                                gensupport.URLParams
92842	ctx_                                      context.Context
92843	header_                                   http.Header
92844}
92845
92846// ListNetworkEndpoints: Lists the network endpoints in the specified
92847// network endpoint group.
92848func (r *NetworkEndpointGroupsService) ListNetworkEndpoints(project string, zone string, networkEndpointGroup string, networkendpointgroupslistendpointsrequest *NetworkEndpointGroupsListEndpointsRequest) *NetworkEndpointGroupsListNetworkEndpointsCall {
92849	c := &NetworkEndpointGroupsListNetworkEndpointsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
92850	c.project = project
92851	c.zone = zone
92852	c.networkEndpointGroup = networkEndpointGroup
92853	c.networkendpointgroupslistendpointsrequest = networkendpointgroupslistendpointsrequest
92854	return c
92855}
92856
92857// Filter sets the optional parameter "filter": A filter expression that
92858// filters resources listed in the response. The expression must specify
92859// the field name, a comparison operator, and the value that you want to
92860// use for filtering. The value must be a string, a number, or a
92861// boolean. The comparison operator must be either =, !=, >, or <.
92862//
92863// For example, if you are filtering Compute Engine instances, you can
92864// exclude instances named example-instance by specifying name !=
92865// example-instance.
92866//
92867// You can also filter nested fields. For example, you could specify
92868// scheduling.automaticRestart = false to include instances only if they
92869// are not scheduled for automatic restarts. You can use filtering on
92870// nested fields to filter based on resource labels.
92871//
92872// To filter on multiple expressions, provide each separate expression
92873// within parentheses. For example, (scheduling.automaticRestart = true)
92874// (cpuPlatform = "Intel Skylake"). By default, each expression is an
92875// AND expression. However, you can include AND and OR expressions
92876// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
92877// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
92878// true).
92879func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Filter(filter string) *NetworkEndpointGroupsListNetworkEndpointsCall {
92880	c.urlParams_.Set("filter", filter)
92881	return c
92882}
92883
92884// MaxResults sets the optional parameter "maxResults": The maximum
92885// number of results per page that should be returned. If the number of
92886// available results is larger than maxResults, Compute Engine returns a
92887// nextPageToken that can be used to get the next page of results in
92888// subsequent list requests. Acceptable values are 0 to 500, inclusive.
92889// (Default: 500)
92890func (c *NetworkEndpointGroupsListNetworkEndpointsCall) MaxResults(maxResults int64) *NetworkEndpointGroupsListNetworkEndpointsCall {
92891	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
92892	return c
92893}
92894
92895// OrderBy sets the optional parameter "orderBy": Sorts list results by
92896// a certain order. By default, results are returned in alphanumerical
92897// order based on the resource name.
92898//
92899// You can also sort results in descending order based on the creation
92900// timestamp using orderBy="creationTimestamp desc". This sorts results
92901// based on the creationTimestamp field in reverse chronological order
92902// (newest result first). Use this to sort resources like operations so
92903// that the newest operation is returned first.
92904//
92905// Currently, only sorting by name or creationTimestamp desc is
92906// supported.
92907func (c *NetworkEndpointGroupsListNetworkEndpointsCall) OrderBy(orderBy string) *NetworkEndpointGroupsListNetworkEndpointsCall {
92908	c.urlParams_.Set("orderBy", orderBy)
92909	return c
92910}
92911
92912// PageToken sets the optional parameter "pageToken": Specifies a page
92913// token to use. Set pageToken to the nextPageToken returned by a
92914// previous list request to get the next page of results.
92915func (c *NetworkEndpointGroupsListNetworkEndpointsCall) PageToken(pageToken string) *NetworkEndpointGroupsListNetworkEndpointsCall {
92916	c.urlParams_.Set("pageToken", pageToken)
92917	return c
92918}
92919
92920// Fields allows partial responses to be retrieved. See
92921// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
92922// for more information.
92923func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsListNetworkEndpointsCall {
92924	c.urlParams_.Set("fields", googleapi.CombineFields(s))
92925	return c
92926}
92927
92928// Context sets the context to be used in this call's Do method. Any
92929// pending HTTP request will be aborted if the provided context is
92930// canceled.
92931func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Context(ctx context.Context) *NetworkEndpointGroupsListNetworkEndpointsCall {
92932	c.ctx_ = ctx
92933	return c
92934}
92935
92936// Header returns an http.Header that can be modified by the caller to
92937// add HTTP headers to the request.
92938func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Header() http.Header {
92939	if c.header_ == nil {
92940		c.header_ = make(http.Header)
92941	}
92942	return c.header_
92943}
92944
92945func (c *NetworkEndpointGroupsListNetworkEndpointsCall) doRequest(alt string) (*http.Response, error) {
92946	reqHeaders := make(http.Header)
92947	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
92948	for k, v := range c.header_ {
92949		reqHeaders[k] = v
92950	}
92951	reqHeaders.Set("User-Agent", c.s.userAgent())
92952	var body io.Reader = nil
92953	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networkendpointgroupslistendpointsrequest)
92954	if err != nil {
92955		return nil, err
92956	}
92957	reqHeaders.Set("Content-Type", "application/json")
92958	c.urlParams_.Set("alt", alt)
92959	c.urlParams_.Set("prettyPrint", "false")
92960	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints")
92961	urls += "?" + c.urlParams_.Encode()
92962	req, err := http.NewRequest("POST", urls, body)
92963	if err != nil {
92964		return nil, err
92965	}
92966	req.Header = reqHeaders
92967	googleapi.Expand(req.URL, map[string]string{
92968		"project":              c.project,
92969		"zone":                 c.zone,
92970		"networkEndpointGroup": c.networkEndpointGroup,
92971	})
92972	return gensupport.SendRequest(c.ctx_, c.s.client, req)
92973}
92974
92975// Do executes the "compute.networkEndpointGroups.listNetworkEndpoints" call.
92976// Exactly one of *NetworkEndpointGroupsListNetworkEndpoints or error
92977// will be non-nil. Any non-2xx status code is an error. Response
92978// headers are in either
92979// *NetworkEndpointGroupsListNetworkEndpoints.ServerResponse.Header or
92980// (if a response was returned at all) in
92981// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
92982// whether the returned error was because http.StatusNotModified was
92983// returned.
92984func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Do(opts ...googleapi.CallOption) (*NetworkEndpointGroupsListNetworkEndpoints, error) {
92985	gensupport.SetOptions(c.urlParams_, opts...)
92986	res, err := c.doRequest("json")
92987	if res != nil && res.StatusCode == http.StatusNotModified {
92988		if res.Body != nil {
92989			res.Body.Close()
92990		}
92991		return nil, &googleapi.Error{
92992			Code:   res.StatusCode,
92993			Header: res.Header,
92994		}
92995	}
92996	if err != nil {
92997		return nil, err
92998	}
92999	defer googleapi.CloseBody(res)
93000	if err := googleapi.CheckResponse(res); err != nil {
93001		return nil, err
93002	}
93003	ret := &NetworkEndpointGroupsListNetworkEndpoints{
93004		ServerResponse: googleapi.ServerResponse{
93005			Header:         res.Header,
93006			HTTPStatusCode: res.StatusCode,
93007		},
93008	}
93009	target := &ret
93010	if err := gensupport.DecodeResponse(target, res); err != nil {
93011		return nil, err
93012	}
93013	return ret, nil
93014	// {
93015	//   "description": "Lists the network endpoints in the specified network endpoint group.",
93016	//   "httpMethod": "POST",
93017	//   "id": "compute.networkEndpointGroups.listNetworkEndpoints",
93018	//   "parameterOrder": [
93019	//     "project",
93020	//     "zone",
93021	//     "networkEndpointGroup"
93022	//   ],
93023	//   "parameters": {
93024	//     "filter": {
93025	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
93026	//       "location": "query",
93027	//       "type": "string"
93028	//     },
93029	//     "maxResults": {
93030	//       "default": "500",
93031	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
93032	//       "format": "uint32",
93033	//       "location": "query",
93034	//       "minimum": "0",
93035	//       "type": "integer"
93036	//     },
93037	//     "networkEndpointGroup": {
93038	//       "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.",
93039	//       "location": "path",
93040	//       "required": true,
93041	//       "type": "string"
93042	//     },
93043	//     "orderBy": {
93044	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
93045	//       "location": "query",
93046	//       "type": "string"
93047	//     },
93048	//     "pageToken": {
93049	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
93050	//       "location": "query",
93051	//       "type": "string"
93052	//     },
93053	//     "project": {
93054	//       "description": "Project ID for this request.",
93055	//       "location": "path",
93056	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93057	//       "required": true,
93058	//       "type": "string"
93059	//     },
93060	//     "zone": {
93061	//       "description": "The name of the zone where the network endpoint group is located. It should comply with RFC1035.",
93062	//       "location": "path",
93063	//       "required": true,
93064	//       "type": "string"
93065	//     }
93066	//   },
93067	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{networkEndpointGroup}/listNetworkEndpoints",
93068	//   "request": {
93069	//     "$ref": "NetworkEndpointGroupsListEndpointsRequest"
93070	//   },
93071	//   "response": {
93072	//     "$ref": "NetworkEndpointGroupsListNetworkEndpoints"
93073	//   },
93074	//   "scopes": [
93075	//     "https://www.googleapis.com/auth/cloud-platform",
93076	//     "https://www.googleapis.com/auth/compute",
93077	//     "https://www.googleapis.com/auth/compute.readonly"
93078	//   ]
93079	// }
93080
93081}
93082
93083// Pages invokes f for each page of results.
93084// A non-nil error returned from f will halt the iteration.
93085// The provided context supersedes any context provided to the Context method.
93086func (c *NetworkEndpointGroupsListNetworkEndpointsCall) Pages(ctx context.Context, f func(*NetworkEndpointGroupsListNetworkEndpoints) error) error {
93087	c.ctx_ = ctx
93088	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
93089	for {
93090		x, err := c.Do()
93091		if err != nil {
93092			return err
93093		}
93094		if err := f(x); err != nil {
93095			return err
93096		}
93097		if x.NextPageToken == "" {
93098			return nil
93099		}
93100		c.PageToken(x.NextPageToken)
93101	}
93102}
93103
93104// method id "compute.networkEndpointGroups.testIamPermissions":
93105
93106type NetworkEndpointGroupsTestIamPermissionsCall struct {
93107	s                      *Service
93108	project                string
93109	zone                   string
93110	resource               string
93111	testpermissionsrequest *TestPermissionsRequest
93112	urlParams_             gensupport.URLParams
93113	ctx_                   context.Context
93114	header_                http.Header
93115}
93116
93117// TestIamPermissions: Returns permissions that a caller has on the
93118// specified resource.
93119func (r *NetworkEndpointGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworkEndpointGroupsTestIamPermissionsCall {
93120	c := &NetworkEndpointGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93121	c.project = project
93122	c.zone = zone
93123	c.resource = resource
93124	c.testpermissionsrequest = testpermissionsrequest
93125	return c
93126}
93127
93128// Fields allows partial responses to be retrieved. See
93129// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93130// for more information.
93131func (c *NetworkEndpointGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworkEndpointGroupsTestIamPermissionsCall {
93132	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93133	return c
93134}
93135
93136// Context sets the context to be used in this call's Do method. Any
93137// pending HTTP request will be aborted if the provided context is
93138// canceled.
93139func (c *NetworkEndpointGroupsTestIamPermissionsCall) Context(ctx context.Context) *NetworkEndpointGroupsTestIamPermissionsCall {
93140	c.ctx_ = ctx
93141	return c
93142}
93143
93144// Header returns an http.Header that can be modified by the caller to
93145// add HTTP headers to the request.
93146func (c *NetworkEndpointGroupsTestIamPermissionsCall) Header() http.Header {
93147	if c.header_ == nil {
93148		c.header_ = make(http.Header)
93149	}
93150	return c.header_
93151}
93152
93153func (c *NetworkEndpointGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
93154	reqHeaders := make(http.Header)
93155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93156	for k, v := range c.header_ {
93157		reqHeaders[k] = v
93158	}
93159	reqHeaders.Set("User-Agent", c.s.userAgent())
93160	var body io.Reader = nil
93161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
93162	if err != nil {
93163		return nil, err
93164	}
93165	reqHeaders.Set("Content-Type", "application/json")
93166	c.urlParams_.Set("alt", alt)
93167	c.urlParams_.Set("prettyPrint", "false")
93168	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions")
93169	urls += "?" + c.urlParams_.Encode()
93170	req, err := http.NewRequest("POST", urls, body)
93171	if err != nil {
93172		return nil, err
93173	}
93174	req.Header = reqHeaders
93175	googleapi.Expand(req.URL, map[string]string{
93176		"project":  c.project,
93177		"zone":     c.zone,
93178		"resource": c.resource,
93179	})
93180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93181}
93182
93183// Do executes the "compute.networkEndpointGroups.testIamPermissions" call.
93184// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
93185// non-2xx status code is an error. Response headers are in either
93186// *TestPermissionsResponse.ServerResponse.Header or (if a response was
93187// returned at all) in error.(*googleapi.Error).Header. Use
93188// googleapi.IsNotModified to check whether the returned error was
93189// because http.StatusNotModified was returned.
93190func (c *NetworkEndpointGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
93191	gensupport.SetOptions(c.urlParams_, opts...)
93192	res, err := c.doRequest("json")
93193	if res != nil && res.StatusCode == http.StatusNotModified {
93194		if res.Body != nil {
93195			res.Body.Close()
93196		}
93197		return nil, &googleapi.Error{
93198			Code:   res.StatusCode,
93199			Header: res.Header,
93200		}
93201	}
93202	if err != nil {
93203		return nil, err
93204	}
93205	defer googleapi.CloseBody(res)
93206	if err := googleapi.CheckResponse(res); err != nil {
93207		return nil, err
93208	}
93209	ret := &TestPermissionsResponse{
93210		ServerResponse: googleapi.ServerResponse{
93211			Header:         res.Header,
93212			HTTPStatusCode: res.StatusCode,
93213		},
93214	}
93215	target := &ret
93216	if err := gensupport.DecodeResponse(target, res); err != nil {
93217		return nil, err
93218	}
93219	return ret, nil
93220	// {
93221	//   "description": "Returns permissions that a caller has on the specified resource.",
93222	//   "httpMethod": "POST",
93223	//   "id": "compute.networkEndpointGroups.testIamPermissions",
93224	//   "parameterOrder": [
93225	//     "project",
93226	//     "zone",
93227	//     "resource"
93228	//   ],
93229	//   "parameters": {
93230	//     "project": {
93231	//       "description": "Project ID for this request.",
93232	//       "location": "path",
93233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93234	//       "required": true,
93235	//       "type": "string"
93236	//     },
93237	//     "resource": {
93238	//       "description": "Name or id of the resource for this request.",
93239	//       "location": "path",
93240	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93241	//       "required": true,
93242	//       "type": "string"
93243	//     },
93244	//     "zone": {
93245	//       "description": "The name of the zone for this request.",
93246	//       "location": "path",
93247	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
93248	//       "required": true,
93249	//       "type": "string"
93250	//     }
93251	//   },
93252	//   "path": "{project}/zones/{zone}/networkEndpointGroups/{resource}/testIamPermissions",
93253	//   "request": {
93254	//     "$ref": "TestPermissionsRequest"
93255	//   },
93256	//   "response": {
93257	//     "$ref": "TestPermissionsResponse"
93258	//   },
93259	//   "scopes": [
93260	//     "https://www.googleapis.com/auth/cloud-platform",
93261	//     "https://www.googleapis.com/auth/compute",
93262	//     "https://www.googleapis.com/auth/compute.readonly"
93263	//   ]
93264	// }
93265
93266}
93267
93268// method id "compute.networks.addPeering":
93269
93270type NetworksAddPeeringCall struct {
93271	s                         *Service
93272	project                   string
93273	network                   string
93274	networksaddpeeringrequest *NetworksAddPeeringRequest
93275	urlParams_                gensupport.URLParams
93276	ctx_                      context.Context
93277	header_                   http.Header
93278}
93279
93280// AddPeering: Adds a peering to the specified network.
93281func (r *NetworksService) AddPeering(project string, network string, networksaddpeeringrequest *NetworksAddPeeringRequest) *NetworksAddPeeringCall {
93282	c := &NetworksAddPeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93283	c.project = project
93284	c.network = network
93285	c.networksaddpeeringrequest = networksaddpeeringrequest
93286	return c
93287}
93288
93289// RequestId sets the optional parameter "requestId": An optional
93290// request ID to identify requests. Specify a unique request ID so that
93291// if you must retry your request, the server will know to ignore the
93292// request if it has already been completed.
93293//
93294// For example, consider a situation where you make an initial request
93295// and the request times out. If you make the request again with the
93296// same request ID, the server can check if original operation with the
93297// same request ID was received, and if so, will ignore the second
93298// request. This prevents clients from accidentally creating duplicate
93299// commitments.
93300//
93301// The request ID must be a valid UUID with the exception that zero UUID
93302// is not supported (00000000-0000-0000-0000-000000000000).
93303func (c *NetworksAddPeeringCall) RequestId(requestId string) *NetworksAddPeeringCall {
93304	c.urlParams_.Set("requestId", requestId)
93305	return c
93306}
93307
93308// Fields allows partial responses to be retrieved. See
93309// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93310// for more information.
93311func (c *NetworksAddPeeringCall) Fields(s ...googleapi.Field) *NetworksAddPeeringCall {
93312	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93313	return c
93314}
93315
93316// Context sets the context to be used in this call's Do method. Any
93317// pending HTTP request will be aborted if the provided context is
93318// canceled.
93319func (c *NetworksAddPeeringCall) Context(ctx context.Context) *NetworksAddPeeringCall {
93320	c.ctx_ = ctx
93321	return c
93322}
93323
93324// Header returns an http.Header that can be modified by the caller to
93325// add HTTP headers to the request.
93326func (c *NetworksAddPeeringCall) Header() http.Header {
93327	if c.header_ == nil {
93328		c.header_ = make(http.Header)
93329	}
93330	return c.header_
93331}
93332
93333func (c *NetworksAddPeeringCall) doRequest(alt string) (*http.Response, error) {
93334	reqHeaders := make(http.Header)
93335	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93336	for k, v := range c.header_ {
93337		reqHeaders[k] = v
93338	}
93339	reqHeaders.Set("User-Agent", c.s.userAgent())
93340	var body io.Reader = nil
93341	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksaddpeeringrequest)
93342	if err != nil {
93343		return nil, err
93344	}
93345	reqHeaders.Set("Content-Type", "application/json")
93346	c.urlParams_.Set("alt", alt)
93347	c.urlParams_.Set("prettyPrint", "false")
93348	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/addPeering")
93349	urls += "?" + c.urlParams_.Encode()
93350	req, err := http.NewRequest("POST", urls, body)
93351	if err != nil {
93352		return nil, err
93353	}
93354	req.Header = reqHeaders
93355	googleapi.Expand(req.URL, map[string]string{
93356		"project": c.project,
93357		"network": c.network,
93358	})
93359	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93360}
93361
93362// Do executes the "compute.networks.addPeering" call.
93363// Exactly one of *Operation or error will be non-nil. Any non-2xx
93364// status code is an error. Response headers are in either
93365// *Operation.ServerResponse.Header or (if a response was returned at
93366// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93367// to check whether the returned error was because
93368// http.StatusNotModified was returned.
93369func (c *NetworksAddPeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93370	gensupport.SetOptions(c.urlParams_, opts...)
93371	res, err := c.doRequest("json")
93372	if res != nil && res.StatusCode == http.StatusNotModified {
93373		if res.Body != nil {
93374			res.Body.Close()
93375		}
93376		return nil, &googleapi.Error{
93377			Code:   res.StatusCode,
93378			Header: res.Header,
93379		}
93380	}
93381	if err != nil {
93382		return nil, err
93383	}
93384	defer googleapi.CloseBody(res)
93385	if err := googleapi.CheckResponse(res); err != nil {
93386		return nil, err
93387	}
93388	ret := &Operation{
93389		ServerResponse: googleapi.ServerResponse{
93390			Header:         res.Header,
93391			HTTPStatusCode: res.StatusCode,
93392		},
93393	}
93394	target := &ret
93395	if err := gensupport.DecodeResponse(target, res); err != nil {
93396		return nil, err
93397	}
93398	return ret, nil
93399	// {
93400	//   "description": "Adds a peering to the specified network.",
93401	//   "httpMethod": "POST",
93402	//   "id": "compute.networks.addPeering",
93403	//   "parameterOrder": [
93404	//     "project",
93405	//     "network"
93406	//   ],
93407	//   "parameters": {
93408	//     "network": {
93409	//       "description": "Name of the network resource to add peering to.",
93410	//       "location": "path",
93411	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93412	//       "required": true,
93413	//       "type": "string"
93414	//     },
93415	//     "project": {
93416	//       "description": "Project ID for this request.",
93417	//       "location": "path",
93418	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93419	//       "required": true,
93420	//       "type": "string"
93421	//     },
93422	//     "requestId": {
93423	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93424	//       "location": "query",
93425	//       "type": "string"
93426	//     }
93427	//   },
93428	//   "path": "{project}/global/networks/{network}/addPeering",
93429	//   "request": {
93430	//     "$ref": "NetworksAddPeeringRequest"
93431	//   },
93432	//   "response": {
93433	//     "$ref": "Operation"
93434	//   },
93435	//   "scopes": [
93436	//     "https://www.googleapis.com/auth/cloud-platform",
93437	//     "https://www.googleapis.com/auth/compute"
93438	//   ]
93439	// }
93440
93441}
93442
93443// method id "compute.networks.delete":
93444
93445type NetworksDeleteCall struct {
93446	s          *Service
93447	project    string
93448	network    string
93449	urlParams_ gensupport.URLParams
93450	ctx_       context.Context
93451	header_    http.Header
93452}
93453
93454// Delete: Deletes the specified network.
93455// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/delete
93456func (r *NetworksService) Delete(project string, network string) *NetworksDeleteCall {
93457	c := &NetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93458	c.project = project
93459	c.network = network
93460	return c
93461}
93462
93463// RequestId sets the optional parameter "requestId": An optional
93464// request ID to identify requests. Specify a unique request ID so that
93465// if you must retry your request, the server will know to ignore the
93466// request if it has already been completed.
93467//
93468// For example, consider a situation where you make an initial request
93469// and the request times out. If you make the request again with the
93470// same request ID, the server can check if original operation with the
93471// same request ID was received, and if so, will ignore the second
93472// request. This prevents clients from accidentally creating duplicate
93473// commitments.
93474//
93475// The request ID must be a valid UUID with the exception that zero UUID
93476// is not supported (00000000-0000-0000-0000-000000000000).
93477func (c *NetworksDeleteCall) RequestId(requestId string) *NetworksDeleteCall {
93478	c.urlParams_.Set("requestId", requestId)
93479	return c
93480}
93481
93482// Fields allows partial responses to be retrieved. See
93483// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93484// for more information.
93485func (c *NetworksDeleteCall) Fields(s ...googleapi.Field) *NetworksDeleteCall {
93486	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93487	return c
93488}
93489
93490// Context sets the context to be used in this call's Do method. Any
93491// pending HTTP request will be aborted if the provided context is
93492// canceled.
93493func (c *NetworksDeleteCall) Context(ctx context.Context) *NetworksDeleteCall {
93494	c.ctx_ = ctx
93495	return c
93496}
93497
93498// Header returns an http.Header that can be modified by the caller to
93499// add HTTP headers to the request.
93500func (c *NetworksDeleteCall) Header() http.Header {
93501	if c.header_ == nil {
93502		c.header_ = make(http.Header)
93503	}
93504	return c.header_
93505}
93506
93507func (c *NetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
93508	reqHeaders := make(http.Header)
93509	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93510	for k, v := range c.header_ {
93511		reqHeaders[k] = v
93512	}
93513	reqHeaders.Set("User-Agent", c.s.userAgent())
93514	var body io.Reader = nil
93515	c.urlParams_.Set("alt", alt)
93516	c.urlParams_.Set("prettyPrint", "false")
93517	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
93518	urls += "?" + c.urlParams_.Encode()
93519	req, err := http.NewRequest("DELETE", urls, body)
93520	if err != nil {
93521		return nil, err
93522	}
93523	req.Header = reqHeaders
93524	googleapi.Expand(req.URL, map[string]string{
93525		"project": c.project,
93526		"network": c.network,
93527	})
93528	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93529}
93530
93531// Do executes the "compute.networks.delete" call.
93532// Exactly one of *Operation or error will be non-nil. Any non-2xx
93533// status code is an error. Response headers are in either
93534// *Operation.ServerResponse.Header or (if a response was returned at
93535// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93536// to check whether the returned error was because
93537// http.StatusNotModified was returned.
93538func (c *NetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93539	gensupport.SetOptions(c.urlParams_, opts...)
93540	res, err := c.doRequest("json")
93541	if res != nil && res.StatusCode == http.StatusNotModified {
93542		if res.Body != nil {
93543			res.Body.Close()
93544		}
93545		return nil, &googleapi.Error{
93546			Code:   res.StatusCode,
93547			Header: res.Header,
93548		}
93549	}
93550	if err != nil {
93551		return nil, err
93552	}
93553	defer googleapi.CloseBody(res)
93554	if err := googleapi.CheckResponse(res); err != nil {
93555		return nil, err
93556	}
93557	ret := &Operation{
93558		ServerResponse: googleapi.ServerResponse{
93559			Header:         res.Header,
93560			HTTPStatusCode: res.StatusCode,
93561		},
93562	}
93563	target := &ret
93564	if err := gensupport.DecodeResponse(target, res); err != nil {
93565		return nil, err
93566	}
93567	return ret, nil
93568	// {
93569	//   "description": "Deletes the specified network.",
93570	//   "httpMethod": "DELETE",
93571	//   "id": "compute.networks.delete",
93572	//   "parameterOrder": [
93573	//     "project",
93574	//     "network"
93575	//   ],
93576	//   "parameters": {
93577	//     "network": {
93578	//       "description": "Name of the network to delete.",
93579	//       "location": "path",
93580	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93581	//       "required": true,
93582	//       "type": "string"
93583	//     },
93584	//     "project": {
93585	//       "description": "Project ID for this request.",
93586	//       "location": "path",
93587	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93588	//       "required": true,
93589	//       "type": "string"
93590	//     },
93591	//     "requestId": {
93592	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93593	//       "location": "query",
93594	//       "type": "string"
93595	//     }
93596	//   },
93597	//   "path": "{project}/global/networks/{network}",
93598	//   "response": {
93599	//     "$ref": "Operation"
93600	//   },
93601	//   "scopes": [
93602	//     "https://www.googleapis.com/auth/cloud-platform",
93603	//     "https://www.googleapis.com/auth/compute"
93604	//   ]
93605	// }
93606
93607}
93608
93609// method id "compute.networks.get":
93610
93611type NetworksGetCall struct {
93612	s            *Service
93613	project      string
93614	network      string
93615	urlParams_   gensupport.URLParams
93616	ifNoneMatch_ string
93617	ctx_         context.Context
93618	header_      http.Header
93619}
93620
93621// Get: Returns the specified network. Gets a list of available networks
93622// by making a list() request.
93623// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/get
93624func (r *NetworksService) Get(project string, network string) *NetworksGetCall {
93625	c := &NetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93626	c.project = project
93627	c.network = network
93628	return c
93629}
93630
93631// Fields allows partial responses to be retrieved. See
93632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93633// for more information.
93634func (c *NetworksGetCall) Fields(s ...googleapi.Field) *NetworksGetCall {
93635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93636	return c
93637}
93638
93639// IfNoneMatch sets the optional parameter which makes the operation
93640// fail if the object's ETag matches the given value. This is useful for
93641// getting updates only after the object has changed since the last
93642// request. Use googleapi.IsNotModified to check whether the response
93643// error from Do is the result of In-None-Match.
93644func (c *NetworksGetCall) IfNoneMatch(entityTag string) *NetworksGetCall {
93645	c.ifNoneMatch_ = entityTag
93646	return c
93647}
93648
93649// Context sets the context to be used in this call's Do method. Any
93650// pending HTTP request will be aborted if the provided context is
93651// canceled.
93652func (c *NetworksGetCall) Context(ctx context.Context) *NetworksGetCall {
93653	c.ctx_ = ctx
93654	return c
93655}
93656
93657// Header returns an http.Header that can be modified by the caller to
93658// add HTTP headers to the request.
93659func (c *NetworksGetCall) Header() http.Header {
93660	if c.header_ == nil {
93661		c.header_ = make(http.Header)
93662	}
93663	return c.header_
93664}
93665
93666func (c *NetworksGetCall) doRequest(alt string) (*http.Response, error) {
93667	reqHeaders := make(http.Header)
93668	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93669	for k, v := range c.header_ {
93670		reqHeaders[k] = v
93671	}
93672	reqHeaders.Set("User-Agent", c.s.userAgent())
93673	if c.ifNoneMatch_ != "" {
93674		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
93675	}
93676	var body io.Reader = nil
93677	c.urlParams_.Set("alt", alt)
93678	c.urlParams_.Set("prettyPrint", "false")
93679	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
93680	urls += "?" + c.urlParams_.Encode()
93681	req, err := http.NewRequest("GET", urls, body)
93682	if err != nil {
93683		return nil, err
93684	}
93685	req.Header = reqHeaders
93686	googleapi.Expand(req.URL, map[string]string{
93687		"project": c.project,
93688		"network": c.network,
93689	})
93690	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93691}
93692
93693// Do executes the "compute.networks.get" call.
93694// Exactly one of *Network or error will be non-nil. Any non-2xx status
93695// code is an error. Response headers are in either
93696// *Network.ServerResponse.Header or (if a response was returned at all)
93697// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
93698// check whether the returned error was because http.StatusNotModified
93699// was returned.
93700func (c *NetworksGetCall) Do(opts ...googleapi.CallOption) (*Network, error) {
93701	gensupport.SetOptions(c.urlParams_, opts...)
93702	res, err := c.doRequest("json")
93703	if res != nil && res.StatusCode == http.StatusNotModified {
93704		if res.Body != nil {
93705			res.Body.Close()
93706		}
93707		return nil, &googleapi.Error{
93708			Code:   res.StatusCode,
93709			Header: res.Header,
93710		}
93711	}
93712	if err != nil {
93713		return nil, err
93714	}
93715	defer googleapi.CloseBody(res)
93716	if err := googleapi.CheckResponse(res); err != nil {
93717		return nil, err
93718	}
93719	ret := &Network{
93720		ServerResponse: googleapi.ServerResponse{
93721			Header:         res.Header,
93722			HTTPStatusCode: res.StatusCode,
93723		},
93724	}
93725	target := &ret
93726	if err := gensupport.DecodeResponse(target, res); err != nil {
93727		return nil, err
93728	}
93729	return ret, nil
93730	// {
93731	//   "description": "Returns the specified network. Gets a list of available networks by making a list() request.",
93732	//   "httpMethod": "GET",
93733	//   "id": "compute.networks.get",
93734	//   "parameterOrder": [
93735	//     "project",
93736	//     "network"
93737	//   ],
93738	//   "parameters": {
93739	//     "network": {
93740	//       "description": "Name of the network to return.",
93741	//       "location": "path",
93742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
93743	//       "required": true,
93744	//       "type": "string"
93745	//     },
93746	//     "project": {
93747	//       "description": "Project ID for this request.",
93748	//       "location": "path",
93749	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93750	//       "required": true,
93751	//       "type": "string"
93752	//     }
93753	//   },
93754	//   "path": "{project}/global/networks/{network}",
93755	//   "response": {
93756	//     "$ref": "Network"
93757	//   },
93758	//   "scopes": [
93759	//     "https://www.googleapis.com/auth/cloud-platform",
93760	//     "https://www.googleapis.com/auth/compute",
93761	//     "https://www.googleapis.com/auth/compute.readonly"
93762	//   ]
93763	// }
93764
93765}
93766
93767// method id "compute.networks.insert":
93768
93769type NetworksInsertCall struct {
93770	s          *Service
93771	project    string
93772	network    *Network
93773	urlParams_ gensupport.URLParams
93774	ctx_       context.Context
93775	header_    http.Header
93776}
93777
93778// Insert: Creates a network in the specified project using the data
93779// included in the request.
93780// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/insert
93781func (r *NetworksService) Insert(project string, network *Network) *NetworksInsertCall {
93782	c := &NetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93783	c.project = project
93784	c.network = network
93785	return c
93786}
93787
93788// RequestId sets the optional parameter "requestId": An optional
93789// request ID to identify requests. Specify a unique request ID so that
93790// if you must retry your request, the server will know to ignore the
93791// request if it has already been completed.
93792//
93793// For example, consider a situation where you make an initial request
93794// and the request times out. If you make the request again with the
93795// same request ID, the server can check if original operation with the
93796// same request ID was received, and if so, will ignore the second
93797// request. This prevents clients from accidentally creating duplicate
93798// commitments.
93799//
93800// The request ID must be a valid UUID with the exception that zero UUID
93801// is not supported (00000000-0000-0000-0000-000000000000).
93802func (c *NetworksInsertCall) RequestId(requestId string) *NetworksInsertCall {
93803	c.urlParams_.Set("requestId", requestId)
93804	return c
93805}
93806
93807// Fields allows partial responses to be retrieved. See
93808// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
93809// for more information.
93810func (c *NetworksInsertCall) Fields(s ...googleapi.Field) *NetworksInsertCall {
93811	c.urlParams_.Set("fields", googleapi.CombineFields(s))
93812	return c
93813}
93814
93815// Context sets the context to be used in this call's Do method. Any
93816// pending HTTP request will be aborted if the provided context is
93817// canceled.
93818func (c *NetworksInsertCall) Context(ctx context.Context) *NetworksInsertCall {
93819	c.ctx_ = ctx
93820	return c
93821}
93822
93823// Header returns an http.Header that can be modified by the caller to
93824// add HTTP headers to the request.
93825func (c *NetworksInsertCall) Header() http.Header {
93826	if c.header_ == nil {
93827		c.header_ = make(http.Header)
93828	}
93829	return c.header_
93830}
93831
93832func (c *NetworksInsertCall) doRequest(alt string) (*http.Response, error) {
93833	reqHeaders := make(http.Header)
93834	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
93835	for k, v := range c.header_ {
93836		reqHeaders[k] = v
93837	}
93838	reqHeaders.Set("User-Agent", c.s.userAgent())
93839	var body io.Reader = nil
93840	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network)
93841	if err != nil {
93842		return nil, err
93843	}
93844	reqHeaders.Set("Content-Type", "application/json")
93845	c.urlParams_.Set("alt", alt)
93846	c.urlParams_.Set("prettyPrint", "false")
93847	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
93848	urls += "?" + c.urlParams_.Encode()
93849	req, err := http.NewRequest("POST", urls, body)
93850	if err != nil {
93851		return nil, err
93852	}
93853	req.Header = reqHeaders
93854	googleapi.Expand(req.URL, map[string]string{
93855		"project": c.project,
93856	})
93857	return gensupport.SendRequest(c.ctx_, c.s.client, req)
93858}
93859
93860// Do executes the "compute.networks.insert" call.
93861// Exactly one of *Operation or error will be non-nil. Any non-2xx
93862// status code is an error. Response headers are in either
93863// *Operation.ServerResponse.Header or (if a response was returned at
93864// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
93865// to check whether the returned error was because
93866// http.StatusNotModified was returned.
93867func (c *NetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
93868	gensupport.SetOptions(c.urlParams_, opts...)
93869	res, err := c.doRequest("json")
93870	if res != nil && res.StatusCode == http.StatusNotModified {
93871		if res.Body != nil {
93872			res.Body.Close()
93873		}
93874		return nil, &googleapi.Error{
93875			Code:   res.StatusCode,
93876			Header: res.Header,
93877		}
93878	}
93879	if err != nil {
93880		return nil, err
93881	}
93882	defer googleapi.CloseBody(res)
93883	if err := googleapi.CheckResponse(res); err != nil {
93884		return nil, err
93885	}
93886	ret := &Operation{
93887		ServerResponse: googleapi.ServerResponse{
93888			Header:         res.Header,
93889			HTTPStatusCode: res.StatusCode,
93890		},
93891	}
93892	target := &ret
93893	if err := gensupport.DecodeResponse(target, res); err != nil {
93894		return nil, err
93895	}
93896	return ret, nil
93897	// {
93898	//   "description": "Creates a network in the specified project using the data included in the request.",
93899	//   "httpMethod": "POST",
93900	//   "id": "compute.networks.insert",
93901	//   "parameterOrder": [
93902	//     "project"
93903	//   ],
93904	//   "parameters": {
93905	//     "project": {
93906	//       "description": "Project ID for this request.",
93907	//       "location": "path",
93908	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
93909	//       "required": true,
93910	//       "type": "string"
93911	//     },
93912	//     "requestId": {
93913	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
93914	//       "location": "query",
93915	//       "type": "string"
93916	//     }
93917	//   },
93918	//   "path": "{project}/global/networks",
93919	//   "request": {
93920	//     "$ref": "Network"
93921	//   },
93922	//   "response": {
93923	//     "$ref": "Operation"
93924	//   },
93925	//   "scopes": [
93926	//     "https://www.googleapis.com/auth/cloud-platform",
93927	//     "https://www.googleapis.com/auth/compute"
93928	//   ]
93929	// }
93930
93931}
93932
93933// method id "compute.networks.list":
93934
93935type NetworksListCall struct {
93936	s            *Service
93937	project      string
93938	urlParams_   gensupport.URLParams
93939	ifNoneMatch_ string
93940	ctx_         context.Context
93941	header_      http.Header
93942}
93943
93944// List: Retrieves the list of networks available to the specified
93945// project.
93946// For details, see https://cloud.google.com/compute/docs/reference/latest/networks/list
93947func (r *NetworksService) List(project string) *NetworksListCall {
93948	c := &NetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
93949	c.project = project
93950	return c
93951}
93952
93953// Filter sets the optional parameter "filter": A filter expression that
93954// filters resources listed in the response. The expression must specify
93955// the field name, a comparison operator, and the value that you want to
93956// use for filtering. The value must be a string, a number, or a
93957// boolean. The comparison operator must be either =, !=, >, or <.
93958//
93959// For example, if you are filtering Compute Engine instances, you can
93960// exclude instances named example-instance by specifying name !=
93961// example-instance.
93962//
93963// You can also filter nested fields. For example, you could specify
93964// scheduling.automaticRestart = false to include instances only if they
93965// are not scheduled for automatic restarts. You can use filtering on
93966// nested fields to filter based on resource labels.
93967//
93968// To filter on multiple expressions, provide each separate expression
93969// within parentheses. For example, (scheduling.automaticRestart = true)
93970// (cpuPlatform = "Intel Skylake"). By default, each expression is an
93971// AND expression. However, you can include AND and OR expressions
93972// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
93973// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
93974// true).
93975func (c *NetworksListCall) Filter(filter string) *NetworksListCall {
93976	c.urlParams_.Set("filter", filter)
93977	return c
93978}
93979
93980// MaxResults sets the optional parameter "maxResults": The maximum
93981// number of results per page that should be returned. If the number of
93982// available results is larger than maxResults, Compute Engine returns a
93983// nextPageToken that can be used to get the next page of results in
93984// subsequent list requests. Acceptable values are 0 to 500, inclusive.
93985// (Default: 500)
93986func (c *NetworksListCall) MaxResults(maxResults int64) *NetworksListCall {
93987	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
93988	return c
93989}
93990
93991// OrderBy sets the optional parameter "orderBy": Sorts list results by
93992// a certain order. By default, results are returned in alphanumerical
93993// order based on the resource name.
93994//
93995// You can also sort results in descending order based on the creation
93996// timestamp using orderBy="creationTimestamp desc". This sorts results
93997// based on the creationTimestamp field in reverse chronological order
93998// (newest result first). Use this to sort resources like operations so
93999// that the newest operation is returned first.
94000//
94001// Currently, only sorting by name or creationTimestamp desc is
94002// supported.
94003func (c *NetworksListCall) OrderBy(orderBy string) *NetworksListCall {
94004	c.urlParams_.Set("orderBy", orderBy)
94005	return c
94006}
94007
94008// PageToken sets the optional parameter "pageToken": Specifies a page
94009// token to use. Set pageToken to the nextPageToken returned by a
94010// previous list request to get the next page of results.
94011func (c *NetworksListCall) PageToken(pageToken string) *NetworksListCall {
94012	c.urlParams_.Set("pageToken", pageToken)
94013	return c
94014}
94015
94016// Fields allows partial responses to be retrieved. See
94017// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94018// for more information.
94019func (c *NetworksListCall) Fields(s ...googleapi.Field) *NetworksListCall {
94020	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94021	return c
94022}
94023
94024// IfNoneMatch sets the optional parameter which makes the operation
94025// fail if the object's ETag matches the given value. This is useful for
94026// getting updates only after the object has changed since the last
94027// request. Use googleapi.IsNotModified to check whether the response
94028// error from Do is the result of In-None-Match.
94029func (c *NetworksListCall) IfNoneMatch(entityTag string) *NetworksListCall {
94030	c.ifNoneMatch_ = entityTag
94031	return c
94032}
94033
94034// Context sets the context to be used in this call's Do method. Any
94035// pending HTTP request will be aborted if the provided context is
94036// canceled.
94037func (c *NetworksListCall) Context(ctx context.Context) *NetworksListCall {
94038	c.ctx_ = ctx
94039	return c
94040}
94041
94042// Header returns an http.Header that can be modified by the caller to
94043// add HTTP headers to the request.
94044func (c *NetworksListCall) Header() http.Header {
94045	if c.header_ == nil {
94046		c.header_ = make(http.Header)
94047	}
94048	return c.header_
94049}
94050
94051func (c *NetworksListCall) doRequest(alt string) (*http.Response, error) {
94052	reqHeaders := make(http.Header)
94053	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94054	for k, v := range c.header_ {
94055		reqHeaders[k] = v
94056	}
94057	reqHeaders.Set("User-Agent", c.s.userAgent())
94058	if c.ifNoneMatch_ != "" {
94059		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94060	}
94061	var body io.Reader = nil
94062	c.urlParams_.Set("alt", alt)
94063	c.urlParams_.Set("prettyPrint", "false")
94064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks")
94065	urls += "?" + c.urlParams_.Encode()
94066	req, err := http.NewRequest("GET", urls, body)
94067	if err != nil {
94068		return nil, err
94069	}
94070	req.Header = reqHeaders
94071	googleapi.Expand(req.URL, map[string]string{
94072		"project": c.project,
94073	})
94074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94075}
94076
94077// Do executes the "compute.networks.list" call.
94078// Exactly one of *NetworkList or error will be non-nil. Any non-2xx
94079// status code is an error. Response headers are in either
94080// *NetworkList.ServerResponse.Header or (if a response was returned at
94081// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94082// to check whether the returned error was because
94083// http.StatusNotModified was returned.
94084func (c *NetworksListCall) Do(opts ...googleapi.CallOption) (*NetworkList, error) {
94085	gensupport.SetOptions(c.urlParams_, opts...)
94086	res, err := c.doRequest("json")
94087	if res != nil && res.StatusCode == http.StatusNotModified {
94088		if res.Body != nil {
94089			res.Body.Close()
94090		}
94091		return nil, &googleapi.Error{
94092			Code:   res.StatusCode,
94093			Header: res.Header,
94094		}
94095	}
94096	if err != nil {
94097		return nil, err
94098	}
94099	defer googleapi.CloseBody(res)
94100	if err := googleapi.CheckResponse(res); err != nil {
94101		return nil, err
94102	}
94103	ret := &NetworkList{
94104		ServerResponse: googleapi.ServerResponse{
94105			Header:         res.Header,
94106			HTTPStatusCode: res.StatusCode,
94107		},
94108	}
94109	target := &ret
94110	if err := gensupport.DecodeResponse(target, res); err != nil {
94111		return nil, err
94112	}
94113	return ret, nil
94114	// {
94115	//   "description": "Retrieves the list of networks available to the specified project.",
94116	//   "httpMethod": "GET",
94117	//   "id": "compute.networks.list",
94118	//   "parameterOrder": [
94119	//     "project"
94120	//   ],
94121	//   "parameters": {
94122	//     "filter": {
94123	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
94124	//       "location": "query",
94125	//       "type": "string"
94126	//     },
94127	//     "maxResults": {
94128	//       "default": "500",
94129	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
94130	//       "format": "uint32",
94131	//       "location": "query",
94132	//       "minimum": "0",
94133	//       "type": "integer"
94134	//     },
94135	//     "orderBy": {
94136	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
94137	//       "location": "query",
94138	//       "type": "string"
94139	//     },
94140	//     "pageToken": {
94141	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
94142	//       "location": "query",
94143	//       "type": "string"
94144	//     },
94145	//     "project": {
94146	//       "description": "Project ID for this request.",
94147	//       "location": "path",
94148	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94149	//       "required": true,
94150	//       "type": "string"
94151	//     }
94152	//   },
94153	//   "path": "{project}/global/networks",
94154	//   "response": {
94155	//     "$ref": "NetworkList"
94156	//   },
94157	//   "scopes": [
94158	//     "https://www.googleapis.com/auth/cloud-platform",
94159	//     "https://www.googleapis.com/auth/compute",
94160	//     "https://www.googleapis.com/auth/compute.readonly"
94161	//   ]
94162	// }
94163
94164}
94165
94166// Pages invokes f for each page of results.
94167// A non-nil error returned from f will halt the iteration.
94168// The provided context supersedes any context provided to the Context method.
94169func (c *NetworksListCall) Pages(ctx context.Context, f func(*NetworkList) error) error {
94170	c.ctx_ = ctx
94171	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94172	for {
94173		x, err := c.Do()
94174		if err != nil {
94175			return err
94176		}
94177		if err := f(x); err != nil {
94178			return err
94179		}
94180		if x.NextPageToken == "" {
94181			return nil
94182		}
94183		c.PageToken(x.NextPageToken)
94184	}
94185}
94186
94187// method id "compute.networks.listPeeringRoutes":
94188
94189type NetworksListPeeringRoutesCall struct {
94190	s            *Service
94191	project      string
94192	network      string
94193	urlParams_   gensupport.URLParams
94194	ifNoneMatch_ string
94195	ctx_         context.Context
94196	header_      http.Header
94197}
94198
94199// ListPeeringRoutes: Lists the peering routes exchanged over peering
94200// connection.
94201func (r *NetworksService) ListPeeringRoutes(project string, network string) *NetworksListPeeringRoutesCall {
94202	c := &NetworksListPeeringRoutesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94203	c.project = project
94204	c.network = network
94205	return c
94206}
94207
94208// Direction sets the optional parameter "direction": The direction of
94209// the exchanged routes.
94210//
94211// Possible values:
94212//   "INCOMING"
94213//   "OUTGOING"
94214func (c *NetworksListPeeringRoutesCall) Direction(direction string) *NetworksListPeeringRoutesCall {
94215	c.urlParams_.Set("direction", direction)
94216	return c
94217}
94218
94219// Filter sets the optional parameter "filter": A filter expression that
94220// filters resources listed in the response. The expression must specify
94221// the field name, a comparison operator, and the value that you want to
94222// use for filtering. The value must be a string, a number, or a
94223// boolean. The comparison operator must be either =, !=, >, or <.
94224//
94225// For example, if you are filtering Compute Engine instances, you can
94226// exclude instances named example-instance by specifying name !=
94227// example-instance.
94228//
94229// You can also filter nested fields. For example, you could specify
94230// scheduling.automaticRestart = false to include instances only if they
94231// are not scheduled for automatic restarts. You can use filtering on
94232// nested fields to filter based on resource labels.
94233//
94234// To filter on multiple expressions, provide each separate expression
94235// within parentheses. For example, (scheduling.automaticRestart = true)
94236// (cpuPlatform = "Intel Skylake"). By default, each expression is an
94237// AND expression. However, you can include AND and OR expressions
94238// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
94239// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
94240// true).
94241func (c *NetworksListPeeringRoutesCall) Filter(filter string) *NetworksListPeeringRoutesCall {
94242	c.urlParams_.Set("filter", filter)
94243	return c
94244}
94245
94246// MaxResults sets the optional parameter "maxResults": The maximum
94247// number of results per page that should be returned. If the number of
94248// available results is larger than maxResults, Compute Engine returns a
94249// nextPageToken that can be used to get the next page of results in
94250// subsequent list requests. Acceptable values are 0 to 500, inclusive.
94251// (Default: 500)
94252func (c *NetworksListPeeringRoutesCall) MaxResults(maxResults int64) *NetworksListPeeringRoutesCall {
94253	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
94254	return c
94255}
94256
94257// OrderBy sets the optional parameter "orderBy": Sorts list results by
94258// a certain order. By default, results are returned in alphanumerical
94259// order based on the resource name.
94260//
94261// You can also sort results in descending order based on the creation
94262// timestamp using orderBy="creationTimestamp desc". This sorts results
94263// based on the creationTimestamp field in reverse chronological order
94264// (newest result first). Use this to sort resources like operations so
94265// that the newest operation is returned first.
94266//
94267// Currently, only sorting by name or creationTimestamp desc is
94268// supported.
94269func (c *NetworksListPeeringRoutesCall) OrderBy(orderBy string) *NetworksListPeeringRoutesCall {
94270	c.urlParams_.Set("orderBy", orderBy)
94271	return c
94272}
94273
94274// PageToken sets the optional parameter "pageToken": Specifies a page
94275// token to use. Set pageToken to the nextPageToken returned by a
94276// previous list request to get the next page of results.
94277func (c *NetworksListPeeringRoutesCall) PageToken(pageToken string) *NetworksListPeeringRoutesCall {
94278	c.urlParams_.Set("pageToken", pageToken)
94279	return c
94280}
94281
94282// PeeringName sets the optional parameter "peeringName": The response
94283// will show routes exchanged over the given peering connection.
94284func (c *NetworksListPeeringRoutesCall) PeeringName(peeringName string) *NetworksListPeeringRoutesCall {
94285	c.urlParams_.Set("peeringName", peeringName)
94286	return c
94287}
94288
94289// Region sets the optional parameter "region": The region of the
94290// request. The response will include all subnet routes, static routes
94291// and dynamic routes in the region.
94292func (c *NetworksListPeeringRoutesCall) Region(region string) *NetworksListPeeringRoutesCall {
94293	c.urlParams_.Set("region", region)
94294	return c
94295}
94296
94297// Fields allows partial responses to be retrieved. See
94298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94299// for more information.
94300func (c *NetworksListPeeringRoutesCall) Fields(s ...googleapi.Field) *NetworksListPeeringRoutesCall {
94301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94302	return c
94303}
94304
94305// IfNoneMatch sets the optional parameter which makes the operation
94306// fail if the object's ETag matches the given value. This is useful for
94307// getting updates only after the object has changed since the last
94308// request. Use googleapi.IsNotModified to check whether the response
94309// error from Do is the result of In-None-Match.
94310func (c *NetworksListPeeringRoutesCall) IfNoneMatch(entityTag string) *NetworksListPeeringRoutesCall {
94311	c.ifNoneMatch_ = entityTag
94312	return c
94313}
94314
94315// Context sets the context to be used in this call's Do method. Any
94316// pending HTTP request will be aborted if the provided context is
94317// canceled.
94318func (c *NetworksListPeeringRoutesCall) Context(ctx context.Context) *NetworksListPeeringRoutesCall {
94319	c.ctx_ = ctx
94320	return c
94321}
94322
94323// Header returns an http.Header that can be modified by the caller to
94324// add HTTP headers to the request.
94325func (c *NetworksListPeeringRoutesCall) Header() http.Header {
94326	if c.header_ == nil {
94327		c.header_ = make(http.Header)
94328	}
94329	return c.header_
94330}
94331
94332func (c *NetworksListPeeringRoutesCall) doRequest(alt string) (*http.Response, error) {
94333	reqHeaders := make(http.Header)
94334	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94335	for k, v := range c.header_ {
94336		reqHeaders[k] = v
94337	}
94338	reqHeaders.Set("User-Agent", c.s.userAgent())
94339	if c.ifNoneMatch_ != "" {
94340		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
94341	}
94342	var body io.Reader = nil
94343	c.urlParams_.Set("alt", alt)
94344	c.urlParams_.Set("prettyPrint", "false")
94345	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/listPeeringRoutes")
94346	urls += "?" + c.urlParams_.Encode()
94347	req, err := http.NewRequest("GET", urls, body)
94348	if err != nil {
94349		return nil, err
94350	}
94351	req.Header = reqHeaders
94352	googleapi.Expand(req.URL, map[string]string{
94353		"project": c.project,
94354		"network": c.network,
94355	})
94356	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94357}
94358
94359// Do executes the "compute.networks.listPeeringRoutes" call.
94360// Exactly one of *ExchangedPeeringRoutesList or error will be non-nil.
94361// Any non-2xx status code is an error. Response headers are in either
94362// *ExchangedPeeringRoutesList.ServerResponse.Header or (if a response
94363// was returned at all) in error.(*googleapi.Error).Header. Use
94364// googleapi.IsNotModified to check whether the returned error was
94365// because http.StatusNotModified was returned.
94366func (c *NetworksListPeeringRoutesCall) Do(opts ...googleapi.CallOption) (*ExchangedPeeringRoutesList, error) {
94367	gensupport.SetOptions(c.urlParams_, opts...)
94368	res, err := c.doRequest("json")
94369	if res != nil && res.StatusCode == http.StatusNotModified {
94370		if res.Body != nil {
94371			res.Body.Close()
94372		}
94373		return nil, &googleapi.Error{
94374			Code:   res.StatusCode,
94375			Header: res.Header,
94376		}
94377	}
94378	if err != nil {
94379		return nil, err
94380	}
94381	defer googleapi.CloseBody(res)
94382	if err := googleapi.CheckResponse(res); err != nil {
94383		return nil, err
94384	}
94385	ret := &ExchangedPeeringRoutesList{
94386		ServerResponse: googleapi.ServerResponse{
94387			Header:         res.Header,
94388			HTTPStatusCode: res.StatusCode,
94389		},
94390	}
94391	target := &ret
94392	if err := gensupport.DecodeResponse(target, res); err != nil {
94393		return nil, err
94394	}
94395	return ret, nil
94396	// {
94397	//   "description": "Lists the peering routes exchanged over peering connection.",
94398	//   "httpMethod": "GET",
94399	//   "id": "compute.networks.listPeeringRoutes",
94400	//   "parameterOrder": [
94401	//     "project",
94402	//     "network"
94403	//   ],
94404	//   "parameters": {
94405	//     "direction": {
94406	//       "description": "The direction of the exchanged routes.",
94407	//       "enum": [
94408	//         "INCOMING",
94409	//         "OUTGOING"
94410	//       ],
94411	//       "enumDescriptions": [
94412	//         "",
94413	//         ""
94414	//       ],
94415	//       "location": "query",
94416	//       "type": "string"
94417	//     },
94418	//     "filter": {
94419	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
94420	//       "location": "query",
94421	//       "type": "string"
94422	//     },
94423	//     "maxResults": {
94424	//       "default": "500",
94425	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
94426	//       "format": "uint32",
94427	//       "location": "query",
94428	//       "minimum": "0",
94429	//       "type": "integer"
94430	//     },
94431	//     "network": {
94432	//       "description": "Name of the network for this request.",
94433	//       "location": "path",
94434	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
94435	//       "required": true,
94436	//       "type": "string"
94437	//     },
94438	//     "orderBy": {
94439	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
94440	//       "location": "query",
94441	//       "type": "string"
94442	//     },
94443	//     "pageToken": {
94444	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
94445	//       "location": "query",
94446	//       "type": "string"
94447	//     },
94448	//     "peeringName": {
94449	//       "description": "The response will show routes exchanged over the given peering connection.",
94450	//       "location": "query",
94451	//       "type": "string"
94452	//     },
94453	//     "project": {
94454	//       "description": "Project ID for this request.",
94455	//       "location": "path",
94456	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94457	//       "required": true,
94458	//       "type": "string"
94459	//     },
94460	//     "region": {
94461	//       "description": "The region of the request. The response will include all subnet routes, static routes and dynamic routes in the region.",
94462	//       "location": "query",
94463	//       "type": "string"
94464	//     }
94465	//   },
94466	//   "path": "{project}/global/networks/{network}/listPeeringRoutes",
94467	//   "response": {
94468	//     "$ref": "ExchangedPeeringRoutesList"
94469	//   },
94470	//   "scopes": [
94471	//     "https://www.googleapis.com/auth/cloud-platform",
94472	//     "https://www.googleapis.com/auth/compute",
94473	//     "https://www.googleapis.com/auth/compute.readonly"
94474	//   ]
94475	// }
94476
94477}
94478
94479// Pages invokes f for each page of results.
94480// A non-nil error returned from f will halt the iteration.
94481// The provided context supersedes any context provided to the Context method.
94482func (c *NetworksListPeeringRoutesCall) Pages(ctx context.Context, f func(*ExchangedPeeringRoutesList) error) error {
94483	c.ctx_ = ctx
94484	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
94485	for {
94486		x, err := c.Do()
94487		if err != nil {
94488			return err
94489		}
94490		if err := f(x); err != nil {
94491			return err
94492		}
94493		if x.NextPageToken == "" {
94494			return nil
94495		}
94496		c.PageToken(x.NextPageToken)
94497	}
94498}
94499
94500// method id "compute.networks.patch":
94501
94502type NetworksPatchCall struct {
94503	s          *Service
94504	project    string
94505	network    string
94506	network2   *Network
94507	urlParams_ gensupport.URLParams
94508	ctx_       context.Context
94509	header_    http.Header
94510}
94511
94512// Patch: Patches the specified network with the data included in the
94513// request. Only the following fields can be modified:
94514// routingConfig.routingMode.
94515func (r *NetworksService) Patch(project string, network string, network2 *Network) *NetworksPatchCall {
94516	c := &NetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94517	c.project = project
94518	c.network = network
94519	c.network2 = network2
94520	return c
94521}
94522
94523// RequestId sets the optional parameter "requestId": An optional
94524// request ID to identify requests. Specify a unique request ID so that
94525// if you must retry your request, the server will know to ignore the
94526// request if it has already been completed.
94527//
94528// For example, consider a situation where you make an initial request
94529// and the request times out. If you make the request again with the
94530// same request ID, the server can check if original operation with the
94531// same request ID was received, and if so, will ignore the second
94532// request. This prevents clients from accidentally creating duplicate
94533// commitments.
94534//
94535// The request ID must be a valid UUID with the exception that zero UUID
94536// is not supported (00000000-0000-0000-0000-000000000000).
94537func (c *NetworksPatchCall) RequestId(requestId string) *NetworksPatchCall {
94538	c.urlParams_.Set("requestId", requestId)
94539	return c
94540}
94541
94542// Fields allows partial responses to be retrieved. See
94543// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94544// for more information.
94545func (c *NetworksPatchCall) Fields(s ...googleapi.Field) *NetworksPatchCall {
94546	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94547	return c
94548}
94549
94550// Context sets the context to be used in this call's Do method. Any
94551// pending HTTP request will be aborted if the provided context is
94552// canceled.
94553func (c *NetworksPatchCall) Context(ctx context.Context) *NetworksPatchCall {
94554	c.ctx_ = ctx
94555	return c
94556}
94557
94558// Header returns an http.Header that can be modified by the caller to
94559// add HTTP headers to the request.
94560func (c *NetworksPatchCall) Header() http.Header {
94561	if c.header_ == nil {
94562		c.header_ = make(http.Header)
94563	}
94564	return c.header_
94565}
94566
94567func (c *NetworksPatchCall) doRequest(alt string) (*http.Response, error) {
94568	reqHeaders := make(http.Header)
94569	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94570	for k, v := range c.header_ {
94571		reqHeaders[k] = v
94572	}
94573	reqHeaders.Set("User-Agent", c.s.userAgent())
94574	var body io.Reader = nil
94575	body, err := googleapi.WithoutDataWrapper.JSONReader(c.network2)
94576	if err != nil {
94577		return nil, err
94578	}
94579	reqHeaders.Set("Content-Type", "application/json")
94580	c.urlParams_.Set("alt", alt)
94581	c.urlParams_.Set("prettyPrint", "false")
94582	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}")
94583	urls += "?" + c.urlParams_.Encode()
94584	req, err := http.NewRequest("PATCH", urls, body)
94585	if err != nil {
94586		return nil, err
94587	}
94588	req.Header = reqHeaders
94589	googleapi.Expand(req.URL, map[string]string{
94590		"project": c.project,
94591		"network": c.network,
94592	})
94593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94594}
94595
94596// Do executes the "compute.networks.patch" call.
94597// Exactly one of *Operation or error will be non-nil. Any non-2xx
94598// status code is an error. Response headers are in either
94599// *Operation.ServerResponse.Header or (if a response was returned at
94600// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94601// to check whether the returned error was because
94602// http.StatusNotModified was returned.
94603func (c *NetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94604	gensupport.SetOptions(c.urlParams_, opts...)
94605	res, err := c.doRequest("json")
94606	if res != nil && res.StatusCode == http.StatusNotModified {
94607		if res.Body != nil {
94608			res.Body.Close()
94609		}
94610		return nil, &googleapi.Error{
94611			Code:   res.StatusCode,
94612			Header: res.Header,
94613		}
94614	}
94615	if err != nil {
94616		return nil, err
94617	}
94618	defer googleapi.CloseBody(res)
94619	if err := googleapi.CheckResponse(res); err != nil {
94620		return nil, err
94621	}
94622	ret := &Operation{
94623		ServerResponse: googleapi.ServerResponse{
94624			Header:         res.Header,
94625			HTTPStatusCode: res.StatusCode,
94626		},
94627	}
94628	target := &ret
94629	if err := gensupport.DecodeResponse(target, res); err != nil {
94630		return nil, err
94631	}
94632	return ret, nil
94633	// {
94634	//   "description": "Patches the specified network with the data included in the request. Only the following fields can be modified: routingConfig.routingMode.",
94635	//   "httpMethod": "PATCH",
94636	//   "id": "compute.networks.patch",
94637	//   "parameterOrder": [
94638	//     "project",
94639	//     "network"
94640	//   ],
94641	//   "parameters": {
94642	//     "network": {
94643	//       "description": "Name of the network to update.",
94644	//       "location": "path",
94645	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94646	//       "required": true,
94647	//       "type": "string"
94648	//     },
94649	//     "project": {
94650	//       "description": "Project ID for this request.",
94651	//       "location": "path",
94652	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94653	//       "required": true,
94654	//       "type": "string"
94655	//     },
94656	//     "requestId": {
94657	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94658	//       "location": "query",
94659	//       "type": "string"
94660	//     }
94661	//   },
94662	//   "path": "{project}/global/networks/{network}",
94663	//   "request": {
94664	//     "$ref": "Network"
94665	//   },
94666	//   "response": {
94667	//     "$ref": "Operation"
94668	//   },
94669	//   "scopes": [
94670	//     "https://www.googleapis.com/auth/cloud-platform",
94671	//     "https://www.googleapis.com/auth/compute"
94672	//   ]
94673	// }
94674
94675}
94676
94677// method id "compute.networks.removePeering":
94678
94679type NetworksRemovePeeringCall struct {
94680	s                            *Service
94681	project                      string
94682	network                      string
94683	networksremovepeeringrequest *NetworksRemovePeeringRequest
94684	urlParams_                   gensupport.URLParams
94685	ctx_                         context.Context
94686	header_                      http.Header
94687}
94688
94689// RemovePeering: Removes a peering from the specified network.
94690func (r *NetworksService) RemovePeering(project string, network string, networksremovepeeringrequest *NetworksRemovePeeringRequest) *NetworksRemovePeeringCall {
94691	c := &NetworksRemovePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94692	c.project = project
94693	c.network = network
94694	c.networksremovepeeringrequest = networksremovepeeringrequest
94695	return c
94696}
94697
94698// RequestId sets the optional parameter "requestId": An optional
94699// request ID to identify requests. Specify a unique request ID so that
94700// if you must retry your request, the server will know to ignore the
94701// request if it has already been completed.
94702//
94703// For example, consider a situation where you make an initial request
94704// and the request times out. If you make the request again with the
94705// same request ID, the server can check if original operation with the
94706// same request ID was received, and if so, will ignore the second
94707// request. This prevents clients from accidentally creating duplicate
94708// commitments.
94709//
94710// The request ID must be a valid UUID with the exception that zero UUID
94711// is not supported (00000000-0000-0000-0000-000000000000).
94712func (c *NetworksRemovePeeringCall) RequestId(requestId string) *NetworksRemovePeeringCall {
94713	c.urlParams_.Set("requestId", requestId)
94714	return c
94715}
94716
94717// Fields allows partial responses to be retrieved. See
94718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94719// for more information.
94720func (c *NetworksRemovePeeringCall) Fields(s ...googleapi.Field) *NetworksRemovePeeringCall {
94721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94722	return c
94723}
94724
94725// Context sets the context to be used in this call's Do method. Any
94726// pending HTTP request will be aborted if the provided context is
94727// canceled.
94728func (c *NetworksRemovePeeringCall) Context(ctx context.Context) *NetworksRemovePeeringCall {
94729	c.ctx_ = ctx
94730	return c
94731}
94732
94733// Header returns an http.Header that can be modified by the caller to
94734// add HTTP headers to the request.
94735func (c *NetworksRemovePeeringCall) Header() http.Header {
94736	if c.header_ == nil {
94737		c.header_ = make(http.Header)
94738	}
94739	return c.header_
94740}
94741
94742func (c *NetworksRemovePeeringCall) doRequest(alt string) (*http.Response, error) {
94743	reqHeaders := make(http.Header)
94744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94745	for k, v := range c.header_ {
94746		reqHeaders[k] = v
94747	}
94748	reqHeaders.Set("User-Agent", c.s.userAgent())
94749	var body io.Reader = nil
94750	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksremovepeeringrequest)
94751	if err != nil {
94752		return nil, err
94753	}
94754	reqHeaders.Set("Content-Type", "application/json")
94755	c.urlParams_.Set("alt", alt)
94756	c.urlParams_.Set("prettyPrint", "false")
94757	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/removePeering")
94758	urls += "?" + c.urlParams_.Encode()
94759	req, err := http.NewRequest("POST", urls, body)
94760	if err != nil {
94761		return nil, err
94762	}
94763	req.Header = reqHeaders
94764	googleapi.Expand(req.URL, map[string]string{
94765		"project": c.project,
94766		"network": c.network,
94767	})
94768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94769}
94770
94771// Do executes the "compute.networks.removePeering" call.
94772// Exactly one of *Operation or error will be non-nil. Any non-2xx
94773// status code is an error. Response headers are in either
94774// *Operation.ServerResponse.Header or (if a response was returned at
94775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94776// to check whether the returned error was because
94777// http.StatusNotModified was returned.
94778func (c *NetworksRemovePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94779	gensupport.SetOptions(c.urlParams_, opts...)
94780	res, err := c.doRequest("json")
94781	if res != nil && res.StatusCode == http.StatusNotModified {
94782		if res.Body != nil {
94783			res.Body.Close()
94784		}
94785		return nil, &googleapi.Error{
94786			Code:   res.StatusCode,
94787			Header: res.Header,
94788		}
94789	}
94790	if err != nil {
94791		return nil, err
94792	}
94793	defer googleapi.CloseBody(res)
94794	if err := googleapi.CheckResponse(res); err != nil {
94795		return nil, err
94796	}
94797	ret := &Operation{
94798		ServerResponse: googleapi.ServerResponse{
94799			Header:         res.Header,
94800			HTTPStatusCode: res.StatusCode,
94801		},
94802	}
94803	target := &ret
94804	if err := gensupport.DecodeResponse(target, res); err != nil {
94805		return nil, err
94806	}
94807	return ret, nil
94808	// {
94809	//   "description": "Removes a peering from the specified network.",
94810	//   "httpMethod": "POST",
94811	//   "id": "compute.networks.removePeering",
94812	//   "parameterOrder": [
94813	//     "project",
94814	//     "network"
94815	//   ],
94816	//   "parameters": {
94817	//     "network": {
94818	//       "description": "Name of the network resource to remove peering from.",
94819	//       "location": "path",
94820	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94821	//       "required": true,
94822	//       "type": "string"
94823	//     },
94824	//     "project": {
94825	//       "description": "Project ID for this request.",
94826	//       "location": "path",
94827	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94828	//       "required": true,
94829	//       "type": "string"
94830	//     },
94831	//     "requestId": {
94832	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
94833	//       "location": "query",
94834	//       "type": "string"
94835	//     }
94836	//   },
94837	//   "path": "{project}/global/networks/{network}/removePeering",
94838	//   "request": {
94839	//     "$ref": "NetworksRemovePeeringRequest"
94840	//   },
94841	//   "response": {
94842	//     "$ref": "Operation"
94843	//   },
94844	//   "scopes": [
94845	//     "https://www.googleapis.com/auth/cloud-platform",
94846	//     "https://www.googleapis.com/auth/compute"
94847	//   ]
94848	// }
94849
94850}
94851
94852// method id "compute.networks.switchToCustomMode":
94853
94854type NetworksSwitchToCustomModeCall struct {
94855	s          *Service
94856	project    string
94857	network    string
94858	urlParams_ gensupport.URLParams
94859	ctx_       context.Context
94860	header_    http.Header
94861}
94862
94863// SwitchToCustomMode: Switches the network mode from auto subnet mode
94864// to custom subnet mode.
94865func (r *NetworksService) SwitchToCustomMode(project string, network string) *NetworksSwitchToCustomModeCall {
94866	c := &NetworksSwitchToCustomModeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
94867	c.project = project
94868	c.network = network
94869	return c
94870}
94871
94872// RequestId sets the optional parameter "requestId": An optional
94873// request ID to identify requests. Specify a unique request ID so that
94874// if you must retry your request, the server will know to ignore the
94875// request if it has already been completed.
94876//
94877// For example, consider a situation where you make an initial request
94878// and the request times out. If you make the request again with the
94879// same request ID, the server can check if original operation with the
94880// same request ID was received, and if so, will ignore the second
94881// request. This prevents clients from accidentally creating duplicate
94882// commitments.
94883//
94884// The request ID must be a valid UUID with the exception that zero UUID
94885// is not supported (00000000-0000-0000-0000-000000000000).
94886func (c *NetworksSwitchToCustomModeCall) RequestId(requestId string) *NetworksSwitchToCustomModeCall {
94887	c.urlParams_.Set("requestId", requestId)
94888	return c
94889}
94890
94891// Fields allows partial responses to be retrieved. See
94892// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
94893// for more information.
94894func (c *NetworksSwitchToCustomModeCall) Fields(s ...googleapi.Field) *NetworksSwitchToCustomModeCall {
94895	c.urlParams_.Set("fields", googleapi.CombineFields(s))
94896	return c
94897}
94898
94899// Context sets the context to be used in this call's Do method. Any
94900// pending HTTP request will be aborted if the provided context is
94901// canceled.
94902func (c *NetworksSwitchToCustomModeCall) Context(ctx context.Context) *NetworksSwitchToCustomModeCall {
94903	c.ctx_ = ctx
94904	return c
94905}
94906
94907// Header returns an http.Header that can be modified by the caller to
94908// add HTTP headers to the request.
94909func (c *NetworksSwitchToCustomModeCall) Header() http.Header {
94910	if c.header_ == nil {
94911		c.header_ = make(http.Header)
94912	}
94913	return c.header_
94914}
94915
94916func (c *NetworksSwitchToCustomModeCall) doRequest(alt string) (*http.Response, error) {
94917	reqHeaders := make(http.Header)
94918	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
94919	for k, v := range c.header_ {
94920		reqHeaders[k] = v
94921	}
94922	reqHeaders.Set("User-Agent", c.s.userAgent())
94923	var body io.Reader = nil
94924	c.urlParams_.Set("alt", alt)
94925	c.urlParams_.Set("prettyPrint", "false")
94926	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/switchToCustomMode")
94927	urls += "?" + c.urlParams_.Encode()
94928	req, err := http.NewRequest("POST", urls, body)
94929	if err != nil {
94930		return nil, err
94931	}
94932	req.Header = reqHeaders
94933	googleapi.Expand(req.URL, map[string]string{
94934		"project": c.project,
94935		"network": c.network,
94936	})
94937	return gensupport.SendRequest(c.ctx_, c.s.client, req)
94938}
94939
94940// Do executes the "compute.networks.switchToCustomMode" call.
94941// Exactly one of *Operation or error will be non-nil. Any non-2xx
94942// status code is an error. Response headers are in either
94943// *Operation.ServerResponse.Header or (if a response was returned at
94944// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
94945// to check whether the returned error was because
94946// http.StatusNotModified was returned.
94947func (c *NetworksSwitchToCustomModeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
94948	gensupport.SetOptions(c.urlParams_, opts...)
94949	res, err := c.doRequest("json")
94950	if res != nil && res.StatusCode == http.StatusNotModified {
94951		if res.Body != nil {
94952			res.Body.Close()
94953		}
94954		return nil, &googleapi.Error{
94955			Code:   res.StatusCode,
94956			Header: res.Header,
94957		}
94958	}
94959	if err != nil {
94960		return nil, err
94961	}
94962	defer googleapi.CloseBody(res)
94963	if err := googleapi.CheckResponse(res); err != nil {
94964		return nil, err
94965	}
94966	ret := &Operation{
94967		ServerResponse: googleapi.ServerResponse{
94968			Header:         res.Header,
94969			HTTPStatusCode: res.StatusCode,
94970		},
94971	}
94972	target := &ret
94973	if err := gensupport.DecodeResponse(target, res); err != nil {
94974		return nil, err
94975	}
94976	return ret, nil
94977	// {
94978	//   "description": "Switches the network mode from auto subnet mode to custom subnet mode.",
94979	//   "httpMethod": "POST",
94980	//   "id": "compute.networks.switchToCustomMode",
94981	//   "parameterOrder": [
94982	//     "project",
94983	//     "network"
94984	//   ],
94985	//   "parameters": {
94986	//     "network": {
94987	//       "description": "Name of the network to be updated.",
94988	//       "location": "path",
94989	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
94990	//       "required": true,
94991	//       "type": "string"
94992	//     },
94993	//     "project": {
94994	//       "description": "Project ID for this request.",
94995	//       "location": "path",
94996	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
94997	//       "required": true,
94998	//       "type": "string"
94999	//     },
95000	//     "requestId": {
95001	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95002	//       "location": "query",
95003	//       "type": "string"
95004	//     }
95005	//   },
95006	//   "path": "{project}/global/networks/{network}/switchToCustomMode",
95007	//   "response": {
95008	//     "$ref": "Operation"
95009	//   },
95010	//   "scopes": [
95011	//     "https://www.googleapis.com/auth/cloud-platform",
95012	//     "https://www.googleapis.com/auth/compute"
95013	//   ]
95014	// }
95015
95016}
95017
95018// method id "compute.networks.testIamPermissions":
95019
95020type NetworksTestIamPermissionsCall struct {
95021	s                      *Service
95022	project                string
95023	resource               string
95024	testpermissionsrequest *TestPermissionsRequest
95025	urlParams_             gensupport.URLParams
95026	ctx_                   context.Context
95027	header_                http.Header
95028}
95029
95030// TestIamPermissions: Returns permissions that a caller has on the
95031// specified resource.
95032func (r *NetworksService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *NetworksTestIamPermissionsCall {
95033	c := &NetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95034	c.project = project
95035	c.resource = resource
95036	c.testpermissionsrequest = testpermissionsrequest
95037	return c
95038}
95039
95040// Fields allows partial responses to be retrieved. See
95041// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95042// for more information.
95043func (c *NetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *NetworksTestIamPermissionsCall {
95044	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95045	return c
95046}
95047
95048// Context sets the context to be used in this call's Do method. Any
95049// pending HTTP request will be aborted if the provided context is
95050// canceled.
95051func (c *NetworksTestIamPermissionsCall) Context(ctx context.Context) *NetworksTestIamPermissionsCall {
95052	c.ctx_ = ctx
95053	return c
95054}
95055
95056// Header returns an http.Header that can be modified by the caller to
95057// add HTTP headers to the request.
95058func (c *NetworksTestIamPermissionsCall) Header() http.Header {
95059	if c.header_ == nil {
95060		c.header_ = make(http.Header)
95061	}
95062	return c.header_
95063}
95064
95065func (c *NetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
95066	reqHeaders := make(http.Header)
95067	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95068	for k, v := range c.header_ {
95069		reqHeaders[k] = v
95070	}
95071	reqHeaders.Set("User-Agent", c.s.userAgent())
95072	var body io.Reader = nil
95073	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
95074	if err != nil {
95075		return nil, err
95076	}
95077	reqHeaders.Set("Content-Type", "application/json")
95078	c.urlParams_.Set("alt", alt)
95079	c.urlParams_.Set("prettyPrint", "false")
95080	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{resource}/testIamPermissions")
95081	urls += "?" + c.urlParams_.Encode()
95082	req, err := http.NewRequest("POST", urls, body)
95083	if err != nil {
95084		return nil, err
95085	}
95086	req.Header = reqHeaders
95087	googleapi.Expand(req.URL, map[string]string{
95088		"project":  c.project,
95089		"resource": c.resource,
95090	})
95091	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95092}
95093
95094// Do executes the "compute.networks.testIamPermissions" call.
95095// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
95096// non-2xx status code is an error. Response headers are in either
95097// *TestPermissionsResponse.ServerResponse.Header or (if a response was
95098// returned at all) in error.(*googleapi.Error).Header. Use
95099// googleapi.IsNotModified to check whether the returned error was
95100// because http.StatusNotModified was returned.
95101func (c *NetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
95102	gensupport.SetOptions(c.urlParams_, opts...)
95103	res, err := c.doRequest("json")
95104	if res != nil && res.StatusCode == http.StatusNotModified {
95105		if res.Body != nil {
95106			res.Body.Close()
95107		}
95108		return nil, &googleapi.Error{
95109			Code:   res.StatusCode,
95110			Header: res.Header,
95111		}
95112	}
95113	if err != nil {
95114		return nil, err
95115	}
95116	defer googleapi.CloseBody(res)
95117	if err := googleapi.CheckResponse(res); err != nil {
95118		return nil, err
95119	}
95120	ret := &TestPermissionsResponse{
95121		ServerResponse: googleapi.ServerResponse{
95122			Header:         res.Header,
95123			HTTPStatusCode: res.StatusCode,
95124		},
95125	}
95126	target := &ret
95127	if err := gensupport.DecodeResponse(target, res); err != nil {
95128		return nil, err
95129	}
95130	return ret, nil
95131	// {
95132	//   "description": "Returns permissions that a caller has on the specified resource.",
95133	//   "httpMethod": "POST",
95134	//   "id": "compute.networks.testIamPermissions",
95135	//   "parameterOrder": [
95136	//     "project",
95137	//     "resource"
95138	//   ],
95139	//   "parameters": {
95140	//     "project": {
95141	//       "description": "Project ID for this request.",
95142	//       "location": "path",
95143	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95144	//       "required": true,
95145	//       "type": "string"
95146	//     },
95147	//     "resource": {
95148	//       "description": "Name or id of the resource for this request.",
95149	//       "location": "path",
95150	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95151	//       "required": true,
95152	//       "type": "string"
95153	//     }
95154	//   },
95155	//   "path": "{project}/global/networks/{resource}/testIamPermissions",
95156	//   "request": {
95157	//     "$ref": "TestPermissionsRequest"
95158	//   },
95159	//   "response": {
95160	//     "$ref": "TestPermissionsResponse"
95161	//   },
95162	//   "scopes": [
95163	//     "https://www.googleapis.com/auth/cloud-platform",
95164	//     "https://www.googleapis.com/auth/compute",
95165	//     "https://www.googleapis.com/auth/compute.readonly"
95166	//   ]
95167	// }
95168
95169}
95170
95171// method id "compute.networks.updatePeering":
95172
95173type NetworksUpdatePeeringCall struct {
95174	s                            *Service
95175	project                      string
95176	network                      string
95177	networksupdatepeeringrequest *NetworksUpdatePeeringRequest
95178	urlParams_                   gensupport.URLParams
95179	ctx_                         context.Context
95180	header_                      http.Header
95181}
95182
95183// UpdatePeering: Updates the specified network peering with the data
95184// included in the request Only the following fields can be modified:
95185// NetworkPeering.export_custom_routes, and
95186// NetworkPeering.import_custom_routes
95187func (r *NetworksService) UpdatePeering(project string, network string, networksupdatepeeringrequest *NetworksUpdatePeeringRequest) *NetworksUpdatePeeringCall {
95188	c := &NetworksUpdatePeeringCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95189	c.project = project
95190	c.network = network
95191	c.networksupdatepeeringrequest = networksupdatepeeringrequest
95192	return c
95193}
95194
95195// RequestId sets the optional parameter "requestId": An optional
95196// request ID to identify requests. Specify a unique request ID so that
95197// if you must retry your request, the server will know to ignore the
95198// request if it has already been completed.
95199//
95200// For example, consider a situation where you make an initial request
95201// and the request times out. If you make the request again with the
95202// same request ID, the server can check if original operation with the
95203// same request ID was received, and if so, will ignore the second
95204// request. This prevents clients from accidentally creating duplicate
95205// commitments.
95206//
95207// The request ID must be a valid UUID with the exception that zero UUID
95208// is not supported (00000000-0000-0000-0000-000000000000).
95209func (c *NetworksUpdatePeeringCall) RequestId(requestId string) *NetworksUpdatePeeringCall {
95210	c.urlParams_.Set("requestId", requestId)
95211	return c
95212}
95213
95214// Fields allows partial responses to be retrieved. See
95215// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95216// for more information.
95217func (c *NetworksUpdatePeeringCall) Fields(s ...googleapi.Field) *NetworksUpdatePeeringCall {
95218	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95219	return c
95220}
95221
95222// Context sets the context to be used in this call's Do method. Any
95223// pending HTTP request will be aborted if the provided context is
95224// canceled.
95225func (c *NetworksUpdatePeeringCall) Context(ctx context.Context) *NetworksUpdatePeeringCall {
95226	c.ctx_ = ctx
95227	return c
95228}
95229
95230// Header returns an http.Header that can be modified by the caller to
95231// add HTTP headers to the request.
95232func (c *NetworksUpdatePeeringCall) Header() http.Header {
95233	if c.header_ == nil {
95234		c.header_ = make(http.Header)
95235	}
95236	return c.header_
95237}
95238
95239func (c *NetworksUpdatePeeringCall) doRequest(alt string) (*http.Response, error) {
95240	reqHeaders := make(http.Header)
95241	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95242	for k, v := range c.header_ {
95243		reqHeaders[k] = v
95244	}
95245	reqHeaders.Set("User-Agent", c.s.userAgent())
95246	var body io.Reader = nil
95247	body, err := googleapi.WithoutDataWrapper.JSONReader(c.networksupdatepeeringrequest)
95248	if err != nil {
95249		return nil, err
95250	}
95251	reqHeaders.Set("Content-Type", "application/json")
95252	c.urlParams_.Set("alt", alt)
95253	c.urlParams_.Set("prettyPrint", "false")
95254	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/networks/{network}/updatePeering")
95255	urls += "?" + c.urlParams_.Encode()
95256	req, err := http.NewRequest("PATCH", urls, body)
95257	if err != nil {
95258		return nil, err
95259	}
95260	req.Header = reqHeaders
95261	googleapi.Expand(req.URL, map[string]string{
95262		"project": c.project,
95263		"network": c.network,
95264	})
95265	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95266}
95267
95268// Do executes the "compute.networks.updatePeering" call.
95269// Exactly one of *Operation or error will be non-nil. Any non-2xx
95270// status code is an error. Response headers are in either
95271// *Operation.ServerResponse.Header or (if a response was returned at
95272// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95273// to check whether the returned error was because
95274// http.StatusNotModified was returned.
95275func (c *NetworksUpdatePeeringCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95276	gensupport.SetOptions(c.urlParams_, opts...)
95277	res, err := c.doRequest("json")
95278	if res != nil && res.StatusCode == http.StatusNotModified {
95279		if res.Body != nil {
95280			res.Body.Close()
95281		}
95282		return nil, &googleapi.Error{
95283			Code:   res.StatusCode,
95284			Header: res.Header,
95285		}
95286	}
95287	if err != nil {
95288		return nil, err
95289	}
95290	defer googleapi.CloseBody(res)
95291	if err := googleapi.CheckResponse(res); err != nil {
95292		return nil, err
95293	}
95294	ret := &Operation{
95295		ServerResponse: googleapi.ServerResponse{
95296			Header:         res.Header,
95297			HTTPStatusCode: res.StatusCode,
95298		},
95299	}
95300	target := &ret
95301	if err := gensupport.DecodeResponse(target, res); err != nil {
95302		return nil, err
95303	}
95304	return ret, nil
95305	// {
95306	//   "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",
95307	//   "httpMethod": "PATCH",
95308	//   "id": "compute.networks.updatePeering",
95309	//   "parameterOrder": [
95310	//     "project",
95311	//     "network"
95312	//   ],
95313	//   "parameters": {
95314	//     "network": {
95315	//       "description": "Name of the network resource which the updated peering is belonging to.",
95316	//       "location": "path",
95317	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95318	//       "required": true,
95319	//       "type": "string"
95320	//     },
95321	//     "project": {
95322	//       "description": "Project ID for this request.",
95323	//       "location": "path",
95324	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95325	//       "required": true,
95326	//       "type": "string"
95327	//     },
95328	//     "requestId": {
95329	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95330	//       "location": "query",
95331	//       "type": "string"
95332	//     }
95333	//   },
95334	//   "path": "{project}/global/networks/{network}/updatePeering",
95335	//   "request": {
95336	//     "$ref": "NetworksUpdatePeeringRequest"
95337	//   },
95338	//   "response": {
95339	//     "$ref": "Operation"
95340	//   },
95341	//   "scopes": [
95342	//     "https://www.googleapis.com/auth/cloud-platform",
95343	//     "https://www.googleapis.com/auth/compute"
95344	//   ]
95345	// }
95346
95347}
95348
95349// method id "compute.nodeGroups.addNodes":
95350
95351type NodeGroupsAddNodesCall struct {
95352	s                         *Service
95353	project                   string
95354	zone                      string
95355	nodeGroup                 string
95356	nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest
95357	urlParams_                gensupport.URLParams
95358	ctx_                      context.Context
95359	header_                   http.Header
95360}
95361
95362// AddNodes: Adds specified number of nodes to the node group.
95363func (r *NodeGroupsService) AddNodes(project string, zone string, nodeGroup string, nodegroupsaddnodesrequest *NodeGroupsAddNodesRequest) *NodeGroupsAddNodesCall {
95364	c := &NodeGroupsAddNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95365	c.project = project
95366	c.zone = zone
95367	c.nodeGroup = nodeGroup
95368	c.nodegroupsaddnodesrequest = nodegroupsaddnodesrequest
95369	return c
95370}
95371
95372// RequestId sets the optional parameter "requestId": An optional
95373// request ID to identify requests. Specify a unique request ID so that
95374// if you must retry your request, the server will know to ignore the
95375// request if it has already been completed.
95376//
95377// For example, consider a situation where you make an initial request
95378// and the request times out. If you make the request again with the
95379// same request ID, the server can check if original operation with the
95380// same request ID was received, and if so, will ignore the second
95381// request. This prevents clients from accidentally creating duplicate
95382// commitments.
95383//
95384// The request ID must be a valid UUID with the exception that zero UUID
95385// is not supported (00000000-0000-0000-0000-000000000000).
95386func (c *NodeGroupsAddNodesCall) RequestId(requestId string) *NodeGroupsAddNodesCall {
95387	c.urlParams_.Set("requestId", requestId)
95388	return c
95389}
95390
95391// Fields allows partial responses to be retrieved. See
95392// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95393// for more information.
95394func (c *NodeGroupsAddNodesCall) Fields(s ...googleapi.Field) *NodeGroupsAddNodesCall {
95395	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95396	return c
95397}
95398
95399// Context sets the context to be used in this call's Do method. Any
95400// pending HTTP request will be aborted if the provided context is
95401// canceled.
95402func (c *NodeGroupsAddNodesCall) Context(ctx context.Context) *NodeGroupsAddNodesCall {
95403	c.ctx_ = ctx
95404	return c
95405}
95406
95407// Header returns an http.Header that can be modified by the caller to
95408// add HTTP headers to the request.
95409func (c *NodeGroupsAddNodesCall) Header() http.Header {
95410	if c.header_ == nil {
95411		c.header_ = make(http.Header)
95412	}
95413	return c.header_
95414}
95415
95416func (c *NodeGroupsAddNodesCall) doRequest(alt string) (*http.Response, error) {
95417	reqHeaders := make(http.Header)
95418	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95419	for k, v := range c.header_ {
95420		reqHeaders[k] = v
95421	}
95422	reqHeaders.Set("User-Agent", c.s.userAgent())
95423	var body io.Reader = nil
95424	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsaddnodesrequest)
95425	if err != nil {
95426		return nil, err
95427	}
95428	reqHeaders.Set("Content-Type", "application/json")
95429	c.urlParams_.Set("alt", alt)
95430	c.urlParams_.Set("prettyPrint", "false")
95431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes")
95432	urls += "?" + c.urlParams_.Encode()
95433	req, err := http.NewRequest("POST", urls, body)
95434	if err != nil {
95435		return nil, err
95436	}
95437	req.Header = reqHeaders
95438	googleapi.Expand(req.URL, map[string]string{
95439		"project":   c.project,
95440		"zone":      c.zone,
95441		"nodeGroup": c.nodeGroup,
95442	})
95443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95444}
95445
95446// Do executes the "compute.nodeGroups.addNodes" call.
95447// Exactly one of *Operation or error will be non-nil. Any non-2xx
95448// status code is an error. Response headers are in either
95449// *Operation.ServerResponse.Header or (if a response was returned at
95450// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95451// to check whether the returned error was because
95452// http.StatusNotModified was returned.
95453func (c *NodeGroupsAddNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95454	gensupport.SetOptions(c.urlParams_, opts...)
95455	res, err := c.doRequest("json")
95456	if res != nil && res.StatusCode == http.StatusNotModified {
95457		if res.Body != nil {
95458			res.Body.Close()
95459		}
95460		return nil, &googleapi.Error{
95461			Code:   res.StatusCode,
95462			Header: res.Header,
95463		}
95464	}
95465	if err != nil {
95466		return nil, err
95467	}
95468	defer googleapi.CloseBody(res)
95469	if err := googleapi.CheckResponse(res); err != nil {
95470		return nil, err
95471	}
95472	ret := &Operation{
95473		ServerResponse: googleapi.ServerResponse{
95474			Header:         res.Header,
95475			HTTPStatusCode: res.StatusCode,
95476		},
95477	}
95478	target := &ret
95479	if err := gensupport.DecodeResponse(target, res); err != nil {
95480		return nil, err
95481	}
95482	return ret, nil
95483	// {
95484	//   "description": "Adds specified number of nodes to the node group.",
95485	//   "httpMethod": "POST",
95486	//   "id": "compute.nodeGroups.addNodes",
95487	//   "parameterOrder": [
95488	//     "project",
95489	//     "zone",
95490	//     "nodeGroup"
95491	//   ],
95492	//   "parameters": {
95493	//     "nodeGroup": {
95494	//       "description": "Name of the NodeGroup resource.",
95495	//       "location": "path",
95496	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95497	//       "required": true,
95498	//       "type": "string"
95499	//     },
95500	//     "project": {
95501	//       "description": "Project ID for this request.",
95502	//       "location": "path",
95503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95504	//       "required": true,
95505	//       "type": "string"
95506	//     },
95507	//     "requestId": {
95508	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95509	//       "location": "query",
95510	//       "type": "string"
95511	//     },
95512	//     "zone": {
95513	//       "description": "The name of the zone for this request.",
95514	//       "location": "path",
95515	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95516	//       "required": true,
95517	//       "type": "string"
95518	//     }
95519	//   },
95520	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/addNodes",
95521	//   "request": {
95522	//     "$ref": "NodeGroupsAddNodesRequest"
95523	//   },
95524	//   "response": {
95525	//     "$ref": "Operation"
95526	//   },
95527	//   "scopes": [
95528	//     "https://www.googleapis.com/auth/cloud-platform",
95529	//     "https://www.googleapis.com/auth/compute"
95530	//   ]
95531	// }
95532
95533}
95534
95535// method id "compute.nodeGroups.aggregatedList":
95536
95537type NodeGroupsAggregatedListCall struct {
95538	s            *Service
95539	project      string
95540	urlParams_   gensupport.URLParams
95541	ifNoneMatch_ string
95542	ctx_         context.Context
95543	header_      http.Header
95544}
95545
95546// AggregatedList: Retrieves an aggregated list of node groups. Note:
95547// use nodeGroups.listNodes for more details about each group.
95548func (r *NodeGroupsService) AggregatedList(project string) *NodeGroupsAggregatedListCall {
95549	c := &NodeGroupsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95550	c.project = project
95551	return c
95552}
95553
95554// Filter sets the optional parameter "filter": A filter expression that
95555// filters resources listed in the response. The expression must specify
95556// the field name, a comparison operator, and the value that you want to
95557// use for filtering. The value must be a string, a number, or a
95558// boolean. The comparison operator must be either =, !=, >, or <.
95559//
95560// For example, if you are filtering Compute Engine instances, you can
95561// exclude instances named example-instance by specifying name !=
95562// example-instance.
95563//
95564// You can also filter nested fields. For example, you could specify
95565// scheduling.automaticRestart = false to include instances only if they
95566// are not scheduled for automatic restarts. You can use filtering on
95567// nested fields to filter based on resource labels.
95568//
95569// To filter on multiple expressions, provide each separate expression
95570// within parentheses. For example, (scheduling.automaticRestart = true)
95571// (cpuPlatform = "Intel Skylake"). By default, each expression is an
95572// AND expression. However, you can include AND and OR expressions
95573// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
95574// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
95575// true).
95576func (c *NodeGroupsAggregatedListCall) Filter(filter string) *NodeGroupsAggregatedListCall {
95577	c.urlParams_.Set("filter", filter)
95578	return c
95579}
95580
95581// IncludeAllScopes sets the optional parameter "includeAllScopes":
95582// Indicates whether every visible scope for each scope type (zone,
95583// region, global) should be included in the response. For new resource
95584// types added after this field, the flag has no effect as new resource
95585// types will always include every visible scope for each scope type in
95586// response. For resource types which predate this field, if this flag
95587// is omitted or false, only scopes of the scope types where the
95588// resource type is expected to be found will be included.
95589func (c *NodeGroupsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeGroupsAggregatedListCall {
95590	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
95591	return c
95592}
95593
95594// MaxResults sets the optional parameter "maxResults": The maximum
95595// number of results per page that should be returned. If the number of
95596// available results is larger than maxResults, Compute Engine returns a
95597// nextPageToken that can be used to get the next page of results in
95598// subsequent list requests. Acceptable values are 0 to 500, inclusive.
95599// (Default: 500)
95600func (c *NodeGroupsAggregatedListCall) MaxResults(maxResults int64) *NodeGroupsAggregatedListCall {
95601	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
95602	return c
95603}
95604
95605// OrderBy sets the optional parameter "orderBy": Sorts list results by
95606// a certain order. By default, results are returned in alphanumerical
95607// order based on the resource name.
95608//
95609// You can also sort results in descending order based on the creation
95610// timestamp using orderBy="creationTimestamp desc". This sorts results
95611// based on the creationTimestamp field in reverse chronological order
95612// (newest result first). Use this to sort resources like operations so
95613// that the newest operation is returned first.
95614//
95615// Currently, only sorting by name or creationTimestamp desc is
95616// supported.
95617func (c *NodeGroupsAggregatedListCall) OrderBy(orderBy string) *NodeGroupsAggregatedListCall {
95618	c.urlParams_.Set("orderBy", orderBy)
95619	return c
95620}
95621
95622// PageToken sets the optional parameter "pageToken": Specifies a page
95623// token to use. Set pageToken to the nextPageToken returned by a
95624// previous list request to get the next page of results.
95625func (c *NodeGroupsAggregatedListCall) PageToken(pageToken string) *NodeGroupsAggregatedListCall {
95626	c.urlParams_.Set("pageToken", pageToken)
95627	return c
95628}
95629
95630// Fields allows partial responses to be retrieved. See
95631// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95632// for more information.
95633func (c *NodeGroupsAggregatedListCall) Fields(s ...googleapi.Field) *NodeGroupsAggregatedListCall {
95634	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95635	return c
95636}
95637
95638// IfNoneMatch sets the optional parameter which makes the operation
95639// fail if the object's ETag matches the given value. This is useful for
95640// getting updates only after the object has changed since the last
95641// request. Use googleapi.IsNotModified to check whether the response
95642// error from Do is the result of In-None-Match.
95643func (c *NodeGroupsAggregatedListCall) IfNoneMatch(entityTag string) *NodeGroupsAggregatedListCall {
95644	c.ifNoneMatch_ = entityTag
95645	return c
95646}
95647
95648// Context sets the context to be used in this call's Do method. Any
95649// pending HTTP request will be aborted if the provided context is
95650// canceled.
95651func (c *NodeGroupsAggregatedListCall) Context(ctx context.Context) *NodeGroupsAggregatedListCall {
95652	c.ctx_ = ctx
95653	return c
95654}
95655
95656// Header returns an http.Header that can be modified by the caller to
95657// add HTTP headers to the request.
95658func (c *NodeGroupsAggregatedListCall) Header() http.Header {
95659	if c.header_ == nil {
95660		c.header_ = make(http.Header)
95661	}
95662	return c.header_
95663}
95664
95665func (c *NodeGroupsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
95666	reqHeaders := make(http.Header)
95667	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95668	for k, v := range c.header_ {
95669		reqHeaders[k] = v
95670	}
95671	reqHeaders.Set("User-Agent", c.s.userAgent())
95672	if c.ifNoneMatch_ != "" {
95673		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
95674	}
95675	var body io.Reader = nil
95676	c.urlParams_.Set("alt", alt)
95677	c.urlParams_.Set("prettyPrint", "false")
95678	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeGroups")
95679	urls += "?" + c.urlParams_.Encode()
95680	req, err := http.NewRequest("GET", urls, body)
95681	if err != nil {
95682		return nil, err
95683	}
95684	req.Header = reqHeaders
95685	googleapi.Expand(req.URL, map[string]string{
95686		"project": c.project,
95687	})
95688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95689}
95690
95691// Do executes the "compute.nodeGroups.aggregatedList" call.
95692// Exactly one of *NodeGroupAggregatedList or error will be non-nil. Any
95693// non-2xx status code is an error. Response headers are in either
95694// *NodeGroupAggregatedList.ServerResponse.Header or (if a response was
95695// returned at all) in error.(*googleapi.Error).Header. Use
95696// googleapi.IsNotModified to check whether the returned error was
95697// because http.StatusNotModified was returned.
95698func (c *NodeGroupsAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeGroupAggregatedList, error) {
95699	gensupport.SetOptions(c.urlParams_, opts...)
95700	res, err := c.doRequest("json")
95701	if res != nil && res.StatusCode == http.StatusNotModified {
95702		if res.Body != nil {
95703			res.Body.Close()
95704		}
95705		return nil, &googleapi.Error{
95706			Code:   res.StatusCode,
95707			Header: res.Header,
95708		}
95709	}
95710	if err != nil {
95711		return nil, err
95712	}
95713	defer googleapi.CloseBody(res)
95714	if err := googleapi.CheckResponse(res); err != nil {
95715		return nil, err
95716	}
95717	ret := &NodeGroupAggregatedList{
95718		ServerResponse: googleapi.ServerResponse{
95719			Header:         res.Header,
95720			HTTPStatusCode: res.StatusCode,
95721		},
95722	}
95723	target := &ret
95724	if err := gensupport.DecodeResponse(target, res); err != nil {
95725		return nil, err
95726	}
95727	return ret, nil
95728	// {
95729	//   "description": "Retrieves an aggregated list of node groups. Note: use nodeGroups.listNodes for more details about each group.",
95730	//   "httpMethod": "GET",
95731	//   "id": "compute.nodeGroups.aggregatedList",
95732	//   "parameterOrder": [
95733	//     "project"
95734	//   ],
95735	//   "parameters": {
95736	//     "filter": {
95737	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
95738	//       "location": "query",
95739	//       "type": "string"
95740	//     },
95741	//     "includeAllScopes": {
95742	//       "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.",
95743	//       "location": "query",
95744	//       "type": "boolean"
95745	//     },
95746	//     "maxResults": {
95747	//       "default": "500",
95748	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
95749	//       "format": "uint32",
95750	//       "location": "query",
95751	//       "minimum": "0",
95752	//       "type": "integer"
95753	//     },
95754	//     "orderBy": {
95755	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
95756	//       "location": "query",
95757	//       "type": "string"
95758	//     },
95759	//     "pageToken": {
95760	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
95761	//       "location": "query",
95762	//       "type": "string"
95763	//     },
95764	//     "project": {
95765	//       "description": "Project ID for this request.",
95766	//       "location": "path",
95767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95768	//       "required": true,
95769	//       "type": "string"
95770	//     }
95771	//   },
95772	//   "path": "{project}/aggregated/nodeGroups",
95773	//   "response": {
95774	//     "$ref": "NodeGroupAggregatedList"
95775	//   },
95776	//   "scopes": [
95777	//     "https://www.googleapis.com/auth/cloud-platform",
95778	//     "https://www.googleapis.com/auth/compute",
95779	//     "https://www.googleapis.com/auth/compute.readonly"
95780	//   ]
95781	// }
95782
95783}
95784
95785// Pages invokes f for each page of results.
95786// A non-nil error returned from f will halt the iteration.
95787// The provided context supersedes any context provided to the Context method.
95788func (c *NodeGroupsAggregatedListCall) Pages(ctx context.Context, f func(*NodeGroupAggregatedList) error) error {
95789	c.ctx_ = ctx
95790	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
95791	for {
95792		x, err := c.Do()
95793		if err != nil {
95794			return err
95795		}
95796		if err := f(x); err != nil {
95797			return err
95798		}
95799		if x.NextPageToken == "" {
95800			return nil
95801		}
95802		c.PageToken(x.NextPageToken)
95803	}
95804}
95805
95806// method id "compute.nodeGroups.delete":
95807
95808type NodeGroupsDeleteCall struct {
95809	s          *Service
95810	project    string
95811	zone       string
95812	nodeGroup  string
95813	urlParams_ gensupport.URLParams
95814	ctx_       context.Context
95815	header_    http.Header
95816}
95817
95818// Delete: Deletes the specified NodeGroup resource.
95819func (r *NodeGroupsService) Delete(project string, zone string, nodeGroup string) *NodeGroupsDeleteCall {
95820	c := &NodeGroupsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95821	c.project = project
95822	c.zone = zone
95823	c.nodeGroup = nodeGroup
95824	return c
95825}
95826
95827// RequestId sets the optional parameter "requestId": An optional
95828// request ID to identify requests. Specify a unique request ID so that
95829// if you must retry your request, the server will know to ignore the
95830// request if it has already been completed.
95831//
95832// For example, consider a situation where you make an initial request
95833// and the request times out. If you make the request again with the
95834// same request ID, the server can check if original operation with the
95835// same request ID was received, and if so, will ignore the second
95836// request. This prevents clients from accidentally creating duplicate
95837// commitments.
95838//
95839// The request ID must be a valid UUID with the exception that zero UUID
95840// is not supported (00000000-0000-0000-0000-000000000000).
95841func (c *NodeGroupsDeleteCall) RequestId(requestId string) *NodeGroupsDeleteCall {
95842	c.urlParams_.Set("requestId", requestId)
95843	return c
95844}
95845
95846// Fields allows partial responses to be retrieved. See
95847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
95848// for more information.
95849func (c *NodeGroupsDeleteCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteCall {
95850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
95851	return c
95852}
95853
95854// Context sets the context to be used in this call's Do method. Any
95855// pending HTTP request will be aborted if the provided context is
95856// canceled.
95857func (c *NodeGroupsDeleteCall) Context(ctx context.Context) *NodeGroupsDeleteCall {
95858	c.ctx_ = ctx
95859	return c
95860}
95861
95862// Header returns an http.Header that can be modified by the caller to
95863// add HTTP headers to the request.
95864func (c *NodeGroupsDeleteCall) Header() http.Header {
95865	if c.header_ == nil {
95866		c.header_ = make(http.Header)
95867	}
95868	return c.header_
95869}
95870
95871func (c *NodeGroupsDeleteCall) doRequest(alt string) (*http.Response, error) {
95872	reqHeaders := make(http.Header)
95873	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
95874	for k, v := range c.header_ {
95875		reqHeaders[k] = v
95876	}
95877	reqHeaders.Set("User-Agent", c.s.userAgent())
95878	var body io.Reader = nil
95879	c.urlParams_.Set("alt", alt)
95880	c.urlParams_.Set("prettyPrint", "false")
95881	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
95882	urls += "?" + c.urlParams_.Encode()
95883	req, err := http.NewRequest("DELETE", urls, body)
95884	if err != nil {
95885		return nil, err
95886	}
95887	req.Header = reqHeaders
95888	googleapi.Expand(req.URL, map[string]string{
95889		"project":   c.project,
95890		"zone":      c.zone,
95891		"nodeGroup": c.nodeGroup,
95892	})
95893	return gensupport.SendRequest(c.ctx_, c.s.client, req)
95894}
95895
95896// Do executes the "compute.nodeGroups.delete" call.
95897// Exactly one of *Operation or error will be non-nil. Any non-2xx
95898// status code is an error. Response headers are in either
95899// *Operation.ServerResponse.Header or (if a response was returned at
95900// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
95901// to check whether the returned error was because
95902// http.StatusNotModified was returned.
95903func (c *NodeGroupsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
95904	gensupport.SetOptions(c.urlParams_, opts...)
95905	res, err := c.doRequest("json")
95906	if res != nil && res.StatusCode == http.StatusNotModified {
95907		if res.Body != nil {
95908			res.Body.Close()
95909		}
95910		return nil, &googleapi.Error{
95911			Code:   res.StatusCode,
95912			Header: res.Header,
95913		}
95914	}
95915	if err != nil {
95916		return nil, err
95917	}
95918	defer googleapi.CloseBody(res)
95919	if err := googleapi.CheckResponse(res); err != nil {
95920		return nil, err
95921	}
95922	ret := &Operation{
95923		ServerResponse: googleapi.ServerResponse{
95924			Header:         res.Header,
95925			HTTPStatusCode: res.StatusCode,
95926		},
95927	}
95928	target := &ret
95929	if err := gensupport.DecodeResponse(target, res); err != nil {
95930		return nil, err
95931	}
95932	return ret, nil
95933	// {
95934	//   "description": "Deletes the specified NodeGroup resource.",
95935	//   "httpMethod": "DELETE",
95936	//   "id": "compute.nodeGroups.delete",
95937	//   "parameterOrder": [
95938	//     "project",
95939	//     "zone",
95940	//     "nodeGroup"
95941	//   ],
95942	//   "parameters": {
95943	//     "nodeGroup": {
95944	//       "description": "Name of the NodeGroup resource to delete.",
95945	//       "location": "path",
95946	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
95947	//       "required": true,
95948	//       "type": "string"
95949	//     },
95950	//     "project": {
95951	//       "description": "Project ID for this request.",
95952	//       "location": "path",
95953	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
95954	//       "required": true,
95955	//       "type": "string"
95956	//     },
95957	//     "requestId": {
95958	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
95959	//       "location": "query",
95960	//       "type": "string"
95961	//     },
95962	//     "zone": {
95963	//       "description": "The name of the zone for this request.",
95964	//       "location": "path",
95965	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
95966	//       "required": true,
95967	//       "type": "string"
95968	//     }
95969	//   },
95970	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
95971	//   "response": {
95972	//     "$ref": "Operation"
95973	//   },
95974	//   "scopes": [
95975	//     "https://www.googleapis.com/auth/cloud-platform",
95976	//     "https://www.googleapis.com/auth/compute"
95977	//   ]
95978	// }
95979
95980}
95981
95982// method id "compute.nodeGroups.deleteNodes":
95983
95984type NodeGroupsDeleteNodesCall struct {
95985	s                            *Service
95986	project                      string
95987	zone                         string
95988	nodeGroup                    string
95989	nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest
95990	urlParams_                   gensupport.URLParams
95991	ctx_                         context.Context
95992	header_                      http.Header
95993}
95994
95995// DeleteNodes: Deletes specified nodes from the node group.
95996func (r *NodeGroupsService) DeleteNodes(project string, zone string, nodeGroup string, nodegroupsdeletenodesrequest *NodeGroupsDeleteNodesRequest) *NodeGroupsDeleteNodesCall {
95997	c := &NodeGroupsDeleteNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
95998	c.project = project
95999	c.zone = zone
96000	c.nodeGroup = nodeGroup
96001	c.nodegroupsdeletenodesrequest = nodegroupsdeletenodesrequest
96002	return c
96003}
96004
96005// RequestId sets the optional parameter "requestId": An optional
96006// request ID to identify requests. Specify a unique request ID so that
96007// if you must retry your request, the server will know to ignore the
96008// request if it has already been completed.
96009//
96010// For example, consider a situation where you make an initial request
96011// and the request times out. If you make the request again with the
96012// same request ID, the server can check if original operation with the
96013// same request ID was received, and if so, will ignore the second
96014// request. This prevents clients from accidentally creating duplicate
96015// commitments.
96016//
96017// The request ID must be a valid UUID with the exception that zero UUID
96018// is not supported (00000000-0000-0000-0000-000000000000).
96019func (c *NodeGroupsDeleteNodesCall) RequestId(requestId string) *NodeGroupsDeleteNodesCall {
96020	c.urlParams_.Set("requestId", requestId)
96021	return c
96022}
96023
96024// Fields allows partial responses to be retrieved. See
96025// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96026// for more information.
96027func (c *NodeGroupsDeleteNodesCall) Fields(s ...googleapi.Field) *NodeGroupsDeleteNodesCall {
96028	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96029	return c
96030}
96031
96032// Context sets the context to be used in this call's Do method. Any
96033// pending HTTP request will be aborted if the provided context is
96034// canceled.
96035func (c *NodeGroupsDeleteNodesCall) Context(ctx context.Context) *NodeGroupsDeleteNodesCall {
96036	c.ctx_ = ctx
96037	return c
96038}
96039
96040// Header returns an http.Header that can be modified by the caller to
96041// add HTTP headers to the request.
96042func (c *NodeGroupsDeleteNodesCall) Header() http.Header {
96043	if c.header_ == nil {
96044		c.header_ = make(http.Header)
96045	}
96046	return c.header_
96047}
96048
96049func (c *NodeGroupsDeleteNodesCall) doRequest(alt string) (*http.Response, error) {
96050	reqHeaders := make(http.Header)
96051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96052	for k, v := range c.header_ {
96053		reqHeaders[k] = v
96054	}
96055	reqHeaders.Set("User-Agent", c.s.userAgent())
96056	var body io.Reader = nil
96057	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupsdeletenodesrequest)
96058	if err != nil {
96059		return nil, err
96060	}
96061	reqHeaders.Set("Content-Type", "application/json")
96062	c.urlParams_.Set("alt", alt)
96063	c.urlParams_.Set("prettyPrint", "false")
96064	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes")
96065	urls += "?" + c.urlParams_.Encode()
96066	req, err := http.NewRequest("POST", urls, body)
96067	if err != nil {
96068		return nil, err
96069	}
96070	req.Header = reqHeaders
96071	googleapi.Expand(req.URL, map[string]string{
96072		"project":   c.project,
96073		"zone":      c.zone,
96074		"nodeGroup": c.nodeGroup,
96075	})
96076	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96077}
96078
96079// Do executes the "compute.nodeGroups.deleteNodes" call.
96080// Exactly one of *Operation or error will be non-nil. Any non-2xx
96081// status code is an error. Response headers are in either
96082// *Operation.ServerResponse.Header or (if a response was returned at
96083// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96084// to check whether the returned error was because
96085// http.StatusNotModified was returned.
96086func (c *NodeGroupsDeleteNodesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96087	gensupport.SetOptions(c.urlParams_, opts...)
96088	res, err := c.doRequest("json")
96089	if res != nil && res.StatusCode == http.StatusNotModified {
96090		if res.Body != nil {
96091			res.Body.Close()
96092		}
96093		return nil, &googleapi.Error{
96094			Code:   res.StatusCode,
96095			Header: res.Header,
96096		}
96097	}
96098	if err != nil {
96099		return nil, err
96100	}
96101	defer googleapi.CloseBody(res)
96102	if err := googleapi.CheckResponse(res); err != nil {
96103		return nil, err
96104	}
96105	ret := &Operation{
96106		ServerResponse: googleapi.ServerResponse{
96107			Header:         res.Header,
96108			HTTPStatusCode: res.StatusCode,
96109		},
96110	}
96111	target := &ret
96112	if err := gensupport.DecodeResponse(target, res); err != nil {
96113		return nil, err
96114	}
96115	return ret, nil
96116	// {
96117	//   "description": "Deletes specified nodes from the node group.",
96118	//   "httpMethod": "POST",
96119	//   "id": "compute.nodeGroups.deleteNodes",
96120	//   "parameterOrder": [
96121	//     "project",
96122	//     "zone",
96123	//     "nodeGroup"
96124	//   ],
96125	//   "parameters": {
96126	//     "nodeGroup": {
96127	//       "description": "Name of the NodeGroup resource whose nodes will be deleted.",
96128	//       "location": "path",
96129	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96130	//       "required": true,
96131	//       "type": "string"
96132	//     },
96133	//     "project": {
96134	//       "description": "Project ID for this request.",
96135	//       "location": "path",
96136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96137	//       "required": true,
96138	//       "type": "string"
96139	//     },
96140	//     "requestId": {
96141	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96142	//       "location": "query",
96143	//       "type": "string"
96144	//     },
96145	//     "zone": {
96146	//       "description": "The name of the zone for this request.",
96147	//       "location": "path",
96148	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96149	//       "required": true,
96150	//       "type": "string"
96151	//     }
96152	//   },
96153	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/deleteNodes",
96154	//   "request": {
96155	//     "$ref": "NodeGroupsDeleteNodesRequest"
96156	//   },
96157	//   "response": {
96158	//     "$ref": "Operation"
96159	//   },
96160	//   "scopes": [
96161	//     "https://www.googleapis.com/auth/cloud-platform",
96162	//     "https://www.googleapis.com/auth/compute"
96163	//   ]
96164	// }
96165
96166}
96167
96168// method id "compute.nodeGroups.get":
96169
96170type NodeGroupsGetCall struct {
96171	s            *Service
96172	project      string
96173	zone         string
96174	nodeGroup    string
96175	urlParams_   gensupport.URLParams
96176	ifNoneMatch_ string
96177	ctx_         context.Context
96178	header_      http.Header
96179}
96180
96181// Get: Returns the specified NodeGroup. Get a list of available
96182// NodeGroups by making a list() request. Note: the "nodes" field should
96183// not be used. Use nodeGroups.listNodes instead.
96184func (r *NodeGroupsService) Get(project string, zone string, nodeGroup string) *NodeGroupsGetCall {
96185	c := &NodeGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96186	c.project = project
96187	c.zone = zone
96188	c.nodeGroup = nodeGroup
96189	return c
96190}
96191
96192// Fields allows partial responses to be retrieved. See
96193// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96194// for more information.
96195func (c *NodeGroupsGetCall) Fields(s ...googleapi.Field) *NodeGroupsGetCall {
96196	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96197	return c
96198}
96199
96200// IfNoneMatch sets the optional parameter which makes the operation
96201// fail if the object's ETag matches the given value. This is useful for
96202// getting updates only after the object has changed since the last
96203// request. Use googleapi.IsNotModified to check whether the response
96204// error from Do is the result of In-None-Match.
96205func (c *NodeGroupsGetCall) IfNoneMatch(entityTag string) *NodeGroupsGetCall {
96206	c.ifNoneMatch_ = entityTag
96207	return c
96208}
96209
96210// Context sets the context to be used in this call's Do method. Any
96211// pending HTTP request will be aborted if the provided context is
96212// canceled.
96213func (c *NodeGroupsGetCall) Context(ctx context.Context) *NodeGroupsGetCall {
96214	c.ctx_ = ctx
96215	return c
96216}
96217
96218// Header returns an http.Header that can be modified by the caller to
96219// add HTTP headers to the request.
96220func (c *NodeGroupsGetCall) Header() http.Header {
96221	if c.header_ == nil {
96222		c.header_ = make(http.Header)
96223	}
96224	return c.header_
96225}
96226
96227func (c *NodeGroupsGetCall) doRequest(alt string) (*http.Response, error) {
96228	reqHeaders := make(http.Header)
96229	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96230	for k, v := range c.header_ {
96231		reqHeaders[k] = v
96232	}
96233	reqHeaders.Set("User-Agent", c.s.userAgent())
96234	if c.ifNoneMatch_ != "" {
96235		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96236	}
96237	var body io.Reader = nil
96238	c.urlParams_.Set("alt", alt)
96239	c.urlParams_.Set("prettyPrint", "false")
96240	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
96241	urls += "?" + c.urlParams_.Encode()
96242	req, err := http.NewRequest("GET", urls, body)
96243	if err != nil {
96244		return nil, err
96245	}
96246	req.Header = reqHeaders
96247	googleapi.Expand(req.URL, map[string]string{
96248		"project":   c.project,
96249		"zone":      c.zone,
96250		"nodeGroup": c.nodeGroup,
96251	})
96252	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96253}
96254
96255// Do executes the "compute.nodeGroups.get" call.
96256// Exactly one of *NodeGroup or error will be non-nil. Any non-2xx
96257// status code is an error. Response headers are in either
96258// *NodeGroup.ServerResponse.Header or (if a response was returned at
96259// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96260// to check whether the returned error was because
96261// http.StatusNotModified was returned.
96262func (c *NodeGroupsGetCall) Do(opts ...googleapi.CallOption) (*NodeGroup, error) {
96263	gensupport.SetOptions(c.urlParams_, opts...)
96264	res, err := c.doRequest("json")
96265	if res != nil && res.StatusCode == http.StatusNotModified {
96266		if res.Body != nil {
96267			res.Body.Close()
96268		}
96269		return nil, &googleapi.Error{
96270			Code:   res.StatusCode,
96271			Header: res.Header,
96272		}
96273	}
96274	if err != nil {
96275		return nil, err
96276	}
96277	defer googleapi.CloseBody(res)
96278	if err := googleapi.CheckResponse(res); err != nil {
96279		return nil, err
96280	}
96281	ret := &NodeGroup{
96282		ServerResponse: googleapi.ServerResponse{
96283			Header:         res.Header,
96284			HTTPStatusCode: res.StatusCode,
96285		},
96286	}
96287	target := &ret
96288	if err := gensupport.DecodeResponse(target, res); err != nil {
96289		return nil, err
96290	}
96291	return ret, nil
96292	// {
96293	//   "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.",
96294	//   "httpMethod": "GET",
96295	//   "id": "compute.nodeGroups.get",
96296	//   "parameterOrder": [
96297	//     "project",
96298	//     "zone",
96299	//     "nodeGroup"
96300	//   ],
96301	//   "parameters": {
96302	//     "nodeGroup": {
96303	//       "description": "Name of the node group to return.",
96304	//       "location": "path",
96305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96306	//       "required": true,
96307	//       "type": "string"
96308	//     },
96309	//     "project": {
96310	//       "description": "Project ID for this request.",
96311	//       "location": "path",
96312	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96313	//       "required": true,
96314	//       "type": "string"
96315	//     },
96316	//     "zone": {
96317	//       "description": "The name of the zone for this request.",
96318	//       "location": "path",
96319	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96320	//       "required": true,
96321	//       "type": "string"
96322	//     }
96323	//   },
96324	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
96325	//   "response": {
96326	//     "$ref": "NodeGroup"
96327	//   },
96328	//   "scopes": [
96329	//     "https://www.googleapis.com/auth/cloud-platform",
96330	//     "https://www.googleapis.com/auth/compute",
96331	//     "https://www.googleapis.com/auth/compute.readonly"
96332	//   ]
96333	// }
96334
96335}
96336
96337// method id "compute.nodeGroups.getIamPolicy":
96338
96339type NodeGroupsGetIamPolicyCall struct {
96340	s            *Service
96341	project      string
96342	zone         string
96343	resource     string
96344	urlParams_   gensupport.URLParams
96345	ifNoneMatch_ string
96346	ctx_         context.Context
96347	header_      http.Header
96348}
96349
96350// GetIamPolicy: Gets the access control policy for a resource. May be
96351// empty if no such policy or resource exists.
96352func (r *NodeGroupsService) GetIamPolicy(project string, zone string, resource string) *NodeGroupsGetIamPolicyCall {
96353	c := &NodeGroupsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96354	c.project = project
96355	c.zone = zone
96356	c.resource = resource
96357	return c
96358}
96359
96360// OptionsRequestedPolicyVersion sets the optional parameter
96361// "optionsRequestedPolicyVersion": Requested IAM Policy version.
96362func (c *NodeGroupsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeGroupsGetIamPolicyCall {
96363	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
96364	return c
96365}
96366
96367// Fields allows partial responses to be retrieved. See
96368// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96369// for more information.
96370func (c *NodeGroupsGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsGetIamPolicyCall {
96371	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96372	return c
96373}
96374
96375// IfNoneMatch sets the optional parameter which makes the operation
96376// fail if the object's ETag matches the given value. This is useful for
96377// getting updates only after the object has changed since the last
96378// request. Use googleapi.IsNotModified to check whether the response
96379// error from Do is the result of In-None-Match.
96380func (c *NodeGroupsGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeGroupsGetIamPolicyCall {
96381	c.ifNoneMatch_ = entityTag
96382	return c
96383}
96384
96385// Context sets the context to be used in this call's Do method. Any
96386// pending HTTP request will be aborted if the provided context is
96387// canceled.
96388func (c *NodeGroupsGetIamPolicyCall) Context(ctx context.Context) *NodeGroupsGetIamPolicyCall {
96389	c.ctx_ = ctx
96390	return c
96391}
96392
96393// Header returns an http.Header that can be modified by the caller to
96394// add HTTP headers to the request.
96395func (c *NodeGroupsGetIamPolicyCall) Header() http.Header {
96396	if c.header_ == nil {
96397		c.header_ = make(http.Header)
96398	}
96399	return c.header_
96400}
96401
96402func (c *NodeGroupsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
96403	reqHeaders := make(http.Header)
96404	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96405	for k, v := range c.header_ {
96406		reqHeaders[k] = v
96407	}
96408	reqHeaders.Set("User-Agent", c.s.userAgent())
96409	if c.ifNoneMatch_ != "" {
96410		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96411	}
96412	var body io.Reader = nil
96413	c.urlParams_.Set("alt", alt)
96414	c.urlParams_.Set("prettyPrint", "false")
96415	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy")
96416	urls += "?" + c.urlParams_.Encode()
96417	req, err := http.NewRequest("GET", urls, body)
96418	if err != nil {
96419		return nil, err
96420	}
96421	req.Header = reqHeaders
96422	googleapi.Expand(req.URL, map[string]string{
96423		"project":  c.project,
96424		"zone":     c.zone,
96425		"resource": c.resource,
96426	})
96427	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96428}
96429
96430// Do executes the "compute.nodeGroups.getIamPolicy" call.
96431// Exactly one of *Policy or error will be non-nil. Any non-2xx status
96432// code is an error. Response headers are in either
96433// *Policy.ServerResponse.Header or (if a response was returned at all)
96434// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
96435// check whether the returned error was because http.StatusNotModified
96436// was returned.
96437func (c *NodeGroupsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
96438	gensupport.SetOptions(c.urlParams_, opts...)
96439	res, err := c.doRequest("json")
96440	if res != nil && res.StatusCode == http.StatusNotModified {
96441		if res.Body != nil {
96442			res.Body.Close()
96443		}
96444		return nil, &googleapi.Error{
96445			Code:   res.StatusCode,
96446			Header: res.Header,
96447		}
96448	}
96449	if err != nil {
96450		return nil, err
96451	}
96452	defer googleapi.CloseBody(res)
96453	if err := googleapi.CheckResponse(res); err != nil {
96454		return nil, err
96455	}
96456	ret := &Policy{
96457		ServerResponse: googleapi.ServerResponse{
96458			Header:         res.Header,
96459			HTTPStatusCode: res.StatusCode,
96460		},
96461	}
96462	target := &ret
96463	if err := gensupport.DecodeResponse(target, res); err != nil {
96464		return nil, err
96465	}
96466	return ret, nil
96467	// {
96468	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
96469	//   "httpMethod": "GET",
96470	//   "id": "compute.nodeGroups.getIamPolicy",
96471	//   "parameterOrder": [
96472	//     "project",
96473	//     "zone",
96474	//     "resource"
96475	//   ],
96476	//   "parameters": {
96477	//     "optionsRequestedPolicyVersion": {
96478	//       "description": "Requested IAM Policy version.",
96479	//       "format": "int32",
96480	//       "location": "query",
96481	//       "type": "integer"
96482	//     },
96483	//     "project": {
96484	//       "description": "Project ID for this request.",
96485	//       "location": "path",
96486	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96487	//       "required": true,
96488	//       "type": "string"
96489	//     },
96490	//     "resource": {
96491	//       "description": "Name or id of the resource for this request.",
96492	//       "location": "path",
96493	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
96494	//       "required": true,
96495	//       "type": "string"
96496	//     },
96497	//     "zone": {
96498	//       "description": "The name of the zone for this request.",
96499	//       "location": "path",
96500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96501	//       "required": true,
96502	//       "type": "string"
96503	//     }
96504	//   },
96505	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/getIamPolicy",
96506	//   "response": {
96507	//     "$ref": "Policy"
96508	//   },
96509	//   "scopes": [
96510	//     "https://www.googleapis.com/auth/cloud-platform",
96511	//     "https://www.googleapis.com/auth/compute",
96512	//     "https://www.googleapis.com/auth/compute.readonly"
96513	//   ]
96514	// }
96515
96516}
96517
96518// method id "compute.nodeGroups.insert":
96519
96520type NodeGroupsInsertCall struct {
96521	s          *Service
96522	project    string
96523	zone       string
96524	nodegroup  *NodeGroup
96525	urlParams_ gensupport.URLParams
96526	ctx_       context.Context
96527	header_    http.Header
96528}
96529
96530// Insert: Creates a NodeGroup resource in the specified project using
96531// the data included in the request.
96532func (r *NodeGroupsService) Insert(project string, zone string, initialNodeCount int64, nodegroup *NodeGroup) *NodeGroupsInsertCall {
96533	c := &NodeGroupsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96534	c.project = project
96535	c.zone = zone
96536	c.urlParams_.Set("initialNodeCount", fmt.Sprint(initialNodeCount))
96537	c.nodegroup = nodegroup
96538	return c
96539}
96540
96541// RequestId sets the optional parameter "requestId": An optional
96542// request ID to identify requests. Specify a unique request ID so that
96543// if you must retry your request, the server will know to ignore the
96544// request if it has already been completed.
96545//
96546// For example, consider a situation where you make an initial request
96547// and the request times out. If you make the request again with the
96548// same request ID, the server can check if original operation with the
96549// same request ID was received, and if so, will ignore the second
96550// request. This prevents clients from accidentally creating duplicate
96551// commitments.
96552//
96553// The request ID must be a valid UUID with the exception that zero UUID
96554// is not supported (00000000-0000-0000-0000-000000000000).
96555func (c *NodeGroupsInsertCall) RequestId(requestId string) *NodeGroupsInsertCall {
96556	c.urlParams_.Set("requestId", requestId)
96557	return c
96558}
96559
96560// Fields allows partial responses to be retrieved. See
96561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96562// for more information.
96563func (c *NodeGroupsInsertCall) Fields(s ...googleapi.Field) *NodeGroupsInsertCall {
96564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96565	return c
96566}
96567
96568// Context sets the context to be used in this call's Do method. Any
96569// pending HTTP request will be aborted if the provided context is
96570// canceled.
96571func (c *NodeGroupsInsertCall) Context(ctx context.Context) *NodeGroupsInsertCall {
96572	c.ctx_ = ctx
96573	return c
96574}
96575
96576// Header returns an http.Header that can be modified by the caller to
96577// add HTTP headers to the request.
96578func (c *NodeGroupsInsertCall) Header() http.Header {
96579	if c.header_ == nil {
96580		c.header_ = make(http.Header)
96581	}
96582	return c.header_
96583}
96584
96585func (c *NodeGroupsInsertCall) doRequest(alt string) (*http.Response, error) {
96586	reqHeaders := make(http.Header)
96587	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96588	for k, v := range c.header_ {
96589		reqHeaders[k] = v
96590	}
96591	reqHeaders.Set("User-Agent", c.s.userAgent())
96592	var body io.Reader = nil
96593	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
96594	if err != nil {
96595		return nil, err
96596	}
96597	reqHeaders.Set("Content-Type", "application/json")
96598	c.urlParams_.Set("alt", alt)
96599	c.urlParams_.Set("prettyPrint", "false")
96600	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
96601	urls += "?" + c.urlParams_.Encode()
96602	req, err := http.NewRequest("POST", urls, body)
96603	if err != nil {
96604		return nil, err
96605	}
96606	req.Header = reqHeaders
96607	googleapi.Expand(req.URL, map[string]string{
96608		"project": c.project,
96609		"zone":    c.zone,
96610	})
96611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96612}
96613
96614// Do executes the "compute.nodeGroups.insert" call.
96615// Exactly one of *Operation or error will be non-nil. Any non-2xx
96616// status code is an error. Response headers are in either
96617// *Operation.ServerResponse.Header or (if a response was returned at
96618// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
96619// to check whether the returned error was because
96620// http.StatusNotModified was returned.
96621func (c *NodeGroupsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
96622	gensupport.SetOptions(c.urlParams_, opts...)
96623	res, err := c.doRequest("json")
96624	if res != nil && res.StatusCode == http.StatusNotModified {
96625		if res.Body != nil {
96626			res.Body.Close()
96627		}
96628		return nil, &googleapi.Error{
96629			Code:   res.StatusCode,
96630			Header: res.Header,
96631		}
96632	}
96633	if err != nil {
96634		return nil, err
96635	}
96636	defer googleapi.CloseBody(res)
96637	if err := googleapi.CheckResponse(res); err != nil {
96638		return nil, err
96639	}
96640	ret := &Operation{
96641		ServerResponse: googleapi.ServerResponse{
96642			Header:         res.Header,
96643			HTTPStatusCode: res.StatusCode,
96644		},
96645	}
96646	target := &ret
96647	if err := gensupport.DecodeResponse(target, res); err != nil {
96648		return nil, err
96649	}
96650	return ret, nil
96651	// {
96652	//   "description": "Creates a NodeGroup resource in the specified project using the data included in the request.",
96653	//   "httpMethod": "POST",
96654	//   "id": "compute.nodeGroups.insert",
96655	//   "parameterOrder": [
96656	//     "project",
96657	//     "zone",
96658	//     "initialNodeCount"
96659	//   ],
96660	//   "parameters": {
96661	//     "initialNodeCount": {
96662	//       "description": "Initial count of nodes in the node group.",
96663	//       "format": "int32",
96664	//       "location": "query",
96665	//       "required": true,
96666	//       "type": "integer"
96667	//     },
96668	//     "project": {
96669	//       "description": "Project ID for this request.",
96670	//       "location": "path",
96671	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96672	//       "required": true,
96673	//       "type": "string"
96674	//     },
96675	//     "requestId": {
96676	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
96677	//       "location": "query",
96678	//       "type": "string"
96679	//     },
96680	//     "zone": {
96681	//       "description": "The name of the zone for this request.",
96682	//       "location": "path",
96683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96684	//       "required": true,
96685	//       "type": "string"
96686	//     }
96687	//   },
96688	//   "path": "{project}/zones/{zone}/nodeGroups",
96689	//   "request": {
96690	//     "$ref": "NodeGroup"
96691	//   },
96692	//   "response": {
96693	//     "$ref": "Operation"
96694	//   },
96695	//   "scopes": [
96696	//     "https://www.googleapis.com/auth/cloud-platform",
96697	//     "https://www.googleapis.com/auth/compute"
96698	//   ]
96699	// }
96700
96701}
96702
96703// method id "compute.nodeGroups.list":
96704
96705type NodeGroupsListCall struct {
96706	s            *Service
96707	project      string
96708	zone         string
96709	urlParams_   gensupport.URLParams
96710	ifNoneMatch_ string
96711	ctx_         context.Context
96712	header_      http.Header
96713}
96714
96715// List: Retrieves a list of node groups available to the specified
96716// project. Note: use nodeGroups.listNodes for more details about each
96717// group.
96718func (r *NodeGroupsService) List(project string, zone string) *NodeGroupsListCall {
96719	c := &NodeGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96720	c.project = project
96721	c.zone = zone
96722	return c
96723}
96724
96725// Filter sets the optional parameter "filter": A filter expression that
96726// filters resources listed in the response. The expression must specify
96727// the field name, a comparison operator, and the value that you want to
96728// use for filtering. The value must be a string, a number, or a
96729// boolean. The comparison operator must be either =, !=, >, or <.
96730//
96731// For example, if you are filtering Compute Engine instances, you can
96732// exclude instances named example-instance by specifying name !=
96733// example-instance.
96734//
96735// You can also filter nested fields. For example, you could specify
96736// scheduling.automaticRestart = false to include instances only if they
96737// are not scheduled for automatic restarts. You can use filtering on
96738// nested fields to filter based on resource labels.
96739//
96740// To filter on multiple expressions, provide each separate expression
96741// within parentheses. For example, (scheduling.automaticRestart = true)
96742// (cpuPlatform = "Intel Skylake"). By default, each expression is an
96743// AND expression. However, you can include AND and OR expressions
96744// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
96745// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
96746// true).
96747func (c *NodeGroupsListCall) Filter(filter string) *NodeGroupsListCall {
96748	c.urlParams_.Set("filter", filter)
96749	return c
96750}
96751
96752// MaxResults sets the optional parameter "maxResults": The maximum
96753// number of results per page that should be returned. If the number of
96754// available results is larger than maxResults, Compute Engine returns a
96755// nextPageToken that can be used to get the next page of results in
96756// subsequent list requests. Acceptable values are 0 to 500, inclusive.
96757// (Default: 500)
96758func (c *NodeGroupsListCall) MaxResults(maxResults int64) *NodeGroupsListCall {
96759	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
96760	return c
96761}
96762
96763// OrderBy sets the optional parameter "orderBy": Sorts list results by
96764// a certain order. By default, results are returned in alphanumerical
96765// order based on the resource name.
96766//
96767// You can also sort results in descending order based on the creation
96768// timestamp using orderBy="creationTimestamp desc". This sorts results
96769// based on the creationTimestamp field in reverse chronological order
96770// (newest result first). Use this to sort resources like operations so
96771// that the newest operation is returned first.
96772//
96773// Currently, only sorting by name or creationTimestamp desc is
96774// supported.
96775func (c *NodeGroupsListCall) OrderBy(orderBy string) *NodeGroupsListCall {
96776	c.urlParams_.Set("orderBy", orderBy)
96777	return c
96778}
96779
96780// PageToken sets the optional parameter "pageToken": Specifies a page
96781// token to use. Set pageToken to the nextPageToken returned by a
96782// previous list request to get the next page of results.
96783func (c *NodeGroupsListCall) PageToken(pageToken string) *NodeGroupsListCall {
96784	c.urlParams_.Set("pageToken", pageToken)
96785	return c
96786}
96787
96788// Fields allows partial responses to be retrieved. See
96789// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
96790// for more information.
96791func (c *NodeGroupsListCall) Fields(s ...googleapi.Field) *NodeGroupsListCall {
96792	c.urlParams_.Set("fields", googleapi.CombineFields(s))
96793	return c
96794}
96795
96796// IfNoneMatch sets the optional parameter which makes the operation
96797// fail if the object's ETag matches the given value. This is useful for
96798// getting updates only after the object has changed since the last
96799// request. Use googleapi.IsNotModified to check whether the response
96800// error from Do is the result of In-None-Match.
96801func (c *NodeGroupsListCall) IfNoneMatch(entityTag string) *NodeGroupsListCall {
96802	c.ifNoneMatch_ = entityTag
96803	return c
96804}
96805
96806// Context sets the context to be used in this call's Do method. Any
96807// pending HTTP request will be aborted if the provided context is
96808// canceled.
96809func (c *NodeGroupsListCall) Context(ctx context.Context) *NodeGroupsListCall {
96810	c.ctx_ = ctx
96811	return c
96812}
96813
96814// Header returns an http.Header that can be modified by the caller to
96815// add HTTP headers to the request.
96816func (c *NodeGroupsListCall) Header() http.Header {
96817	if c.header_ == nil {
96818		c.header_ = make(http.Header)
96819	}
96820	return c.header_
96821}
96822
96823func (c *NodeGroupsListCall) doRequest(alt string) (*http.Response, error) {
96824	reqHeaders := make(http.Header)
96825	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
96826	for k, v := range c.header_ {
96827		reqHeaders[k] = v
96828	}
96829	reqHeaders.Set("User-Agent", c.s.userAgent())
96830	if c.ifNoneMatch_ != "" {
96831		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
96832	}
96833	var body io.Reader = nil
96834	c.urlParams_.Set("alt", alt)
96835	c.urlParams_.Set("prettyPrint", "false")
96836	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups")
96837	urls += "?" + c.urlParams_.Encode()
96838	req, err := http.NewRequest("GET", urls, body)
96839	if err != nil {
96840		return nil, err
96841	}
96842	req.Header = reqHeaders
96843	googleapi.Expand(req.URL, map[string]string{
96844		"project": c.project,
96845		"zone":    c.zone,
96846	})
96847	return gensupport.SendRequest(c.ctx_, c.s.client, req)
96848}
96849
96850// Do executes the "compute.nodeGroups.list" call.
96851// Exactly one of *NodeGroupList or error will be non-nil. Any non-2xx
96852// status code is an error. Response headers are in either
96853// *NodeGroupList.ServerResponse.Header or (if a response was returned
96854// at all) in error.(*googleapi.Error).Header. Use
96855// googleapi.IsNotModified to check whether the returned error was
96856// because http.StatusNotModified was returned.
96857func (c *NodeGroupsListCall) Do(opts ...googleapi.CallOption) (*NodeGroupList, error) {
96858	gensupport.SetOptions(c.urlParams_, opts...)
96859	res, err := c.doRequest("json")
96860	if res != nil && res.StatusCode == http.StatusNotModified {
96861		if res.Body != nil {
96862			res.Body.Close()
96863		}
96864		return nil, &googleapi.Error{
96865			Code:   res.StatusCode,
96866			Header: res.Header,
96867		}
96868	}
96869	if err != nil {
96870		return nil, err
96871	}
96872	defer googleapi.CloseBody(res)
96873	if err := googleapi.CheckResponse(res); err != nil {
96874		return nil, err
96875	}
96876	ret := &NodeGroupList{
96877		ServerResponse: googleapi.ServerResponse{
96878			Header:         res.Header,
96879			HTTPStatusCode: res.StatusCode,
96880		},
96881	}
96882	target := &ret
96883	if err := gensupport.DecodeResponse(target, res); err != nil {
96884		return nil, err
96885	}
96886	return ret, nil
96887	// {
96888	//   "description": "Retrieves a list of node groups available to the specified project. Note: use nodeGroups.listNodes for more details about each group.",
96889	//   "httpMethod": "GET",
96890	//   "id": "compute.nodeGroups.list",
96891	//   "parameterOrder": [
96892	//     "project",
96893	//     "zone"
96894	//   ],
96895	//   "parameters": {
96896	//     "filter": {
96897	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
96898	//       "location": "query",
96899	//       "type": "string"
96900	//     },
96901	//     "maxResults": {
96902	//       "default": "500",
96903	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
96904	//       "format": "uint32",
96905	//       "location": "query",
96906	//       "minimum": "0",
96907	//       "type": "integer"
96908	//     },
96909	//     "orderBy": {
96910	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
96911	//       "location": "query",
96912	//       "type": "string"
96913	//     },
96914	//     "pageToken": {
96915	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
96916	//       "location": "query",
96917	//       "type": "string"
96918	//     },
96919	//     "project": {
96920	//       "description": "Project ID for this request.",
96921	//       "location": "path",
96922	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
96923	//       "required": true,
96924	//       "type": "string"
96925	//     },
96926	//     "zone": {
96927	//       "description": "The name of the zone for this request.",
96928	//       "location": "path",
96929	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
96930	//       "required": true,
96931	//       "type": "string"
96932	//     }
96933	//   },
96934	//   "path": "{project}/zones/{zone}/nodeGroups",
96935	//   "response": {
96936	//     "$ref": "NodeGroupList"
96937	//   },
96938	//   "scopes": [
96939	//     "https://www.googleapis.com/auth/cloud-platform",
96940	//     "https://www.googleapis.com/auth/compute",
96941	//     "https://www.googleapis.com/auth/compute.readonly"
96942	//   ]
96943	// }
96944
96945}
96946
96947// Pages invokes f for each page of results.
96948// A non-nil error returned from f will halt the iteration.
96949// The provided context supersedes any context provided to the Context method.
96950func (c *NodeGroupsListCall) Pages(ctx context.Context, f func(*NodeGroupList) error) error {
96951	c.ctx_ = ctx
96952	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
96953	for {
96954		x, err := c.Do()
96955		if err != nil {
96956			return err
96957		}
96958		if err := f(x); err != nil {
96959			return err
96960		}
96961		if x.NextPageToken == "" {
96962			return nil
96963		}
96964		c.PageToken(x.NextPageToken)
96965	}
96966}
96967
96968// method id "compute.nodeGroups.listNodes":
96969
96970type NodeGroupsListNodesCall struct {
96971	s          *Service
96972	project    string
96973	zone       string
96974	nodeGroup  string
96975	urlParams_ gensupport.URLParams
96976	ctx_       context.Context
96977	header_    http.Header
96978}
96979
96980// ListNodes: Lists nodes in the node group.
96981func (r *NodeGroupsService) ListNodes(project string, zone string, nodeGroup string) *NodeGroupsListNodesCall {
96982	c := &NodeGroupsListNodesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
96983	c.project = project
96984	c.zone = zone
96985	c.nodeGroup = nodeGroup
96986	return c
96987}
96988
96989// Filter sets the optional parameter "filter": A filter expression that
96990// filters resources listed in the response. The expression must specify
96991// the field name, a comparison operator, and the value that you want to
96992// use for filtering. The value must be a string, a number, or a
96993// boolean. The comparison operator must be either =, !=, >, or <.
96994//
96995// For example, if you are filtering Compute Engine instances, you can
96996// exclude instances named example-instance by specifying name !=
96997// example-instance.
96998//
96999// You can also filter nested fields. For example, you could specify
97000// scheduling.automaticRestart = false to include instances only if they
97001// are not scheduled for automatic restarts. You can use filtering on
97002// nested fields to filter based on resource labels.
97003//
97004// To filter on multiple expressions, provide each separate expression
97005// within parentheses. For example, (scheduling.automaticRestart = true)
97006// (cpuPlatform = "Intel Skylake"). By default, each expression is an
97007// AND expression. However, you can include AND and OR expressions
97008// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
97009// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
97010// true).
97011func (c *NodeGroupsListNodesCall) Filter(filter string) *NodeGroupsListNodesCall {
97012	c.urlParams_.Set("filter", filter)
97013	return c
97014}
97015
97016// MaxResults sets the optional parameter "maxResults": The maximum
97017// number of results per page that should be returned. If the number of
97018// available results is larger than maxResults, Compute Engine returns a
97019// nextPageToken that can be used to get the next page of results in
97020// subsequent list requests. Acceptable values are 0 to 500, inclusive.
97021// (Default: 500)
97022func (c *NodeGroupsListNodesCall) MaxResults(maxResults int64) *NodeGroupsListNodesCall {
97023	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97024	return c
97025}
97026
97027// OrderBy sets the optional parameter "orderBy": Sorts list results by
97028// a certain order. By default, results are returned in alphanumerical
97029// order based on the resource name.
97030//
97031// You can also sort results in descending order based on the creation
97032// timestamp using orderBy="creationTimestamp desc". This sorts results
97033// based on the creationTimestamp field in reverse chronological order
97034// (newest result first). Use this to sort resources like operations so
97035// that the newest operation is returned first.
97036//
97037// Currently, only sorting by name or creationTimestamp desc is
97038// supported.
97039func (c *NodeGroupsListNodesCall) OrderBy(orderBy string) *NodeGroupsListNodesCall {
97040	c.urlParams_.Set("orderBy", orderBy)
97041	return c
97042}
97043
97044// PageToken sets the optional parameter "pageToken": Specifies a page
97045// token to use. Set pageToken to the nextPageToken returned by a
97046// previous list request to get the next page of results.
97047func (c *NodeGroupsListNodesCall) PageToken(pageToken string) *NodeGroupsListNodesCall {
97048	c.urlParams_.Set("pageToken", pageToken)
97049	return c
97050}
97051
97052// Fields allows partial responses to be retrieved. See
97053// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97054// for more information.
97055func (c *NodeGroupsListNodesCall) Fields(s ...googleapi.Field) *NodeGroupsListNodesCall {
97056	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97057	return c
97058}
97059
97060// Context sets the context to be used in this call's Do method. Any
97061// pending HTTP request will be aborted if the provided context is
97062// canceled.
97063func (c *NodeGroupsListNodesCall) Context(ctx context.Context) *NodeGroupsListNodesCall {
97064	c.ctx_ = ctx
97065	return c
97066}
97067
97068// Header returns an http.Header that can be modified by the caller to
97069// add HTTP headers to the request.
97070func (c *NodeGroupsListNodesCall) Header() http.Header {
97071	if c.header_ == nil {
97072		c.header_ = make(http.Header)
97073	}
97074	return c.header_
97075}
97076
97077func (c *NodeGroupsListNodesCall) doRequest(alt string) (*http.Response, error) {
97078	reqHeaders := make(http.Header)
97079	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97080	for k, v := range c.header_ {
97081		reqHeaders[k] = v
97082	}
97083	reqHeaders.Set("User-Agent", c.s.userAgent())
97084	var body io.Reader = nil
97085	c.urlParams_.Set("alt", alt)
97086	c.urlParams_.Set("prettyPrint", "false")
97087	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes")
97088	urls += "?" + c.urlParams_.Encode()
97089	req, err := http.NewRequest("POST", urls, body)
97090	if err != nil {
97091		return nil, err
97092	}
97093	req.Header = reqHeaders
97094	googleapi.Expand(req.URL, map[string]string{
97095		"project":   c.project,
97096		"zone":      c.zone,
97097		"nodeGroup": c.nodeGroup,
97098	})
97099	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97100}
97101
97102// Do executes the "compute.nodeGroups.listNodes" call.
97103// Exactly one of *NodeGroupsListNodes or error will be non-nil. Any
97104// non-2xx status code is an error. Response headers are in either
97105// *NodeGroupsListNodes.ServerResponse.Header or (if a response was
97106// returned at all) in error.(*googleapi.Error).Header. Use
97107// googleapi.IsNotModified to check whether the returned error was
97108// because http.StatusNotModified was returned.
97109func (c *NodeGroupsListNodesCall) Do(opts ...googleapi.CallOption) (*NodeGroupsListNodes, error) {
97110	gensupport.SetOptions(c.urlParams_, opts...)
97111	res, err := c.doRequest("json")
97112	if res != nil && res.StatusCode == http.StatusNotModified {
97113		if res.Body != nil {
97114			res.Body.Close()
97115		}
97116		return nil, &googleapi.Error{
97117			Code:   res.StatusCode,
97118			Header: res.Header,
97119		}
97120	}
97121	if err != nil {
97122		return nil, err
97123	}
97124	defer googleapi.CloseBody(res)
97125	if err := googleapi.CheckResponse(res); err != nil {
97126		return nil, err
97127	}
97128	ret := &NodeGroupsListNodes{
97129		ServerResponse: googleapi.ServerResponse{
97130			Header:         res.Header,
97131			HTTPStatusCode: res.StatusCode,
97132		},
97133	}
97134	target := &ret
97135	if err := gensupport.DecodeResponse(target, res); err != nil {
97136		return nil, err
97137	}
97138	return ret, nil
97139	// {
97140	//   "description": "Lists nodes in the node group.",
97141	//   "httpMethod": "POST",
97142	//   "id": "compute.nodeGroups.listNodes",
97143	//   "parameterOrder": [
97144	//     "project",
97145	//     "zone",
97146	//     "nodeGroup"
97147	//   ],
97148	//   "parameters": {
97149	//     "filter": {
97150	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
97151	//       "location": "query",
97152	//       "type": "string"
97153	//     },
97154	//     "maxResults": {
97155	//       "default": "500",
97156	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
97157	//       "format": "uint32",
97158	//       "location": "query",
97159	//       "minimum": "0",
97160	//       "type": "integer"
97161	//     },
97162	//     "nodeGroup": {
97163	//       "description": "Name of the NodeGroup resource whose nodes you want to list.",
97164	//       "location": "path",
97165	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97166	//       "required": true,
97167	//       "type": "string"
97168	//     },
97169	//     "orderBy": {
97170	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
97171	//       "location": "query",
97172	//       "type": "string"
97173	//     },
97174	//     "pageToken": {
97175	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
97176	//       "location": "query",
97177	//       "type": "string"
97178	//     },
97179	//     "project": {
97180	//       "description": "Project ID for this request.",
97181	//       "location": "path",
97182	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97183	//       "required": true,
97184	//       "type": "string"
97185	//     },
97186	//     "zone": {
97187	//       "description": "The name of the zone for this request.",
97188	//       "location": "path",
97189	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97190	//       "required": true,
97191	//       "type": "string"
97192	//     }
97193	//   },
97194	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/listNodes",
97195	//   "response": {
97196	//     "$ref": "NodeGroupsListNodes"
97197	//   },
97198	//   "scopes": [
97199	//     "https://www.googleapis.com/auth/cloud-platform",
97200	//     "https://www.googleapis.com/auth/compute",
97201	//     "https://www.googleapis.com/auth/compute.readonly"
97202	//   ]
97203	// }
97204
97205}
97206
97207// Pages invokes f for each page of results.
97208// A non-nil error returned from f will halt the iteration.
97209// The provided context supersedes any context provided to the Context method.
97210func (c *NodeGroupsListNodesCall) Pages(ctx context.Context, f func(*NodeGroupsListNodes) error) error {
97211	c.ctx_ = ctx
97212	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
97213	for {
97214		x, err := c.Do()
97215		if err != nil {
97216			return err
97217		}
97218		if err := f(x); err != nil {
97219			return err
97220		}
97221		if x.NextPageToken == "" {
97222			return nil
97223		}
97224		c.PageToken(x.NextPageToken)
97225	}
97226}
97227
97228// method id "compute.nodeGroups.patch":
97229
97230type NodeGroupsPatchCall struct {
97231	s          *Service
97232	project    string
97233	zone       string
97234	nodeGroup  string
97235	nodegroup  *NodeGroup
97236	urlParams_ gensupport.URLParams
97237	ctx_       context.Context
97238	header_    http.Header
97239}
97240
97241// Patch: Patch the node group.
97242func (r *NodeGroupsService) Patch(project string, zone string, nodeGroup string, nodegroup *NodeGroup) *NodeGroupsPatchCall {
97243	c := &NodeGroupsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97244	c.project = project
97245	c.zone = zone
97246	c.nodeGroup = nodeGroup
97247	c.nodegroup = nodegroup
97248	return c
97249}
97250
97251// RequestId sets the optional parameter "requestId": An optional
97252// request ID to identify requests. Specify a unique request ID so that
97253// if you must retry your request, the server will know to ignore the
97254// request if it has already been completed.
97255//
97256// For example, consider a situation where you make an initial request
97257// and the request times out. If you make the request again with the
97258// same request ID, the server can check if original operation with the
97259// same request ID was received, and if so, will ignore the second
97260// request. This prevents clients from accidentally creating duplicate
97261// commitments.
97262//
97263// The request ID must be a valid UUID with the exception that zero UUID
97264// is not supported (00000000-0000-0000-0000-000000000000).
97265func (c *NodeGroupsPatchCall) RequestId(requestId string) *NodeGroupsPatchCall {
97266	c.urlParams_.Set("requestId", requestId)
97267	return c
97268}
97269
97270// Fields allows partial responses to be retrieved. See
97271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97272// for more information.
97273func (c *NodeGroupsPatchCall) Fields(s ...googleapi.Field) *NodeGroupsPatchCall {
97274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97275	return c
97276}
97277
97278// Context sets the context to be used in this call's Do method. Any
97279// pending HTTP request will be aborted if the provided context is
97280// canceled.
97281func (c *NodeGroupsPatchCall) Context(ctx context.Context) *NodeGroupsPatchCall {
97282	c.ctx_ = ctx
97283	return c
97284}
97285
97286// Header returns an http.Header that can be modified by the caller to
97287// add HTTP headers to the request.
97288func (c *NodeGroupsPatchCall) Header() http.Header {
97289	if c.header_ == nil {
97290		c.header_ = make(http.Header)
97291	}
97292	return c.header_
97293}
97294
97295func (c *NodeGroupsPatchCall) doRequest(alt string) (*http.Response, error) {
97296	reqHeaders := make(http.Header)
97297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97298	for k, v := range c.header_ {
97299		reqHeaders[k] = v
97300	}
97301	reqHeaders.Set("User-Agent", c.s.userAgent())
97302	var body io.Reader = nil
97303	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroup)
97304	if err != nil {
97305		return nil, err
97306	}
97307	reqHeaders.Set("Content-Type", "application/json")
97308	c.urlParams_.Set("alt", alt)
97309	c.urlParams_.Set("prettyPrint", "false")
97310	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}")
97311	urls += "?" + c.urlParams_.Encode()
97312	req, err := http.NewRequest("PATCH", urls, body)
97313	if err != nil {
97314		return nil, err
97315	}
97316	req.Header = reqHeaders
97317	googleapi.Expand(req.URL, map[string]string{
97318		"project":   c.project,
97319		"zone":      c.zone,
97320		"nodeGroup": c.nodeGroup,
97321	})
97322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97323}
97324
97325// Do executes the "compute.nodeGroups.patch" call.
97326// Exactly one of *Operation or error will be non-nil. Any non-2xx
97327// status code is an error. Response headers are in either
97328// *Operation.ServerResponse.Header or (if a response was returned at
97329// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97330// to check whether the returned error was because
97331// http.StatusNotModified was returned.
97332func (c *NodeGroupsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97333	gensupport.SetOptions(c.urlParams_, opts...)
97334	res, err := c.doRequest("json")
97335	if res != nil && res.StatusCode == http.StatusNotModified {
97336		if res.Body != nil {
97337			res.Body.Close()
97338		}
97339		return nil, &googleapi.Error{
97340			Code:   res.StatusCode,
97341			Header: res.Header,
97342		}
97343	}
97344	if err != nil {
97345		return nil, err
97346	}
97347	defer googleapi.CloseBody(res)
97348	if err := googleapi.CheckResponse(res); err != nil {
97349		return nil, err
97350	}
97351	ret := &Operation{
97352		ServerResponse: googleapi.ServerResponse{
97353			Header:         res.Header,
97354			HTTPStatusCode: res.StatusCode,
97355		},
97356	}
97357	target := &ret
97358	if err := gensupport.DecodeResponse(target, res); err != nil {
97359		return nil, err
97360	}
97361	return ret, nil
97362	// {
97363	//   "description": "Patch the node group.",
97364	//   "httpMethod": "PATCH",
97365	//   "id": "compute.nodeGroups.patch",
97366	//   "parameterOrder": [
97367	//     "project",
97368	//     "zone",
97369	//     "nodeGroup"
97370	//   ],
97371	//   "parameters": {
97372	//     "nodeGroup": {
97373	//       "description": "Name of the NodeGroup resource to update.",
97374	//       "location": "path",
97375	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97376	//       "required": true,
97377	//       "type": "string"
97378	//     },
97379	//     "project": {
97380	//       "description": "Project ID for this request.",
97381	//       "location": "path",
97382	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97383	//       "required": true,
97384	//       "type": "string"
97385	//     },
97386	//     "requestId": {
97387	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97388	//       "location": "query",
97389	//       "type": "string"
97390	//     },
97391	//     "zone": {
97392	//       "description": "The name of the zone for this request.",
97393	//       "location": "path",
97394	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97395	//       "required": true,
97396	//       "type": "string"
97397	//     }
97398	//   },
97399	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}",
97400	//   "request": {
97401	//     "$ref": "NodeGroup"
97402	//   },
97403	//   "response": {
97404	//     "$ref": "Operation"
97405	//   },
97406	//   "scopes": [
97407	//     "https://www.googleapis.com/auth/cloud-platform",
97408	//     "https://www.googleapis.com/auth/compute"
97409	//   ]
97410	// }
97411
97412}
97413
97414// method id "compute.nodeGroups.setIamPolicy":
97415
97416type NodeGroupsSetIamPolicyCall struct {
97417	s                    *Service
97418	project              string
97419	zone                 string
97420	resource             string
97421	zonesetpolicyrequest *ZoneSetPolicyRequest
97422	urlParams_           gensupport.URLParams
97423	ctx_                 context.Context
97424	header_              http.Header
97425}
97426
97427// SetIamPolicy: Sets the access control policy on the specified
97428// resource. Replaces any existing policy.
97429func (r *NodeGroupsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *NodeGroupsSetIamPolicyCall {
97430	c := &NodeGroupsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97431	c.project = project
97432	c.zone = zone
97433	c.resource = resource
97434	c.zonesetpolicyrequest = zonesetpolicyrequest
97435	return c
97436}
97437
97438// Fields allows partial responses to be retrieved. See
97439// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97440// for more information.
97441func (c *NodeGroupsSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeGroupsSetIamPolicyCall {
97442	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97443	return c
97444}
97445
97446// Context sets the context to be used in this call's Do method. Any
97447// pending HTTP request will be aborted if the provided context is
97448// canceled.
97449func (c *NodeGroupsSetIamPolicyCall) Context(ctx context.Context) *NodeGroupsSetIamPolicyCall {
97450	c.ctx_ = ctx
97451	return c
97452}
97453
97454// Header returns an http.Header that can be modified by the caller to
97455// add HTTP headers to the request.
97456func (c *NodeGroupsSetIamPolicyCall) Header() http.Header {
97457	if c.header_ == nil {
97458		c.header_ = make(http.Header)
97459	}
97460	return c.header_
97461}
97462
97463func (c *NodeGroupsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
97464	reqHeaders := make(http.Header)
97465	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97466	for k, v := range c.header_ {
97467		reqHeaders[k] = v
97468	}
97469	reqHeaders.Set("User-Agent", c.s.userAgent())
97470	var body io.Reader = nil
97471	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
97472	if err != nil {
97473		return nil, err
97474	}
97475	reqHeaders.Set("Content-Type", "application/json")
97476	c.urlParams_.Set("alt", alt)
97477	c.urlParams_.Set("prettyPrint", "false")
97478	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy")
97479	urls += "?" + c.urlParams_.Encode()
97480	req, err := http.NewRequest("POST", urls, body)
97481	if err != nil {
97482		return nil, err
97483	}
97484	req.Header = reqHeaders
97485	googleapi.Expand(req.URL, map[string]string{
97486		"project":  c.project,
97487		"zone":     c.zone,
97488		"resource": c.resource,
97489	})
97490	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97491}
97492
97493// Do executes the "compute.nodeGroups.setIamPolicy" call.
97494// Exactly one of *Policy or error will be non-nil. Any non-2xx status
97495// code is an error. Response headers are in either
97496// *Policy.ServerResponse.Header or (if a response was returned at all)
97497// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
97498// check whether the returned error was because http.StatusNotModified
97499// was returned.
97500func (c *NodeGroupsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
97501	gensupport.SetOptions(c.urlParams_, opts...)
97502	res, err := c.doRequest("json")
97503	if res != nil && res.StatusCode == http.StatusNotModified {
97504		if res.Body != nil {
97505			res.Body.Close()
97506		}
97507		return nil, &googleapi.Error{
97508			Code:   res.StatusCode,
97509			Header: res.Header,
97510		}
97511	}
97512	if err != nil {
97513		return nil, err
97514	}
97515	defer googleapi.CloseBody(res)
97516	if err := googleapi.CheckResponse(res); err != nil {
97517		return nil, err
97518	}
97519	ret := &Policy{
97520		ServerResponse: googleapi.ServerResponse{
97521			Header:         res.Header,
97522			HTTPStatusCode: res.StatusCode,
97523		},
97524	}
97525	target := &ret
97526	if err := gensupport.DecodeResponse(target, res); err != nil {
97527		return nil, err
97528	}
97529	return ret, nil
97530	// {
97531	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
97532	//   "httpMethod": "POST",
97533	//   "id": "compute.nodeGroups.setIamPolicy",
97534	//   "parameterOrder": [
97535	//     "project",
97536	//     "zone",
97537	//     "resource"
97538	//   ],
97539	//   "parameters": {
97540	//     "project": {
97541	//       "description": "Project ID for this request.",
97542	//       "location": "path",
97543	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97544	//       "required": true,
97545	//       "type": "string"
97546	//     },
97547	//     "resource": {
97548	//       "description": "Name or id of the resource for this request.",
97549	//       "location": "path",
97550	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97551	//       "required": true,
97552	//       "type": "string"
97553	//     },
97554	//     "zone": {
97555	//       "description": "The name of the zone for this request.",
97556	//       "location": "path",
97557	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97558	//       "required": true,
97559	//       "type": "string"
97560	//     }
97561	//   },
97562	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/setIamPolicy",
97563	//   "request": {
97564	//     "$ref": "ZoneSetPolicyRequest"
97565	//   },
97566	//   "response": {
97567	//     "$ref": "Policy"
97568	//   },
97569	//   "scopes": [
97570	//     "https://www.googleapis.com/auth/cloud-platform",
97571	//     "https://www.googleapis.com/auth/compute"
97572	//   ]
97573	// }
97574
97575}
97576
97577// method id "compute.nodeGroups.setNodeTemplate":
97578
97579type NodeGroupsSetNodeTemplateCall struct {
97580	s                                *Service
97581	project                          string
97582	zone                             string
97583	nodeGroup                        string
97584	nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest
97585	urlParams_                       gensupport.URLParams
97586	ctx_                             context.Context
97587	header_                          http.Header
97588}
97589
97590// SetNodeTemplate: Updates the node template of the node group.
97591func (r *NodeGroupsService) SetNodeTemplate(project string, zone string, nodeGroup string, nodegroupssetnodetemplaterequest *NodeGroupsSetNodeTemplateRequest) *NodeGroupsSetNodeTemplateCall {
97592	c := &NodeGroupsSetNodeTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97593	c.project = project
97594	c.zone = zone
97595	c.nodeGroup = nodeGroup
97596	c.nodegroupssetnodetemplaterequest = nodegroupssetnodetemplaterequest
97597	return c
97598}
97599
97600// RequestId sets the optional parameter "requestId": An optional
97601// request ID to identify requests. Specify a unique request ID so that
97602// if you must retry your request, the server will know to ignore the
97603// request if it has already been completed.
97604//
97605// For example, consider a situation where you make an initial request
97606// and the request times out. If you make the request again with the
97607// same request ID, the server can check if original operation with the
97608// same request ID was received, and if so, will ignore the second
97609// request. This prevents clients from accidentally creating duplicate
97610// commitments.
97611//
97612// The request ID must be a valid UUID with the exception that zero UUID
97613// is not supported (00000000-0000-0000-0000-000000000000).
97614func (c *NodeGroupsSetNodeTemplateCall) RequestId(requestId string) *NodeGroupsSetNodeTemplateCall {
97615	c.urlParams_.Set("requestId", requestId)
97616	return c
97617}
97618
97619// Fields allows partial responses to be retrieved. See
97620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97621// for more information.
97622func (c *NodeGroupsSetNodeTemplateCall) Fields(s ...googleapi.Field) *NodeGroupsSetNodeTemplateCall {
97623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97624	return c
97625}
97626
97627// Context sets the context to be used in this call's Do method. Any
97628// pending HTTP request will be aborted if the provided context is
97629// canceled.
97630func (c *NodeGroupsSetNodeTemplateCall) Context(ctx context.Context) *NodeGroupsSetNodeTemplateCall {
97631	c.ctx_ = ctx
97632	return c
97633}
97634
97635// Header returns an http.Header that can be modified by the caller to
97636// add HTTP headers to the request.
97637func (c *NodeGroupsSetNodeTemplateCall) Header() http.Header {
97638	if c.header_ == nil {
97639		c.header_ = make(http.Header)
97640	}
97641	return c.header_
97642}
97643
97644func (c *NodeGroupsSetNodeTemplateCall) doRequest(alt string) (*http.Response, error) {
97645	reqHeaders := make(http.Header)
97646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97647	for k, v := range c.header_ {
97648		reqHeaders[k] = v
97649	}
97650	reqHeaders.Set("User-Agent", c.s.userAgent())
97651	var body io.Reader = nil
97652	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodegroupssetnodetemplaterequest)
97653	if err != nil {
97654		return nil, err
97655	}
97656	reqHeaders.Set("Content-Type", "application/json")
97657	c.urlParams_.Set("alt", alt)
97658	c.urlParams_.Set("prettyPrint", "false")
97659	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate")
97660	urls += "?" + c.urlParams_.Encode()
97661	req, err := http.NewRequest("POST", urls, body)
97662	if err != nil {
97663		return nil, err
97664	}
97665	req.Header = reqHeaders
97666	googleapi.Expand(req.URL, map[string]string{
97667		"project":   c.project,
97668		"zone":      c.zone,
97669		"nodeGroup": c.nodeGroup,
97670	})
97671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97672}
97673
97674// Do executes the "compute.nodeGroups.setNodeTemplate" call.
97675// Exactly one of *Operation or error will be non-nil. Any non-2xx
97676// status code is an error. Response headers are in either
97677// *Operation.ServerResponse.Header or (if a response was returned at
97678// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
97679// to check whether the returned error was because
97680// http.StatusNotModified was returned.
97681func (c *NodeGroupsSetNodeTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
97682	gensupport.SetOptions(c.urlParams_, opts...)
97683	res, err := c.doRequest("json")
97684	if res != nil && res.StatusCode == http.StatusNotModified {
97685		if res.Body != nil {
97686			res.Body.Close()
97687		}
97688		return nil, &googleapi.Error{
97689			Code:   res.StatusCode,
97690			Header: res.Header,
97691		}
97692	}
97693	if err != nil {
97694		return nil, err
97695	}
97696	defer googleapi.CloseBody(res)
97697	if err := googleapi.CheckResponse(res); err != nil {
97698		return nil, err
97699	}
97700	ret := &Operation{
97701		ServerResponse: googleapi.ServerResponse{
97702			Header:         res.Header,
97703			HTTPStatusCode: res.StatusCode,
97704		},
97705	}
97706	target := &ret
97707	if err := gensupport.DecodeResponse(target, res); err != nil {
97708		return nil, err
97709	}
97710	return ret, nil
97711	// {
97712	//   "description": "Updates the node template of the node group.",
97713	//   "httpMethod": "POST",
97714	//   "id": "compute.nodeGroups.setNodeTemplate",
97715	//   "parameterOrder": [
97716	//     "project",
97717	//     "zone",
97718	//     "nodeGroup"
97719	//   ],
97720	//   "parameters": {
97721	//     "nodeGroup": {
97722	//       "description": "Name of the NodeGroup resource to update.",
97723	//       "location": "path",
97724	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97725	//       "required": true,
97726	//       "type": "string"
97727	//     },
97728	//     "project": {
97729	//       "description": "Project ID for this request.",
97730	//       "location": "path",
97731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97732	//       "required": true,
97733	//       "type": "string"
97734	//     },
97735	//     "requestId": {
97736	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
97737	//       "location": "query",
97738	//       "type": "string"
97739	//     },
97740	//     "zone": {
97741	//       "description": "The name of the zone for this request.",
97742	//       "location": "path",
97743	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97744	//       "required": true,
97745	//       "type": "string"
97746	//     }
97747	//   },
97748	//   "path": "{project}/zones/{zone}/nodeGroups/{nodeGroup}/setNodeTemplate",
97749	//   "request": {
97750	//     "$ref": "NodeGroupsSetNodeTemplateRequest"
97751	//   },
97752	//   "response": {
97753	//     "$ref": "Operation"
97754	//   },
97755	//   "scopes": [
97756	//     "https://www.googleapis.com/auth/cloud-platform",
97757	//     "https://www.googleapis.com/auth/compute"
97758	//   ]
97759	// }
97760
97761}
97762
97763// method id "compute.nodeGroups.testIamPermissions":
97764
97765type NodeGroupsTestIamPermissionsCall struct {
97766	s                      *Service
97767	project                string
97768	zone                   string
97769	resource               string
97770	testpermissionsrequest *TestPermissionsRequest
97771	urlParams_             gensupport.URLParams
97772	ctx_                   context.Context
97773	header_                http.Header
97774}
97775
97776// TestIamPermissions: Returns permissions that a caller has on the
97777// specified resource.
97778func (r *NodeGroupsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeGroupsTestIamPermissionsCall {
97779	c := &NodeGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97780	c.project = project
97781	c.zone = zone
97782	c.resource = resource
97783	c.testpermissionsrequest = testpermissionsrequest
97784	return c
97785}
97786
97787// Fields allows partial responses to be retrieved. See
97788// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
97789// for more information.
97790func (c *NodeGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeGroupsTestIamPermissionsCall {
97791	c.urlParams_.Set("fields", googleapi.CombineFields(s))
97792	return c
97793}
97794
97795// Context sets the context to be used in this call's Do method. Any
97796// pending HTTP request will be aborted if the provided context is
97797// canceled.
97798func (c *NodeGroupsTestIamPermissionsCall) Context(ctx context.Context) *NodeGroupsTestIamPermissionsCall {
97799	c.ctx_ = ctx
97800	return c
97801}
97802
97803// Header returns an http.Header that can be modified by the caller to
97804// add HTTP headers to the request.
97805func (c *NodeGroupsTestIamPermissionsCall) Header() http.Header {
97806	if c.header_ == nil {
97807		c.header_ = make(http.Header)
97808	}
97809	return c.header_
97810}
97811
97812func (c *NodeGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
97813	reqHeaders := make(http.Header)
97814	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
97815	for k, v := range c.header_ {
97816		reqHeaders[k] = v
97817	}
97818	reqHeaders.Set("User-Agent", c.s.userAgent())
97819	var body io.Reader = nil
97820	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
97821	if err != nil {
97822		return nil, err
97823	}
97824	reqHeaders.Set("Content-Type", "application/json")
97825	c.urlParams_.Set("alt", alt)
97826	c.urlParams_.Set("prettyPrint", "false")
97827	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions")
97828	urls += "?" + c.urlParams_.Encode()
97829	req, err := http.NewRequest("POST", urls, body)
97830	if err != nil {
97831		return nil, err
97832	}
97833	req.Header = reqHeaders
97834	googleapi.Expand(req.URL, map[string]string{
97835		"project":  c.project,
97836		"zone":     c.zone,
97837		"resource": c.resource,
97838	})
97839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
97840}
97841
97842// Do executes the "compute.nodeGroups.testIamPermissions" call.
97843// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
97844// non-2xx status code is an error. Response headers are in either
97845// *TestPermissionsResponse.ServerResponse.Header or (if a response was
97846// returned at all) in error.(*googleapi.Error).Header. Use
97847// googleapi.IsNotModified to check whether the returned error was
97848// because http.StatusNotModified was returned.
97849func (c *NodeGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
97850	gensupport.SetOptions(c.urlParams_, opts...)
97851	res, err := c.doRequest("json")
97852	if res != nil && res.StatusCode == http.StatusNotModified {
97853		if res.Body != nil {
97854			res.Body.Close()
97855		}
97856		return nil, &googleapi.Error{
97857			Code:   res.StatusCode,
97858			Header: res.Header,
97859		}
97860	}
97861	if err != nil {
97862		return nil, err
97863	}
97864	defer googleapi.CloseBody(res)
97865	if err := googleapi.CheckResponse(res); err != nil {
97866		return nil, err
97867	}
97868	ret := &TestPermissionsResponse{
97869		ServerResponse: googleapi.ServerResponse{
97870			Header:         res.Header,
97871			HTTPStatusCode: res.StatusCode,
97872		},
97873	}
97874	target := &ret
97875	if err := gensupport.DecodeResponse(target, res); err != nil {
97876		return nil, err
97877	}
97878	return ret, nil
97879	// {
97880	//   "description": "Returns permissions that a caller has on the specified resource.",
97881	//   "httpMethod": "POST",
97882	//   "id": "compute.nodeGroups.testIamPermissions",
97883	//   "parameterOrder": [
97884	//     "project",
97885	//     "zone",
97886	//     "resource"
97887	//   ],
97888	//   "parameters": {
97889	//     "project": {
97890	//       "description": "Project ID for this request.",
97891	//       "location": "path",
97892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
97893	//       "required": true,
97894	//       "type": "string"
97895	//     },
97896	//     "resource": {
97897	//       "description": "Name or id of the resource for this request.",
97898	//       "location": "path",
97899	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
97900	//       "required": true,
97901	//       "type": "string"
97902	//     },
97903	//     "zone": {
97904	//       "description": "The name of the zone for this request.",
97905	//       "location": "path",
97906	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
97907	//       "required": true,
97908	//       "type": "string"
97909	//     }
97910	//   },
97911	//   "path": "{project}/zones/{zone}/nodeGroups/{resource}/testIamPermissions",
97912	//   "request": {
97913	//     "$ref": "TestPermissionsRequest"
97914	//   },
97915	//   "response": {
97916	//     "$ref": "TestPermissionsResponse"
97917	//   },
97918	//   "scopes": [
97919	//     "https://www.googleapis.com/auth/cloud-platform",
97920	//     "https://www.googleapis.com/auth/compute",
97921	//     "https://www.googleapis.com/auth/compute.readonly"
97922	//   ]
97923	// }
97924
97925}
97926
97927// method id "compute.nodeTemplates.aggregatedList":
97928
97929type NodeTemplatesAggregatedListCall struct {
97930	s            *Service
97931	project      string
97932	urlParams_   gensupport.URLParams
97933	ifNoneMatch_ string
97934	ctx_         context.Context
97935	header_      http.Header
97936}
97937
97938// AggregatedList: Retrieves an aggregated list of node templates.
97939func (r *NodeTemplatesService) AggregatedList(project string) *NodeTemplatesAggregatedListCall {
97940	c := &NodeTemplatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
97941	c.project = project
97942	return c
97943}
97944
97945// Filter sets the optional parameter "filter": A filter expression that
97946// filters resources listed in the response. The expression must specify
97947// the field name, a comparison operator, and the value that you want to
97948// use for filtering. The value must be a string, a number, or a
97949// boolean. The comparison operator must be either =, !=, >, or <.
97950//
97951// For example, if you are filtering Compute Engine instances, you can
97952// exclude instances named example-instance by specifying name !=
97953// example-instance.
97954//
97955// You can also filter nested fields. For example, you could specify
97956// scheduling.automaticRestart = false to include instances only if they
97957// are not scheduled for automatic restarts. You can use filtering on
97958// nested fields to filter based on resource labels.
97959//
97960// To filter on multiple expressions, provide each separate expression
97961// within parentheses. For example, (scheduling.automaticRestart = true)
97962// (cpuPlatform = "Intel Skylake"). By default, each expression is an
97963// AND expression. However, you can include AND and OR expressions
97964// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
97965// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
97966// true).
97967func (c *NodeTemplatesAggregatedListCall) Filter(filter string) *NodeTemplatesAggregatedListCall {
97968	c.urlParams_.Set("filter", filter)
97969	return c
97970}
97971
97972// IncludeAllScopes sets the optional parameter "includeAllScopes":
97973// Indicates whether every visible scope for each scope type (zone,
97974// region, global) should be included in the response. For new resource
97975// types added after this field, the flag has no effect as new resource
97976// types will always include every visible scope for each scope type in
97977// response. For resource types which predate this field, if this flag
97978// is omitted or false, only scopes of the scope types where the
97979// resource type is expected to be found will be included.
97980func (c *NodeTemplatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTemplatesAggregatedListCall {
97981	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
97982	return c
97983}
97984
97985// MaxResults sets the optional parameter "maxResults": The maximum
97986// number of results per page that should be returned. If the number of
97987// available results is larger than maxResults, Compute Engine returns a
97988// nextPageToken that can be used to get the next page of results in
97989// subsequent list requests. Acceptable values are 0 to 500, inclusive.
97990// (Default: 500)
97991func (c *NodeTemplatesAggregatedListCall) MaxResults(maxResults int64) *NodeTemplatesAggregatedListCall {
97992	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
97993	return c
97994}
97995
97996// OrderBy sets the optional parameter "orderBy": Sorts list results by
97997// a certain order. By default, results are returned in alphanumerical
97998// order based on the resource name.
97999//
98000// You can also sort results in descending order based on the creation
98001// timestamp using orderBy="creationTimestamp desc". This sorts results
98002// based on the creationTimestamp field in reverse chronological order
98003// (newest result first). Use this to sort resources like operations so
98004// that the newest operation is returned first.
98005//
98006// Currently, only sorting by name or creationTimestamp desc is
98007// supported.
98008func (c *NodeTemplatesAggregatedListCall) OrderBy(orderBy string) *NodeTemplatesAggregatedListCall {
98009	c.urlParams_.Set("orderBy", orderBy)
98010	return c
98011}
98012
98013// PageToken sets the optional parameter "pageToken": Specifies a page
98014// token to use. Set pageToken to the nextPageToken returned by a
98015// previous list request to get the next page of results.
98016func (c *NodeTemplatesAggregatedListCall) PageToken(pageToken string) *NodeTemplatesAggregatedListCall {
98017	c.urlParams_.Set("pageToken", pageToken)
98018	return c
98019}
98020
98021// Fields allows partial responses to be retrieved. See
98022// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98023// for more information.
98024func (c *NodeTemplatesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTemplatesAggregatedListCall {
98025	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98026	return c
98027}
98028
98029// IfNoneMatch sets the optional parameter which makes the operation
98030// fail if the object's ETag matches the given value. This is useful for
98031// getting updates only after the object has changed since the last
98032// request. Use googleapi.IsNotModified to check whether the response
98033// error from Do is the result of In-None-Match.
98034func (c *NodeTemplatesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTemplatesAggregatedListCall {
98035	c.ifNoneMatch_ = entityTag
98036	return c
98037}
98038
98039// Context sets the context to be used in this call's Do method. Any
98040// pending HTTP request will be aborted if the provided context is
98041// canceled.
98042func (c *NodeTemplatesAggregatedListCall) Context(ctx context.Context) *NodeTemplatesAggregatedListCall {
98043	c.ctx_ = ctx
98044	return c
98045}
98046
98047// Header returns an http.Header that can be modified by the caller to
98048// add HTTP headers to the request.
98049func (c *NodeTemplatesAggregatedListCall) Header() http.Header {
98050	if c.header_ == nil {
98051		c.header_ = make(http.Header)
98052	}
98053	return c.header_
98054}
98055
98056func (c *NodeTemplatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
98057	reqHeaders := make(http.Header)
98058	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98059	for k, v := range c.header_ {
98060		reqHeaders[k] = v
98061	}
98062	reqHeaders.Set("User-Agent", c.s.userAgent())
98063	if c.ifNoneMatch_ != "" {
98064		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98065	}
98066	var body io.Reader = nil
98067	c.urlParams_.Set("alt", alt)
98068	c.urlParams_.Set("prettyPrint", "false")
98069	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTemplates")
98070	urls += "?" + c.urlParams_.Encode()
98071	req, err := http.NewRequest("GET", urls, body)
98072	if err != nil {
98073		return nil, err
98074	}
98075	req.Header = reqHeaders
98076	googleapi.Expand(req.URL, map[string]string{
98077		"project": c.project,
98078	})
98079	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98080}
98081
98082// Do executes the "compute.nodeTemplates.aggregatedList" call.
98083// Exactly one of *NodeTemplateAggregatedList or error will be non-nil.
98084// Any non-2xx status code is an error. Response headers are in either
98085// *NodeTemplateAggregatedList.ServerResponse.Header or (if a response
98086// was returned at all) in error.(*googleapi.Error).Header. Use
98087// googleapi.IsNotModified to check whether the returned error was
98088// because http.StatusNotModified was returned.
98089func (c *NodeTemplatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateAggregatedList, error) {
98090	gensupport.SetOptions(c.urlParams_, opts...)
98091	res, err := c.doRequest("json")
98092	if res != nil && res.StatusCode == http.StatusNotModified {
98093		if res.Body != nil {
98094			res.Body.Close()
98095		}
98096		return nil, &googleapi.Error{
98097			Code:   res.StatusCode,
98098			Header: res.Header,
98099		}
98100	}
98101	if err != nil {
98102		return nil, err
98103	}
98104	defer googleapi.CloseBody(res)
98105	if err := googleapi.CheckResponse(res); err != nil {
98106		return nil, err
98107	}
98108	ret := &NodeTemplateAggregatedList{
98109		ServerResponse: googleapi.ServerResponse{
98110			Header:         res.Header,
98111			HTTPStatusCode: res.StatusCode,
98112		},
98113	}
98114	target := &ret
98115	if err := gensupport.DecodeResponse(target, res); err != nil {
98116		return nil, err
98117	}
98118	return ret, nil
98119	// {
98120	//   "description": "Retrieves an aggregated list of node templates.",
98121	//   "httpMethod": "GET",
98122	//   "id": "compute.nodeTemplates.aggregatedList",
98123	//   "parameterOrder": [
98124	//     "project"
98125	//   ],
98126	//   "parameters": {
98127	//     "filter": {
98128	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
98129	//       "location": "query",
98130	//       "type": "string"
98131	//     },
98132	//     "includeAllScopes": {
98133	//       "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.",
98134	//       "location": "query",
98135	//       "type": "boolean"
98136	//     },
98137	//     "maxResults": {
98138	//       "default": "500",
98139	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
98140	//       "format": "uint32",
98141	//       "location": "query",
98142	//       "minimum": "0",
98143	//       "type": "integer"
98144	//     },
98145	//     "orderBy": {
98146	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
98147	//       "location": "query",
98148	//       "type": "string"
98149	//     },
98150	//     "pageToken": {
98151	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
98152	//       "location": "query",
98153	//       "type": "string"
98154	//     },
98155	//     "project": {
98156	//       "description": "Project ID for this request.",
98157	//       "location": "path",
98158	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98159	//       "required": true,
98160	//       "type": "string"
98161	//     }
98162	//   },
98163	//   "path": "{project}/aggregated/nodeTemplates",
98164	//   "response": {
98165	//     "$ref": "NodeTemplateAggregatedList"
98166	//   },
98167	//   "scopes": [
98168	//     "https://www.googleapis.com/auth/cloud-platform",
98169	//     "https://www.googleapis.com/auth/compute",
98170	//     "https://www.googleapis.com/auth/compute.readonly"
98171	//   ]
98172	// }
98173
98174}
98175
98176// Pages invokes f for each page of results.
98177// A non-nil error returned from f will halt the iteration.
98178// The provided context supersedes any context provided to the Context method.
98179func (c *NodeTemplatesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTemplateAggregatedList) error) error {
98180	c.ctx_ = ctx
98181	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
98182	for {
98183		x, err := c.Do()
98184		if err != nil {
98185			return err
98186		}
98187		if err := f(x); err != nil {
98188			return err
98189		}
98190		if x.NextPageToken == "" {
98191			return nil
98192		}
98193		c.PageToken(x.NextPageToken)
98194	}
98195}
98196
98197// method id "compute.nodeTemplates.delete":
98198
98199type NodeTemplatesDeleteCall struct {
98200	s            *Service
98201	project      string
98202	region       string
98203	nodeTemplate string
98204	urlParams_   gensupport.URLParams
98205	ctx_         context.Context
98206	header_      http.Header
98207}
98208
98209// Delete: Deletes the specified NodeTemplate resource.
98210func (r *NodeTemplatesService) Delete(project string, region string, nodeTemplate string) *NodeTemplatesDeleteCall {
98211	c := &NodeTemplatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98212	c.project = project
98213	c.region = region
98214	c.nodeTemplate = nodeTemplate
98215	return c
98216}
98217
98218// RequestId sets the optional parameter "requestId": An optional
98219// request ID to identify requests. Specify a unique request ID so that
98220// if you must retry your request, the server will know to ignore the
98221// request if it has already been completed.
98222//
98223// For example, consider a situation where you make an initial request
98224// and the request times out. If you make the request again with the
98225// same request ID, the server can check if original operation with the
98226// same request ID was received, and if so, will ignore the second
98227// request. This prevents clients from accidentally creating duplicate
98228// commitments.
98229//
98230// The request ID must be a valid UUID with the exception that zero UUID
98231// is not supported (00000000-0000-0000-0000-000000000000).
98232func (c *NodeTemplatesDeleteCall) RequestId(requestId string) *NodeTemplatesDeleteCall {
98233	c.urlParams_.Set("requestId", requestId)
98234	return c
98235}
98236
98237// Fields allows partial responses to be retrieved. See
98238// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98239// for more information.
98240func (c *NodeTemplatesDeleteCall) Fields(s ...googleapi.Field) *NodeTemplatesDeleteCall {
98241	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98242	return c
98243}
98244
98245// Context sets the context to be used in this call's Do method. Any
98246// pending HTTP request will be aborted if the provided context is
98247// canceled.
98248func (c *NodeTemplatesDeleteCall) Context(ctx context.Context) *NodeTemplatesDeleteCall {
98249	c.ctx_ = ctx
98250	return c
98251}
98252
98253// Header returns an http.Header that can be modified by the caller to
98254// add HTTP headers to the request.
98255func (c *NodeTemplatesDeleteCall) Header() http.Header {
98256	if c.header_ == nil {
98257		c.header_ = make(http.Header)
98258	}
98259	return c.header_
98260}
98261
98262func (c *NodeTemplatesDeleteCall) doRequest(alt string) (*http.Response, error) {
98263	reqHeaders := make(http.Header)
98264	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98265	for k, v := range c.header_ {
98266		reqHeaders[k] = v
98267	}
98268	reqHeaders.Set("User-Agent", c.s.userAgent())
98269	var body io.Reader = nil
98270	c.urlParams_.Set("alt", alt)
98271	c.urlParams_.Set("prettyPrint", "false")
98272	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
98273	urls += "?" + c.urlParams_.Encode()
98274	req, err := http.NewRequest("DELETE", urls, body)
98275	if err != nil {
98276		return nil, err
98277	}
98278	req.Header = reqHeaders
98279	googleapi.Expand(req.URL, map[string]string{
98280		"project":      c.project,
98281		"region":       c.region,
98282		"nodeTemplate": c.nodeTemplate,
98283	})
98284	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98285}
98286
98287// Do executes the "compute.nodeTemplates.delete" call.
98288// Exactly one of *Operation or error will be non-nil. Any non-2xx
98289// status code is an error. Response headers are in either
98290// *Operation.ServerResponse.Header or (if a response was returned at
98291// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98292// to check whether the returned error was because
98293// http.StatusNotModified was returned.
98294func (c *NodeTemplatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98295	gensupport.SetOptions(c.urlParams_, opts...)
98296	res, err := c.doRequest("json")
98297	if res != nil && res.StatusCode == http.StatusNotModified {
98298		if res.Body != nil {
98299			res.Body.Close()
98300		}
98301		return nil, &googleapi.Error{
98302			Code:   res.StatusCode,
98303			Header: res.Header,
98304		}
98305	}
98306	if err != nil {
98307		return nil, err
98308	}
98309	defer googleapi.CloseBody(res)
98310	if err := googleapi.CheckResponse(res); err != nil {
98311		return nil, err
98312	}
98313	ret := &Operation{
98314		ServerResponse: googleapi.ServerResponse{
98315			Header:         res.Header,
98316			HTTPStatusCode: res.StatusCode,
98317		},
98318	}
98319	target := &ret
98320	if err := gensupport.DecodeResponse(target, res); err != nil {
98321		return nil, err
98322	}
98323	return ret, nil
98324	// {
98325	//   "description": "Deletes the specified NodeTemplate resource.",
98326	//   "httpMethod": "DELETE",
98327	//   "id": "compute.nodeTemplates.delete",
98328	//   "parameterOrder": [
98329	//     "project",
98330	//     "region",
98331	//     "nodeTemplate"
98332	//   ],
98333	//   "parameters": {
98334	//     "nodeTemplate": {
98335	//       "description": "Name of the NodeTemplate resource to delete.",
98336	//       "location": "path",
98337	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98338	//       "required": true,
98339	//       "type": "string"
98340	//     },
98341	//     "project": {
98342	//       "description": "Project ID for this request.",
98343	//       "location": "path",
98344	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98345	//       "required": true,
98346	//       "type": "string"
98347	//     },
98348	//     "region": {
98349	//       "description": "The name of the region for this request.",
98350	//       "location": "path",
98351	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98352	//       "required": true,
98353	//       "type": "string"
98354	//     },
98355	//     "requestId": {
98356	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98357	//       "location": "query",
98358	//       "type": "string"
98359	//     }
98360	//   },
98361	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
98362	//   "response": {
98363	//     "$ref": "Operation"
98364	//   },
98365	//   "scopes": [
98366	//     "https://www.googleapis.com/auth/cloud-platform",
98367	//     "https://www.googleapis.com/auth/compute"
98368	//   ]
98369	// }
98370
98371}
98372
98373// method id "compute.nodeTemplates.get":
98374
98375type NodeTemplatesGetCall struct {
98376	s            *Service
98377	project      string
98378	region       string
98379	nodeTemplate string
98380	urlParams_   gensupport.URLParams
98381	ifNoneMatch_ string
98382	ctx_         context.Context
98383	header_      http.Header
98384}
98385
98386// Get: Returns the specified node template. Gets a list of available
98387// node templates by making a list() request.
98388func (r *NodeTemplatesService) Get(project string, region string, nodeTemplate string) *NodeTemplatesGetCall {
98389	c := &NodeTemplatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98390	c.project = project
98391	c.region = region
98392	c.nodeTemplate = nodeTemplate
98393	return c
98394}
98395
98396// Fields allows partial responses to be retrieved. See
98397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98398// for more information.
98399func (c *NodeTemplatesGetCall) Fields(s ...googleapi.Field) *NodeTemplatesGetCall {
98400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98401	return c
98402}
98403
98404// IfNoneMatch sets the optional parameter which makes the operation
98405// fail if the object's ETag matches the given value. This is useful for
98406// getting updates only after the object has changed since the last
98407// request. Use googleapi.IsNotModified to check whether the response
98408// error from Do is the result of In-None-Match.
98409func (c *NodeTemplatesGetCall) IfNoneMatch(entityTag string) *NodeTemplatesGetCall {
98410	c.ifNoneMatch_ = entityTag
98411	return c
98412}
98413
98414// Context sets the context to be used in this call's Do method. Any
98415// pending HTTP request will be aborted if the provided context is
98416// canceled.
98417func (c *NodeTemplatesGetCall) Context(ctx context.Context) *NodeTemplatesGetCall {
98418	c.ctx_ = ctx
98419	return c
98420}
98421
98422// Header returns an http.Header that can be modified by the caller to
98423// add HTTP headers to the request.
98424func (c *NodeTemplatesGetCall) Header() http.Header {
98425	if c.header_ == nil {
98426		c.header_ = make(http.Header)
98427	}
98428	return c.header_
98429}
98430
98431func (c *NodeTemplatesGetCall) doRequest(alt string) (*http.Response, error) {
98432	reqHeaders := make(http.Header)
98433	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98434	for k, v := range c.header_ {
98435		reqHeaders[k] = v
98436	}
98437	reqHeaders.Set("User-Agent", c.s.userAgent())
98438	if c.ifNoneMatch_ != "" {
98439		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98440	}
98441	var body io.Reader = nil
98442	c.urlParams_.Set("alt", alt)
98443	c.urlParams_.Set("prettyPrint", "false")
98444	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{nodeTemplate}")
98445	urls += "?" + c.urlParams_.Encode()
98446	req, err := http.NewRequest("GET", urls, body)
98447	if err != nil {
98448		return nil, err
98449	}
98450	req.Header = reqHeaders
98451	googleapi.Expand(req.URL, map[string]string{
98452		"project":      c.project,
98453		"region":       c.region,
98454		"nodeTemplate": c.nodeTemplate,
98455	})
98456	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98457}
98458
98459// Do executes the "compute.nodeTemplates.get" call.
98460// Exactly one of *NodeTemplate or error will be non-nil. Any non-2xx
98461// status code is an error. Response headers are in either
98462// *NodeTemplate.ServerResponse.Header or (if a response was returned at
98463// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98464// to check whether the returned error was because
98465// http.StatusNotModified was returned.
98466func (c *NodeTemplatesGetCall) Do(opts ...googleapi.CallOption) (*NodeTemplate, 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 := &NodeTemplate{
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": "Returns the specified node template. Gets a list of available node templates by making a list() request.",
98498	//   "httpMethod": "GET",
98499	//   "id": "compute.nodeTemplates.get",
98500	//   "parameterOrder": [
98501	//     "project",
98502	//     "region",
98503	//     "nodeTemplate"
98504	//   ],
98505	//   "parameters": {
98506	//     "nodeTemplate": {
98507	//       "description": "Name of the node template to return.",
98508	//       "location": "path",
98509	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98510	//       "required": true,
98511	//       "type": "string"
98512	//     },
98513	//     "project": {
98514	//       "description": "Project ID for this request.",
98515	//       "location": "path",
98516	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98517	//       "required": true,
98518	//       "type": "string"
98519	//     },
98520	//     "region": {
98521	//       "description": "The name of the region for this request.",
98522	//       "location": "path",
98523	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98524	//       "required": true,
98525	//       "type": "string"
98526	//     }
98527	//   },
98528	//   "path": "{project}/regions/{region}/nodeTemplates/{nodeTemplate}",
98529	//   "response": {
98530	//     "$ref": "NodeTemplate"
98531	//   },
98532	//   "scopes": [
98533	//     "https://www.googleapis.com/auth/cloud-platform",
98534	//     "https://www.googleapis.com/auth/compute",
98535	//     "https://www.googleapis.com/auth/compute.readonly"
98536	//   ]
98537	// }
98538
98539}
98540
98541// method id "compute.nodeTemplates.getIamPolicy":
98542
98543type NodeTemplatesGetIamPolicyCall struct {
98544	s            *Service
98545	project      string
98546	region       string
98547	resource     string
98548	urlParams_   gensupport.URLParams
98549	ifNoneMatch_ string
98550	ctx_         context.Context
98551	header_      http.Header
98552}
98553
98554// GetIamPolicy: Gets the access control policy for a resource. May be
98555// empty if no such policy or resource exists.
98556func (r *NodeTemplatesService) GetIamPolicy(project string, region string, resource string) *NodeTemplatesGetIamPolicyCall {
98557	c := &NodeTemplatesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98558	c.project = project
98559	c.region = region
98560	c.resource = resource
98561	return c
98562}
98563
98564// OptionsRequestedPolicyVersion sets the optional parameter
98565// "optionsRequestedPolicyVersion": Requested IAM Policy version.
98566func (c *NodeTemplatesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *NodeTemplatesGetIamPolicyCall {
98567	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
98568	return c
98569}
98570
98571// Fields allows partial responses to be retrieved. See
98572// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98573// for more information.
98574func (c *NodeTemplatesGetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesGetIamPolicyCall {
98575	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98576	return c
98577}
98578
98579// IfNoneMatch sets the optional parameter which makes the operation
98580// fail if the object's ETag matches the given value. This is useful for
98581// getting updates only after the object has changed since the last
98582// request. Use googleapi.IsNotModified to check whether the response
98583// error from Do is the result of In-None-Match.
98584func (c *NodeTemplatesGetIamPolicyCall) IfNoneMatch(entityTag string) *NodeTemplatesGetIamPolicyCall {
98585	c.ifNoneMatch_ = entityTag
98586	return c
98587}
98588
98589// Context sets the context to be used in this call's Do method. Any
98590// pending HTTP request will be aborted if the provided context is
98591// canceled.
98592func (c *NodeTemplatesGetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesGetIamPolicyCall {
98593	c.ctx_ = ctx
98594	return c
98595}
98596
98597// Header returns an http.Header that can be modified by the caller to
98598// add HTTP headers to the request.
98599func (c *NodeTemplatesGetIamPolicyCall) Header() http.Header {
98600	if c.header_ == nil {
98601		c.header_ = make(http.Header)
98602	}
98603	return c.header_
98604}
98605
98606func (c *NodeTemplatesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
98607	reqHeaders := make(http.Header)
98608	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98609	for k, v := range c.header_ {
98610		reqHeaders[k] = v
98611	}
98612	reqHeaders.Set("User-Agent", c.s.userAgent())
98613	if c.ifNoneMatch_ != "" {
98614		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
98615	}
98616	var body io.Reader = nil
98617	c.urlParams_.Set("alt", alt)
98618	c.urlParams_.Set("prettyPrint", "false")
98619	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy")
98620	urls += "?" + c.urlParams_.Encode()
98621	req, err := http.NewRequest("GET", urls, body)
98622	if err != nil {
98623		return nil, err
98624	}
98625	req.Header = reqHeaders
98626	googleapi.Expand(req.URL, map[string]string{
98627		"project":  c.project,
98628		"region":   c.region,
98629		"resource": c.resource,
98630	})
98631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98632}
98633
98634// Do executes the "compute.nodeTemplates.getIamPolicy" call.
98635// Exactly one of *Policy or error will be non-nil. Any non-2xx status
98636// code is an error. Response headers are in either
98637// *Policy.ServerResponse.Header or (if a response was returned at all)
98638// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
98639// check whether the returned error was because http.StatusNotModified
98640// was returned.
98641func (c *NodeTemplatesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
98642	gensupport.SetOptions(c.urlParams_, opts...)
98643	res, err := c.doRequest("json")
98644	if res != nil && res.StatusCode == http.StatusNotModified {
98645		if res.Body != nil {
98646			res.Body.Close()
98647		}
98648		return nil, &googleapi.Error{
98649			Code:   res.StatusCode,
98650			Header: res.Header,
98651		}
98652	}
98653	if err != nil {
98654		return nil, err
98655	}
98656	defer googleapi.CloseBody(res)
98657	if err := googleapi.CheckResponse(res); err != nil {
98658		return nil, err
98659	}
98660	ret := &Policy{
98661		ServerResponse: googleapi.ServerResponse{
98662			Header:         res.Header,
98663			HTTPStatusCode: res.StatusCode,
98664		},
98665	}
98666	target := &ret
98667	if err := gensupport.DecodeResponse(target, res); err != nil {
98668		return nil, err
98669	}
98670	return ret, nil
98671	// {
98672	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
98673	//   "httpMethod": "GET",
98674	//   "id": "compute.nodeTemplates.getIamPolicy",
98675	//   "parameterOrder": [
98676	//     "project",
98677	//     "region",
98678	//     "resource"
98679	//   ],
98680	//   "parameters": {
98681	//     "optionsRequestedPolicyVersion": {
98682	//       "description": "Requested IAM Policy version.",
98683	//       "format": "int32",
98684	//       "location": "query",
98685	//       "type": "integer"
98686	//     },
98687	//     "project": {
98688	//       "description": "Project ID for this request.",
98689	//       "location": "path",
98690	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98691	//       "required": true,
98692	//       "type": "string"
98693	//     },
98694	//     "region": {
98695	//       "description": "The name of the region for this request.",
98696	//       "location": "path",
98697	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98698	//       "required": true,
98699	//       "type": "string"
98700	//     },
98701	//     "resource": {
98702	//       "description": "Name or id of the resource for this request.",
98703	//       "location": "path",
98704	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
98705	//       "required": true,
98706	//       "type": "string"
98707	//     }
98708	//   },
98709	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/getIamPolicy",
98710	//   "response": {
98711	//     "$ref": "Policy"
98712	//   },
98713	//   "scopes": [
98714	//     "https://www.googleapis.com/auth/cloud-platform",
98715	//     "https://www.googleapis.com/auth/compute",
98716	//     "https://www.googleapis.com/auth/compute.readonly"
98717	//   ]
98718	// }
98719
98720}
98721
98722// method id "compute.nodeTemplates.insert":
98723
98724type NodeTemplatesInsertCall struct {
98725	s            *Service
98726	project      string
98727	region       string
98728	nodetemplate *NodeTemplate
98729	urlParams_   gensupport.URLParams
98730	ctx_         context.Context
98731	header_      http.Header
98732}
98733
98734// Insert: Creates a NodeTemplate resource in the specified project
98735// using the data included in the request.
98736func (r *NodeTemplatesService) Insert(project string, region string, nodetemplate *NodeTemplate) *NodeTemplatesInsertCall {
98737	c := &NodeTemplatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98738	c.project = project
98739	c.region = region
98740	c.nodetemplate = nodetemplate
98741	return c
98742}
98743
98744// RequestId sets the optional parameter "requestId": An optional
98745// request ID to identify requests. Specify a unique request ID so that
98746// if you must retry your request, the server will know to ignore the
98747// request if it has already been completed.
98748//
98749// For example, consider a situation where you make an initial request
98750// and the request times out. If you make the request again with the
98751// same request ID, the server can check if original operation with the
98752// same request ID was received, and if so, will ignore the second
98753// request. This prevents clients from accidentally creating duplicate
98754// commitments.
98755//
98756// The request ID must be a valid UUID with the exception that zero UUID
98757// is not supported (00000000-0000-0000-0000-000000000000).
98758func (c *NodeTemplatesInsertCall) RequestId(requestId string) *NodeTemplatesInsertCall {
98759	c.urlParams_.Set("requestId", requestId)
98760	return c
98761}
98762
98763// Fields allows partial responses to be retrieved. See
98764// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98765// for more information.
98766func (c *NodeTemplatesInsertCall) Fields(s ...googleapi.Field) *NodeTemplatesInsertCall {
98767	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98768	return c
98769}
98770
98771// Context sets the context to be used in this call's Do method. Any
98772// pending HTTP request will be aborted if the provided context is
98773// canceled.
98774func (c *NodeTemplatesInsertCall) Context(ctx context.Context) *NodeTemplatesInsertCall {
98775	c.ctx_ = ctx
98776	return c
98777}
98778
98779// Header returns an http.Header that can be modified by the caller to
98780// add HTTP headers to the request.
98781func (c *NodeTemplatesInsertCall) Header() http.Header {
98782	if c.header_ == nil {
98783		c.header_ = make(http.Header)
98784	}
98785	return c.header_
98786}
98787
98788func (c *NodeTemplatesInsertCall) doRequest(alt string) (*http.Response, error) {
98789	reqHeaders := make(http.Header)
98790	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
98791	for k, v := range c.header_ {
98792		reqHeaders[k] = v
98793	}
98794	reqHeaders.Set("User-Agent", c.s.userAgent())
98795	var body io.Reader = nil
98796	body, err := googleapi.WithoutDataWrapper.JSONReader(c.nodetemplate)
98797	if err != nil {
98798		return nil, err
98799	}
98800	reqHeaders.Set("Content-Type", "application/json")
98801	c.urlParams_.Set("alt", alt)
98802	c.urlParams_.Set("prettyPrint", "false")
98803	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
98804	urls += "?" + c.urlParams_.Encode()
98805	req, err := http.NewRequest("POST", urls, body)
98806	if err != nil {
98807		return nil, err
98808	}
98809	req.Header = reqHeaders
98810	googleapi.Expand(req.URL, map[string]string{
98811		"project": c.project,
98812		"region":  c.region,
98813	})
98814	return gensupport.SendRequest(c.ctx_, c.s.client, req)
98815}
98816
98817// Do executes the "compute.nodeTemplates.insert" call.
98818// Exactly one of *Operation or error will be non-nil. Any non-2xx
98819// status code is an error. Response headers are in either
98820// *Operation.ServerResponse.Header or (if a response was returned at
98821// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
98822// to check whether the returned error was because
98823// http.StatusNotModified was returned.
98824func (c *NodeTemplatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
98825	gensupport.SetOptions(c.urlParams_, opts...)
98826	res, err := c.doRequest("json")
98827	if res != nil && res.StatusCode == http.StatusNotModified {
98828		if res.Body != nil {
98829			res.Body.Close()
98830		}
98831		return nil, &googleapi.Error{
98832			Code:   res.StatusCode,
98833			Header: res.Header,
98834		}
98835	}
98836	if err != nil {
98837		return nil, err
98838	}
98839	defer googleapi.CloseBody(res)
98840	if err := googleapi.CheckResponse(res); err != nil {
98841		return nil, err
98842	}
98843	ret := &Operation{
98844		ServerResponse: googleapi.ServerResponse{
98845			Header:         res.Header,
98846			HTTPStatusCode: res.StatusCode,
98847		},
98848	}
98849	target := &ret
98850	if err := gensupport.DecodeResponse(target, res); err != nil {
98851		return nil, err
98852	}
98853	return ret, nil
98854	// {
98855	//   "description": "Creates a NodeTemplate resource in the specified project using the data included in the request.",
98856	//   "httpMethod": "POST",
98857	//   "id": "compute.nodeTemplates.insert",
98858	//   "parameterOrder": [
98859	//     "project",
98860	//     "region"
98861	//   ],
98862	//   "parameters": {
98863	//     "project": {
98864	//       "description": "Project ID for this request.",
98865	//       "location": "path",
98866	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
98867	//       "required": true,
98868	//       "type": "string"
98869	//     },
98870	//     "region": {
98871	//       "description": "The name of the region for this request.",
98872	//       "location": "path",
98873	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
98874	//       "required": true,
98875	//       "type": "string"
98876	//     },
98877	//     "requestId": {
98878	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
98879	//       "location": "query",
98880	//       "type": "string"
98881	//     }
98882	//   },
98883	//   "path": "{project}/regions/{region}/nodeTemplates",
98884	//   "request": {
98885	//     "$ref": "NodeTemplate"
98886	//   },
98887	//   "response": {
98888	//     "$ref": "Operation"
98889	//   },
98890	//   "scopes": [
98891	//     "https://www.googleapis.com/auth/cloud-platform",
98892	//     "https://www.googleapis.com/auth/compute"
98893	//   ]
98894	// }
98895
98896}
98897
98898// method id "compute.nodeTemplates.list":
98899
98900type NodeTemplatesListCall struct {
98901	s            *Service
98902	project      string
98903	region       string
98904	urlParams_   gensupport.URLParams
98905	ifNoneMatch_ string
98906	ctx_         context.Context
98907	header_      http.Header
98908}
98909
98910// List: Retrieves a list of node templates available to the specified
98911// project.
98912func (r *NodeTemplatesService) List(project string, region string) *NodeTemplatesListCall {
98913	c := &NodeTemplatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
98914	c.project = project
98915	c.region = region
98916	return c
98917}
98918
98919// Filter sets the optional parameter "filter": A filter expression that
98920// filters resources listed in the response. The expression must specify
98921// the field name, a comparison operator, and the value that you want to
98922// use for filtering. The value must be a string, a number, or a
98923// boolean. The comparison operator must be either =, !=, >, or <.
98924//
98925// For example, if you are filtering Compute Engine instances, you can
98926// exclude instances named example-instance by specifying name !=
98927// example-instance.
98928//
98929// You can also filter nested fields. For example, you could specify
98930// scheduling.automaticRestart = false to include instances only if they
98931// are not scheduled for automatic restarts. You can use filtering on
98932// nested fields to filter based on resource labels.
98933//
98934// To filter on multiple expressions, provide each separate expression
98935// within parentheses. For example, (scheduling.automaticRestart = true)
98936// (cpuPlatform = "Intel Skylake"). By default, each expression is an
98937// AND expression. However, you can include AND and OR expressions
98938// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
98939// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
98940// true).
98941func (c *NodeTemplatesListCall) Filter(filter string) *NodeTemplatesListCall {
98942	c.urlParams_.Set("filter", filter)
98943	return c
98944}
98945
98946// MaxResults sets the optional parameter "maxResults": The maximum
98947// number of results per page that should be returned. If the number of
98948// available results is larger than maxResults, Compute Engine returns a
98949// nextPageToken that can be used to get the next page of results in
98950// subsequent list requests. Acceptable values are 0 to 500, inclusive.
98951// (Default: 500)
98952func (c *NodeTemplatesListCall) MaxResults(maxResults int64) *NodeTemplatesListCall {
98953	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
98954	return c
98955}
98956
98957// OrderBy sets the optional parameter "orderBy": Sorts list results by
98958// a certain order. By default, results are returned in alphanumerical
98959// order based on the resource name.
98960//
98961// You can also sort results in descending order based on the creation
98962// timestamp using orderBy="creationTimestamp desc". This sorts results
98963// based on the creationTimestamp field in reverse chronological order
98964// (newest result first). Use this to sort resources like operations so
98965// that the newest operation is returned first.
98966//
98967// Currently, only sorting by name or creationTimestamp desc is
98968// supported.
98969func (c *NodeTemplatesListCall) OrderBy(orderBy string) *NodeTemplatesListCall {
98970	c.urlParams_.Set("orderBy", orderBy)
98971	return c
98972}
98973
98974// PageToken sets the optional parameter "pageToken": Specifies a page
98975// token to use. Set pageToken to the nextPageToken returned by a
98976// previous list request to get the next page of results.
98977func (c *NodeTemplatesListCall) PageToken(pageToken string) *NodeTemplatesListCall {
98978	c.urlParams_.Set("pageToken", pageToken)
98979	return c
98980}
98981
98982// Fields allows partial responses to be retrieved. See
98983// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
98984// for more information.
98985func (c *NodeTemplatesListCall) Fields(s ...googleapi.Field) *NodeTemplatesListCall {
98986	c.urlParams_.Set("fields", googleapi.CombineFields(s))
98987	return c
98988}
98989
98990// IfNoneMatch sets the optional parameter which makes the operation
98991// fail if the object's ETag matches the given value. This is useful for
98992// getting updates only after the object has changed since the last
98993// request. Use googleapi.IsNotModified to check whether the response
98994// error from Do is the result of In-None-Match.
98995func (c *NodeTemplatesListCall) IfNoneMatch(entityTag string) *NodeTemplatesListCall {
98996	c.ifNoneMatch_ = entityTag
98997	return c
98998}
98999
99000// Context sets the context to be used in this call's Do method. Any
99001// pending HTTP request will be aborted if the provided context is
99002// canceled.
99003func (c *NodeTemplatesListCall) Context(ctx context.Context) *NodeTemplatesListCall {
99004	c.ctx_ = ctx
99005	return c
99006}
99007
99008// Header returns an http.Header that can be modified by the caller to
99009// add HTTP headers to the request.
99010func (c *NodeTemplatesListCall) Header() http.Header {
99011	if c.header_ == nil {
99012		c.header_ = make(http.Header)
99013	}
99014	return c.header_
99015}
99016
99017func (c *NodeTemplatesListCall) doRequest(alt string) (*http.Response, error) {
99018	reqHeaders := make(http.Header)
99019	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99020	for k, v := range c.header_ {
99021		reqHeaders[k] = v
99022	}
99023	reqHeaders.Set("User-Agent", c.s.userAgent())
99024	if c.ifNoneMatch_ != "" {
99025		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99026	}
99027	var body io.Reader = nil
99028	c.urlParams_.Set("alt", alt)
99029	c.urlParams_.Set("prettyPrint", "false")
99030	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates")
99031	urls += "?" + c.urlParams_.Encode()
99032	req, err := http.NewRequest("GET", urls, body)
99033	if err != nil {
99034		return nil, err
99035	}
99036	req.Header = reqHeaders
99037	googleapi.Expand(req.URL, map[string]string{
99038		"project": c.project,
99039		"region":  c.region,
99040	})
99041	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99042}
99043
99044// Do executes the "compute.nodeTemplates.list" call.
99045// Exactly one of *NodeTemplateList or error will be non-nil. Any
99046// non-2xx status code is an error. Response headers are in either
99047// *NodeTemplateList.ServerResponse.Header or (if a response was
99048// returned at all) in error.(*googleapi.Error).Header. Use
99049// googleapi.IsNotModified to check whether the returned error was
99050// because http.StatusNotModified was returned.
99051func (c *NodeTemplatesListCall) Do(opts ...googleapi.CallOption) (*NodeTemplateList, error) {
99052	gensupport.SetOptions(c.urlParams_, opts...)
99053	res, err := c.doRequest("json")
99054	if res != nil && res.StatusCode == http.StatusNotModified {
99055		if res.Body != nil {
99056			res.Body.Close()
99057		}
99058		return nil, &googleapi.Error{
99059			Code:   res.StatusCode,
99060			Header: res.Header,
99061		}
99062	}
99063	if err != nil {
99064		return nil, err
99065	}
99066	defer googleapi.CloseBody(res)
99067	if err := googleapi.CheckResponse(res); err != nil {
99068		return nil, err
99069	}
99070	ret := &NodeTemplateList{
99071		ServerResponse: googleapi.ServerResponse{
99072			Header:         res.Header,
99073			HTTPStatusCode: res.StatusCode,
99074		},
99075	}
99076	target := &ret
99077	if err := gensupport.DecodeResponse(target, res); err != nil {
99078		return nil, err
99079	}
99080	return ret, nil
99081	// {
99082	//   "description": "Retrieves a list of node templates available to the specified project.",
99083	//   "httpMethod": "GET",
99084	//   "id": "compute.nodeTemplates.list",
99085	//   "parameterOrder": [
99086	//     "project",
99087	//     "region"
99088	//   ],
99089	//   "parameters": {
99090	//     "filter": {
99091	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
99092	//       "location": "query",
99093	//       "type": "string"
99094	//     },
99095	//     "maxResults": {
99096	//       "default": "500",
99097	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
99098	//       "format": "uint32",
99099	//       "location": "query",
99100	//       "minimum": "0",
99101	//       "type": "integer"
99102	//     },
99103	//     "orderBy": {
99104	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
99105	//       "location": "query",
99106	//       "type": "string"
99107	//     },
99108	//     "pageToken": {
99109	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
99110	//       "location": "query",
99111	//       "type": "string"
99112	//     },
99113	//     "project": {
99114	//       "description": "Project ID for this request.",
99115	//       "location": "path",
99116	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99117	//       "required": true,
99118	//       "type": "string"
99119	//     },
99120	//     "region": {
99121	//       "description": "The name of the region for this request.",
99122	//       "location": "path",
99123	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99124	//       "required": true,
99125	//       "type": "string"
99126	//     }
99127	//   },
99128	//   "path": "{project}/regions/{region}/nodeTemplates",
99129	//   "response": {
99130	//     "$ref": "NodeTemplateList"
99131	//   },
99132	//   "scopes": [
99133	//     "https://www.googleapis.com/auth/cloud-platform",
99134	//     "https://www.googleapis.com/auth/compute",
99135	//     "https://www.googleapis.com/auth/compute.readonly"
99136	//   ]
99137	// }
99138
99139}
99140
99141// Pages invokes f for each page of results.
99142// A non-nil error returned from f will halt the iteration.
99143// The provided context supersedes any context provided to the Context method.
99144func (c *NodeTemplatesListCall) Pages(ctx context.Context, f func(*NodeTemplateList) error) error {
99145	c.ctx_ = ctx
99146	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99147	for {
99148		x, err := c.Do()
99149		if err != nil {
99150			return err
99151		}
99152		if err := f(x); err != nil {
99153			return err
99154		}
99155		if x.NextPageToken == "" {
99156			return nil
99157		}
99158		c.PageToken(x.NextPageToken)
99159	}
99160}
99161
99162// method id "compute.nodeTemplates.setIamPolicy":
99163
99164type NodeTemplatesSetIamPolicyCall struct {
99165	s                      *Service
99166	project                string
99167	region                 string
99168	resource               string
99169	regionsetpolicyrequest *RegionSetPolicyRequest
99170	urlParams_             gensupport.URLParams
99171	ctx_                   context.Context
99172	header_                http.Header
99173}
99174
99175// SetIamPolicy: Sets the access control policy on the specified
99176// resource. Replaces any existing policy.
99177func (r *NodeTemplatesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *NodeTemplatesSetIamPolicyCall {
99178	c := &NodeTemplatesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99179	c.project = project
99180	c.region = region
99181	c.resource = resource
99182	c.regionsetpolicyrequest = regionsetpolicyrequest
99183	return c
99184}
99185
99186// Fields allows partial responses to be retrieved. See
99187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99188// for more information.
99189func (c *NodeTemplatesSetIamPolicyCall) Fields(s ...googleapi.Field) *NodeTemplatesSetIamPolicyCall {
99190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99191	return c
99192}
99193
99194// Context sets the context to be used in this call's Do method. Any
99195// pending HTTP request will be aborted if the provided context is
99196// canceled.
99197func (c *NodeTemplatesSetIamPolicyCall) Context(ctx context.Context) *NodeTemplatesSetIamPolicyCall {
99198	c.ctx_ = ctx
99199	return c
99200}
99201
99202// Header returns an http.Header that can be modified by the caller to
99203// add HTTP headers to the request.
99204func (c *NodeTemplatesSetIamPolicyCall) Header() http.Header {
99205	if c.header_ == nil {
99206		c.header_ = make(http.Header)
99207	}
99208	return c.header_
99209}
99210
99211func (c *NodeTemplatesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
99212	reqHeaders := make(http.Header)
99213	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99214	for k, v := range c.header_ {
99215		reqHeaders[k] = v
99216	}
99217	reqHeaders.Set("User-Agent", c.s.userAgent())
99218	var body io.Reader = nil
99219	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
99220	if err != nil {
99221		return nil, err
99222	}
99223	reqHeaders.Set("Content-Type", "application/json")
99224	c.urlParams_.Set("alt", alt)
99225	c.urlParams_.Set("prettyPrint", "false")
99226	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy")
99227	urls += "?" + c.urlParams_.Encode()
99228	req, err := http.NewRequest("POST", urls, body)
99229	if err != nil {
99230		return nil, err
99231	}
99232	req.Header = reqHeaders
99233	googleapi.Expand(req.URL, map[string]string{
99234		"project":  c.project,
99235		"region":   c.region,
99236		"resource": c.resource,
99237	})
99238	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99239}
99240
99241// Do executes the "compute.nodeTemplates.setIamPolicy" call.
99242// Exactly one of *Policy or error will be non-nil. Any non-2xx status
99243// code is an error. Response headers are in either
99244// *Policy.ServerResponse.Header or (if a response was returned at all)
99245// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
99246// check whether the returned error was because http.StatusNotModified
99247// was returned.
99248func (c *NodeTemplatesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
99249	gensupport.SetOptions(c.urlParams_, opts...)
99250	res, err := c.doRequest("json")
99251	if res != nil && res.StatusCode == http.StatusNotModified {
99252		if res.Body != nil {
99253			res.Body.Close()
99254		}
99255		return nil, &googleapi.Error{
99256			Code:   res.StatusCode,
99257			Header: res.Header,
99258		}
99259	}
99260	if err != nil {
99261		return nil, err
99262	}
99263	defer googleapi.CloseBody(res)
99264	if err := googleapi.CheckResponse(res); err != nil {
99265		return nil, err
99266	}
99267	ret := &Policy{
99268		ServerResponse: googleapi.ServerResponse{
99269			Header:         res.Header,
99270			HTTPStatusCode: res.StatusCode,
99271		},
99272	}
99273	target := &ret
99274	if err := gensupport.DecodeResponse(target, res); err != nil {
99275		return nil, err
99276	}
99277	return ret, nil
99278	// {
99279	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
99280	//   "httpMethod": "POST",
99281	//   "id": "compute.nodeTemplates.setIamPolicy",
99282	//   "parameterOrder": [
99283	//     "project",
99284	//     "region",
99285	//     "resource"
99286	//   ],
99287	//   "parameters": {
99288	//     "project": {
99289	//       "description": "Project ID for this request.",
99290	//       "location": "path",
99291	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99292	//       "required": true,
99293	//       "type": "string"
99294	//     },
99295	//     "region": {
99296	//       "description": "The name of the region for this request.",
99297	//       "location": "path",
99298	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99299	//       "required": true,
99300	//       "type": "string"
99301	//     },
99302	//     "resource": {
99303	//       "description": "Name or id of the resource for this request.",
99304	//       "location": "path",
99305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99306	//       "required": true,
99307	//       "type": "string"
99308	//     }
99309	//   },
99310	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/setIamPolicy",
99311	//   "request": {
99312	//     "$ref": "RegionSetPolicyRequest"
99313	//   },
99314	//   "response": {
99315	//     "$ref": "Policy"
99316	//   },
99317	//   "scopes": [
99318	//     "https://www.googleapis.com/auth/cloud-platform",
99319	//     "https://www.googleapis.com/auth/compute"
99320	//   ]
99321	// }
99322
99323}
99324
99325// method id "compute.nodeTemplates.testIamPermissions":
99326
99327type NodeTemplatesTestIamPermissionsCall struct {
99328	s                      *Service
99329	project                string
99330	region                 string
99331	resource               string
99332	testpermissionsrequest *TestPermissionsRequest
99333	urlParams_             gensupport.URLParams
99334	ctx_                   context.Context
99335	header_                http.Header
99336}
99337
99338// TestIamPermissions: Returns permissions that a caller has on the
99339// specified resource.
99340func (r *NodeTemplatesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *NodeTemplatesTestIamPermissionsCall {
99341	c := &NodeTemplatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99342	c.project = project
99343	c.region = region
99344	c.resource = resource
99345	c.testpermissionsrequest = testpermissionsrequest
99346	return c
99347}
99348
99349// Fields allows partial responses to be retrieved. See
99350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99351// for more information.
99352func (c *NodeTemplatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *NodeTemplatesTestIamPermissionsCall {
99353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99354	return c
99355}
99356
99357// Context sets the context to be used in this call's Do method. Any
99358// pending HTTP request will be aborted if the provided context is
99359// canceled.
99360func (c *NodeTemplatesTestIamPermissionsCall) Context(ctx context.Context) *NodeTemplatesTestIamPermissionsCall {
99361	c.ctx_ = ctx
99362	return c
99363}
99364
99365// Header returns an http.Header that can be modified by the caller to
99366// add HTTP headers to the request.
99367func (c *NodeTemplatesTestIamPermissionsCall) Header() http.Header {
99368	if c.header_ == nil {
99369		c.header_ = make(http.Header)
99370	}
99371	return c.header_
99372}
99373
99374func (c *NodeTemplatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
99375	reqHeaders := make(http.Header)
99376	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99377	for k, v := range c.header_ {
99378		reqHeaders[k] = v
99379	}
99380	reqHeaders.Set("User-Agent", c.s.userAgent())
99381	var body io.Reader = nil
99382	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
99383	if err != nil {
99384		return nil, err
99385	}
99386	reqHeaders.Set("Content-Type", "application/json")
99387	c.urlParams_.Set("alt", alt)
99388	c.urlParams_.Set("prettyPrint", "false")
99389	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions")
99390	urls += "?" + c.urlParams_.Encode()
99391	req, err := http.NewRequest("POST", urls, body)
99392	if err != nil {
99393		return nil, err
99394	}
99395	req.Header = reqHeaders
99396	googleapi.Expand(req.URL, map[string]string{
99397		"project":  c.project,
99398		"region":   c.region,
99399		"resource": c.resource,
99400	})
99401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99402}
99403
99404// Do executes the "compute.nodeTemplates.testIamPermissions" call.
99405// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
99406// non-2xx status code is an error. Response headers are in either
99407// *TestPermissionsResponse.ServerResponse.Header or (if a response was
99408// returned at all) in error.(*googleapi.Error).Header. Use
99409// googleapi.IsNotModified to check whether the returned error was
99410// because http.StatusNotModified was returned.
99411func (c *NodeTemplatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
99412	gensupport.SetOptions(c.urlParams_, opts...)
99413	res, err := c.doRequest("json")
99414	if res != nil && res.StatusCode == http.StatusNotModified {
99415		if res.Body != nil {
99416			res.Body.Close()
99417		}
99418		return nil, &googleapi.Error{
99419			Code:   res.StatusCode,
99420			Header: res.Header,
99421		}
99422	}
99423	if err != nil {
99424		return nil, err
99425	}
99426	defer googleapi.CloseBody(res)
99427	if err := googleapi.CheckResponse(res); err != nil {
99428		return nil, err
99429	}
99430	ret := &TestPermissionsResponse{
99431		ServerResponse: googleapi.ServerResponse{
99432			Header:         res.Header,
99433			HTTPStatusCode: res.StatusCode,
99434		},
99435	}
99436	target := &ret
99437	if err := gensupport.DecodeResponse(target, res); err != nil {
99438		return nil, err
99439	}
99440	return ret, nil
99441	// {
99442	//   "description": "Returns permissions that a caller has on the specified resource.",
99443	//   "httpMethod": "POST",
99444	//   "id": "compute.nodeTemplates.testIamPermissions",
99445	//   "parameterOrder": [
99446	//     "project",
99447	//     "region",
99448	//     "resource"
99449	//   ],
99450	//   "parameters": {
99451	//     "project": {
99452	//       "description": "Project ID for this request.",
99453	//       "location": "path",
99454	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99455	//       "required": true,
99456	//       "type": "string"
99457	//     },
99458	//     "region": {
99459	//       "description": "The name of the region for this request.",
99460	//       "location": "path",
99461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99462	//       "required": true,
99463	//       "type": "string"
99464	//     },
99465	//     "resource": {
99466	//       "description": "Name or id of the resource for this request.",
99467	//       "location": "path",
99468	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99469	//       "required": true,
99470	//       "type": "string"
99471	//     }
99472	//   },
99473	//   "path": "{project}/regions/{region}/nodeTemplates/{resource}/testIamPermissions",
99474	//   "request": {
99475	//     "$ref": "TestPermissionsRequest"
99476	//   },
99477	//   "response": {
99478	//     "$ref": "TestPermissionsResponse"
99479	//   },
99480	//   "scopes": [
99481	//     "https://www.googleapis.com/auth/cloud-platform",
99482	//     "https://www.googleapis.com/auth/compute",
99483	//     "https://www.googleapis.com/auth/compute.readonly"
99484	//   ]
99485	// }
99486
99487}
99488
99489// method id "compute.nodeTypes.aggregatedList":
99490
99491type NodeTypesAggregatedListCall struct {
99492	s            *Service
99493	project      string
99494	urlParams_   gensupport.URLParams
99495	ifNoneMatch_ string
99496	ctx_         context.Context
99497	header_      http.Header
99498}
99499
99500// AggregatedList: Retrieves an aggregated list of node types.
99501func (r *NodeTypesService) AggregatedList(project string) *NodeTypesAggregatedListCall {
99502	c := &NodeTypesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99503	c.project = project
99504	return c
99505}
99506
99507// Filter sets the optional parameter "filter": A filter expression that
99508// filters resources listed in the response. The expression must specify
99509// the field name, a comparison operator, and the value that you want to
99510// use for filtering. The value must be a string, a number, or a
99511// boolean. The comparison operator must be either =, !=, >, or <.
99512//
99513// For example, if you are filtering Compute Engine instances, you can
99514// exclude instances named example-instance by specifying name !=
99515// example-instance.
99516//
99517// You can also filter nested fields. For example, you could specify
99518// scheduling.automaticRestart = false to include instances only if they
99519// are not scheduled for automatic restarts. You can use filtering on
99520// nested fields to filter based on resource labels.
99521//
99522// To filter on multiple expressions, provide each separate expression
99523// within parentheses. For example, (scheduling.automaticRestart = true)
99524// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99525// AND expression. However, you can include AND and OR expressions
99526// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99527// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99528// true).
99529func (c *NodeTypesAggregatedListCall) Filter(filter string) *NodeTypesAggregatedListCall {
99530	c.urlParams_.Set("filter", filter)
99531	return c
99532}
99533
99534// IncludeAllScopes sets the optional parameter "includeAllScopes":
99535// Indicates whether every visible scope for each scope type (zone,
99536// region, global) should be included in the response. For new resource
99537// types added after this field, the flag has no effect as new resource
99538// types will always include every visible scope for each scope type in
99539// response. For resource types which predate this field, if this flag
99540// is omitted or false, only scopes of the scope types where the
99541// resource type is expected to be found will be included.
99542func (c *NodeTypesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *NodeTypesAggregatedListCall {
99543	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
99544	return c
99545}
99546
99547// MaxResults sets the optional parameter "maxResults": The maximum
99548// number of results per page that should be returned. If the number of
99549// available results is larger than maxResults, Compute Engine returns a
99550// nextPageToken that can be used to get the next page of results in
99551// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99552// (Default: 500)
99553func (c *NodeTypesAggregatedListCall) MaxResults(maxResults int64) *NodeTypesAggregatedListCall {
99554	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99555	return c
99556}
99557
99558// OrderBy sets the optional parameter "orderBy": Sorts list results by
99559// a certain order. By default, results are returned in alphanumerical
99560// order based on the resource name.
99561//
99562// You can also sort results in descending order based on the creation
99563// timestamp using orderBy="creationTimestamp desc". This sorts results
99564// based on the creationTimestamp field in reverse chronological order
99565// (newest result first). Use this to sort resources like operations so
99566// that the newest operation is returned first.
99567//
99568// Currently, only sorting by name or creationTimestamp desc is
99569// supported.
99570func (c *NodeTypesAggregatedListCall) OrderBy(orderBy string) *NodeTypesAggregatedListCall {
99571	c.urlParams_.Set("orderBy", orderBy)
99572	return c
99573}
99574
99575// PageToken sets the optional parameter "pageToken": Specifies a page
99576// token to use. Set pageToken to the nextPageToken returned by a
99577// previous list request to get the next page of results.
99578func (c *NodeTypesAggregatedListCall) PageToken(pageToken string) *NodeTypesAggregatedListCall {
99579	c.urlParams_.Set("pageToken", pageToken)
99580	return c
99581}
99582
99583// Fields allows partial responses to be retrieved. See
99584// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99585// for more information.
99586func (c *NodeTypesAggregatedListCall) Fields(s ...googleapi.Field) *NodeTypesAggregatedListCall {
99587	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99588	return c
99589}
99590
99591// IfNoneMatch sets the optional parameter which makes the operation
99592// fail if the object's ETag matches the given value. This is useful for
99593// getting updates only after the object has changed since the last
99594// request. Use googleapi.IsNotModified to check whether the response
99595// error from Do is the result of In-None-Match.
99596func (c *NodeTypesAggregatedListCall) IfNoneMatch(entityTag string) *NodeTypesAggregatedListCall {
99597	c.ifNoneMatch_ = entityTag
99598	return c
99599}
99600
99601// Context sets the context to be used in this call's Do method. Any
99602// pending HTTP request will be aborted if the provided context is
99603// canceled.
99604func (c *NodeTypesAggregatedListCall) Context(ctx context.Context) *NodeTypesAggregatedListCall {
99605	c.ctx_ = ctx
99606	return c
99607}
99608
99609// Header returns an http.Header that can be modified by the caller to
99610// add HTTP headers to the request.
99611func (c *NodeTypesAggregatedListCall) Header() http.Header {
99612	if c.header_ == nil {
99613		c.header_ = make(http.Header)
99614	}
99615	return c.header_
99616}
99617
99618func (c *NodeTypesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
99619	reqHeaders := make(http.Header)
99620	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99621	for k, v := range c.header_ {
99622		reqHeaders[k] = v
99623	}
99624	reqHeaders.Set("User-Agent", c.s.userAgent())
99625	if c.ifNoneMatch_ != "" {
99626		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99627	}
99628	var body io.Reader = nil
99629	c.urlParams_.Set("alt", alt)
99630	c.urlParams_.Set("prettyPrint", "false")
99631	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/nodeTypes")
99632	urls += "?" + c.urlParams_.Encode()
99633	req, err := http.NewRequest("GET", urls, body)
99634	if err != nil {
99635		return nil, err
99636	}
99637	req.Header = reqHeaders
99638	googleapi.Expand(req.URL, map[string]string{
99639		"project": c.project,
99640	})
99641	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99642}
99643
99644// Do executes the "compute.nodeTypes.aggregatedList" call.
99645// Exactly one of *NodeTypeAggregatedList or error will be non-nil. Any
99646// non-2xx status code is an error. Response headers are in either
99647// *NodeTypeAggregatedList.ServerResponse.Header or (if a response was
99648// returned at all) in error.(*googleapi.Error).Header. Use
99649// googleapi.IsNotModified to check whether the returned error was
99650// because http.StatusNotModified was returned.
99651func (c *NodeTypesAggregatedListCall) Do(opts ...googleapi.CallOption) (*NodeTypeAggregatedList, error) {
99652	gensupport.SetOptions(c.urlParams_, opts...)
99653	res, err := c.doRequest("json")
99654	if res != nil && res.StatusCode == http.StatusNotModified {
99655		if res.Body != nil {
99656			res.Body.Close()
99657		}
99658		return nil, &googleapi.Error{
99659			Code:   res.StatusCode,
99660			Header: res.Header,
99661		}
99662	}
99663	if err != nil {
99664		return nil, err
99665	}
99666	defer googleapi.CloseBody(res)
99667	if err := googleapi.CheckResponse(res); err != nil {
99668		return nil, err
99669	}
99670	ret := &NodeTypeAggregatedList{
99671		ServerResponse: googleapi.ServerResponse{
99672			Header:         res.Header,
99673			HTTPStatusCode: res.StatusCode,
99674		},
99675	}
99676	target := &ret
99677	if err := gensupport.DecodeResponse(target, res); err != nil {
99678		return nil, err
99679	}
99680	return ret, nil
99681	// {
99682	//   "description": "Retrieves an aggregated list of node types.",
99683	//   "httpMethod": "GET",
99684	//   "id": "compute.nodeTypes.aggregatedList",
99685	//   "parameterOrder": [
99686	//     "project"
99687	//   ],
99688	//   "parameters": {
99689	//     "filter": {
99690	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
99691	//       "location": "query",
99692	//       "type": "string"
99693	//     },
99694	//     "includeAllScopes": {
99695	//       "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.",
99696	//       "location": "query",
99697	//       "type": "boolean"
99698	//     },
99699	//     "maxResults": {
99700	//       "default": "500",
99701	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
99702	//       "format": "uint32",
99703	//       "location": "query",
99704	//       "minimum": "0",
99705	//       "type": "integer"
99706	//     },
99707	//     "orderBy": {
99708	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
99709	//       "location": "query",
99710	//       "type": "string"
99711	//     },
99712	//     "pageToken": {
99713	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
99714	//       "location": "query",
99715	//       "type": "string"
99716	//     },
99717	//     "project": {
99718	//       "description": "Project ID for this request.",
99719	//       "location": "path",
99720	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99721	//       "required": true,
99722	//       "type": "string"
99723	//     }
99724	//   },
99725	//   "path": "{project}/aggregated/nodeTypes",
99726	//   "response": {
99727	//     "$ref": "NodeTypeAggregatedList"
99728	//   },
99729	//   "scopes": [
99730	//     "https://www.googleapis.com/auth/cloud-platform",
99731	//     "https://www.googleapis.com/auth/compute",
99732	//     "https://www.googleapis.com/auth/compute.readonly"
99733	//   ]
99734	// }
99735
99736}
99737
99738// Pages invokes f for each page of results.
99739// A non-nil error returned from f will halt the iteration.
99740// The provided context supersedes any context provided to the Context method.
99741func (c *NodeTypesAggregatedListCall) Pages(ctx context.Context, f func(*NodeTypeAggregatedList) error) error {
99742	c.ctx_ = ctx
99743	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
99744	for {
99745		x, err := c.Do()
99746		if err != nil {
99747			return err
99748		}
99749		if err := f(x); err != nil {
99750			return err
99751		}
99752		if x.NextPageToken == "" {
99753			return nil
99754		}
99755		c.PageToken(x.NextPageToken)
99756	}
99757}
99758
99759// method id "compute.nodeTypes.get":
99760
99761type NodeTypesGetCall struct {
99762	s            *Service
99763	project      string
99764	zone         string
99765	nodeType     string
99766	urlParams_   gensupport.URLParams
99767	ifNoneMatch_ string
99768	ctx_         context.Context
99769	header_      http.Header
99770}
99771
99772// Get: Returns the specified node type. Gets a list of available node
99773// types by making a list() request.
99774func (r *NodeTypesService) Get(project string, zone string, nodeType string) *NodeTypesGetCall {
99775	c := &NodeTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99776	c.project = project
99777	c.zone = zone
99778	c.nodeType = nodeType
99779	return c
99780}
99781
99782// Fields allows partial responses to be retrieved. See
99783// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
99784// for more information.
99785func (c *NodeTypesGetCall) Fields(s ...googleapi.Field) *NodeTypesGetCall {
99786	c.urlParams_.Set("fields", googleapi.CombineFields(s))
99787	return c
99788}
99789
99790// IfNoneMatch sets the optional parameter which makes the operation
99791// fail if the object's ETag matches the given value. This is useful for
99792// getting updates only after the object has changed since the last
99793// request. Use googleapi.IsNotModified to check whether the response
99794// error from Do is the result of In-None-Match.
99795func (c *NodeTypesGetCall) IfNoneMatch(entityTag string) *NodeTypesGetCall {
99796	c.ifNoneMatch_ = entityTag
99797	return c
99798}
99799
99800// Context sets the context to be used in this call's Do method. Any
99801// pending HTTP request will be aborted if the provided context is
99802// canceled.
99803func (c *NodeTypesGetCall) Context(ctx context.Context) *NodeTypesGetCall {
99804	c.ctx_ = ctx
99805	return c
99806}
99807
99808// Header returns an http.Header that can be modified by the caller to
99809// add HTTP headers to the request.
99810func (c *NodeTypesGetCall) Header() http.Header {
99811	if c.header_ == nil {
99812		c.header_ = make(http.Header)
99813	}
99814	return c.header_
99815}
99816
99817func (c *NodeTypesGetCall) doRequest(alt string) (*http.Response, error) {
99818	reqHeaders := make(http.Header)
99819	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
99820	for k, v := range c.header_ {
99821		reqHeaders[k] = v
99822	}
99823	reqHeaders.Set("User-Agent", c.s.userAgent())
99824	if c.ifNoneMatch_ != "" {
99825		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
99826	}
99827	var body io.Reader = nil
99828	c.urlParams_.Set("alt", alt)
99829	c.urlParams_.Set("prettyPrint", "false")
99830	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes/{nodeType}")
99831	urls += "?" + c.urlParams_.Encode()
99832	req, err := http.NewRequest("GET", urls, body)
99833	if err != nil {
99834		return nil, err
99835	}
99836	req.Header = reqHeaders
99837	googleapi.Expand(req.URL, map[string]string{
99838		"project":  c.project,
99839		"zone":     c.zone,
99840		"nodeType": c.nodeType,
99841	})
99842	return gensupport.SendRequest(c.ctx_, c.s.client, req)
99843}
99844
99845// Do executes the "compute.nodeTypes.get" call.
99846// Exactly one of *NodeType or error will be non-nil. Any non-2xx status
99847// code is an error. Response headers are in either
99848// *NodeType.ServerResponse.Header or (if a response was returned at
99849// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
99850// to check whether the returned error was because
99851// http.StatusNotModified was returned.
99852func (c *NodeTypesGetCall) Do(opts ...googleapi.CallOption) (*NodeType, error) {
99853	gensupport.SetOptions(c.urlParams_, opts...)
99854	res, err := c.doRequest("json")
99855	if res != nil && res.StatusCode == http.StatusNotModified {
99856		if res.Body != nil {
99857			res.Body.Close()
99858		}
99859		return nil, &googleapi.Error{
99860			Code:   res.StatusCode,
99861			Header: res.Header,
99862		}
99863	}
99864	if err != nil {
99865		return nil, err
99866	}
99867	defer googleapi.CloseBody(res)
99868	if err := googleapi.CheckResponse(res); err != nil {
99869		return nil, err
99870	}
99871	ret := &NodeType{
99872		ServerResponse: googleapi.ServerResponse{
99873			Header:         res.Header,
99874			HTTPStatusCode: res.StatusCode,
99875		},
99876	}
99877	target := &ret
99878	if err := gensupport.DecodeResponse(target, res); err != nil {
99879		return nil, err
99880	}
99881	return ret, nil
99882	// {
99883	//   "description": "Returns the specified node type. Gets a list of available node types by making a list() request.",
99884	//   "httpMethod": "GET",
99885	//   "id": "compute.nodeTypes.get",
99886	//   "parameterOrder": [
99887	//     "project",
99888	//     "zone",
99889	//     "nodeType"
99890	//   ],
99891	//   "parameters": {
99892	//     "nodeType": {
99893	//       "description": "Name of the node type to return.",
99894	//       "location": "path",
99895	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
99896	//       "required": true,
99897	//       "type": "string"
99898	//     },
99899	//     "project": {
99900	//       "description": "Project ID for this request.",
99901	//       "location": "path",
99902	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
99903	//       "required": true,
99904	//       "type": "string"
99905	//     },
99906	//     "zone": {
99907	//       "description": "The name of the zone for this request.",
99908	//       "location": "path",
99909	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
99910	//       "required": true,
99911	//       "type": "string"
99912	//     }
99913	//   },
99914	//   "path": "{project}/zones/{zone}/nodeTypes/{nodeType}",
99915	//   "response": {
99916	//     "$ref": "NodeType"
99917	//   },
99918	//   "scopes": [
99919	//     "https://www.googleapis.com/auth/cloud-platform",
99920	//     "https://www.googleapis.com/auth/compute",
99921	//     "https://www.googleapis.com/auth/compute.readonly"
99922	//   ]
99923	// }
99924
99925}
99926
99927// method id "compute.nodeTypes.list":
99928
99929type NodeTypesListCall struct {
99930	s            *Service
99931	project      string
99932	zone         string
99933	urlParams_   gensupport.URLParams
99934	ifNoneMatch_ string
99935	ctx_         context.Context
99936	header_      http.Header
99937}
99938
99939// List: Retrieves a list of node types available to the specified
99940// project.
99941func (r *NodeTypesService) List(project string, zone string) *NodeTypesListCall {
99942	c := &NodeTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
99943	c.project = project
99944	c.zone = zone
99945	return c
99946}
99947
99948// Filter sets the optional parameter "filter": A filter expression that
99949// filters resources listed in the response. The expression must specify
99950// the field name, a comparison operator, and the value that you want to
99951// use for filtering. The value must be a string, a number, or a
99952// boolean. The comparison operator must be either =, !=, >, or <.
99953//
99954// For example, if you are filtering Compute Engine instances, you can
99955// exclude instances named example-instance by specifying name !=
99956// example-instance.
99957//
99958// You can also filter nested fields. For example, you could specify
99959// scheduling.automaticRestart = false to include instances only if they
99960// are not scheduled for automatic restarts. You can use filtering on
99961// nested fields to filter based on resource labels.
99962//
99963// To filter on multiple expressions, provide each separate expression
99964// within parentheses. For example, (scheduling.automaticRestart = true)
99965// (cpuPlatform = "Intel Skylake"). By default, each expression is an
99966// AND expression. However, you can include AND and OR expressions
99967// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
99968// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
99969// true).
99970func (c *NodeTypesListCall) Filter(filter string) *NodeTypesListCall {
99971	c.urlParams_.Set("filter", filter)
99972	return c
99973}
99974
99975// MaxResults sets the optional parameter "maxResults": The maximum
99976// number of results per page that should be returned. If the number of
99977// available results is larger than maxResults, Compute Engine returns a
99978// nextPageToken that can be used to get the next page of results in
99979// subsequent list requests. Acceptable values are 0 to 500, inclusive.
99980// (Default: 500)
99981func (c *NodeTypesListCall) MaxResults(maxResults int64) *NodeTypesListCall {
99982	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
99983	return c
99984}
99985
99986// OrderBy sets the optional parameter "orderBy": Sorts list results by
99987// a certain order. By default, results are returned in alphanumerical
99988// order based on the resource name.
99989//
99990// You can also sort results in descending order based on the creation
99991// timestamp using orderBy="creationTimestamp desc". This sorts results
99992// based on the creationTimestamp field in reverse chronological order
99993// (newest result first). Use this to sort resources like operations so
99994// that the newest operation is returned first.
99995//
99996// Currently, only sorting by name or creationTimestamp desc is
99997// supported.
99998func (c *NodeTypesListCall) OrderBy(orderBy string) *NodeTypesListCall {
99999	c.urlParams_.Set("orderBy", orderBy)
100000	return c
100001}
100002
100003// PageToken sets the optional parameter "pageToken": Specifies a page
100004// token to use. Set pageToken to the nextPageToken returned by a
100005// previous list request to get the next page of results.
100006func (c *NodeTypesListCall) PageToken(pageToken string) *NodeTypesListCall {
100007	c.urlParams_.Set("pageToken", pageToken)
100008	return c
100009}
100010
100011// Fields allows partial responses to be retrieved. See
100012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100013// for more information.
100014func (c *NodeTypesListCall) Fields(s ...googleapi.Field) *NodeTypesListCall {
100015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100016	return c
100017}
100018
100019// IfNoneMatch sets the optional parameter which makes the operation
100020// fail if the object's ETag matches the given value. This is useful for
100021// getting updates only after the object has changed since the last
100022// request. Use googleapi.IsNotModified to check whether the response
100023// error from Do is the result of In-None-Match.
100024func (c *NodeTypesListCall) IfNoneMatch(entityTag string) *NodeTypesListCall {
100025	c.ifNoneMatch_ = entityTag
100026	return c
100027}
100028
100029// Context sets the context to be used in this call's Do method. Any
100030// pending HTTP request will be aborted if the provided context is
100031// canceled.
100032func (c *NodeTypesListCall) Context(ctx context.Context) *NodeTypesListCall {
100033	c.ctx_ = ctx
100034	return c
100035}
100036
100037// Header returns an http.Header that can be modified by the caller to
100038// add HTTP headers to the request.
100039func (c *NodeTypesListCall) Header() http.Header {
100040	if c.header_ == nil {
100041		c.header_ = make(http.Header)
100042	}
100043	return c.header_
100044}
100045
100046func (c *NodeTypesListCall) doRequest(alt string) (*http.Response, error) {
100047	reqHeaders := make(http.Header)
100048	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100049	for k, v := range c.header_ {
100050		reqHeaders[k] = v
100051	}
100052	reqHeaders.Set("User-Agent", c.s.userAgent())
100053	if c.ifNoneMatch_ != "" {
100054		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100055	}
100056	var body io.Reader = nil
100057	c.urlParams_.Set("alt", alt)
100058	c.urlParams_.Set("prettyPrint", "false")
100059	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/nodeTypes")
100060	urls += "?" + c.urlParams_.Encode()
100061	req, err := http.NewRequest("GET", urls, body)
100062	if err != nil {
100063		return nil, err
100064	}
100065	req.Header = reqHeaders
100066	googleapi.Expand(req.URL, map[string]string{
100067		"project": c.project,
100068		"zone":    c.zone,
100069	})
100070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100071}
100072
100073// Do executes the "compute.nodeTypes.list" call.
100074// Exactly one of *NodeTypeList or error will be non-nil. Any non-2xx
100075// status code is an error. Response headers are in either
100076// *NodeTypeList.ServerResponse.Header or (if a response was returned at
100077// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100078// to check whether the returned error was because
100079// http.StatusNotModified was returned.
100080func (c *NodeTypesListCall) Do(opts ...googleapi.CallOption) (*NodeTypeList, error) {
100081	gensupport.SetOptions(c.urlParams_, opts...)
100082	res, err := c.doRequest("json")
100083	if res != nil && res.StatusCode == http.StatusNotModified {
100084		if res.Body != nil {
100085			res.Body.Close()
100086		}
100087		return nil, &googleapi.Error{
100088			Code:   res.StatusCode,
100089			Header: res.Header,
100090		}
100091	}
100092	if err != nil {
100093		return nil, err
100094	}
100095	defer googleapi.CloseBody(res)
100096	if err := googleapi.CheckResponse(res); err != nil {
100097		return nil, err
100098	}
100099	ret := &NodeTypeList{
100100		ServerResponse: googleapi.ServerResponse{
100101			Header:         res.Header,
100102			HTTPStatusCode: res.StatusCode,
100103		},
100104	}
100105	target := &ret
100106	if err := gensupport.DecodeResponse(target, res); err != nil {
100107		return nil, err
100108	}
100109	return ret, nil
100110	// {
100111	//   "description": "Retrieves a list of node types available to the specified project.",
100112	//   "httpMethod": "GET",
100113	//   "id": "compute.nodeTypes.list",
100114	//   "parameterOrder": [
100115	//     "project",
100116	//     "zone"
100117	//   ],
100118	//   "parameters": {
100119	//     "filter": {
100120	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
100121	//       "location": "query",
100122	//       "type": "string"
100123	//     },
100124	//     "maxResults": {
100125	//       "default": "500",
100126	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
100127	//       "format": "uint32",
100128	//       "location": "query",
100129	//       "minimum": "0",
100130	//       "type": "integer"
100131	//     },
100132	//     "orderBy": {
100133	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
100134	//       "location": "query",
100135	//       "type": "string"
100136	//     },
100137	//     "pageToken": {
100138	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
100139	//       "location": "query",
100140	//       "type": "string"
100141	//     },
100142	//     "project": {
100143	//       "description": "Project ID for this request.",
100144	//       "location": "path",
100145	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100146	//       "required": true,
100147	//       "type": "string"
100148	//     },
100149	//     "zone": {
100150	//       "description": "The name of the zone for this request.",
100151	//       "location": "path",
100152	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100153	//       "required": true,
100154	//       "type": "string"
100155	//     }
100156	//   },
100157	//   "path": "{project}/zones/{zone}/nodeTypes",
100158	//   "response": {
100159	//     "$ref": "NodeTypeList"
100160	//   },
100161	//   "scopes": [
100162	//     "https://www.googleapis.com/auth/cloud-platform",
100163	//     "https://www.googleapis.com/auth/compute",
100164	//     "https://www.googleapis.com/auth/compute.readonly"
100165	//   ]
100166	// }
100167
100168}
100169
100170// Pages invokes f for each page of results.
100171// A non-nil error returned from f will halt the iteration.
100172// The provided context supersedes any context provided to the Context method.
100173func (c *NodeTypesListCall) Pages(ctx context.Context, f func(*NodeTypeList) error) error {
100174	c.ctx_ = ctx
100175	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100176	for {
100177		x, err := c.Do()
100178		if err != nil {
100179			return err
100180		}
100181		if err := f(x); err != nil {
100182			return err
100183		}
100184		if x.NextPageToken == "" {
100185			return nil
100186		}
100187		c.PageToken(x.NextPageToken)
100188	}
100189}
100190
100191// method id "compute.packetMirrorings.aggregatedList":
100192
100193type PacketMirroringsAggregatedListCall struct {
100194	s            *Service
100195	project      string
100196	urlParams_   gensupport.URLParams
100197	ifNoneMatch_ string
100198	ctx_         context.Context
100199	header_      http.Header
100200}
100201
100202// AggregatedList: Retrieves an aggregated list of packetMirrorings.
100203func (r *PacketMirroringsService) AggregatedList(project string) *PacketMirroringsAggregatedListCall {
100204	c := &PacketMirroringsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100205	c.project = project
100206	return c
100207}
100208
100209// Filter sets the optional parameter "filter": A filter expression that
100210// filters resources listed in the response. The expression must specify
100211// the field name, a comparison operator, and the value that you want to
100212// use for filtering. The value must be a string, a number, or a
100213// boolean. The comparison operator must be either =, !=, >, or <.
100214//
100215// For example, if you are filtering Compute Engine instances, you can
100216// exclude instances named example-instance by specifying name !=
100217// example-instance.
100218//
100219// You can also filter nested fields. For example, you could specify
100220// scheduling.automaticRestart = false to include instances only if they
100221// are not scheduled for automatic restarts. You can use filtering on
100222// nested fields to filter based on resource labels.
100223//
100224// To filter on multiple expressions, provide each separate expression
100225// within parentheses. For example, (scheduling.automaticRestart = true)
100226// (cpuPlatform = "Intel Skylake"). By default, each expression is an
100227// AND expression. However, you can include AND and OR expressions
100228// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
100229// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
100230// true).
100231func (c *PacketMirroringsAggregatedListCall) Filter(filter string) *PacketMirroringsAggregatedListCall {
100232	c.urlParams_.Set("filter", filter)
100233	return c
100234}
100235
100236// IncludeAllScopes sets the optional parameter "includeAllScopes":
100237// Indicates whether every visible scope for each scope type (zone,
100238// region, global) should be included in the response. For new resource
100239// types added after this field, the flag has no effect as new resource
100240// types will always include every visible scope for each scope type in
100241// response. For resource types which predate this field, if this flag
100242// is omitted or false, only scopes of the scope types where the
100243// resource type is expected to be found will be included.
100244func (c *PacketMirroringsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *PacketMirroringsAggregatedListCall {
100245	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
100246	return c
100247}
100248
100249// MaxResults sets the optional parameter "maxResults": The maximum
100250// number of results per page that should be returned. If the number of
100251// available results is larger than maxResults, Compute Engine returns a
100252// nextPageToken that can be used to get the next page of results in
100253// subsequent list requests. Acceptable values are 0 to 500, inclusive.
100254// (Default: 500)
100255func (c *PacketMirroringsAggregatedListCall) MaxResults(maxResults int64) *PacketMirroringsAggregatedListCall {
100256	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
100257	return c
100258}
100259
100260// OrderBy sets the optional parameter "orderBy": Sorts list results by
100261// a certain order. By default, results are returned in alphanumerical
100262// order based on the resource name.
100263//
100264// You can also sort results in descending order based on the creation
100265// timestamp using orderBy="creationTimestamp desc". This sorts results
100266// based on the creationTimestamp field in reverse chronological order
100267// (newest result first). Use this to sort resources like operations so
100268// that the newest operation is returned first.
100269//
100270// Currently, only sorting by name or creationTimestamp desc is
100271// supported.
100272func (c *PacketMirroringsAggregatedListCall) OrderBy(orderBy string) *PacketMirroringsAggregatedListCall {
100273	c.urlParams_.Set("orderBy", orderBy)
100274	return c
100275}
100276
100277// PageToken sets the optional parameter "pageToken": Specifies a page
100278// token to use. Set pageToken to the nextPageToken returned by a
100279// previous list request to get the next page of results.
100280func (c *PacketMirroringsAggregatedListCall) PageToken(pageToken string) *PacketMirroringsAggregatedListCall {
100281	c.urlParams_.Set("pageToken", pageToken)
100282	return c
100283}
100284
100285// Fields allows partial responses to be retrieved. See
100286// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100287// for more information.
100288func (c *PacketMirroringsAggregatedListCall) Fields(s ...googleapi.Field) *PacketMirroringsAggregatedListCall {
100289	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100290	return c
100291}
100292
100293// IfNoneMatch sets the optional parameter which makes the operation
100294// fail if the object's ETag matches the given value. This is useful for
100295// getting updates only after the object has changed since the last
100296// request. Use googleapi.IsNotModified to check whether the response
100297// error from Do is the result of In-None-Match.
100298func (c *PacketMirroringsAggregatedListCall) IfNoneMatch(entityTag string) *PacketMirroringsAggregatedListCall {
100299	c.ifNoneMatch_ = entityTag
100300	return c
100301}
100302
100303// Context sets the context to be used in this call's Do method. Any
100304// pending HTTP request will be aborted if the provided context is
100305// canceled.
100306func (c *PacketMirroringsAggregatedListCall) Context(ctx context.Context) *PacketMirroringsAggregatedListCall {
100307	c.ctx_ = ctx
100308	return c
100309}
100310
100311// Header returns an http.Header that can be modified by the caller to
100312// add HTTP headers to the request.
100313func (c *PacketMirroringsAggregatedListCall) Header() http.Header {
100314	if c.header_ == nil {
100315		c.header_ = make(http.Header)
100316	}
100317	return c.header_
100318}
100319
100320func (c *PacketMirroringsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
100321	reqHeaders := make(http.Header)
100322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100323	for k, v := range c.header_ {
100324		reqHeaders[k] = v
100325	}
100326	reqHeaders.Set("User-Agent", c.s.userAgent())
100327	if c.ifNoneMatch_ != "" {
100328		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100329	}
100330	var body io.Reader = nil
100331	c.urlParams_.Set("alt", alt)
100332	c.urlParams_.Set("prettyPrint", "false")
100333	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/packetMirrorings")
100334	urls += "?" + c.urlParams_.Encode()
100335	req, err := http.NewRequest("GET", urls, body)
100336	if err != nil {
100337		return nil, err
100338	}
100339	req.Header = reqHeaders
100340	googleapi.Expand(req.URL, map[string]string{
100341		"project": c.project,
100342	})
100343	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100344}
100345
100346// Do executes the "compute.packetMirrorings.aggregatedList" call.
100347// Exactly one of *PacketMirroringAggregatedList or error will be
100348// non-nil. Any non-2xx status code is an error. Response headers are in
100349// either *PacketMirroringAggregatedList.ServerResponse.Header or (if a
100350// response was returned at all) in error.(*googleapi.Error).Header. Use
100351// googleapi.IsNotModified to check whether the returned error was
100352// because http.StatusNotModified was returned.
100353func (c *PacketMirroringsAggregatedListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringAggregatedList, error) {
100354	gensupport.SetOptions(c.urlParams_, opts...)
100355	res, err := c.doRequest("json")
100356	if res != nil && res.StatusCode == http.StatusNotModified {
100357		if res.Body != nil {
100358			res.Body.Close()
100359		}
100360		return nil, &googleapi.Error{
100361			Code:   res.StatusCode,
100362			Header: res.Header,
100363		}
100364	}
100365	if err != nil {
100366		return nil, err
100367	}
100368	defer googleapi.CloseBody(res)
100369	if err := googleapi.CheckResponse(res); err != nil {
100370		return nil, err
100371	}
100372	ret := &PacketMirroringAggregatedList{
100373		ServerResponse: googleapi.ServerResponse{
100374			Header:         res.Header,
100375			HTTPStatusCode: res.StatusCode,
100376		},
100377	}
100378	target := &ret
100379	if err := gensupport.DecodeResponse(target, res); err != nil {
100380		return nil, err
100381	}
100382	return ret, nil
100383	// {
100384	//   "description": "Retrieves an aggregated list of packetMirrorings.",
100385	//   "httpMethod": "GET",
100386	//   "id": "compute.packetMirrorings.aggregatedList",
100387	//   "parameterOrder": [
100388	//     "project"
100389	//   ],
100390	//   "parameters": {
100391	//     "filter": {
100392	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
100393	//       "location": "query",
100394	//       "type": "string"
100395	//     },
100396	//     "includeAllScopes": {
100397	//       "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.",
100398	//       "location": "query",
100399	//       "type": "boolean"
100400	//     },
100401	//     "maxResults": {
100402	//       "default": "500",
100403	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
100404	//       "format": "uint32",
100405	//       "location": "query",
100406	//       "minimum": "0",
100407	//       "type": "integer"
100408	//     },
100409	//     "orderBy": {
100410	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
100411	//       "location": "query",
100412	//       "type": "string"
100413	//     },
100414	//     "pageToken": {
100415	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
100416	//       "location": "query",
100417	//       "type": "string"
100418	//     },
100419	//     "project": {
100420	//       "description": "Project ID for this request.",
100421	//       "location": "path",
100422	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100423	//       "required": true,
100424	//       "type": "string"
100425	//     }
100426	//   },
100427	//   "path": "{project}/aggregated/packetMirrorings",
100428	//   "response": {
100429	//     "$ref": "PacketMirroringAggregatedList"
100430	//   },
100431	//   "scopes": [
100432	//     "https://www.googleapis.com/auth/cloud-platform",
100433	//     "https://www.googleapis.com/auth/compute",
100434	//     "https://www.googleapis.com/auth/compute.readonly"
100435	//   ]
100436	// }
100437
100438}
100439
100440// Pages invokes f for each page of results.
100441// A non-nil error returned from f will halt the iteration.
100442// The provided context supersedes any context provided to the Context method.
100443func (c *PacketMirroringsAggregatedListCall) Pages(ctx context.Context, f func(*PacketMirroringAggregatedList) error) error {
100444	c.ctx_ = ctx
100445	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
100446	for {
100447		x, err := c.Do()
100448		if err != nil {
100449			return err
100450		}
100451		if err := f(x); err != nil {
100452			return err
100453		}
100454		if x.NextPageToken == "" {
100455			return nil
100456		}
100457		c.PageToken(x.NextPageToken)
100458	}
100459}
100460
100461// method id "compute.packetMirrorings.delete":
100462
100463type PacketMirroringsDeleteCall struct {
100464	s               *Service
100465	project         string
100466	region          string
100467	packetMirroring string
100468	urlParams_      gensupport.URLParams
100469	ctx_            context.Context
100470	header_         http.Header
100471}
100472
100473// Delete: Deletes the specified PacketMirroring resource.
100474func (r *PacketMirroringsService) Delete(project string, region string, packetMirroring string) *PacketMirroringsDeleteCall {
100475	c := &PacketMirroringsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100476	c.project = project
100477	c.region = region
100478	c.packetMirroring = packetMirroring
100479	return c
100480}
100481
100482// RequestId sets the optional parameter "requestId": An optional
100483// request ID to identify requests. Specify a unique request ID so that
100484// if you must retry your request, the server will know to ignore the
100485// request if it has already been completed.
100486//
100487// For example, consider a situation where you make an initial request
100488// and the request times out. If you make the request again with the
100489// same request ID, the server can check if original operation with the
100490// same request ID was received, and if so, will ignore the second
100491// request. This prevents clients from accidentally creating duplicate
100492// commitments.
100493//
100494// The request ID must be a valid UUID with the exception that zero UUID
100495// is not supported (00000000-0000-0000-0000-000000000000).
100496func (c *PacketMirroringsDeleteCall) RequestId(requestId string) *PacketMirroringsDeleteCall {
100497	c.urlParams_.Set("requestId", requestId)
100498	return c
100499}
100500
100501// Fields allows partial responses to be retrieved. See
100502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100503// for more information.
100504func (c *PacketMirroringsDeleteCall) Fields(s ...googleapi.Field) *PacketMirroringsDeleteCall {
100505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100506	return c
100507}
100508
100509// Context sets the context to be used in this call's Do method. Any
100510// pending HTTP request will be aborted if the provided context is
100511// canceled.
100512func (c *PacketMirroringsDeleteCall) Context(ctx context.Context) *PacketMirroringsDeleteCall {
100513	c.ctx_ = ctx
100514	return c
100515}
100516
100517// Header returns an http.Header that can be modified by the caller to
100518// add HTTP headers to the request.
100519func (c *PacketMirroringsDeleteCall) Header() http.Header {
100520	if c.header_ == nil {
100521		c.header_ = make(http.Header)
100522	}
100523	return c.header_
100524}
100525
100526func (c *PacketMirroringsDeleteCall) doRequest(alt string) (*http.Response, error) {
100527	reqHeaders := make(http.Header)
100528	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100529	for k, v := range c.header_ {
100530		reqHeaders[k] = v
100531	}
100532	reqHeaders.Set("User-Agent", c.s.userAgent())
100533	var body io.Reader = nil
100534	c.urlParams_.Set("alt", alt)
100535	c.urlParams_.Set("prettyPrint", "false")
100536	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
100537	urls += "?" + c.urlParams_.Encode()
100538	req, err := http.NewRequest("DELETE", urls, body)
100539	if err != nil {
100540		return nil, err
100541	}
100542	req.Header = reqHeaders
100543	googleapi.Expand(req.URL, map[string]string{
100544		"project":         c.project,
100545		"region":          c.region,
100546		"packetMirroring": c.packetMirroring,
100547	})
100548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100549}
100550
100551// Do executes the "compute.packetMirrorings.delete" call.
100552// Exactly one of *Operation or error will be non-nil. Any non-2xx
100553// status code is an error. Response headers are in either
100554// *Operation.ServerResponse.Header or (if a response was returned at
100555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100556// to check whether the returned error was because
100557// http.StatusNotModified was returned.
100558func (c *PacketMirroringsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100559	gensupport.SetOptions(c.urlParams_, opts...)
100560	res, err := c.doRequest("json")
100561	if res != nil && res.StatusCode == http.StatusNotModified {
100562		if res.Body != nil {
100563			res.Body.Close()
100564		}
100565		return nil, &googleapi.Error{
100566			Code:   res.StatusCode,
100567			Header: res.Header,
100568		}
100569	}
100570	if err != nil {
100571		return nil, err
100572	}
100573	defer googleapi.CloseBody(res)
100574	if err := googleapi.CheckResponse(res); err != nil {
100575		return nil, err
100576	}
100577	ret := &Operation{
100578		ServerResponse: googleapi.ServerResponse{
100579			Header:         res.Header,
100580			HTTPStatusCode: res.StatusCode,
100581		},
100582	}
100583	target := &ret
100584	if err := gensupport.DecodeResponse(target, res); err != nil {
100585		return nil, err
100586	}
100587	return ret, nil
100588	// {
100589	//   "description": "Deletes the specified PacketMirroring resource.",
100590	//   "httpMethod": "DELETE",
100591	//   "id": "compute.packetMirrorings.delete",
100592	//   "parameterOrder": [
100593	//     "project",
100594	//     "region",
100595	//     "packetMirroring"
100596	//   ],
100597	//   "parameters": {
100598	//     "packetMirroring": {
100599	//       "description": "Name of the PacketMirroring resource to delete.",
100600	//       "location": "path",
100601	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100602	//       "required": true,
100603	//       "type": "string"
100604	//     },
100605	//     "project": {
100606	//       "description": "Project ID for this request.",
100607	//       "location": "path",
100608	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100609	//       "required": true,
100610	//       "type": "string"
100611	//     },
100612	//     "region": {
100613	//       "description": "Name of the region for this request.",
100614	//       "location": "path",
100615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100616	//       "required": true,
100617	//       "type": "string"
100618	//     },
100619	//     "requestId": {
100620	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100621	//       "location": "query",
100622	//       "type": "string"
100623	//     }
100624	//   },
100625	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
100626	//   "response": {
100627	//     "$ref": "Operation"
100628	//   },
100629	//   "scopes": [
100630	//     "https://www.googleapis.com/auth/cloud-platform",
100631	//     "https://www.googleapis.com/auth/compute"
100632	//   ]
100633	// }
100634
100635}
100636
100637// method id "compute.packetMirrorings.get":
100638
100639type PacketMirroringsGetCall struct {
100640	s               *Service
100641	project         string
100642	region          string
100643	packetMirroring string
100644	urlParams_      gensupport.URLParams
100645	ifNoneMatch_    string
100646	ctx_            context.Context
100647	header_         http.Header
100648}
100649
100650// Get: Returns the specified PacketMirroring resource.
100651func (r *PacketMirroringsService) Get(project string, region string, packetMirroring string) *PacketMirroringsGetCall {
100652	c := &PacketMirroringsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100653	c.project = project
100654	c.region = region
100655	c.packetMirroring = packetMirroring
100656	return c
100657}
100658
100659// Fields allows partial responses to be retrieved. See
100660// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100661// for more information.
100662func (c *PacketMirroringsGetCall) Fields(s ...googleapi.Field) *PacketMirroringsGetCall {
100663	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100664	return c
100665}
100666
100667// IfNoneMatch sets the optional parameter which makes the operation
100668// fail if the object's ETag matches the given value. This is useful for
100669// getting updates only after the object has changed since the last
100670// request. Use googleapi.IsNotModified to check whether the response
100671// error from Do is the result of In-None-Match.
100672func (c *PacketMirroringsGetCall) IfNoneMatch(entityTag string) *PacketMirroringsGetCall {
100673	c.ifNoneMatch_ = entityTag
100674	return c
100675}
100676
100677// Context sets the context to be used in this call's Do method. Any
100678// pending HTTP request will be aborted if the provided context is
100679// canceled.
100680func (c *PacketMirroringsGetCall) Context(ctx context.Context) *PacketMirroringsGetCall {
100681	c.ctx_ = ctx
100682	return c
100683}
100684
100685// Header returns an http.Header that can be modified by the caller to
100686// add HTTP headers to the request.
100687func (c *PacketMirroringsGetCall) Header() http.Header {
100688	if c.header_ == nil {
100689		c.header_ = make(http.Header)
100690	}
100691	return c.header_
100692}
100693
100694func (c *PacketMirroringsGetCall) doRequest(alt string) (*http.Response, error) {
100695	reqHeaders := make(http.Header)
100696	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100697	for k, v := range c.header_ {
100698		reqHeaders[k] = v
100699	}
100700	reqHeaders.Set("User-Agent", c.s.userAgent())
100701	if c.ifNoneMatch_ != "" {
100702		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
100703	}
100704	var body io.Reader = nil
100705	c.urlParams_.Set("alt", alt)
100706	c.urlParams_.Set("prettyPrint", "false")
100707	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
100708	urls += "?" + c.urlParams_.Encode()
100709	req, err := http.NewRequest("GET", urls, body)
100710	if err != nil {
100711		return nil, err
100712	}
100713	req.Header = reqHeaders
100714	googleapi.Expand(req.URL, map[string]string{
100715		"project":         c.project,
100716		"region":          c.region,
100717		"packetMirroring": c.packetMirroring,
100718	})
100719	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100720}
100721
100722// Do executes the "compute.packetMirrorings.get" call.
100723// Exactly one of *PacketMirroring or error will be non-nil. Any non-2xx
100724// status code is an error. Response headers are in either
100725// *PacketMirroring.ServerResponse.Header or (if a response was returned
100726// at all) in error.(*googleapi.Error).Header. Use
100727// googleapi.IsNotModified to check whether the returned error was
100728// because http.StatusNotModified was returned.
100729func (c *PacketMirroringsGetCall) Do(opts ...googleapi.CallOption) (*PacketMirroring, error) {
100730	gensupport.SetOptions(c.urlParams_, opts...)
100731	res, err := c.doRequest("json")
100732	if res != nil && res.StatusCode == http.StatusNotModified {
100733		if res.Body != nil {
100734			res.Body.Close()
100735		}
100736		return nil, &googleapi.Error{
100737			Code:   res.StatusCode,
100738			Header: res.Header,
100739		}
100740	}
100741	if err != nil {
100742		return nil, err
100743	}
100744	defer googleapi.CloseBody(res)
100745	if err := googleapi.CheckResponse(res); err != nil {
100746		return nil, err
100747	}
100748	ret := &PacketMirroring{
100749		ServerResponse: googleapi.ServerResponse{
100750			Header:         res.Header,
100751			HTTPStatusCode: res.StatusCode,
100752		},
100753	}
100754	target := &ret
100755	if err := gensupport.DecodeResponse(target, res); err != nil {
100756		return nil, err
100757	}
100758	return ret, nil
100759	// {
100760	//   "description": "Returns the specified PacketMirroring resource.",
100761	//   "httpMethod": "GET",
100762	//   "id": "compute.packetMirrorings.get",
100763	//   "parameterOrder": [
100764	//     "project",
100765	//     "region",
100766	//     "packetMirroring"
100767	//   ],
100768	//   "parameters": {
100769	//     "packetMirroring": {
100770	//       "description": "Name of the PacketMirroring resource to return.",
100771	//       "location": "path",
100772	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
100773	//       "required": true,
100774	//       "type": "string"
100775	//     },
100776	//     "project": {
100777	//       "description": "Project ID for this request.",
100778	//       "location": "path",
100779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100780	//       "required": true,
100781	//       "type": "string"
100782	//     },
100783	//     "region": {
100784	//       "description": "Name of the region for this request.",
100785	//       "location": "path",
100786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100787	//       "required": true,
100788	//       "type": "string"
100789	//     }
100790	//   },
100791	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
100792	//   "response": {
100793	//     "$ref": "PacketMirroring"
100794	//   },
100795	//   "scopes": [
100796	//     "https://www.googleapis.com/auth/cloud-platform",
100797	//     "https://www.googleapis.com/auth/compute",
100798	//     "https://www.googleapis.com/auth/compute.readonly"
100799	//   ]
100800	// }
100801
100802}
100803
100804// method id "compute.packetMirrorings.insert":
100805
100806type PacketMirroringsInsertCall struct {
100807	s               *Service
100808	project         string
100809	region          string
100810	packetmirroring *PacketMirroring
100811	urlParams_      gensupport.URLParams
100812	ctx_            context.Context
100813	header_         http.Header
100814}
100815
100816// Insert: Creates a PacketMirroring resource in the specified project
100817// and region using the data included in the request.
100818func (r *PacketMirroringsService) Insert(project string, region string, packetmirroring *PacketMirroring) *PacketMirroringsInsertCall {
100819	c := &PacketMirroringsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100820	c.project = project
100821	c.region = region
100822	c.packetmirroring = packetmirroring
100823	return c
100824}
100825
100826// RequestId sets the optional parameter "requestId": An optional
100827// request ID to identify requests. Specify a unique request ID so that
100828// if you must retry your request, the server will know to ignore the
100829// request if it has already been completed.
100830//
100831// For example, consider a situation where you make an initial request
100832// and the request times out. If you make the request again with the
100833// same request ID, the server can check if original operation with the
100834// same request ID was received, and if so, will ignore the second
100835// request. This prevents clients from accidentally creating duplicate
100836// commitments.
100837//
100838// The request ID must be a valid UUID with the exception that zero UUID
100839// is not supported (00000000-0000-0000-0000-000000000000).
100840func (c *PacketMirroringsInsertCall) RequestId(requestId string) *PacketMirroringsInsertCall {
100841	c.urlParams_.Set("requestId", requestId)
100842	return c
100843}
100844
100845// Fields allows partial responses to be retrieved. See
100846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
100847// for more information.
100848func (c *PacketMirroringsInsertCall) Fields(s ...googleapi.Field) *PacketMirroringsInsertCall {
100849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
100850	return c
100851}
100852
100853// Context sets the context to be used in this call's Do method. Any
100854// pending HTTP request will be aborted if the provided context is
100855// canceled.
100856func (c *PacketMirroringsInsertCall) Context(ctx context.Context) *PacketMirroringsInsertCall {
100857	c.ctx_ = ctx
100858	return c
100859}
100860
100861// Header returns an http.Header that can be modified by the caller to
100862// add HTTP headers to the request.
100863func (c *PacketMirroringsInsertCall) Header() http.Header {
100864	if c.header_ == nil {
100865		c.header_ = make(http.Header)
100866	}
100867	return c.header_
100868}
100869
100870func (c *PacketMirroringsInsertCall) doRequest(alt string) (*http.Response, error) {
100871	reqHeaders := make(http.Header)
100872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
100873	for k, v := range c.header_ {
100874		reqHeaders[k] = v
100875	}
100876	reqHeaders.Set("User-Agent", c.s.userAgent())
100877	var body io.Reader = nil
100878	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
100879	if err != nil {
100880		return nil, err
100881	}
100882	reqHeaders.Set("Content-Type", "application/json")
100883	c.urlParams_.Set("alt", alt)
100884	c.urlParams_.Set("prettyPrint", "false")
100885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
100886	urls += "?" + c.urlParams_.Encode()
100887	req, err := http.NewRequest("POST", urls, body)
100888	if err != nil {
100889		return nil, err
100890	}
100891	req.Header = reqHeaders
100892	googleapi.Expand(req.URL, map[string]string{
100893		"project": c.project,
100894		"region":  c.region,
100895	})
100896	return gensupport.SendRequest(c.ctx_, c.s.client, req)
100897}
100898
100899// Do executes the "compute.packetMirrorings.insert" call.
100900// Exactly one of *Operation or error will be non-nil. Any non-2xx
100901// status code is an error. Response headers are in either
100902// *Operation.ServerResponse.Header or (if a response was returned at
100903// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
100904// to check whether the returned error was because
100905// http.StatusNotModified was returned.
100906func (c *PacketMirroringsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
100907	gensupport.SetOptions(c.urlParams_, opts...)
100908	res, err := c.doRequest("json")
100909	if res != nil && res.StatusCode == http.StatusNotModified {
100910		if res.Body != nil {
100911			res.Body.Close()
100912		}
100913		return nil, &googleapi.Error{
100914			Code:   res.StatusCode,
100915			Header: res.Header,
100916		}
100917	}
100918	if err != nil {
100919		return nil, err
100920	}
100921	defer googleapi.CloseBody(res)
100922	if err := googleapi.CheckResponse(res); err != nil {
100923		return nil, err
100924	}
100925	ret := &Operation{
100926		ServerResponse: googleapi.ServerResponse{
100927			Header:         res.Header,
100928			HTTPStatusCode: res.StatusCode,
100929		},
100930	}
100931	target := &ret
100932	if err := gensupport.DecodeResponse(target, res); err != nil {
100933		return nil, err
100934	}
100935	return ret, nil
100936	// {
100937	//   "description": "Creates a PacketMirroring resource in the specified project and region using the data included in the request.",
100938	//   "httpMethod": "POST",
100939	//   "id": "compute.packetMirrorings.insert",
100940	//   "parameterOrder": [
100941	//     "project",
100942	//     "region"
100943	//   ],
100944	//   "parameters": {
100945	//     "project": {
100946	//       "description": "Project ID for this request.",
100947	//       "location": "path",
100948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
100949	//       "required": true,
100950	//       "type": "string"
100951	//     },
100952	//     "region": {
100953	//       "description": "Name of the region for this request.",
100954	//       "location": "path",
100955	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
100956	//       "required": true,
100957	//       "type": "string"
100958	//     },
100959	//     "requestId": {
100960	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
100961	//       "location": "query",
100962	//       "type": "string"
100963	//     }
100964	//   },
100965	//   "path": "{project}/regions/{region}/packetMirrorings",
100966	//   "request": {
100967	//     "$ref": "PacketMirroring"
100968	//   },
100969	//   "response": {
100970	//     "$ref": "Operation"
100971	//   },
100972	//   "scopes": [
100973	//     "https://www.googleapis.com/auth/cloud-platform",
100974	//     "https://www.googleapis.com/auth/compute"
100975	//   ]
100976	// }
100977
100978}
100979
100980// method id "compute.packetMirrorings.list":
100981
100982type PacketMirroringsListCall struct {
100983	s            *Service
100984	project      string
100985	region       string
100986	urlParams_   gensupport.URLParams
100987	ifNoneMatch_ string
100988	ctx_         context.Context
100989	header_      http.Header
100990}
100991
100992// List: Retrieves a list of PacketMirroring resources available to the
100993// specified project and region.
100994func (r *PacketMirroringsService) List(project string, region string) *PacketMirroringsListCall {
100995	c := &PacketMirroringsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
100996	c.project = project
100997	c.region = region
100998	return c
100999}
101000
101001// Filter sets the optional parameter "filter": A filter expression that
101002// filters resources listed in the response. The expression must specify
101003// the field name, a comparison operator, and the value that you want to
101004// use for filtering. The value must be a string, a number, or a
101005// boolean. The comparison operator must be either =, !=, >, or <.
101006//
101007// For example, if you are filtering Compute Engine instances, you can
101008// exclude instances named example-instance by specifying name !=
101009// example-instance.
101010//
101011// You can also filter nested fields. For example, you could specify
101012// scheduling.automaticRestart = false to include instances only if they
101013// are not scheduled for automatic restarts. You can use filtering on
101014// nested fields to filter based on resource labels.
101015//
101016// To filter on multiple expressions, provide each separate expression
101017// within parentheses. For example, (scheduling.automaticRestart = true)
101018// (cpuPlatform = "Intel Skylake"). By default, each expression is an
101019// AND expression. However, you can include AND and OR expressions
101020// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
101021// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
101022// true).
101023func (c *PacketMirroringsListCall) Filter(filter string) *PacketMirroringsListCall {
101024	c.urlParams_.Set("filter", filter)
101025	return c
101026}
101027
101028// MaxResults sets the optional parameter "maxResults": The maximum
101029// number of results per page that should be returned. If the number of
101030// available results is larger than maxResults, Compute Engine returns a
101031// nextPageToken that can be used to get the next page of results in
101032// subsequent list requests. Acceptable values are 0 to 500, inclusive.
101033// (Default: 500)
101034func (c *PacketMirroringsListCall) MaxResults(maxResults int64) *PacketMirroringsListCall {
101035	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
101036	return c
101037}
101038
101039// OrderBy sets the optional parameter "orderBy": Sorts list results by
101040// a certain order. By default, results are returned in alphanumerical
101041// order based on the resource name.
101042//
101043// You can also sort results in descending order based on the creation
101044// timestamp using orderBy="creationTimestamp desc". This sorts results
101045// based on the creationTimestamp field in reverse chronological order
101046// (newest result first). Use this to sort resources like operations so
101047// that the newest operation is returned first.
101048//
101049// Currently, only sorting by name or creationTimestamp desc is
101050// supported.
101051func (c *PacketMirroringsListCall) OrderBy(orderBy string) *PacketMirroringsListCall {
101052	c.urlParams_.Set("orderBy", orderBy)
101053	return c
101054}
101055
101056// PageToken sets the optional parameter "pageToken": Specifies a page
101057// token to use. Set pageToken to the nextPageToken returned by a
101058// previous list request to get the next page of results.
101059func (c *PacketMirroringsListCall) PageToken(pageToken string) *PacketMirroringsListCall {
101060	c.urlParams_.Set("pageToken", pageToken)
101061	return c
101062}
101063
101064// Fields allows partial responses to be retrieved. See
101065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101066// for more information.
101067func (c *PacketMirroringsListCall) Fields(s ...googleapi.Field) *PacketMirroringsListCall {
101068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101069	return c
101070}
101071
101072// IfNoneMatch sets the optional parameter which makes the operation
101073// fail if the object's ETag matches the given value. This is useful for
101074// getting updates only after the object has changed since the last
101075// request. Use googleapi.IsNotModified to check whether the response
101076// error from Do is the result of In-None-Match.
101077func (c *PacketMirroringsListCall) IfNoneMatch(entityTag string) *PacketMirroringsListCall {
101078	c.ifNoneMatch_ = entityTag
101079	return c
101080}
101081
101082// Context sets the context to be used in this call's Do method. Any
101083// pending HTTP request will be aborted if the provided context is
101084// canceled.
101085func (c *PacketMirroringsListCall) Context(ctx context.Context) *PacketMirroringsListCall {
101086	c.ctx_ = ctx
101087	return c
101088}
101089
101090// Header returns an http.Header that can be modified by the caller to
101091// add HTTP headers to the request.
101092func (c *PacketMirroringsListCall) Header() http.Header {
101093	if c.header_ == nil {
101094		c.header_ = make(http.Header)
101095	}
101096	return c.header_
101097}
101098
101099func (c *PacketMirroringsListCall) doRequest(alt string) (*http.Response, error) {
101100	reqHeaders := make(http.Header)
101101	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101102	for k, v := range c.header_ {
101103		reqHeaders[k] = v
101104	}
101105	reqHeaders.Set("User-Agent", c.s.userAgent())
101106	if c.ifNoneMatch_ != "" {
101107		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
101108	}
101109	var body io.Reader = nil
101110	c.urlParams_.Set("alt", alt)
101111	c.urlParams_.Set("prettyPrint", "false")
101112	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings")
101113	urls += "?" + c.urlParams_.Encode()
101114	req, err := http.NewRequest("GET", urls, body)
101115	if err != nil {
101116		return nil, err
101117	}
101118	req.Header = reqHeaders
101119	googleapi.Expand(req.URL, map[string]string{
101120		"project": c.project,
101121		"region":  c.region,
101122	})
101123	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101124}
101125
101126// Do executes the "compute.packetMirrorings.list" call.
101127// Exactly one of *PacketMirroringList or error will be non-nil. Any
101128// non-2xx status code is an error. Response headers are in either
101129// *PacketMirroringList.ServerResponse.Header or (if a response was
101130// returned at all) in error.(*googleapi.Error).Header. Use
101131// googleapi.IsNotModified to check whether the returned error was
101132// because http.StatusNotModified was returned.
101133func (c *PacketMirroringsListCall) Do(opts ...googleapi.CallOption) (*PacketMirroringList, error) {
101134	gensupport.SetOptions(c.urlParams_, opts...)
101135	res, err := c.doRequest("json")
101136	if res != nil && res.StatusCode == http.StatusNotModified {
101137		if res.Body != nil {
101138			res.Body.Close()
101139		}
101140		return nil, &googleapi.Error{
101141			Code:   res.StatusCode,
101142			Header: res.Header,
101143		}
101144	}
101145	if err != nil {
101146		return nil, err
101147	}
101148	defer googleapi.CloseBody(res)
101149	if err := googleapi.CheckResponse(res); err != nil {
101150		return nil, err
101151	}
101152	ret := &PacketMirroringList{
101153		ServerResponse: googleapi.ServerResponse{
101154			Header:         res.Header,
101155			HTTPStatusCode: res.StatusCode,
101156		},
101157	}
101158	target := &ret
101159	if err := gensupport.DecodeResponse(target, res); err != nil {
101160		return nil, err
101161	}
101162	return ret, nil
101163	// {
101164	//   "description": "Retrieves a list of PacketMirroring resources available to the specified project and region.",
101165	//   "httpMethod": "GET",
101166	//   "id": "compute.packetMirrorings.list",
101167	//   "parameterOrder": [
101168	//     "project",
101169	//     "region"
101170	//   ],
101171	//   "parameters": {
101172	//     "filter": {
101173	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
101174	//       "location": "query",
101175	//       "type": "string"
101176	//     },
101177	//     "maxResults": {
101178	//       "default": "500",
101179	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
101180	//       "format": "uint32",
101181	//       "location": "query",
101182	//       "minimum": "0",
101183	//       "type": "integer"
101184	//     },
101185	//     "orderBy": {
101186	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
101187	//       "location": "query",
101188	//       "type": "string"
101189	//     },
101190	//     "pageToken": {
101191	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
101192	//       "location": "query",
101193	//       "type": "string"
101194	//     },
101195	//     "project": {
101196	//       "description": "Project ID for this request.",
101197	//       "location": "path",
101198	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101199	//       "required": true,
101200	//       "type": "string"
101201	//     },
101202	//     "region": {
101203	//       "description": "Name of the region for this request.",
101204	//       "location": "path",
101205	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101206	//       "required": true,
101207	//       "type": "string"
101208	//     }
101209	//   },
101210	//   "path": "{project}/regions/{region}/packetMirrorings",
101211	//   "response": {
101212	//     "$ref": "PacketMirroringList"
101213	//   },
101214	//   "scopes": [
101215	//     "https://www.googleapis.com/auth/cloud-platform",
101216	//     "https://www.googleapis.com/auth/compute",
101217	//     "https://www.googleapis.com/auth/compute.readonly"
101218	//   ]
101219	// }
101220
101221}
101222
101223// Pages invokes f for each page of results.
101224// A non-nil error returned from f will halt the iteration.
101225// The provided context supersedes any context provided to the Context method.
101226func (c *PacketMirroringsListCall) Pages(ctx context.Context, f func(*PacketMirroringList) error) error {
101227	c.ctx_ = ctx
101228	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
101229	for {
101230		x, err := c.Do()
101231		if err != nil {
101232			return err
101233		}
101234		if err := f(x); err != nil {
101235			return err
101236		}
101237		if x.NextPageToken == "" {
101238			return nil
101239		}
101240		c.PageToken(x.NextPageToken)
101241	}
101242}
101243
101244// method id "compute.packetMirrorings.patch":
101245
101246type PacketMirroringsPatchCall struct {
101247	s               *Service
101248	project         string
101249	region          string
101250	packetMirroring string
101251	packetmirroring *PacketMirroring
101252	urlParams_      gensupport.URLParams
101253	ctx_            context.Context
101254	header_         http.Header
101255}
101256
101257// Patch: Patches the specified PacketMirroring resource with the data
101258// included in the request. This method supports PATCH semantics and
101259// uses JSON merge patch format and processing rules.
101260func (r *PacketMirroringsService) Patch(project string, region string, packetMirroring string, packetmirroring *PacketMirroring) *PacketMirroringsPatchCall {
101261	c := &PacketMirroringsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101262	c.project = project
101263	c.region = region
101264	c.packetMirroring = packetMirroring
101265	c.packetmirroring = packetmirroring
101266	return c
101267}
101268
101269// RequestId sets the optional parameter "requestId": An optional
101270// request ID to identify requests. Specify a unique request ID so that
101271// if you must retry your request, the server will know to ignore the
101272// request if it has already been completed.
101273//
101274// For example, consider a situation where you make an initial request
101275// and the request times out. If you make the request again with the
101276// same request ID, the server can check if original operation with the
101277// same request ID was received, and if so, will ignore the second
101278// request. This prevents clients from accidentally creating duplicate
101279// commitments.
101280//
101281// The request ID must be a valid UUID with the exception that zero UUID
101282// is not supported (00000000-0000-0000-0000-000000000000).
101283func (c *PacketMirroringsPatchCall) RequestId(requestId string) *PacketMirroringsPatchCall {
101284	c.urlParams_.Set("requestId", requestId)
101285	return c
101286}
101287
101288// Fields allows partial responses to be retrieved. See
101289// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101290// for more information.
101291func (c *PacketMirroringsPatchCall) Fields(s ...googleapi.Field) *PacketMirroringsPatchCall {
101292	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101293	return c
101294}
101295
101296// Context sets the context to be used in this call's Do method. Any
101297// pending HTTP request will be aborted if the provided context is
101298// canceled.
101299func (c *PacketMirroringsPatchCall) Context(ctx context.Context) *PacketMirroringsPatchCall {
101300	c.ctx_ = ctx
101301	return c
101302}
101303
101304// Header returns an http.Header that can be modified by the caller to
101305// add HTTP headers to the request.
101306func (c *PacketMirroringsPatchCall) Header() http.Header {
101307	if c.header_ == nil {
101308		c.header_ = make(http.Header)
101309	}
101310	return c.header_
101311}
101312
101313func (c *PacketMirroringsPatchCall) doRequest(alt string) (*http.Response, error) {
101314	reqHeaders := make(http.Header)
101315	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101316	for k, v := range c.header_ {
101317		reqHeaders[k] = v
101318	}
101319	reqHeaders.Set("User-Agent", c.s.userAgent())
101320	var body io.Reader = nil
101321	body, err := googleapi.WithoutDataWrapper.JSONReader(c.packetmirroring)
101322	if err != nil {
101323		return nil, err
101324	}
101325	reqHeaders.Set("Content-Type", "application/json")
101326	c.urlParams_.Set("alt", alt)
101327	c.urlParams_.Set("prettyPrint", "false")
101328	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{packetMirroring}")
101329	urls += "?" + c.urlParams_.Encode()
101330	req, err := http.NewRequest("PATCH", urls, body)
101331	if err != nil {
101332		return nil, err
101333	}
101334	req.Header = reqHeaders
101335	googleapi.Expand(req.URL, map[string]string{
101336		"project":         c.project,
101337		"region":          c.region,
101338		"packetMirroring": c.packetMirroring,
101339	})
101340	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101341}
101342
101343// Do executes the "compute.packetMirrorings.patch" call.
101344// Exactly one of *Operation or error will be non-nil. Any non-2xx
101345// status code is an error. Response headers are in either
101346// *Operation.ServerResponse.Header or (if a response was returned at
101347// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101348// to check whether the returned error was because
101349// http.StatusNotModified was returned.
101350func (c *PacketMirroringsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101351	gensupport.SetOptions(c.urlParams_, opts...)
101352	res, err := c.doRequest("json")
101353	if res != nil && res.StatusCode == http.StatusNotModified {
101354		if res.Body != nil {
101355			res.Body.Close()
101356		}
101357		return nil, &googleapi.Error{
101358			Code:   res.StatusCode,
101359			Header: res.Header,
101360		}
101361	}
101362	if err != nil {
101363		return nil, err
101364	}
101365	defer googleapi.CloseBody(res)
101366	if err := googleapi.CheckResponse(res); err != nil {
101367		return nil, err
101368	}
101369	ret := &Operation{
101370		ServerResponse: googleapi.ServerResponse{
101371			Header:         res.Header,
101372			HTTPStatusCode: res.StatusCode,
101373		},
101374	}
101375	target := &ret
101376	if err := gensupport.DecodeResponse(target, res); err != nil {
101377		return nil, err
101378	}
101379	return ret, nil
101380	// {
101381	//   "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.",
101382	//   "httpMethod": "PATCH",
101383	//   "id": "compute.packetMirrorings.patch",
101384	//   "parameterOrder": [
101385	//     "project",
101386	//     "region",
101387	//     "packetMirroring"
101388	//   ],
101389	//   "parameters": {
101390	//     "packetMirroring": {
101391	//       "description": "Name of the PacketMirroring resource to patch.",
101392	//       "location": "path",
101393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101394	//       "required": true,
101395	//       "type": "string"
101396	//     },
101397	//     "project": {
101398	//       "description": "Project ID for this request.",
101399	//       "location": "path",
101400	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101401	//       "required": true,
101402	//       "type": "string"
101403	//     },
101404	//     "region": {
101405	//       "description": "Name of the region for this request.",
101406	//       "location": "path",
101407	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101408	//       "required": true,
101409	//       "type": "string"
101410	//     },
101411	//     "requestId": {
101412	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101413	//       "location": "query",
101414	//       "type": "string"
101415	//     }
101416	//   },
101417	//   "path": "{project}/regions/{region}/packetMirrorings/{packetMirroring}",
101418	//   "request": {
101419	//     "$ref": "PacketMirroring"
101420	//   },
101421	//   "response": {
101422	//     "$ref": "Operation"
101423	//   },
101424	//   "scopes": [
101425	//     "https://www.googleapis.com/auth/cloud-platform",
101426	//     "https://www.googleapis.com/auth/compute"
101427	//   ]
101428	// }
101429
101430}
101431
101432// method id "compute.packetMirrorings.testIamPermissions":
101433
101434type PacketMirroringsTestIamPermissionsCall struct {
101435	s                      *Service
101436	project                string
101437	region                 string
101438	resource               string
101439	testpermissionsrequest *TestPermissionsRequest
101440	urlParams_             gensupport.URLParams
101441	ctx_                   context.Context
101442	header_                http.Header
101443}
101444
101445// TestIamPermissions: Returns permissions that a caller has on the
101446// specified resource.
101447func (r *PacketMirroringsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *PacketMirroringsTestIamPermissionsCall {
101448	c := &PacketMirroringsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101449	c.project = project
101450	c.region = region
101451	c.resource = resource
101452	c.testpermissionsrequest = testpermissionsrequest
101453	return c
101454}
101455
101456// Fields allows partial responses to be retrieved. See
101457// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101458// for more information.
101459func (c *PacketMirroringsTestIamPermissionsCall) Fields(s ...googleapi.Field) *PacketMirroringsTestIamPermissionsCall {
101460	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101461	return c
101462}
101463
101464// Context sets the context to be used in this call's Do method. Any
101465// pending HTTP request will be aborted if the provided context is
101466// canceled.
101467func (c *PacketMirroringsTestIamPermissionsCall) Context(ctx context.Context) *PacketMirroringsTestIamPermissionsCall {
101468	c.ctx_ = ctx
101469	return c
101470}
101471
101472// Header returns an http.Header that can be modified by the caller to
101473// add HTTP headers to the request.
101474func (c *PacketMirroringsTestIamPermissionsCall) Header() http.Header {
101475	if c.header_ == nil {
101476		c.header_ = make(http.Header)
101477	}
101478	return c.header_
101479}
101480
101481func (c *PacketMirroringsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
101482	reqHeaders := make(http.Header)
101483	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101484	for k, v := range c.header_ {
101485		reqHeaders[k] = v
101486	}
101487	reqHeaders.Set("User-Agent", c.s.userAgent())
101488	var body io.Reader = nil
101489	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
101490	if err != nil {
101491		return nil, err
101492	}
101493	reqHeaders.Set("Content-Type", "application/json")
101494	c.urlParams_.Set("alt", alt)
101495	c.urlParams_.Set("prettyPrint", "false")
101496	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions")
101497	urls += "?" + c.urlParams_.Encode()
101498	req, err := http.NewRequest("POST", urls, body)
101499	if err != nil {
101500		return nil, err
101501	}
101502	req.Header = reqHeaders
101503	googleapi.Expand(req.URL, map[string]string{
101504		"project":  c.project,
101505		"region":   c.region,
101506		"resource": c.resource,
101507	})
101508	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101509}
101510
101511// Do executes the "compute.packetMirrorings.testIamPermissions" call.
101512// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
101513// non-2xx status code is an error. Response headers are in either
101514// *TestPermissionsResponse.ServerResponse.Header or (if a response was
101515// returned at all) in error.(*googleapi.Error).Header. Use
101516// googleapi.IsNotModified to check whether the returned error was
101517// because http.StatusNotModified was returned.
101518func (c *PacketMirroringsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
101519	gensupport.SetOptions(c.urlParams_, opts...)
101520	res, err := c.doRequest("json")
101521	if res != nil && res.StatusCode == http.StatusNotModified {
101522		if res.Body != nil {
101523			res.Body.Close()
101524		}
101525		return nil, &googleapi.Error{
101526			Code:   res.StatusCode,
101527			Header: res.Header,
101528		}
101529	}
101530	if err != nil {
101531		return nil, err
101532	}
101533	defer googleapi.CloseBody(res)
101534	if err := googleapi.CheckResponse(res); err != nil {
101535		return nil, err
101536	}
101537	ret := &TestPermissionsResponse{
101538		ServerResponse: googleapi.ServerResponse{
101539			Header:         res.Header,
101540			HTTPStatusCode: res.StatusCode,
101541		},
101542	}
101543	target := &ret
101544	if err := gensupport.DecodeResponse(target, res); err != nil {
101545		return nil, err
101546	}
101547	return ret, nil
101548	// {
101549	//   "description": "Returns permissions that a caller has on the specified resource.",
101550	//   "httpMethod": "POST",
101551	//   "id": "compute.packetMirrorings.testIamPermissions",
101552	//   "parameterOrder": [
101553	//     "project",
101554	//     "region",
101555	//     "resource"
101556	//   ],
101557	//   "parameters": {
101558	//     "project": {
101559	//       "description": "Project ID for this request.",
101560	//       "location": "path",
101561	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101562	//       "required": true,
101563	//       "type": "string"
101564	//     },
101565	//     "region": {
101566	//       "description": "The name of the region for this request.",
101567	//       "location": "path",
101568	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
101569	//       "required": true,
101570	//       "type": "string"
101571	//     },
101572	//     "resource": {
101573	//       "description": "Name or id of the resource for this request.",
101574	//       "location": "path",
101575	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
101576	//       "required": true,
101577	//       "type": "string"
101578	//     }
101579	//   },
101580	//   "path": "{project}/regions/{region}/packetMirrorings/{resource}/testIamPermissions",
101581	//   "request": {
101582	//     "$ref": "TestPermissionsRequest"
101583	//   },
101584	//   "response": {
101585	//     "$ref": "TestPermissionsResponse"
101586	//   },
101587	//   "scopes": [
101588	//     "https://www.googleapis.com/auth/cloud-platform",
101589	//     "https://www.googleapis.com/auth/compute",
101590	//     "https://www.googleapis.com/auth/compute.readonly"
101591	//   ]
101592	// }
101593
101594}
101595
101596// method id "compute.projects.disableXpnHost":
101597
101598type ProjectsDisableXpnHostCall struct {
101599	s          *Service
101600	project    string
101601	urlParams_ gensupport.URLParams
101602	ctx_       context.Context
101603	header_    http.Header
101604}
101605
101606// DisableXpnHost: Disable this project as a shared VPC host project.
101607func (r *ProjectsService) DisableXpnHost(project string) *ProjectsDisableXpnHostCall {
101608	c := &ProjectsDisableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101609	c.project = project
101610	return c
101611}
101612
101613// RequestId sets the optional parameter "requestId": An optional
101614// request ID to identify requests. Specify a unique request ID so that
101615// if you must retry your request, the server will know to ignore the
101616// request if it has already been completed.
101617//
101618// For example, consider a situation where you make an initial request
101619// and the request times out. If you make the request again with the
101620// same request ID, the server can check if original operation with the
101621// same request ID was received, and if so, will ignore the second
101622// request. This prevents clients from accidentally creating duplicate
101623// commitments.
101624//
101625// The request ID must be a valid UUID with the exception that zero UUID
101626// is not supported (00000000-0000-0000-0000-000000000000).
101627func (c *ProjectsDisableXpnHostCall) RequestId(requestId string) *ProjectsDisableXpnHostCall {
101628	c.urlParams_.Set("requestId", requestId)
101629	return c
101630}
101631
101632// Fields allows partial responses to be retrieved. See
101633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101634// for more information.
101635func (c *ProjectsDisableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnHostCall {
101636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101637	return c
101638}
101639
101640// Context sets the context to be used in this call's Do method. Any
101641// pending HTTP request will be aborted if the provided context is
101642// canceled.
101643func (c *ProjectsDisableXpnHostCall) Context(ctx context.Context) *ProjectsDisableXpnHostCall {
101644	c.ctx_ = ctx
101645	return c
101646}
101647
101648// Header returns an http.Header that can be modified by the caller to
101649// add HTTP headers to the request.
101650func (c *ProjectsDisableXpnHostCall) Header() http.Header {
101651	if c.header_ == nil {
101652		c.header_ = make(http.Header)
101653	}
101654	return c.header_
101655}
101656
101657func (c *ProjectsDisableXpnHostCall) doRequest(alt string) (*http.Response, error) {
101658	reqHeaders := make(http.Header)
101659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101660	for k, v := range c.header_ {
101661		reqHeaders[k] = v
101662	}
101663	reqHeaders.Set("User-Agent", c.s.userAgent())
101664	var body io.Reader = nil
101665	c.urlParams_.Set("alt", alt)
101666	c.urlParams_.Set("prettyPrint", "false")
101667	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnHost")
101668	urls += "?" + c.urlParams_.Encode()
101669	req, err := http.NewRequest("POST", urls, body)
101670	if err != nil {
101671		return nil, err
101672	}
101673	req.Header = reqHeaders
101674	googleapi.Expand(req.URL, map[string]string{
101675		"project": c.project,
101676	})
101677	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101678}
101679
101680// Do executes the "compute.projects.disableXpnHost" call.
101681// Exactly one of *Operation or error will be non-nil. Any non-2xx
101682// status code is an error. Response headers are in either
101683// *Operation.ServerResponse.Header or (if a response was returned at
101684// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101685// to check whether the returned error was because
101686// http.StatusNotModified was returned.
101687func (c *ProjectsDisableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101688	gensupport.SetOptions(c.urlParams_, opts...)
101689	res, err := c.doRequest("json")
101690	if res != nil && res.StatusCode == http.StatusNotModified {
101691		if res.Body != nil {
101692			res.Body.Close()
101693		}
101694		return nil, &googleapi.Error{
101695			Code:   res.StatusCode,
101696			Header: res.Header,
101697		}
101698	}
101699	if err != nil {
101700		return nil, err
101701	}
101702	defer googleapi.CloseBody(res)
101703	if err := googleapi.CheckResponse(res); err != nil {
101704		return nil, err
101705	}
101706	ret := &Operation{
101707		ServerResponse: googleapi.ServerResponse{
101708			Header:         res.Header,
101709			HTTPStatusCode: res.StatusCode,
101710		},
101711	}
101712	target := &ret
101713	if err := gensupport.DecodeResponse(target, res); err != nil {
101714		return nil, err
101715	}
101716	return ret, nil
101717	// {
101718	//   "description": "Disable this project as a shared VPC host project.",
101719	//   "httpMethod": "POST",
101720	//   "id": "compute.projects.disableXpnHost",
101721	//   "parameterOrder": [
101722	//     "project"
101723	//   ],
101724	//   "parameters": {
101725	//     "project": {
101726	//       "description": "Project ID for this request.",
101727	//       "location": "path",
101728	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101729	//       "required": true,
101730	//       "type": "string"
101731	//     },
101732	//     "requestId": {
101733	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101734	//       "location": "query",
101735	//       "type": "string"
101736	//     }
101737	//   },
101738	//   "path": "{project}/disableXpnHost",
101739	//   "response": {
101740	//     "$ref": "Operation"
101741	//   },
101742	//   "scopes": [
101743	//     "https://www.googleapis.com/auth/cloud-platform",
101744	//     "https://www.googleapis.com/auth/compute"
101745	//   ]
101746	// }
101747
101748}
101749
101750// method id "compute.projects.disableXpnResource":
101751
101752type ProjectsDisableXpnResourceCall struct {
101753	s                                 *Service
101754	project                           string
101755	projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest
101756	urlParams_                        gensupport.URLParams
101757	ctx_                              context.Context
101758	header_                           http.Header
101759}
101760
101761// DisableXpnResource: Disable a service resource (also known as service
101762// project) associated with this host project.
101763func (r *ProjectsService) DisableXpnResource(project string, projectsdisablexpnresourcerequest *ProjectsDisableXpnResourceRequest) *ProjectsDisableXpnResourceCall {
101764	c := &ProjectsDisableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101765	c.project = project
101766	c.projectsdisablexpnresourcerequest = projectsdisablexpnresourcerequest
101767	return c
101768}
101769
101770// RequestId sets the optional parameter "requestId": An optional
101771// request ID to identify requests. Specify a unique request ID so that
101772// if you must retry your request, the server will know to ignore the
101773// request if it has already been completed.
101774//
101775// For example, consider a situation where you make an initial request
101776// and the request times out. If you make the request again with the
101777// same request ID, the server can check if original operation with the
101778// same request ID was received, and if so, will ignore the second
101779// request. This prevents clients from accidentally creating duplicate
101780// commitments.
101781//
101782// The request ID must be a valid UUID with the exception that zero UUID
101783// is not supported (00000000-0000-0000-0000-000000000000).
101784func (c *ProjectsDisableXpnResourceCall) RequestId(requestId string) *ProjectsDisableXpnResourceCall {
101785	c.urlParams_.Set("requestId", requestId)
101786	return c
101787}
101788
101789// Fields allows partial responses to be retrieved. See
101790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101791// for more information.
101792func (c *ProjectsDisableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsDisableXpnResourceCall {
101793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101794	return c
101795}
101796
101797// Context sets the context to be used in this call's Do method. Any
101798// pending HTTP request will be aborted if the provided context is
101799// canceled.
101800func (c *ProjectsDisableXpnResourceCall) Context(ctx context.Context) *ProjectsDisableXpnResourceCall {
101801	c.ctx_ = ctx
101802	return c
101803}
101804
101805// Header returns an http.Header that can be modified by the caller to
101806// add HTTP headers to the request.
101807func (c *ProjectsDisableXpnResourceCall) Header() http.Header {
101808	if c.header_ == nil {
101809		c.header_ = make(http.Header)
101810	}
101811	return c.header_
101812}
101813
101814func (c *ProjectsDisableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
101815	reqHeaders := make(http.Header)
101816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101817	for k, v := range c.header_ {
101818		reqHeaders[k] = v
101819	}
101820	reqHeaders.Set("User-Agent", c.s.userAgent())
101821	var body io.Reader = nil
101822	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsdisablexpnresourcerequest)
101823	if err != nil {
101824		return nil, err
101825	}
101826	reqHeaders.Set("Content-Type", "application/json")
101827	c.urlParams_.Set("alt", alt)
101828	c.urlParams_.Set("prettyPrint", "false")
101829	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/disableXpnResource")
101830	urls += "?" + c.urlParams_.Encode()
101831	req, err := http.NewRequest("POST", urls, body)
101832	if err != nil {
101833		return nil, err
101834	}
101835	req.Header = reqHeaders
101836	googleapi.Expand(req.URL, map[string]string{
101837		"project": c.project,
101838	})
101839	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101840}
101841
101842// Do executes the "compute.projects.disableXpnResource" call.
101843// Exactly one of *Operation or error will be non-nil. Any non-2xx
101844// status code is an error. Response headers are in either
101845// *Operation.ServerResponse.Header or (if a response was returned at
101846// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
101847// to check whether the returned error was because
101848// http.StatusNotModified was returned.
101849func (c *ProjectsDisableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
101850	gensupport.SetOptions(c.urlParams_, opts...)
101851	res, err := c.doRequest("json")
101852	if res != nil && res.StatusCode == http.StatusNotModified {
101853		if res.Body != nil {
101854			res.Body.Close()
101855		}
101856		return nil, &googleapi.Error{
101857			Code:   res.StatusCode,
101858			Header: res.Header,
101859		}
101860	}
101861	if err != nil {
101862		return nil, err
101863	}
101864	defer googleapi.CloseBody(res)
101865	if err := googleapi.CheckResponse(res); err != nil {
101866		return nil, err
101867	}
101868	ret := &Operation{
101869		ServerResponse: googleapi.ServerResponse{
101870			Header:         res.Header,
101871			HTTPStatusCode: res.StatusCode,
101872		},
101873	}
101874	target := &ret
101875	if err := gensupport.DecodeResponse(target, res); err != nil {
101876		return nil, err
101877	}
101878	return ret, nil
101879	// {
101880	//   "description": "Disable a service resource (also known as service project) associated with this host project.",
101881	//   "httpMethod": "POST",
101882	//   "id": "compute.projects.disableXpnResource",
101883	//   "parameterOrder": [
101884	//     "project"
101885	//   ],
101886	//   "parameters": {
101887	//     "project": {
101888	//       "description": "Project ID for this request.",
101889	//       "location": "path",
101890	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
101891	//       "required": true,
101892	//       "type": "string"
101893	//     },
101894	//     "requestId": {
101895	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
101896	//       "location": "query",
101897	//       "type": "string"
101898	//     }
101899	//   },
101900	//   "path": "{project}/disableXpnResource",
101901	//   "request": {
101902	//     "$ref": "ProjectsDisableXpnResourceRequest"
101903	//   },
101904	//   "response": {
101905	//     "$ref": "Operation"
101906	//   },
101907	//   "scopes": [
101908	//     "https://www.googleapis.com/auth/cloud-platform",
101909	//     "https://www.googleapis.com/auth/compute"
101910	//   ]
101911	// }
101912
101913}
101914
101915// method id "compute.projects.enableXpnHost":
101916
101917type ProjectsEnableXpnHostCall struct {
101918	s          *Service
101919	project    string
101920	urlParams_ gensupport.URLParams
101921	ctx_       context.Context
101922	header_    http.Header
101923}
101924
101925// EnableXpnHost: Enable this project as a shared VPC host project.
101926func (r *ProjectsService) EnableXpnHost(project string) *ProjectsEnableXpnHostCall {
101927	c := &ProjectsEnableXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
101928	c.project = project
101929	return c
101930}
101931
101932// RequestId sets the optional parameter "requestId": An optional
101933// request ID to identify requests. Specify a unique request ID so that
101934// if you must retry your request, the server will know to ignore the
101935// request if it has already been completed.
101936//
101937// For example, consider a situation where you make an initial request
101938// and the request times out. If you make the request again with the
101939// same request ID, the server can check if original operation with the
101940// same request ID was received, and if so, will ignore the second
101941// request. This prevents clients from accidentally creating duplicate
101942// commitments.
101943//
101944// The request ID must be a valid UUID with the exception that zero UUID
101945// is not supported (00000000-0000-0000-0000-000000000000).
101946func (c *ProjectsEnableXpnHostCall) RequestId(requestId string) *ProjectsEnableXpnHostCall {
101947	c.urlParams_.Set("requestId", requestId)
101948	return c
101949}
101950
101951// Fields allows partial responses to be retrieved. See
101952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
101953// for more information.
101954func (c *ProjectsEnableXpnHostCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnHostCall {
101955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
101956	return c
101957}
101958
101959// Context sets the context to be used in this call's Do method. Any
101960// pending HTTP request will be aborted if the provided context is
101961// canceled.
101962func (c *ProjectsEnableXpnHostCall) Context(ctx context.Context) *ProjectsEnableXpnHostCall {
101963	c.ctx_ = ctx
101964	return c
101965}
101966
101967// Header returns an http.Header that can be modified by the caller to
101968// add HTTP headers to the request.
101969func (c *ProjectsEnableXpnHostCall) Header() http.Header {
101970	if c.header_ == nil {
101971		c.header_ = make(http.Header)
101972	}
101973	return c.header_
101974}
101975
101976func (c *ProjectsEnableXpnHostCall) doRequest(alt string) (*http.Response, error) {
101977	reqHeaders := make(http.Header)
101978	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
101979	for k, v := range c.header_ {
101980		reqHeaders[k] = v
101981	}
101982	reqHeaders.Set("User-Agent", c.s.userAgent())
101983	var body io.Reader = nil
101984	c.urlParams_.Set("alt", alt)
101985	c.urlParams_.Set("prettyPrint", "false")
101986	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnHost")
101987	urls += "?" + c.urlParams_.Encode()
101988	req, err := http.NewRequest("POST", urls, body)
101989	if err != nil {
101990		return nil, err
101991	}
101992	req.Header = reqHeaders
101993	googleapi.Expand(req.URL, map[string]string{
101994		"project": c.project,
101995	})
101996	return gensupport.SendRequest(c.ctx_, c.s.client, req)
101997}
101998
101999// Do executes the "compute.projects.enableXpnHost" call.
102000// Exactly one of *Operation or error will be non-nil. Any non-2xx
102001// status code is an error. Response headers are in either
102002// *Operation.ServerResponse.Header or (if a response was returned at
102003// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102004// to check whether the returned error was because
102005// http.StatusNotModified was returned.
102006func (c *ProjectsEnableXpnHostCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102007	gensupport.SetOptions(c.urlParams_, opts...)
102008	res, err := c.doRequest("json")
102009	if res != nil && res.StatusCode == http.StatusNotModified {
102010		if res.Body != nil {
102011			res.Body.Close()
102012		}
102013		return nil, &googleapi.Error{
102014			Code:   res.StatusCode,
102015			Header: res.Header,
102016		}
102017	}
102018	if err != nil {
102019		return nil, err
102020	}
102021	defer googleapi.CloseBody(res)
102022	if err := googleapi.CheckResponse(res); err != nil {
102023		return nil, err
102024	}
102025	ret := &Operation{
102026		ServerResponse: googleapi.ServerResponse{
102027			Header:         res.Header,
102028			HTTPStatusCode: res.StatusCode,
102029		},
102030	}
102031	target := &ret
102032	if err := gensupport.DecodeResponse(target, res); err != nil {
102033		return nil, err
102034	}
102035	return ret, nil
102036	// {
102037	//   "description": "Enable this project as a shared VPC host project.",
102038	//   "httpMethod": "POST",
102039	//   "id": "compute.projects.enableXpnHost",
102040	//   "parameterOrder": [
102041	//     "project"
102042	//   ],
102043	//   "parameters": {
102044	//     "project": {
102045	//       "description": "Project ID for this request.",
102046	//       "location": "path",
102047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102048	//       "required": true,
102049	//       "type": "string"
102050	//     },
102051	//     "requestId": {
102052	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102053	//       "location": "query",
102054	//       "type": "string"
102055	//     }
102056	//   },
102057	//   "path": "{project}/enableXpnHost",
102058	//   "response": {
102059	//     "$ref": "Operation"
102060	//   },
102061	//   "scopes": [
102062	//     "https://www.googleapis.com/auth/cloud-platform",
102063	//     "https://www.googleapis.com/auth/compute"
102064	//   ]
102065	// }
102066
102067}
102068
102069// method id "compute.projects.enableXpnResource":
102070
102071type ProjectsEnableXpnResourceCall struct {
102072	s                                *Service
102073	project                          string
102074	projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest
102075	urlParams_                       gensupport.URLParams
102076	ctx_                             context.Context
102077	header_                          http.Header
102078}
102079
102080// EnableXpnResource: Enable service resource (a.k.a service project)
102081// for a host project, so that subnets in the host project can be used
102082// by instances in the service project.
102083func (r *ProjectsService) EnableXpnResource(project string, projectsenablexpnresourcerequest *ProjectsEnableXpnResourceRequest) *ProjectsEnableXpnResourceCall {
102084	c := &ProjectsEnableXpnResourceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102085	c.project = project
102086	c.projectsenablexpnresourcerequest = projectsenablexpnresourcerequest
102087	return c
102088}
102089
102090// RequestId sets the optional parameter "requestId": An optional
102091// request ID to identify requests. Specify a unique request ID so that
102092// if you must retry your request, the server will know to ignore the
102093// request if it has already been completed.
102094//
102095// For example, consider a situation where you make an initial request
102096// and the request times out. If you make the request again with the
102097// same request ID, the server can check if original operation with the
102098// same request ID was received, and if so, will ignore the second
102099// request. This prevents clients from accidentally creating duplicate
102100// commitments.
102101//
102102// The request ID must be a valid UUID with the exception that zero UUID
102103// is not supported (00000000-0000-0000-0000-000000000000).
102104func (c *ProjectsEnableXpnResourceCall) RequestId(requestId string) *ProjectsEnableXpnResourceCall {
102105	c.urlParams_.Set("requestId", requestId)
102106	return c
102107}
102108
102109// Fields allows partial responses to be retrieved. See
102110// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102111// for more information.
102112func (c *ProjectsEnableXpnResourceCall) Fields(s ...googleapi.Field) *ProjectsEnableXpnResourceCall {
102113	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102114	return c
102115}
102116
102117// Context sets the context to be used in this call's Do method. Any
102118// pending HTTP request will be aborted if the provided context is
102119// canceled.
102120func (c *ProjectsEnableXpnResourceCall) Context(ctx context.Context) *ProjectsEnableXpnResourceCall {
102121	c.ctx_ = ctx
102122	return c
102123}
102124
102125// Header returns an http.Header that can be modified by the caller to
102126// add HTTP headers to the request.
102127func (c *ProjectsEnableXpnResourceCall) Header() http.Header {
102128	if c.header_ == nil {
102129		c.header_ = make(http.Header)
102130	}
102131	return c.header_
102132}
102133
102134func (c *ProjectsEnableXpnResourceCall) doRequest(alt string) (*http.Response, error) {
102135	reqHeaders := make(http.Header)
102136	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102137	for k, v := range c.header_ {
102138		reqHeaders[k] = v
102139	}
102140	reqHeaders.Set("User-Agent", c.s.userAgent())
102141	var body io.Reader = nil
102142	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectsenablexpnresourcerequest)
102143	if err != nil {
102144		return nil, err
102145	}
102146	reqHeaders.Set("Content-Type", "application/json")
102147	c.urlParams_.Set("alt", alt)
102148	c.urlParams_.Set("prettyPrint", "false")
102149	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/enableXpnResource")
102150	urls += "?" + c.urlParams_.Encode()
102151	req, err := http.NewRequest("POST", urls, body)
102152	if err != nil {
102153		return nil, err
102154	}
102155	req.Header = reqHeaders
102156	googleapi.Expand(req.URL, map[string]string{
102157		"project": c.project,
102158	})
102159	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102160}
102161
102162// Do executes the "compute.projects.enableXpnResource" call.
102163// Exactly one of *Operation or error will be non-nil. Any non-2xx
102164// status code is an error. Response headers are in either
102165// *Operation.ServerResponse.Header or (if a response was returned at
102166// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102167// to check whether the returned error was because
102168// http.StatusNotModified was returned.
102169func (c *ProjectsEnableXpnResourceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
102170	gensupport.SetOptions(c.urlParams_, opts...)
102171	res, err := c.doRequest("json")
102172	if res != nil && res.StatusCode == http.StatusNotModified {
102173		if res.Body != nil {
102174			res.Body.Close()
102175		}
102176		return nil, &googleapi.Error{
102177			Code:   res.StatusCode,
102178			Header: res.Header,
102179		}
102180	}
102181	if err != nil {
102182		return nil, err
102183	}
102184	defer googleapi.CloseBody(res)
102185	if err := googleapi.CheckResponse(res); err != nil {
102186		return nil, err
102187	}
102188	ret := &Operation{
102189		ServerResponse: googleapi.ServerResponse{
102190			Header:         res.Header,
102191			HTTPStatusCode: res.StatusCode,
102192		},
102193	}
102194	target := &ret
102195	if err := gensupport.DecodeResponse(target, res); err != nil {
102196		return nil, err
102197	}
102198	return ret, nil
102199	// {
102200	//   "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.",
102201	//   "httpMethod": "POST",
102202	//   "id": "compute.projects.enableXpnResource",
102203	//   "parameterOrder": [
102204	//     "project"
102205	//   ],
102206	//   "parameters": {
102207	//     "project": {
102208	//       "description": "Project ID for this request.",
102209	//       "location": "path",
102210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102211	//       "required": true,
102212	//       "type": "string"
102213	//     },
102214	//     "requestId": {
102215	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
102216	//       "location": "query",
102217	//       "type": "string"
102218	//     }
102219	//   },
102220	//   "path": "{project}/enableXpnResource",
102221	//   "request": {
102222	//     "$ref": "ProjectsEnableXpnResourceRequest"
102223	//   },
102224	//   "response": {
102225	//     "$ref": "Operation"
102226	//   },
102227	//   "scopes": [
102228	//     "https://www.googleapis.com/auth/cloud-platform",
102229	//     "https://www.googleapis.com/auth/compute"
102230	//   ]
102231	// }
102232
102233}
102234
102235// method id "compute.projects.get":
102236
102237type ProjectsGetCall struct {
102238	s            *Service
102239	project      string
102240	urlParams_   gensupport.URLParams
102241	ifNoneMatch_ string
102242	ctx_         context.Context
102243	header_      http.Header
102244}
102245
102246// Get: Returns the specified Project resource.
102247// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/get
102248func (r *ProjectsService) Get(project string) *ProjectsGetCall {
102249	c := &ProjectsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102250	c.project = project
102251	return c
102252}
102253
102254// Fields allows partial responses to be retrieved. See
102255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102256// for more information.
102257func (c *ProjectsGetCall) Fields(s ...googleapi.Field) *ProjectsGetCall {
102258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102259	return c
102260}
102261
102262// IfNoneMatch sets the optional parameter which makes the operation
102263// fail if the object's ETag matches the given value. This is useful for
102264// getting updates only after the object has changed since the last
102265// request. Use googleapi.IsNotModified to check whether the response
102266// error from Do is the result of In-None-Match.
102267func (c *ProjectsGetCall) IfNoneMatch(entityTag string) *ProjectsGetCall {
102268	c.ifNoneMatch_ = entityTag
102269	return c
102270}
102271
102272// Context sets the context to be used in this call's Do method. Any
102273// pending HTTP request will be aborted if the provided context is
102274// canceled.
102275func (c *ProjectsGetCall) Context(ctx context.Context) *ProjectsGetCall {
102276	c.ctx_ = ctx
102277	return c
102278}
102279
102280// Header returns an http.Header that can be modified by the caller to
102281// add HTTP headers to the request.
102282func (c *ProjectsGetCall) Header() http.Header {
102283	if c.header_ == nil {
102284		c.header_ = make(http.Header)
102285	}
102286	return c.header_
102287}
102288
102289func (c *ProjectsGetCall) doRequest(alt string) (*http.Response, error) {
102290	reqHeaders := make(http.Header)
102291	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102292	for k, v := range c.header_ {
102293		reqHeaders[k] = v
102294	}
102295	reqHeaders.Set("User-Agent", c.s.userAgent())
102296	if c.ifNoneMatch_ != "" {
102297		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102298	}
102299	var body io.Reader = nil
102300	c.urlParams_.Set("alt", alt)
102301	c.urlParams_.Set("prettyPrint", "false")
102302	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}")
102303	urls += "?" + c.urlParams_.Encode()
102304	req, err := http.NewRequest("GET", urls, body)
102305	if err != nil {
102306		return nil, err
102307	}
102308	req.Header = reqHeaders
102309	googleapi.Expand(req.URL, map[string]string{
102310		"project": c.project,
102311	})
102312	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102313}
102314
102315// Do executes the "compute.projects.get" call.
102316// Exactly one of *Project or error will be non-nil. Any non-2xx status
102317// code is an error. Response headers are in either
102318// *Project.ServerResponse.Header or (if a response was returned at all)
102319// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102320// check whether the returned error was because http.StatusNotModified
102321// was returned.
102322func (c *ProjectsGetCall) Do(opts ...googleapi.CallOption) (*Project, error) {
102323	gensupport.SetOptions(c.urlParams_, opts...)
102324	res, err := c.doRequest("json")
102325	if res != nil && res.StatusCode == http.StatusNotModified {
102326		if res.Body != nil {
102327			res.Body.Close()
102328		}
102329		return nil, &googleapi.Error{
102330			Code:   res.StatusCode,
102331			Header: res.Header,
102332		}
102333	}
102334	if err != nil {
102335		return nil, err
102336	}
102337	defer googleapi.CloseBody(res)
102338	if err := googleapi.CheckResponse(res); err != nil {
102339		return nil, err
102340	}
102341	ret := &Project{
102342		ServerResponse: googleapi.ServerResponse{
102343			Header:         res.Header,
102344			HTTPStatusCode: res.StatusCode,
102345		},
102346	}
102347	target := &ret
102348	if err := gensupport.DecodeResponse(target, res); err != nil {
102349		return nil, err
102350	}
102351	return ret, nil
102352	// {
102353	//   "description": "Returns the specified Project resource.",
102354	//   "httpMethod": "GET",
102355	//   "id": "compute.projects.get",
102356	//   "parameterOrder": [
102357	//     "project"
102358	//   ],
102359	//   "parameters": {
102360	//     "project": {
102361	//       "description": "Project ID for this request.",
102362	//       "location": "path",
102363	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102364	//       "required": true,
102365	//       "type": "string"
102366	//     }
102367	//   },
102368	//   "path": "{project}",
102369	//   "response": {
102370	//     "$ref": "Project"
102371	//   },
102372	//   "scopes": [
102373	//     "https://www.googleapis.com/auth/cloud-platform",
102374	//     "https://www.googleapis.com/auth/compute",
102375	//     "https://www.googleapis.com/auth/compute.readonly"
102376	//   ]
102377	// }
102378
102379}
102380
102381// method id "compute.projects.getXpnHost":
102382
102383type ProjectsGetXpnHostCall struct {
102384	s            *Service
102385	project      string
102386	urlParams_   gensupport.URLParams
102387	ifNoneMatch_ string
102388	ctx_         context.Context
102389	header_      http.Header
102390}
102391
102392// GetXpnHost: Gets the shared VPC host project that this project links
102393// to. May be empty if no link exists.
102394func (r *ProjectsService) GetXpnHost(project string) *ProjectsGetXpnHostCall {
102395	c := &ProjectsGetXpnHostCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102396	c.project = project
102397	return c
102398}
102399
102400// Fields allows partial responses to be retrieved. See
102401// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102402// for more information.
102403func (c *ProjectsGetXpnHostCall) Fields(s ...googleapi.Field) *ProjectsGetXpnHostCall {
102404	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102405	return c
102406}
102407
102408// IfNoneMatch sets the optional parameter which makes the operation
102409// fail if the object's ETag matches the given value. This is useful for
102410// getting updates only after the object has changed since the last
102411// request. Use googleapi.IsNotModified to check whether the response
102412// error from Do is the result of In-None-Match.
102413func (c *ProjectsGetXpnHostCall) IfNoneMatch(entityTag string) *ProjectsGetXpnHostCall {
102414	c.ifNoneMatch_ = entityTag
102415	return c
102416}
102417
102418// Context sets the context to be used in this call's Do method. Any
102419// pending HTTP request will be aborted if the provided context is
102420// canceled.
102421func (c *ProjectsGetXpnHostCall) Context(ctx context.Context) *ProjectsGetXpnHostCall {
102422	c.ctx_ = ctx
102423	return c
102424}
102425
102426// Header returns an http.Header that can be modified by the caller to
102427// add HTTP headers to the request.
102428func (c *ProjectsGetXpnHostCall) Header() http.Header {
102429	if c.header_ == nil {
102430		c.header_ = make(http.Header)
102431	}
102432	return c.header_
102433}
102434
102435func (c *ProjectsGetXpnHostCall) doRequest(alt string) (*http.Response, error) {
102436	reqHeaders := make(http.Header)
102437	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102438	for k, v := range c.header_ {
102439		reqHeaders[k] = v
102440	}
102441	reqHeaders.Set("User-Agent", c.s.userAgent())
102442	if c.ifNoneMatch_ != "" {
102443		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102444	}
102445	var body io.Reader = nil
102446	c.urlParams_.Set("alt", alt)
102447	c.urlParams_.Set("prettyPrint", "false")
102448	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnHost")
102449	urls += "?" + c.urlParams_.Encode()
102450	req, err := http.NewRequest("GET", urls, body)
102451	if err != nil {
102452		return nil, err
102453	}
102454	req.Header = reqHeaders
102455	googleapi.Expand(req.URL, map[string]string{
102456		"project": c.project,
102457	})
102458	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102459}
102460
102461// Do executes the "compute.projects.getXpnHost" call.
102462// Exactly one of *Project or error will be non-nil. Any non-2xx status
102463// code is an error. Response headers are in either
102464// *Project.ServerResponse.Header or (if a response was returned at all)
102465// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
102466// check whether the returned error was because http.StatusNotModified
102467// was returned.
102468func (c *ProjectsGetXpnHostCall) Do(opts ...googleapi.CallOption) (*Project, error) {
102469	gensupport.SetOptions(c.urlParams_, opts...)
102470	res, err := c.doRequest("json")
102471	if res != nil && res.StatusCode == http.StatusNotModified {
102472		if res.Body != nil {
102473			res.Body.Close()
102474		}
102475		return nil, &googleapi.Error{
102476			Code:   res.StatusCode,
102477			Header: res.Header,
102478		}
102479	}
102480	if err != nil {
102481		return nil, err
102482	}
102483	defer googleapi.CloseBody(res)
102484	if err := googleapi.CheckResponse(res); err != nil {
102485		return nil, err
102486	}
102487	ret := &Project{
102488		ServerResponse: googleapi.ServerResponse{
102489			Header:         res.Header,
102490			HTTPStatusCode: res.StatusCode,
102491		},
102492	}
102493	target := &ret
102494	if err := gensupport.DecodeResponse(target, res); err != nil {
102495		return nil, err
102496	}
102497	return ret, nil
102498	// {
102499	//   "description": "Gets the shared VPC host project that this project links to. May be empty if no link exists.",
102500	//   "httpMethod": "GET",
102501	//   "id": "compute.projects.getXpnHost",
102502	//   "parameterOrder": [
102503	//     "project"
102504	//   ],
102505	//   "parameters": {
102506	//     "project": {
102507	//       "description": "Project ID for this request.",
102508	//       "location": "path",
102509	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102510	//       "required": true,
102511	//       "type": "string"
102512	//     }
102513	//   },
102514	//   "path": "{project}/getXpnHost",
102515	//   "response": {
102516	//     "$ref": "Project"
102517	//   },
102518	//   "scopes": [
102519	//     "https://www.googleapis.com/auth/cloud-platform",
102520	//     "https://www.googleapis.com/auth/compute"
102521	//   ]
102522	// }
102523
102524}
102525
102526// method id "compute.projects.getXpnResources":
102527
102528type ProjectsGetXpnResourcesCall struct {
102529	s            *Service
102530	project      string
102531	urlParams_   gensupport.URLParams
102532	ifNoneMatch_ string
102533	ctx_         context.Context
102534	header_      http.Header
102535}
102536
102537// GetXpnResources: Gets service resources (a.k.a service project)
102538// associated with this host project.
102539func (r *ProjectsService) GetXpnResources(project string) *ProjectsGetXpnResourcesCall {
102540	c := &ProjectsGetXpnResourcesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102541	c.project = project
102542	return c
102543}
102544
102545// Filter sets the optional parameter "filter": A filter expression that
102546// filters resources listed in the response. The expression must specify
102547// the field name, a comparison operator, and the value that you want to
102548// use for filtering. The value must be a string, a number, or a
102549// boolean. The comparison operator must be either =, !=, >, or <.
102550//
102551// For example, if you are filtering Compute Engine instances, you can
102552// exclude instances named example-instance by specifying name !=
102553// example-instance.
102554//
102555// You can also filter nested fields. For example, you could specify
102556// scheduling.automaticRestart = false to include instances only if they
102557// are not scheduled for automatic restarts. You can use filtering on
102558// nested fields to filter based on resource labels.
102559//
102560// To filter on multiple expressions, provide each separate expression
102561// within parentheses. For example, (scheduling.automaticRestart = true)
102562// (cpuPlatform = "Intel Skylake"). By default, each expression is an
102563// AND expression. However, you can include AND and OR expressions
102564// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
102565// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
102566// true).
102567func (c *ProjectsGetXpnResourcesCall) Filter(filter string) *ProjectsGetXpnResourcesCall {
102568	c.urlParams_.Set("filter", filter)
102569	return c
102570}
102571
102572// MaxResults sets the optional parameter "maxResults": The maximum
102573// number of results per page that should be returned. If the number of
102574// available results is larger than maxResults, Compute Engine returns a
102575// nextPageToken that can be used to get the next page of results in
102576// subsequent list requests. Acceptable values are 0 to 500, inclusive.
102577// (Default: 500)
102578func (c *ProjectsGetXpnResourcesCall) MaxResults(maxResults int64) *ProjectsGetXpnResourcesCall {
102579	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102580	return c
102581}
102582
102583// OrderBy sets the optional parameter "order_by": Sorts list results by
102584// a certain order. By default, results are returned in alphanumerical
102585// order based on the resource name.
102586//
102587// You can also sort results in descending order based on the creation
102588// timestamp using orderBy="creationTimestamp desc". This sorts results
102589// based on the creationTimestamp field in reverse chronological order
102590// (newest result first). Use this to sort resources like operations so
102591// that the newest operation is returned first.
102592//
102593// Currently, only sorting by name or creationTimestamp desc is
102594// supported.
102595func (c *ProjectsGetXpnResourcesCall) OrderBy(orderBy string) *ProjectsGetXpnResourcesCall {
102596	c.urlParams_.Set("order_by", orderBy)
102597	return c
102598}
102599
102600// PageToken sets the optional parameter "pageToken": Specifies a page
102601// token to use. Set pageToken to the nextPageToken returned by a
102602// previous list request to get the next page of results.
102603func (c *ProjectsGetXpnResourcesCall) PageToken(pageToken string) *ProjectsGetXpnResourcesCall {
102604	c.urlParams_.Set("pageToken", pageToken)
102605	return c
102606}
102607
102608// Fields allows partial responses to be retrieved. See
102609// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102610// for more information.
102611func (c *ProjectsGetXpnResourcesCall) Fields(s ...googleapi.Field) *ProjectsGetXpnResourcesCall {
102612	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102613	return c
102614}
102615
102616// IfNoneMatch sets the optional parameter which makes the operation
102617// fail if the object's ETag matches the given value. This is useful for
102618// getting updates only after the object has changed since the last
102619// request. Use googleapi.IsNotModified to check whether the response
102620// error from Do is the result of In-None-Match.
102621func (c *ProjectsGetXpnResourcesCall) IfNoneMatch(entityTag string) *ProjectsGetXpnResourcesCall {
102622	c.ifNoneMatch_ = entityTag
102623	return c
102624}
102625
102626// Context sets the context to be used in this call's Do method. Any
102627// pending HTTP request will be aborted if the provided context is
102628// canceled.
102629func (c *ProjectsGetXpnResourcesCall) Context(ctx context.Context) *ProjectsGetXpnResourcesCall {
102630	c.ctx_ = ctx
102631	return c
102632}
102633
102634// Header returns an http.Header that can be modified by the caller to
102635// add HTTP headers to the request.
102636func (c *ProjectsGetXpnResourcesCall) Header() http.Header {
102637	if c.header_ == nil {
102638		c.header_ = make(http.Header)
102639	}
102640	return c.header_
102641}
102642
102643func (c *ProjectsGetXpnResourcesCall) doRequest(alt string) (*http.Response, error) {
102644	reqHeaders := make(http.Header)
102645	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102646	for k, v := range c.header_ {
102647		reqHeaders[k] = v
102648	}
102649	reqHeaders.Set("User-Agent", c.s.userAgent())
102650	if c.ifNoneMatch_ != "" {
102651		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
102652	}
102653	var body io.Reader = nil
102654	c.urlParams_.Set("alt", alt)
102655	c.urlParams_.Set("prettyPrint", "false")
102656	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/getXpnResources")
102657	urls += "?" + c.urlParams_.Encode()
102658	req, err := http.NewRequest("GET", urls, body)
102659	if err != nil {
102660		return nil, err
102661	}
102662	req.Header = reqHeaders
102663	googleapi.Expand(req.URL, map[string]string{
102664		"project": c.project,
102665	})
102666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102667}
102668
102669// Do executes the "compute.projects.getXpnResources" call.
102670// Exactly one of *ProjectsGetXpnResources or error will be non-nil. Any
102671// non-2xx status code is an error. Response headers are in either
102672// *ProjectsGetXpnResources.ServerResponse.Header or (if a response was
102673// returned at all) in error.(*googleapi.Error).Header. Use
102674// googleapi.IsNotModified to check whether the returned error was
102675// because http.StatusNotModified was returned.
102676func (c *ProjectsGetXpnResourcesCall) Do(opts ...googleapi.CallOption) (*ProjectsGetXpnResources, error) {
102677	gensupport.SetOptions(c.urlParams_, opts...)
102678	res, err := c.doRequest("json")
102679	if res != nil && res.StatusCode == http.StatusNotModified {
102680		if res.Body != nil {
102681			res.Body.Close()
102682		}
102683		return nil, &googleapi.Error{
102684			Code:   res.StatusCode,
102685			Header: res.Header,
102686		}
102687	}
102688	if err != nil {
102689		return nil, err
102690	}
102691	defer googleapi.CloseBody(res)
102692	if err := googleapi.CheckResponse(res); err != nil {
102693		return nil, err
102694	}
102695	ret := &ProjectsGetXpnResources{
102696		ServerResponse: googleapi.ServerResponse{
102697			Header:         res.Header,
102698			HTTPStatusCode: res.StatusCode,
102699		},
102700	}
102701	target := &ret
102702	if err := gensupport.DecodeResponse(target, res); err != nil {
102703		return nil, err
102704	}
102705	return ret, nil
102706	// {
102707	//   "description": "Gets service resources (a.k.a service project) associated with this host project.",
102708	//   "httpMethod": "GET",
102709	//   "id": "compute.projects.getXpnResources",
102710	//   "parameterOrder": [
102711	//     "project"
102712	//   ],
102713	//   "parameters": {
102714	//     "filter": {
102715	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
102716	//       "location": "query",
102717	//       "type": "string"
102718	//     },
102719	//     "maxResults": {
102720	//       "default": "500",
102721	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
102722	//       "format": "uint32",
102723	//       "location": "query",
102724	//       "minimum": "0",
102725	//       "type": "integer"
102726	//     },
102727	//     "order_by": {
102728	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
102729	//       "location": "query",
102730	//       "type": "string"
102731	//     },
102732	//     "pageToken": {
102733	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
102734	//       "location": "query",
102735	//       "type": "string"
102736	//     },
102737	//     "project": {
102738	//       "description": "Project ID for this request.",
102739	//       "location": "path",
102740	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102741	//       "required": true,
102742	//       "type": "string"
102743	//     }
102744	//   },
102745	//   "path": "{project}/getXpnResources",
102746	//   "response": {
102747	//     "$ref": "ProjectsGetXpnResources"
102748	//   },
102749	//   "scopes": [
102750	//     "https://www.googleapis.com/auth/cloud-platform",
102751	//     "https://www.googleapis.com/auth/compute"
102752	//   ]
102753	// }
102754
102755}
102756
102757// Pages invokes f for each page of results.
102758// A non-nil error returned from f will halt the iteration.
102759// The provided context supersedes any context provided to the Context method.
102760func (c *ProjectsGetXpnResourcesCall) Pages(ctx context.Context, f func(*ProjectsGetXpnResources) error) error {
102761	c.ctx_ = ctx
102762	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
102763	for {
102764		x, err := c.Do()
102765		if err != nil {
102766			return err
102767		}
102768		if err := f(x); err != nil {
102769			return err
102770		}
102771		if x.NextPageToken == "" {
102772			return nil
102773		}
102774		c.PageToken(x.NextPageToken)
102775	}
102776}
102777
102778// method id "compute.projects.listXpnHosts":
102779
102780type ProjectsListXpnHostsCall struct {
102781	s                           *Service
102782	project                     string
102783	projectslistxpnhostsrequest *ProjectsListXpnHostsRequest
102784	urlParams_                  gensupport.URLParams
102785	ctx_                        context.Context
102786	header_                     http.Header
102787}
102788
102789// ListXpnHosts: Lists all shared VPC host projects visible to the user
102790// in an organization.
102791func (r *ProjectsService) ListXpnHosts(project string, projectslistxpnhostsrequest *ProjectsListXpnHostsRequest) *ProjectsListXpnHostsCall {
102792	c := &ProjectsListXpnHostsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
102793	c.project = project
102794	c.projectslistxpnhostsrequest = projectslistxpnhostsrequest
102795	return c
102796}
102797
102798// Filter sets the optional parameter "filter": A filter expression that
102799// filters resources listed in the response. The expression must specify
102800// the field name, a comparison operator, and the value that you want to
102801// use for filtering. The value must be a string, a number, or a
102802// boolean. The comparison operator must be either =, !=, >, or <.
102803//
102804// For example, if you are filtering Compute Engine instances, you can
102805// exclude instances named example-instance by specifying name !=
102806// example-instance.
102807//
102808// You can also filter nested fields. For example, you could specify
102809// scheduling.automaticRestart = false to include instances only if they
102810// are not scheduled for automatic restarts. You can use filtering on
102811// nested fields to filter based on resource labels.
102812//
102813// To filter on multiple expressions, provide each separate expression
102814// within parentheses. For example, (scheduling.automaticRestart = true)
102815// (cpuPlatform = "Intel Skylake"). By default, each expression is an
102816// AND expression. However, you can include AND and OR expressions
102817// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
102818// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
102819// true).
102820func (c *ProjectsListXpnHostsCall) Filter(filter string) *ProjectsListXpnHostsCall {
102821	c.urlParams_.Set("filter", filter)
102822	return c
102823}
102824
102825// MaxResults sets the optional parameter "maxResults": The maximum
102826// number of results per page that should be returned. If the number of
102827// available results is larger than maxResults, Compute Engine returns a
102828// nextPageToken that can be used to get the next page of results in
102829// subsequent list requests. Acceptable values are 0 to 500, inclusive.
102830// (Default: 500)
102831func (c *ProjectsListXpnHostsCall) MaxResults(maxResults int64) *ProjectsListXpnHostsCall {
102832	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
102833	return c
102834}
102835
102836// OrderBy sets the optional parameter "order_by": Sorts list results by
102837// a certain order. By default, results are returned in alphanumerical
102838// order based on the resource name.
102839//
102840// You can also sort results in descending order based on the creation
102841// timestamp using orderBy="creationTimestamp desc". This sorts results
102842// based on the creationTimestamp field in reverse chronological order
102843// (newest result first). Use this to sort resources like operations so
102844// that the newest operation is returned first.
102845//
102846// Currently, only sorting by name or creationTimestamp desc is
102847// supported.
102848func (c *ProjectsListXpnHostsCall) OrderBy(orderBy string) *ProjectsListXpnHostsCall {
102849	c.urlParams_.Set("order_by", orderBy)
102850	return c
102851}
102852
102853// PageToken sets the optional parameter "pageToken": Specifies a page
102854// token to use. Set pageToken to the nextPageToken returned by a
102855// previous list request to get the next page of results.
102856func (c *ProjectsListXpnHostsCall) PageToken(pageToken string) *ProjectsListXpnHostsCall {
102857	c.urlParams_.Set("pageToken", pageToken)
102858	return c
102859}
102860
102861// Fields allows partial responses to be retrieved. See
102862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
102863// for more information.
102864func (c *ProjectsListXpnHostsCall) Fields(s ...googleapi.Field) *ProjectsListXpnHostsCall {
102865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
102866	return c
102867}
102868
102869// Context sets the context to be used in this call's Do method. Any
102870// pending HTTP request will be aborted if the provided context is
102871// canceled.
102872func (c *ProjectsListXpnHostsCall) Context(ctx context.Context) *ProjectsListXpnHostsCall {
102873	c.ctx_ = ctx
102874	return c
102875}
102876
102877// Header returns an http.Header that can be modified by the caller to
102878// add HTTP headers to the request.
102879func (c *ProjectsListXpnHostsCall) Header() http.Header {
102880	if c.header_ == nil {
102881		c.header_ = make(http.Header)
102882	}
102883	return c.header_
102884}
102885
102886func (c *ProjectsListXpnHostsCall) doRequest(alt string) (*http.Response, error) {
102887	reqHeaders := make(http.Header)
102888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
102889	for k, v := range c.header_ {
102890		reqHeaders[k] = v
102891	}
102892	reqHeaders.Set("User-Agent", c.s.userAgent())
102893	var body io.Reader = nil
102894	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectslistxpnhostsrequest)
102895	if err != nil {
102896		return nil, err
102897	}
102898	reqHeaders.Set("Content-Type", "application/json")
102899	c.urlParams_.Set("alt", alt)
102900	c.urlParams_.Set("prettyPrint", "false")
102901	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/listXpnHosts")
102902	urls += "?" + c.urlParams_.Encode()
102903	req, err := http.NewRequest("POST", urls, body)
102904	if err != nil {
102905		return nil, err
102906	}
102907	req.Header = reqHeaders
102908	googleapi.Expand(req.URL, map[string]string{
102909		"project": c.project,
102910	})
102911	return gensupport.SendRequest(c.ctx_, c.s.client, req)
102912}
102913
102914// Do executes the "compute.projects.listXpnHosts" call.
102915// Exactly one of *XpnHostList or error will be non-nil. Any non-2xx
102916// status code is an error. Response headers are in either
102917// *XpnHostList.ServerResponse.Header or (if a response was returned at
102918// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
102919// to check whether the returned error was because
102920// http.StatusNotModified was returned.
102921func (c *ProjectsListXpnHostsCall) Do(opts ...googleapi.CallOption) (*XpnHostList, error) {
102922	gensupport.SetOptions(c.urlParams_, opts...)
102923	res, err := c.doRequest("json")
102924	if res != nil && res.StatusCode == http.StatusNotModified {
102925		if res.Body != nil {
102926			res.Body.Close()
102927		}
102928		return nil, &googleapi.Error{
102929			Code:   res.StatusCode,
102930			Header: res.Header,
102931		}
102932	}
102933	if err != nil {
102934		return nil, err
102935	}
102936	defer googleapi.CloseBody(res)
102937	if err := googleapi.CheckResponse(res); err != nil {
102938		return nil, err
102939	}
102940	ret := &XpnHostList{
102941		ServerResponse: googleapi.ServerResponse{
102942			Header:         res.Header,
102943			HTTPStatusCode: res.StatusCode,
102944		},
102945	}
102946	target := &ret
102947	if err := gensupport.DecodeResponse(target, res); err != nil {
102948		return nil, err
102949	}
102950	return ret, nil
102951	// {
102952	//   "description": "Lists all shared VPC host projects visible to the user in an organization.",
102953	//   "httpMethod": "POST",
102954	//   "id": "compute.projects.listXpnHosts",
102955	//   "parameterOrder": [
102956	//     "project"
102957	//   ],
102958	//   "parameters": {
102959	//     "filter": {
102960	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
102961	//       "location": "query",
102962	//       "type": "string"
102963	//     },
102964	//     "maxResults": {
102965	//       "default": "500",
102966	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
102967	//       "format": "uint32",
102968	//       "location": "query",
102969	//       "minimum": "0",
102970	//       "type": "integer"
102971	//     },
102972	//     "order_by": {
102973	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
102974	//       "location": "query",
102975	//       "type": "string"
102976	//     },
102977	//     "pageToken": {
102978	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
102979	//       "location": "query",
102980	//       "type": "string"
102981	//     },
102982	//     "project": {
102983	//       "description": "Project ID for this request.",
102984	//       "location": "path",
102985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
102986	//       "required": true,
102987	//       "type": "string"
102988	//     }
102989	//   },
102990	//   "path": "{project}/listXpnHosts",
102991	//   "request": {
102992	//     "$ref": "ProjectsListXpnHostsRequest"
102993	//   },
102994	//   "response": {
102995	//     "$ref": "XpnHostList"
102996	//   },
102997	//   "scopes": [
102998	//     "https://www.googleapis.com/auth/cloud-platform",
102999	//     "https://www.googleapis.com/auth/compute"
103000	//   ]
103001	// }
103002
103003}
103004
103005// Pages invokes f for each page of results.
103006// A non-nil error returned from f will halt the iteration.
103007// The provided context supersedes any context provided to the Context method.
103008func (c *ProjectsListXpnHostsCall) Pages(ctx context.Context, f func(*XpnHostList) error) error {
103009	c.ctx_ = ctx
103010	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
103011	for {
103012		x, err := c.Do()
103013		if err != nil {
103014			return err
103015		}
103016		if err := f(x); err != nil {
103017			return err
103018		}
103019		if x.NextPageToken == "" {
103020			return nil
103021		}
103022		c.PageToken(x.NextPageToken)
103023	}
103024}
103025
103026// method id "compute.projects.moveDisk":
103027
103028type ProjectsMoveDiskCall struct {
103029	s               *Service
103030	project         string
103031	diskmoverequest *DiskMoveRequest
103032	urlParams_      gensupport.URLParams
103033	ctx_            context.Context
103034	header_         http.Header
103035}
103036
103037// MoveDisk: Moves a persistent disk from one zone to another.
103038func (r *ProjectsService) MoveDisk(project string, diskmoverequest *DiskMoveRequest) *ProjectsMoveDiskCall {
103039	c := &ProjectsMoveDiskCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103040	c.project = project
103041	c.diskmoverequest = diskmoverequest
103042	return c
103043}
103044
103045// RequestId sets the optional parameter "requestId": An optional
103046// request ID to identify requests. Specify a unique request ID so that
103047// if you must retry your request, the server will know to ignore the
103048// request if it has already been completed.
103049//
103050// For example, consider a situation where you make an initial request
103051// and the request times out. If you make the request again with the
103052// same request ID, the server can check if original operation with the
103053// same request ID was received, and if so, will ignore the second
103054// request. This prevents clients from accidentally creating duplicate
103055// commitments.
103056//
103057// The request ID must be a valid UUID with the exception that zero UUID
103058// is not supported (00000000-0000-0000-0000-000000000000).
103059func (c *ProjectsMoveDiskCall) RequestId(requestId string) *ProjectsMoveDiskCall {
103060	c.urlParams_.Set("requestId", requestId)
103061	return c
103062}
103063
103064// Fields allows partial responses to be retrieved. See
103065// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103066// for more information.
103067func (c *ProjectsMoveDiskCall) Fields(s ...googleapi.Field) *ProjectsMoveDiskCall {
103068	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103069	return c
103070}
103071
103072// Context sets the context to be used in this call's Do method. Any
103073// pending HTTP request will be aborted if the provided context is
103074// canceled.
103075func (c *ProjectsMoveDiskCall) Context(ctx context.Context) *ProjectsMoveDiskCall {
103076	c.ctx_ = ctx
103077	return c
103078}
103079
103080// Header returns an http.Header that can be modified by the caller to
103081// add HTTP headers to the request.
103082func (c *ProjectsMoveDiskCall) Header() http.Header {
103083	if c.header_ == nil {
103084		c.header_ = make(http.Header)
103085	}
103086	return c.header_
103087}
103088
103089func (c *ProjectsMoveDiskCall) doRequest(alt string) (*http.Response, error) {
103090	reqHeaders := make(http.Header)
103091	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103092	for k, v := range c.header_ {
103093		reqHeaders[k] = v
103094	}
103095	reqHeaders.Set("User-Agent", c.s.userAgent())
103096	var body io.Reader = nil
103097	body, err := googleapi.WithoutDataWrapper.JSONReader(c.diskmoverequest)
103098	if err != nil {
103099		return nil, err
103100	}
103101	reqHeaders.Set("Content-Type", "application/json")
103102	c.urlParams_.Set("alt", alt)
103103	c.urlParams_.Set("prettyPrint", "false")
103104	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveDisk")
103105	urls += "?" + c.urlParams_.Encode()
103106	req, err := http.NewRequest("POST", urls, body)
103107	if err != nil {
103108		return nil, err
103109	}
103110	req.Header = reqHeaders
103111	googleapi.Expand(req.URL, map[string]string{
103112		"project": c.project,
103113	})
103114	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103115}
103116
103117// Do executes the "compute.projects.moveDisk" call.
103118// Exactly one of *Operation or error will be non-nil. Any non-2xx
103119// status code is an error. Response headers are in either
103120// *Operation.ServerResponse.Header or (if a response was returned at
103121// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103122// to check whether the returned error was because
103123// http.StatusNotModified was returned.
103124func (c *ProjectsMoveDiskCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103125	gensupport.SetOptions(c.urlParams_, opts...)
103126	res, err := c.doRequest("json")
103127	if res != nil && res.StatusCode == http.StatusNotModified {
103128		if res.Body != nil {
103129			res.Body.Close()
103130		}
103131		return nil, &googleapi.Error{
103132			Code:   res.StatusCode,
103133			Header: res.Header,
103134		}
103135	}
103136	if err != nil {
103137		return nil, err
103138	}
103139	defer googleapi.CloseBody(res)
103140	if err := googleapi.CheckResponse(res); err != nil {
103141		return nil, err
103142	}
103143	ret := &Operation{
103144		ServerResponse: googleapi.ServerResponse{
103145			Header:         res.Header,
103146			HTTPStatusCode: res.StatusCode,
103147		},
103148	}
103149	target := &ret
103150	if err := gensupport.DecodeResponse(target, res); err != nil {
103151		return nil, err
103152	}
103153	return ret, nil
103154	// {
103155	//   "description": "Moves a persistent disk from one zone to another.",
103156	//   "httpMethod": "POST",
103157	//   "id": "compute.projects.moveDisk",
103158	//   "parameterOrder": [
103159	//     "project"
103160	//   ],
103161	//   "parameters": {
103162	//     "project": {
103163	//       "description": "Project ID for this request.",
103164	//       "location": "path",
103165	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103166	//       "required": true,
103167	//       "type": "string"
103168	//     },
103169	//     "requestId": {
103170	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103171	//       "location": "query",
103172	//       "type": "string"
103173	//     }
103174	//   },
103175	//   "path": "{project}/moveDisk",
103176	//   "request": {
103177	//     "$ref": "DiskMoveRequest"
103178	//   },
103179	//   "response": {
103180	//     "$ref": "Operation"
103181	//   },
103182	//   "scopes": [
103183	//     "https://www.googleapis.com/auth/cloud-platform",
103184	//     "https://www.googleapis.com/auth/compute"
103185	//   ]
103186	// }
103187
103188}
103189
103190// method id "compute.projects.moveInstance":
103191
103192type ProjectsMoveInstanceCall struct {
103193	s                   *Service
103194	project             string
103195	instancemoverequest *InstanceMoveRequest
103196	urlParams_          gensupport.URLParams
103197	ctx_                context.Context
103198	header_             http.Header
103199}
103200
103201// MoveInstance: Moves an instance and its attached persistent disks
103202// from one zone to another.
103203func (r *ProjectsService) MoveInstance(project string, instancemoverequest *InstanceMoveRequest) *ProjectsMoveInstanceCall {
103204	c := &ProjectsMoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103205	c.project = project
103206	c.instancemoverequest = instancemoverequest
103207	return c
103208}
103209
103210// RequestId sets the optional parameter "requestId": An optional
103211// request ID to identify requests. Specify a unique request ID so that
103212// if you must retry your request, the server will know to ignore the
103213// request if it has already been completed.
103214//
103215// For example, consider a situation where you make an initial request
103216// and the request times out. If you make the request again with the
103217// same request ID, the server can check if original operation with the
103218// same request ID was received, and if so, will ignore the second
103219// request. This prevents clients from accidentally creating duplicate
103220// commitments.
103221//
103222// The request ID must be a valid UUID with the exception that zero UUID
103223// is not supported (00000000-0000-0000-0000-000000000000).
103224func (c *ProjectsMoveInstanceCall) RequestId(requestId string) *ProjectsMoveInstanceCall {
103225	c.urlParams_.Set("requestId", requestId)
103226	return c
103227}
103228
103229// Fields allows partial responses to be retrieved. See
103230// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103231// for more information.
103232func (c *ProjectsMoveInstanceCall) Fields(s ...googleapi.Field) *ProjectsMoveInstanceCall {
103233	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103234	return c
103235}
103236
103237// Context sets the context to be used in this call's Do method. Any
103238// pending HTTP request will be aborted if the provided context is
103239// canceled.
103240func (c *ProjectsMoveInstanceCall) Context(ctx context.Context) *ProjectsMoveInstanceCall {
103241	c.ctx_ = ctx
103242	return c
103243}
103244
103245// Header returns an http.Header that can be modified by the caller to
103246// add HTTP headers to the request.
103247func (c *ProjectsMoveInstanceCall) Header() http.Header {
103248	if c.header_ == nil {
103249		c.header_ = make(http.Header)
103250	}
103251	return c.header_
103252}
103253
103254func (c *ProjectsMoveInstanceCall) doRequest(alt string) (*http.Response, error) {
103255	reqHeaders := make(http.Header)
103256	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103257	for k, v := range c.header_ {
103258		reqHeaders[k] = v
103259	}
103260	reqHeaders.Set("User-Agent", c.s.userAgent())
103261	var body io.Reader = nil
103262	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancemoverequest)
103263	if err != nil {
103264		return nil, err
103265	}
103266	reqHeaders.Set("Content-Type", "application/json")
103267	c.urlParams_.Set("alt", alt)
103268	c.urlParams_.Set("prettyPrint", "false")
103269	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/moveInstance")
103270	urls += "?" + c.urlParams_.Encode()
103271	req, err := http.NewRequest("POST", urls, body)
103272	if err != nil {
103273		return nil, err
103274	}
103275	req.Header = reqHeaders
103276	googleapi.Expand(req.URL, map[string]string{
103277		"project": c.project,
103278	})
103279	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103280}
103281
103282// Do executes the "compute.projects.moveInstance" call.
103283// Exactly one of *Operation or error will be non-nil. Any non-2xx
103284// status code is an error. Response headers are in either
103285// *Operation.ServerResponse.Header or (if a response was returned at
103286// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103287// to check whether the returned error was because
103288// http.StatusNotModified was returned.
103289func (c *ProjectsMoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103290	gensupport.SetOptions(c.urlParams_, opts...)
103291	res, err := c.doRequest("json")
103292	if res != nil && res.StatusCode == http.StatusNotModified {
103293		if res.Body != nil {
103294			res.Body.Close()
103295		}
103296		return nil, &googleapi.Error{
103297			Code:   res.StatusCode,
103298			Header: res.Header,
103299		}
103300	}
103301	if err != nil {
103302		return nil, err
103303	}
103304	defer googleapi.CloseBody(res)
103305	if err := googleapi.CheckResponse(res); err != nil {
103306		return nil, err
103307	}
103308	ret := &Operation{
103309		ServerResponse: googleapi.ServerResponse{
103310			Header:         res.Header,
103311			HTTPStatusCode: res.StatusCode,
103312		},
103313	}
103314	target := &ret
103315	if err := gensupport.DecodeResponse(target, res); err != nil {
103316		return nil, err
103317	}
103318	return ret, nil
103319	// {
103320	//   "description": "Moves an instance and its attached persistent disks from one zone to another.",
103321	//   "httpMethod": "POST",
103322	//   "id": "compute.projects.moveInstance",
103323	//   "parameterOrder": [
103324	//     "project"
103325	//   ],
103326	//   "parameters": {
103327	//     "project": {
103328	//       "description": "Project ID for this request.",
103329	//       "location": "path",
103330	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103331	//       "required": true,
103332	//       "type": "string"
103333	//     },
103334	//     "requestId": {
103335	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103336	//       "location": "query",
103337	//       "type": "string"
103338	//     }
103339	//   },
103340	//   "path": "{project}/moveInstance",
103341	//   "request": {
103342	//     "$ref": "InstanceMoveRequest"
103343	//   },
103344	//   "response": {
103345	//     "$ref": "Operation"
103346	//   },
103347	//   "scopes": [
103348	//     "https://www.googleapis.com/auth/cloud-platform",
103349	//     "https://www.googleapis.com/auth/compute"
103350	//   ]
103351	// }
103352
103353}
103354
103355// method id "compute.projects.setCommonInstanceMetadata":
103356
103357type ProjectsSetCommonInstanceMetadataCall struct {
103358	s          *Service
103359	project    string
103360	metadata   *Metadata
103361	urlParams_ gensupport.URLParams
103362	ctx_       context.Context
103363	header_    http.Header
103364}
103365
103366// SetCommonInstanceMetadata: Sets metadata common to all instances
103367// within the specified project using the data included in the request.
103368// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setCommonInstanceMetadata
103369func (r *ProjectsService) SetCommonInstanceMetadata(project string, metadata *Metadata) *ProjectsSetCommonInstanceMetadataCall {
103370	c := &ProjectsSetCommonInstanceMetadataCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103371	c.project = project
103372	c.metadata = metadata
103373	return c
103374}
103375
103376// RequestId sets the optional parameter "requestId": An optional
103377// request ID to identify requests. Specify a unique request ID so that
103378// if you must retry your request, the server will know to ignore the
103379// request if it has already been completed.
103380//
103381// For example, consider a situation where you make an initial request
103382// and the request times out. If you make the request again with the
103383// same request ID, the server can check if original operation with the
103384// same request ID was received, and if so, will ignore the second
103385// request. This prevents clients from accidentally creating duplicate
103386// commitments.
103387//
103388// The request ID must be a valid UUID with the exception that zero UUID
103389// is not supported (00000000-0000-0000-0000-000000000000).
103390func (c *ProjectsSetCommonInstanceMetadataCall) RequestId(requestId string) *ProjectsSetCommonInstanceMetadataCall {
103391	c.urlParams_.Set("requestId", requestId)
103392	return c
103393}
103394
103395// Fields allows partial responses to be retrieved. See
103396// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103397// for more information.
103398func (c *ProjectsSetCommonInstanceMetadataCall) Fields(s ...googleapi.Field) *ProjectsSetCommonInstanceMetadataCall {
103399	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103400	return c
103401}
103402
103403// Context sets the context to be used in this call's Do method. Any
103404// pending HTTP request will be aborted if the provided context is
103405// canceled.
103406func (c *ProjectsSetCommonInstanceMetadataCall) Context(ctx context.Context) *ProjectsSetCommonInstanceMetadataCall {
103407	c.ctx_ = ctx
103408	return c
103409}
103410
103411// Header returns an http.Header that can be modified by the caller to
103412// add HTTP headers to the request.
103413func (c *ProjectsSetCommonInstanceMetadataCall) Header() http.Header {
103414	if c.header_ == nil {
103415		c.header_ = make(http.Header)
103416	}
103417	return c.header_
103418}
103419
103420func (c *ProjectsSetCommonInstanceMetadataCall) doRequest(alt string) (*http.Response, error) {
103421	reqHeaders := make(http.Header)
103422	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103423	for k, v := range c.header_ {
103424		reqHeaders[k] = v
103425	}
103426	reqHeaders.Set("User-Agent", c.s.userAgent())
103427	var body io.Reader = nil
103428	body, err := googleapi.WithoutDataWrapper.JSONReader(c.metadata)
103429	if err != nil {
103430		return nil, err
103431	}
103432	reqHeaders.Set("Content-Type", "application/json")
103433	c.urlParams_.Set("alt", alt)
103434	c.urlParams_.Set("prettyPrint", "false")
103435	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setCommonInstanceMetadata")
103436	urls += "?" + c.urlParams_.Encode()
103437	req, err := http.NewRequest("POST", urls, body)
103438	if err != nil {
103439		return nil, err
103440	}
103441	req.Header = reqHeaders
103442	googleapi.Expand(req.URL, map[string]string{
103443		"project": c.project,
103444	})
103445	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103446}
103447
103448// Do executes the "compute.projects.setCommonInstanceMetadata" call.
103449// Exactly one of *Operation or error will be non-nil. Any non-2xx
103450// status code is an error. Response headers are in either
103451// *Operation.ServerResponse.Header or (if a response was returned at
103452// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103453// to check whether the returned error was because
103454// http.StatusNotModified was returned.
103455func (c *ProjectsSetCommonInstanceMetadataCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103456	gensupport.SetOptions(c.urlParams_, opts...)
103457	res, err := c.doRequest("json")
103458	if res != nil && res.StatusCode == http.StatusNotModified {
103459		if res.Body != nil {
103460			res.Body.Close()
103461		}
103462		return nil, &googleapi.Error{
103463			Code:   res.StatusCode,
103464			Header: res.Header,
103465		}
103466	}
103467	if err != nil {
103468		return nil, err
103469	}
103470	defer googleapi.CloseBody(res)
103471	if err := googleapi.CheckResponse(res); err != nil {
103472		return nil, err
103473	}
103474	ret := &Operation{
103475		ServerResponse: googleapi.ServerResponse{
103476			Header:         res.Header,
103477			HTTPStatusCode: res.StatusCode,
103478		},
103479	}
103480	target := &ret
103481	if err := gensupport.DecodeResponse(target, res); err != nil {
103482		return nil, err
103483	}
103484	return ret, nil
103485	// {
103486	//   "description": "Sets metadata common to all instances within the specified project using the data included in the request.",
103487	//   "httpMethod": "POST",
103488	//   "id": "compute.projects.setCommonInstanceMetadata",
103489	//   "parameterOrder": [
103490	//     "project"
103491	//   ],
103492	//   "parameters": {
103493	//     "project": {
103494	//       "description": "Project ID for this request.",
103495	//       "location": "path",
103496	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103497	//       "required": true,
103498	//       "type": "string"
103499	//     },
103500	//     "requestId": {
103501	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103502	//       "location": "query",
103503	//       "type": "string"
103504	//     }
103505	//   },
103506	//   "path": "{project}/setCommonInstanceMetadata",
103507	//   "request": {
103508	//     "$ref": "Metadata"
103509	//   },
103510	//   "response": {
103511	//     "$ref": "Operation"
103512	//   },
103513	//   "scopes": [
103514	//     "https://www.googleapis.com/auth/cloud-platform",
103515	//     "https://www.googleapis.com/auth/compute"
103516	//   ]
103517	// }
103518
103519}
103520
103521// method id "compute.projects.setDefaultNetworkTier":
103522
103523type ProjectsSetDefaultNetworkTierCall struct {
103524	s                                    *Service
103525	project                              string
103526	projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest
103527	urlParams_                           gensupport.URLParams
103528	ctx_                                 context.Context
103529	header_                              http.Header
103530}
103531
103532// SetDefaultNetworkTier: Sets the default network tier of the project.
103533// The default network tier is used when an
103534// address/forwardingRule/instance is created without specifying the
103535// network tier field.
103536func (r *ProjectsService) SetDefaultNetworkTier(project string, projectssetdefaultnetworktierrequest *ProjectsSetDefaultNetworkTierRequest) *ProjectsSetDefaultNetworkTierCall {
103537	c := &ProjectsSetDefaultNetworkTierCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103538	c.project = project
103539	c.projectssetdefaultnetworktierrequest = projectssetdefaultnetworktierrequest
103540	return c
103541}
103542
103543// RequestId sets the optional parameter "requestId": An optional
103544// request ID to identify requests. Specify a unique request ID so that
103545// if you must retry your request, the server will know to ignore the
103546// request if it has already been completed.
103547//
103548// For example, consider a situation where you make an initial request
103549// and the request times out. If you make the request again with the
103550// same request ID, the server can check if original operation with the
103551// same request ID was received, and if so, will ignore the second
103552// request. This prevents clients from accidentally creating duplicate
103553// commitments.
103554//
103555// The request ID must be a valid UUID with the exception that zero UUID
103556// is not supported (00000000-0000-0000-0000-000000000000).
103557func (c *ProjectsSetDefaultNetworkTierCall) RequestId(requestId string) *ProjectsSetDefaultNetworkTierCall {
103558	c.urlParams_.Set("requestId", requestId)
103559	return c
103560}
103561
103562// Fields allows partial responses to be retrieved. See
103563// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103564// for more information.
103565func (c *ProjectsSetDefaultNetworkTierCall) Fields(s ...googleapi.Field) *ProjectsSetDefaultNetworkTierCall {
103566	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103567	return c
103568}
103569
103570// Context sets the context to be used in this call's Do method. Any
103571// pending HTTP request will be aborted if the provided context is
103572// canceled.
103573func (c *ProjectsSetDefaultNetworkTierCall) Context(ctx context.Context) *ProjectsSetDefaultNetworkTierCall {
103574	c.ctx_ = ctx
103575	return c
103576}
103577
103578// Header returns an http.Header that can be modified by the caller to
103579// add HTTP headers to the request.
103580func (c *ProjectsSetDefaultNetworkTierCall) Header() http.Header {
103581	if c.header_ == nil {
103582		c.header_ = make(http.Header)
103583	}
103584	return c.header_
103585}
103586
103587func (c *ProjectsSetDefaultNetworkTierCall) doRequest(alt string) (*http.Response, error) {
103588	reqHeaders := make(http.Header)
103589	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103590	for k, v := range c.header_ {
103591		reqHeaders[k] = v
103592	}
103593	reqHeaders.Set("User-Agent", c.s.userAgent())
103594	var body io.Reader = nil
103595	body, err := googleapi.WithoutDataWrapper.JSONReader(c.projectssetdefaultnetworktierrequest)
103596	if err != nil {
103597		return nil, err
103598	}
103599	reqHeaders.Set("Content-Type", "application/json")
103600	c.urlParams_.Set("alt", alt)
103601	c.urlParams_.Set("prettyPrint", "false")
103602	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setDefaultNetworkTier")
103603	urls += "?" + c.urlParams_.Encode()
103604	req, err := http.NewRequest("POST", urls, body)
103605	if err != nil {
103606		return nil, err
103607	}
103608	req.Header = reqHeaders
103609	googleapi.Expand(req.URL, map[string]string{
103610		"project": c.project,
103611	})
103612	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103613}
103614
103615// Do executes the "compute.projects.setDefaultNetworkTier" call.
103616// Exactly one of *Operation or error will be non-nil. Any non-2xx
103617// status code is an error. Response headers are in either
103618// *Operation.ServerResponse.Header or (if a response was returned at
103619// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103620// to check whether the returned error was because
103621// http.StatusNotModified was returned.
103622func (c *ProjectsSetDefaultNetworkTierCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103623	gensupport.SetOptions(c.urlParams_, opts...)
103624	res, err := c.doRequest("json")
103625	if res != nil && res.StatusCode == http.StatusNotModified {
103626		if res.Body != nil {
103627			res.Body.Close()
103628		}
103629		return nil, &googleapi.Error{
103630			Code:   res.StatusCode,
103631			Header: res.Header,
103632		}
103633	}
103634	if err != nil {
103635		return nil, err
103636	}
103637	defer googleapi.CloseBody(res)
103638	if err := googleapi.CheckResponse(res); err != nil {
103639		return nil, err
103640	}
103641	ret := &Operation{
103642		ServerResponse: googleapi.ServerResponse{
103643			Header:         res.Header,
103644			HTTPStatusCode: res.StatusCode,
103645		},
103646	}
103647	target := &ret
103648	if err := gensupport.DecodeResponse(target, res); err != nil {
103649		return nil, err
103650	}
103651	return ret, nil
103652	// {
103653	//   "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.",
103654	//   "httpMethod": "POST",
103655	//   "id": "compute.projects.setDefaultNetworkTier",
103656	//   "parameterOrder": [
103657	//     "project"
103658	//   ],
103659	//   "parameters": {
103660	//     "project": {
103661	//       "description": "Project ID for this request.",
103662	//       "location": "path",
103663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103664	//       "required": true,
103665	//       "type": "string"
103666	//     },
103667	//     "requestId": {
103668	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103669	//       "location": "query",
103670	//       "type": "string"
103671	//     }
103672	//   },
103673	//   "path": "{project}/setDefaultNetworkTier",
103674	//   "request": {
103675	//     "$ref": "ProjectsSetDefaultNetworkTierRequest"
103676	//   },
103677	//   "response": {
103678	//     "$ref": "Operation"
103679	//   },
103680	//   "scopes": [
103681	//     "https://www.googleapis.com/auth/cloud-platform",
103682	//     "https://www.googleapis.com/auth/compute"
103683	//   ]
103684	// }
103685
103686}
103687
103688// method id "compute.projects.setUsageExportBucket":
103689
103690type ProjectsSetUsageExportBucketCall struct {
103691	s                   *Service
103692	project             string
103693	usageexportlocation *UsageExportLocation
103694	urlParams_          gensupport.URLParams
103695	ctx_                context.Context
103696	header_             http.Header
103697}
103698
103699// SetUsageExportBucket: Enables the usage export feature and sets the
103700// usage export bucket where reports are stored. If you provide an empty
103701// request body using this method, the usage export feature will be
103702// disabled.
103703// For details, see https://cloud.google.com/compute/docs/reference/latest/projects/setUsageExportBucket
103704func (r *ProjectsService) SetUsageExportBucket(project string, usageexportlocation *UsageExportLocation) *ProjectsSetUsageExportBucketCall {
103705	c := &ProjectsSetUsageExportBucketCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103706	c.project = project
103707	c.usageexportlocation = usageexportlocation
103708	return c
103709}
103710
103711// RequestId sets the optional parameter "requestId": An optional
103712// request ID to identify requests. Specify a unique request ID so that
103713// if you must retry your request, the server will know to ignore the
103714// request if it has already been completed.
103715//
103716// For example, consider a situation where you make an initial request
103717// and the request times out. If you make the request again with the
103718// same request ID, the server can check if original operation with the
103719// same request ID was received, and if so, will ignore the second
103720// request. This prevents clients from accidentally creating duplicate
103721// commitments.
103722//
103723// The request ID must be a valid UUID with the exception that zero UUID
103724// is not supported (00000000-0000-0000-0000-000000000000).
103725func (c *ProjectsSetUsageExportBucketCall) RequestId(requestId string) *ProjectsSetUsageExportBucketCall {
103726	c.urlParams_.Set("requestId", requestId)
103727	return c
103728}
103729
103730// Fields allows partial responses to be retrieved. See
103731// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103732// for more information.
103733func (c *ProjectsSetUsageExportBucketCall) Fields(s ...googleapi.Field) *ProjectsSetUsageExportBucketCall {
103734	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103735	return c
103736}
103737
103738// Context sets the context to be used in this call's Do method. Any
103739// pending HTTP request will be aborted if the provided context is
103740// canceled.
103741func (c *ProjectsSetUsageExportBucketCall) Context(ctx context.Context) *ProjectsSetUsageExportBucketCall {
103742	c.ctx_ = ctx
103743	return c
103744}
103745
103746// Header returns an http.Header that can be modified by the caller to
103747// add HTTP headers to the request.
103748func (c *ProjectsSetUsageExportBucketCall) Header() http.Header {
103749	if c.header_ == nil {
103750		c.header_ = make(http.Header)
103751	}
103752	return c.header_
103753}
103754
103755func (c *ProjectsSetUsageExportBucketCall) doRequest(alt string) (*http.Response, error) {
103756	reqHeaders := make(http.Header)
103757	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103758	for k, v := range c.header_ {
103759		reqHeaders[k] = v
103760	}
103761	reqHeaders.Set("User-Agent", c.s.userAgent())
103762	var body io.Reader = nil
103763	body, err := googleapi.WithoutDataWrapper.JSONReader(c.usageexportlocation)
103764	if err != nil {
103765		return nil, err
103766	}
103767	reqHeaders.Set("Content-Type", "application/json")
103768	c.urlParams_.Set("alt", alt)
103769	c.urlParams_.Set("prettyPrint", "false")
103770	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/setUsageExportBucket")
103771	urls += "?" + c.urlParams_.Encode()
103772	req, err := http.NewRequest("POST", urls, body)
103773	if err != nil {
103774		return nil, err
103775	}
103776	req.Header = reqHeaders
103777	googleapi.Expand(req.URL, map[string]string{
103778		"project": c.project,
103779	})
103780	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103781}
103782
103783// Do executes the "compute.projects.setUsageExportBucket" call.
103784// Exactly one of *Operation or error will be non-nil. Any non-2xx
103785// status code is an error. Response headers are in either
103786// *Operation.ServerResponse.Header or (if a response was returned at
103787// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103788// to check whether the returned error was because
103789// http.StatusNotModified was returned.
103790func (c *ProjectsSetUsageExportBucketCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103791	gensupport.SetOptions(c.urlParams_, opts...)
103792	res, err := c.doRequest("json")
103793	if res != nil && res.StatusCode == http.StatusNotModified {
103794		if res.Body != nil {
103795			res.Body.Close()
103796		}
103797		return nil, &googleapi.Error{
103798			Code:   res.StatusCode,
103799			Header: res.Header,
103800		}
103801	}
103802	if err != nil {
103803		return nil, err
103804	}
103805	defer googleapi.CloseBody(res)
103806	if err := googleapi.CheckResponse(res); err != nil {
103807		return nil, err
103808	}
103809	ret := &Operation{
103810		ServerResponse: googleapi.ServerResponse{
103811			Header:         res.Header,
103812			HTTPStatusCode: res.StatusCode,
103813		},
103814	}
103815	target := &ret
103816	if err := gensupport.DecodeResponse(target, res); err != nil {
103817		return nil, err
103818	}
103819	return ret, nil
103820	// {
103821	//   "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.",
103822	//   "httpMethod": "POST",
103823	//   "id": "compute.projects.setUsageExportBucket",
103824	//   "parameterOrder": [
103825	//     "project"
103826	//   ],
103827	//   "parameters": {
103828	//     "project": {
103829	//       "description": "Project ID for this request.",
103830	//       "location": "path",
103831	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
103832	//       "required": true,
103833	//       "type": "string"
103834	//     },
103835	//     "requestId": {
103836	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
103837	//       "location": "query",
103838	//       "type": "string"
103839	//     }
103840	//   },
103841	//   "path": "{project}/setUsageExportBucket",
103842	//   "request": {
103843	//     "$ref": "UsageExportLocation"
103844	//   },
103845	//   "response": {
103846	//     "$ref": "Operation"
103847	//   },
103848	//   "scopes": [
103849	//     "https://www.googleapis.com/auth/cloud-platform",
103850	//     "https://www.googleapis.com/auth/compute",
103851	//     "https://www.googleapis.com/auth/devstorage.full_control",
103852	//     "https://www.googleapis.com/auth/devstorage.read_only",
103853	//     "https://www.googleapis.com/auth/devstorage.read_write"
103854	//   ]
103855	// }
103856
103857}
103858
103859// method id "compute.regionAutoscalers.delete":
103860
103861type RegionAutoscalersDeleteCall struct {
103862	s          *Service
103863	project    string
103864	region     string
103865	autoscaler string
103866	urlParams_ gensupport.URLParams
103867	ctx_       context.Context
103868	header_    http.Header
103869}
103870
103871// Delete: Deletes the specified autoscaler.
103872func (r *RegionAutoscalersService) Delete(project string, region string, autoscaler string) *RegionAutoscalersDeleteCall {
103873	c := &RegionAutoscalersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
103874	c.project = project
103875	c.region = region
103876	c.autoscaler = autoscaler
103877	return c
103878}
103879
103880// RequestId sets the optional parameter "requestId": An optional
103881// request ID to identify requests. Specify a unique request ID so that
103882// if you must retry your request, the server will know to ignore the
103883// request if it has already been completed.
103884//
103885// For example, consider a situation where you make an initial request
103886// and the request times out. If you make the request again with the
103887// same request ID, the server can check if original operation with the
103888// same request ID was received, and if so, will ignore the second
103889// request. This prevents clients from accidentally creating duplicate
103890// commitments.
103891//
103892// The request ID must be a valid UUID with the exception that zero UUID
103893// is not supported (00000000-0000-0000-0000-000000000000).
103894func (c *RegionAutoscalersDeleteCall) RequestId(requestId string) *RegionAutoscalersDeleteCall {
103895	c.urlParams_.Set("requestId", requestId)
103896	return c
103897}
103898
103899// Fields allows partial responses to be retrieved. See
103900// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
103901// for more information.
103902func (c *RegionAutoscalersDeleteCall) Fields(s ...googleapi.Field) *RegionAutoscalersDeleteCall {
103903	c.urlParams_.Set("fields", googleapi.CombineFields(s))
103904	return c
103905}
103906
103907// Context sets the context to be used in this call's Do method. Any
103908// pending HTTP request will be aborted if the provided context is
103909// canceled.
103910func (c *RegionAutoscalersDeleteCall) Context(ctx context.Context) *RegionAutoscalersDeleteCall {
103911	c.ctx_ = ctx
103912	return c
103913}
103914
103915// Header returns an http.Header that can be modified by the caller to
103916// add HTTP headers to the request.
103917func (c *RegionAutoscalersDeleteCall) Header() http.Header {
103918	if c.header_ == nil {
103919		c.header_ = make(http.Header)
103920	}
103921	return c.header_
103922}
103923
103924func (c *RegionAutoscalersDeleteCall) doRequest(alt string) (*http.Response, error) {
103925	reqHeaders := make(http.Header)
103926	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
103927	for k, v := range c.header_ {
103928		reqHeaders[k] = v
103929	}
103930	reqHeaders.Set("User-Agent", c.s.userAgent())
103931	var body io.Reader = nil
103932	c.urlParams_.Set("alt", alt)
103933	c.urlParams_.Set("prettyPrint", "false")
103934	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
103935	urls += "?" + c.urlParams_.Encode()
103936	req, err := http.NewRequest("DELETE", urls, body)
103937	if err != nil {
103938		return nil, err
103939	}
103940	req.Header = reqHeaders
103941	googleapi.Expand(req.URL, map[string]string{
103942		"project":    c.project,
103943		"region":     c.region,
103944		"autoscaler": c.autoscaler,
103945	})
103946	return gensupport.SendRequest(c.ctx_, c.s.client, req)
103947}
103948
103949// Do executes the "compute.regionAutoscalers.delete" call.
103950// Exactly one of *Operation or error will be non-nil. Any non-2xx
103951// status code is an error. Response headers are in either
103952// *Operation.ServerResponse.Header or (if a response was returned at
103953// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
103954// to check whether the returned error was because
103955// http.StatusNotModified was returned.
103956func (c *RegionAutoscalersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
103957	gensupport.SetOptions(c.urlParams_, opts...)
103958	res, err := c.doRequest("json")
103959	if res != nil && res.StatusCode == http.StatusNotModified {
103960		if res.Body != nil {
103961			res.Body.Close()
103962		}
103963		return nil, &googleapi.Error{
103964			Code:   res.StatusCode,
103965			Header: res.Header,
103966		}
103967	}
103968	if err != nil {
103969		return nil, err
103970	}
103971	defer googleapi.CloseBody(res)
103972	if err := googleapi.CheckResponse(res); err != nil {
103973		return nil, err
103974	}
103975	ret := &Operation{
103976		ServerResponse: googleapi.ServerResponse{
103977			Header:         res.Header,
103978			HTTPStatusCode: res.StatusCode,
103979		},
103980	}
103981	target := &ret
103982	if err := gensupport.DecodeResponse(target, res); err != nil {
103983		return nil, err
103984	}
103985	return ret, nil
103986	// {
103987	//   "description": "Deletes the specified autoscaler.",
103988	//   "httpMethod": "DELETE",
103989	//   "id": "compute.regionAutoscalers.delete",
103990	//   "parameterOrder": [
103991	//     "project",
103992	//     "region",
103993	//     "autoscaler"
103994	//   ],
103995	//   "parameters": {
103996	//     "autoscaler": {
103997	//       "description": "Name of the autoscaler to delete.",
103998	//       "location": "path",
103999	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104000	//       "required": true,
104001	//       "type": "string"
104002	//     },
104003	//     "project": {
104004	//       "description": "Project ID for this request.",
104005	//       "location": "path",
104006	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104007	//       "required": true,
104008	//       "type": "string"
104009	//     },
104010	//     "region": {
104011	//       "description": "Name of the region scoping this request.",
104012	//       "location": "path",
104013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104014	//       "required": true,
104015	//       "type": "string"
104016	//     },
104017	//     "requestId": {
104018	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104019	//       "location": "query",
104020	//       "type": "string"
104021	//     }
104022	//   },
104023	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
104024	//   "response": {
104025	//     "$ref": "Operation"
104026	//   },
104027	//   "scopes": [
104028	//     "https://www.googleapis.com/auth/cloud-platform",
104029	//     "https://www.googleapis.com/auth/compute"
104030	//   ]
104031	// }
104032
104033}
104034
104035// method id "compute.regionAutoscalers.get":
104036
104037type RegionAutoscalersGetCall struct {
104038	s            *Service
104039	project      string
104040	region       string
104041	autoscaler   string
104042	urlParams_   gensupport.URLParams
104043	ifNoneMatch_ string
104044	ctx_         context.Context
104045	header_      http.Header
104046}
104047
104048// Get: Returns the specified autoscaler.
104049func (r *RegionAutoscalersService) Get(project string, region string, autoscaler string) *RegionAutoscalersGetCall {
104050	c := &RegionAutoscalersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104051	c.project = project
104052	c.region = region
104053	c.autoscaler = autoscaler
104054	return c
104055}
104056
104057// Fields allows partial responses to be retrieved. See
104058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104059// for more information.
104060func (c *RegionAutoscalersGetCall) Fields(s ...googleapi.Field) *RegionAutoscalersGetCall {
104061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104062	return c
104063}
104064
104065// IfNoneMatch sets the optional parameter which makes the operation
104066// fail if the object's ETag matches the given value. This is useful for
104067// getting updates only after the object has changed since the last
104068// request. Use googleapi.IsNotModified to check whether the response
104069// error from Do is the result of In-None-Match.
104070func (c *RegionAutoscalersGetCall) IfNoneMatch(entityTag string) *RegionAutoscalersGetCall {
104071	c.ifNoneMatch_ = entityTag
104072	return c
104073}
104074
104075// Context sets the context to be used in this call's Do method. Any
104076// pending HTTP request will be aborted if the provided context is
104077// canceled.
104078func (c *RegionAutoscalersGetCall) Context(ctx context.Context) *RegionAutoscalersGetCall {
104079	c.ctx_ = ctx
104080	return c
104081}
104082
104083// Header returns an http.Header that can be modified by the caller to
104084// add HTTP headers to the request.
104085func (c *RegionAutoscalersGetCall) Header() http.Header {
104086	if c.header_ == nil {
104087		c.header_ = make(http.Header)
104088	}
104089	return c.header_
104090}
104091
104092func (c *RegionAutoscalersGetCall) doRequest(alt string) (*http.Response, error) {
104093	reqHeaders := make(http.Header)
104094	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104095	for k, v := range c.header_ {
104096		reqHeaders[k] = v
104097	}
104098	reqHeaders.Set("User-Agent", c.s.userAgent())
104099	if c.ifNoneMatch_ != "" {
104100		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104101	}
104102	var body io.Reader = nil
104103	c.urlParams_.Set("alt", alt)
104104	c.urlParams_.Set("prettyPrint", "false")
104105	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{autoscaler}")
104106	urls += "?" + c.urlParams_.Encode()
104107	req, err := http.NewRequest("GET", urls, body)
104108	if err != nil {
104109		return nil, err
104110	}
104111	req.Header = reqHeaders
104112	googleapi.Expand(req.URL, map[string]string{
104113		"project":    c.project,
104114		"region":     c.region,
104115		"autoscaler": c.autoscaler,
104116	})
104117	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104118}
104119
104120// Do executes the "compute.regionAutoscalers.get" call.
104121// Exactly one of *Autoscaler or error will be non-nil. Any non-2xx
104122// status code is an error. Response headers are in either
104123// *Autoscaler.ServerResponse.Header or (if a response was returned at
104124// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104125// to check whether the returned error was because
104126// http.StatusNotModified was returned.
104127func (c *RegionAutoscalersGetCall) Do(opts ...googleapi.CallOption) (*Autoscaler, error) {
104128	gensupport.SetOptions(c.urlParams_, opts...)
104129	res, err := c.doRequest("json")
104130	if res != nil && res.StatusCode == http.StatusNotModified {
104131		if res.Body != nil {
104132			res.Body.Close()
104133		}
104134		return nil, &googleapi.Error{
104135			Code:   res.StatusCode,
104136			Header: res.Header,
104137		}
104138	}
104139	if err != nil {
104140		return nil, err
104141	}
104142	defer googleapi.CloseBody(res)
104143	if err := googleapi.CheckResponse(res); err != nil {
104144		return nil, err
104145	}
104146	ret := &Autoscaler{
104147		ServerResponse: googleapi.ServerResponse{
104148			Header:         res.Header,
104149			HTTPStatusCode: res.StatusCode,
104150		},
104151	}
104152	target := &ret
104153	if err := gensupport.DecodeResponse(target, res); err != nil {
104154		return nil, err
104155	}
104156	return ret, nil
104157	// {
104158	//   "description": "Returns the specified autoscaler.",
104159	//   "httpMethod": "GET",
104160	//   "id": "compute.regionAutoscalers.get",
104161	//   "parameterOrder": [
104162	//     "project",
104163	//     "region",
104164	//     "autoscaler"
104165	//   ],
104166	//   "parameters": {
104167	//     "autoscaler": {
104168	//       "description": "Name of the autoscaler to return.",
104169	//       "location": "path",
104170	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104171	//       "required": true,
104172	//       "type": "string"
104173	//     },
104174	//     "project": {
104175	//       "description": "Project ID for this request.",
104176	//       "location": "path",
104177	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104178	//       "required": true,
104179	//       "type": "string"
104180	//     },
104181	//     "region": {
104182	//       "description": "Name of the region scoping this request.",
104183	//       "location": "path",
104184	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104185	//       "required": true,
104186	//       "type": "string"
104187	//     }
104188	//   },
104189	//   "path": "{project}/regions/{region}/autoscalers/{autoscaler}",
104190	//   "response": {
104191	//     "$ref": "Autoscaler"
104192	//   },
104193	//   "scopes": [
104194	//     "https://www.googleapis.com/auth/cloud-platform",
104195	//     "https://www.googleapis.com/auth/compute",
104196	//     "https://www.googleapis.com/auth/compute.readonly"
104197	//   ]
104198	// }
104199
104200}
104201
104202// method id "compute.regionAutoscalers.insert":
104203
104204type RegionAutoscalersInsertCall struct {
104205	s          *Service
104206	project    string
104207	region     string
104208	autoscaler *Autoscaler
104209	urlParams_ gensupport.URLParams
104210	ctx_       context.Context
104211	header_    http.Header
104212}
104213
104214// Insert: Creates an autoscaler in the specified project using the data
104215// included in the request.
104216func (r *RegionAutoscalersService) Insert(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersInsertCall {
104217	c := &RegionAutoscalersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104218	c.project = project
104219	c.region = region
104220	c.autoscaler = autoscaler
104221	return c
104222}
104223
104224// RequestId sets the optional parameter "requestId": An optional
104225// request ID to identify requests. Specify a unique request ID so that
104226// if you must retry your request, the server will know to ignore the
104227// request if it has already been completed.
104228//
104229// For example, consider a situation where you make an initial request
104230// and the request times out. If you make the request again with the
104231// same request ID, the server can check if original operation with the
104232// same request ID was received, and if so, will ignore the second
104233// request. This prevents clients from accidentally creating duplicate
104234// commitments.
104235//
104236// The request ID must be a valid UUID with the exception that zero UUID
104237// is not supported (00000000-0000-0000-0000-000000000000).
104238func (c *RegionAutoscalersInsertCall) RequestId(requestId string) *RegionAutoscalersInsertCall {
104239	c.urlParams_.Set("requestId", requestId)
104240	return c
104241}
104242
104243// Fields allows partial responses to be retrieved. See
104244// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104245// for more information.
104246func (c *RegionAutoscalersInsertCall) Fields(s ...googleapi.Field) *RegionAutoscalersInsertCall {
104247	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104248	return c
104249}
104250
104251// Context sets the context to be used in this call's Do method. Any
104252// pending HTTP request will be aborted if the provided context is
104253// canceled.
104254func (c *RegionAutoscalersInsertCall) Context(ctx context.Context) *RegionAutoscalersInsertCall {
104255	c.ctx_ = ctx
104256	return c
104257}
104258
104259// Header returns an http.Header that can be modified by the caller to
104260// add HTTP headers to the request.
104261func (c *RegionAutoscalersInsertCall) Header() http.Header {
104262	if c.header_ == nil {
104263		c.header_ = make(http.Header)
104264	}
104265	return c.header_
104266}
104267
104268func (c *RegionAutoscalersInsertCall) doRequest(alt string) (*http.Response, error) {
104269	reqHeaders := make(http.Header)
104270	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104271	for k, v := range c.header_ {
104272		reqHeaders[k] = v
104273	}
104274	reqHeaders.Set("User-Agent", c.s.userAgent())
104275	var body io.Reader = nil
104276	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
104277	if err != nil {
104278		return nil, err
104279	}
104280	reqHeaders.Set("Content-Type", "application/json")
104281	c.urlParams_.Set("alt", alt)
104282	c.urlParams_.Set("prettyPrint", "false")
104283	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
104284	urls += "?" + c.urlParams_.Encode()
104285	req, err := http.NewRequest("POST", urls, body)
104286	if err != nil {
104287		return nil, err
104288	}
104289	req.Header = reqHeaders
104290	googleapi.Expand(req.URL, map[string]string{
104291		"project": c.project,
104292		"region":  c.region,
104293	})
104294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104295}
104296
104297// Do executes the "compute.regionAutoscalers.insert" call.
104298// Exactly one of *Operation or error will be non-nil. Any non-2xx
104299// status code is an error. Response headers are in either
104300// *Operation.ServerResponse.Header or (if a response was returned at
104301// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104302// to check whether the returned error was because
104303// http.StatusNotModified was returned.
104304func (c *RegionAutoscalersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104305	gensupport.SetOptions(c.urlParams_, opts...)
104306	res, err := c.doRequest("json")
104307	if res != nil && res.StatusCode == http.StatusNotModified {
104308		if res.Body != nil {
104309			res.Body.Close()
104310		}
104311		return nil, &googleapi.Error{
104312			Code:   res.StatusCode,
104313			Header: res.Header,
104314		}
104315	}
104316	if err != nil {
104317		return nil, err
104318	}
104319	defer googleapi.CloseBody(res)
104320	if err := googleapi.CheckResponse(res); err != nil {
104321		return nil, err
104322	}
104323	ret := &Operation{
104324		ServerResponse: googleapi.ServerResponse{
104325			Header:         res.Header,
104326			HTTPStatusCode: res.StatusCode,
104327		},
104328	}
104329	target := &ret
104330	if err := gensupport.DecodeResponse(target, res); err != nil {
104331		return nil, err
104332	}
104333	return ret, nil
104334	// {
104335	//   "description": "Creates an autoscaler in the specified project using the data included in the request.",
104336	//   "httpMethod": "POST",
104337	//   "id": "compute.regionAutoscalers.insert",
104338	//   "parameterOrder": [
104339	//     "project",
104340	//     "region"
104341	//   ],
104342	//   "parameters": {
104343	//     "project": {
104344	//       "description": "Project ID for this request.",
104345	//       "location": "path",
104346	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104347	//       "required": true,
104348	//       "type": "string"
104349	//     },
104350	//     "region": {
104351	//       "description": "Name of the region scoping this request.",
104352	//       "location": "path",
104353	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104354	//       "required": true,
104355	//       "type": "string"
104356	//     },
104357	//     "requestId": {
104358	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104359	//       "location": "query",
104360	//       "type": "string"
104361	//     }
104362	//   },
104363	//   "path": "{project}/regions/{region}/autoscalers",
104364	//   "request": {
104365	//     "$ref": "Autoscaler"
104366	//   },
104367	//   "response": {
104368	//     "$ref": "Operation"
104369	//   },
104370	//   "scopes": [
104371	//     "https://www.googleapis.com/auth/cloud-platform",
104372	//     "https://www.googleapis.com/auth/compute"
104373	//   ]
104374	// }
104375
104376}
104377
104378// method id "compute.regionAutoscalers.list":
104379
104380type RegionAutoscalersListCall struct {
104381	s            *Service
104382	project      string
104383	region       string
104384	urlParams_   gensupport.URLParams
104385	ifNoneMatch_ string
104386	ctx_         context.Context
104387	header_      http.Header
104388}
104389
104390// List: Retrieves a list of autoscalers contained within the specified
104391// region.
104392func (r *RegionAutoscalersService) List(project string, region string) *RegionAutoscalersListCall {
104393	c := &RegionAutoscalersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104394	c.project = project
104395	c.region = region
104396	return c
104397}
104398
104399// Filter sets the optional parameter "filter": A filter expression that
104400// filters resources listed in the response. The expression must specify
104401// the field name, a comparison operator, and the value that you want to
104402// use for filtering. The value must be a string, a number, or a
104403// boolean. The comparison operator must be either =, !=, >, or <.
104404//
104405// For example, if you are filtering Compute Engine instances, you can
104406// exclude instances named example-instance by specifying name !=
104407// example-instance.
104408//
104409// You can also filter nested fields. For example, you could specify
104410// scheduling.automaticRestart = false to include instances only if they
104411// are not scheduled for automatic restarts. You can use filtering on
104412// nested fields to filter based on resource labels.
104413//
104414// To filter on multiple expressions, provide each separate expression
104415// within parentheses. For example, (scheduling.automaticRestart = true)
104416// (cpuPlatform = "Intel Skylake"). By default, each expression is an
104417// AND expression. However, you can include AND and OR expressions
104418// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
104419// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
104420// true).
104421func (c *RegionAutoscalersListCall) Filter(filter string) *RegionAutoscalersListCall {
104422	c.urlParams_.Set("filter", filter)
104423	return c
104424}
104425
104426// MaxResults sets the optional parameter "maxResults": The maximum
104427// number of results per page that should be returned. If the number of
104428// available results is larger than maxResults, Compute Engine returns a
104429// nextPageToken that can be used to get the next page of results in
104430// subsequent list requests. Acceptable values are 0 to 500, inclusive.
104431// (Default: 500)
104432func (c *RegionAutoscalersListCall) MaxResults(maxResults int64) *RegionAutoscalersListCall {
104433	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
104434	return c
104435}
104436
104437// OrderBy sets the optional parameter "orderBy": Sorts list results by
104438// a certain order. By default, results are returned in alphanumerical
104439// order based on the resource name.
104440//
104441// You can also sort results in descending order based on the creation
104442// timestamp using orderBy="creationTimestamp desc". This sorts results
104443// based on the creationTimestamp field in reverse chronological order
104444// (newest result first). Use this to sort resources like operations so
104445// that the newest operation is returned first.
104446//
104447// Currently, only sorting by name or creationTimestamp desc is
104448// supported.
104449func (c *RegionAutoscalersListCall) OrderBy(orderBy string) *RegionAutoscalersListCall {
104450	c.urlParams_.Set("orderBy", orderBy)
104451	return c
104452}
104453
104454// PageToken sets the optional parameter "pageToken": Specifies a page
104455// token to use. Set pageToken to the nextPageToken returned by a
104456// previous list request to get the next page of results.
104457func (c *RegionAutoscalersListCall) PageToken(pageToken string) *RegionAutoscalersListCall {
104458	c.urlParams_.Set("pageToken", pageToken)
104459	return c
104460}
104461
104462// Fields allows partial responses to be retrieved. See
104463// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104464// for more information.
104465func (c *RegionAutoscalersListCall) Fields(s ...googleapi.Field) *RegionAutoscalersListCall {
104466	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104467	return c
104468}
104469
104470// IfNoneMatch sets the optional parameter which makes the operation
104471// fail if the object's ETag matches the given value. This is useful for
104472// getting updates only after the object has changed since the last
104473// request. Use googleapi.IsNotModified to check whether the response
104474// error from Do is the result of In-None-Match.
104475func (c *RegionAutoscalersListCall) IfNoneMatch(entityTag string) *RegionAutoscalersListCall {
104476	c.ifNoneMatch_ = entityTag
104477	return c
104478}
104479
104480// Context sets the context to be used in this call's Do method. Any
104481// pending HTTP request will be aborted if the provided context is
104482// canceled.
104483func (c *RegionAutoscalersListCall) Context(ctx context.Context) *RegionAutoscalersListCall {
104484	c.ctx_ = ctx
104485	return c
104486}
104487
104488// Header returns an http.Header that can be modified by the caller to
104489// add HTTP headers to the request.
104490func (c *RegionAutoscalersListCall) Header() http.Header {
104491	if c.header_ == nil {
104492		c.header_ = make(http.Header)
104493	}
104494	return c.header_
104495}
104496
104497func (c *RegionAutoscalersListCall) doRequest(alt string) (*http.Response, error) {
104498	reqHeaders := make(http.Header)
104499	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104500	for k, v := range c.header_ {
104501		reqHeaders[k] = v
104502	}
104503	reqHeaders.Set("User-Agent", c.s.userAgent())
104504	if c.ifNoneMatch_ != "" {
104505		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
104506	}
104507	var body io.Reader = nil
104508	c.urlParams_.Set("alt", alt)
104509	c.urlParams_.Set("prettyPrint", "false")
104510	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
104511	urls += "?" + c.urlParams_.Encode()
104512	req, err := http.NewRequest("GET", urls, body)
104513	if err != nil {
104514		return nil, err
104515	}
104516	req.Header = reqHeaders
104517	googleapi.Expand(req.URL, map[string]string{
104518		"project": c.project,
104519		"region":  c.region,
104520	})
104521	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104522}
104523
104524// Do executes the "compute.regionAutoscalers.list" call.
104525// Exactly one of *RegionAutoscalerList or error will be non-nil. Any
104526// non-2xx status code is an error. Response headers are in either
104527// *RegionAutoscalerList.ServerResponse.Header or (if a response was
104528// returned at all) in error.(*googleapi.Error).Header. Use
104529// googleapi.IsNotModified to check whether the returned error was
104530// because http.StatusNotModified was returned.
104531func (c *RegionAutoscalersListCall) Do(opts ...googleapi.CallOption) (*RegionAutoscalerList, error) {
104532	gensupport.SetOptions(c.urlParams_, opts...)
104533	res, err := c.doRequest("json")
104534	if res != nil && res.StatusCode == http.StatusNotModified {
104535		if res.Body != nil {
104536			res.Body.Close()
104537		}
104538		return nil, &googleapi.Error{
104539			Code:   res.StatusCode,
104540			Header: res.Header,
104541		}
104542	}
104543	if err != nil {
104544		return nil, err
104545	}
104546	defer googleapi.CloseBody(res)
104547	if err := googleapi.CheckResponse(res); err != nil {
104548		return nil, err
104549	}
104550	ret := &RegionAutoscalerList{
104551		ServerResponse: googleapi.ServerResponse{
104552			Header:         res.Header,
104553			HTTPStatusCode: res.StatusCode,
104554		},
104555	}
104556	target := &ret
104557	if err := gensupport.DecodeResponse(target, res); err != nil {
104558		return nil, err
104559	}
104560	return ret, nil
104561	// {
104562	//   "description": "Retrieves a list of autoscalers contained within the specified region.",
104563	//   "httpMethod": "GET",
104564	//   "id": "compute.regionAutoscalers.list",
104565	//   "parameterOrder": [
104566	//     "project",
104567	//     "region"
104568	//   ],
104569	//   "parameters": {
104570	//     "filter": {
104571	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
104572	//       "location": "query",
104573	//       "type": "string"
104574	//     },
104575	//     "maxResults": {
104576	//       "default": "500",
104577	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
104578	//       "format": "uint32",
104579	//       "location": "query",
104580	//       "minimum": "0",
104581	//       "type": "integer"
104582	//     },
104583	//     "orderBy": {
104584	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
104585	//       "location": "query",
104586	//       "type": "string"
104587	//     },
104588	//     "pageToken": {
104589	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
104590	//       "location": "query",
104591	//       "type": "string"
104592	//     },
104593	//     "project": {
104594	//       "description": "Project ID for this request.",
104595	//       "location": "path",
104596	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104597	//       "required": true,
104598	//       "type": "string"
104599	//     },
104600	//     "region": {
104601	//       "description": "Name of the region scoping this request.",
104602	//       "location": "path",
104603	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104604	//       "required": true,
104605	//       "type": "string"
104606	//     }
104607	//   },
104608	//   "path": "{project}/regions/{region}/autoscalers",
104609	//   "response": {
104610	//     "$ref": "RegionAutoscalerList"
104611	//   },
104612	//   "scopes": [
104613	//     "https://www.googleapis.com/auth/cloud-platform",
104614	//     "https://www.googleapis.com/auth/compute",
104615	//     "https://www.googleapis.com/auth/compute.readonly"
104616	//   ]
104617	// }
104618
104619}
104620
104621// Pages invokes f for each page of results.
104622// A non-nil error returned from f will halt the iteration.
104623// The provided context supersedes any context provided to the Context method.
104624func (c *RegionAutoscalersListCall) Pages(ctx context.Context, f func(*RegionAutoscalerList) error) error {
104625	c.ctx_ = ctx
104626	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
104627	for {
104628		x, err := c.Do()
104629		if err != nil {
104630			return err
104631		}
104632		if err := f(x); err != nil {
104633			return err
104634		}
104635		if x.NextPageToken == "" {
104636			return nil
104637		}
104638		c.PageToken(x.NextPageToken)
104639	}
104640}
104641
104642// method id "compute.regionAutoscalers.patch":
104643
104644type RegionAutoscalersPatchCall struct {
104645	s          *Service
104646	project    string
104647	region     string
104648	autoscaler *Autoscaler
104649	urlParams_ gensupport.URLParams
104650	ctx_       context.Context
104651	header_    http.Header
104652}
104653
104654// Patch: Updates an autoscaler in the specified project using the data
104655// included in the request. This method supports PATCH semantics and
104656// uses the JSON merge patch format and processing rules.
104657func (r *RegionAutoscalersService) Patch(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersPatchCall {
104658	c := &RegionAutoscalersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104659	c.project = project
104660	c.region = region
104661	c.autoscaler = autoscaler
104662	return c
104663}
104664
104665// Autoscaler sets the optional parameter "autoscaler": Name of the
104666// autoscaler to patch.
104667func (c *RegionAutoscalersPatchCall) Autoscaler(autoscaler string) *RegionAutoscalersPatchCall {
104668	c.urlParams_.Set("autoscaler", autoscaler)
104669	return c
104670}
104671
104672// RequestId sets the optional parameter "requestId": An optional
104673// request ID to identify requests. Specify a unique request ID so that
104674// if you must retry your request, the server will know to ignore the
104675// request if it has already been completed.
104676//
104677// For example, consider a situation where you make an initial request
104678// and the request times out. If you make the request again with the
104679// same request ID, the server can check if original operation with the
104680// same request ID was received, and if so, will ignore the second
104681// request. This prevents clients from accidentally creating duplicate
104682// commitments.
104683//
104684// The request ID must be a valid UUID with the exception that zero UUID
104685// is not supported (00000000-0000-0000-0000-000000000000).
104686func (c *RegionAutoscalersPatchCall) RequestId(requestId string) *RegionAutoscalersPatchCall {
104687	c.urlParams_.Set("requestId", requestId)
104688	return c
104689}
104690
104691// Fields allows partial responses to be retrieved. See
104692// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104693// for more information.
104694func (c *RegionAutoscalersPatchCall) Fields(s ...googleapi.Field) *RegionAutoscalersPatchCall {
104695	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104696	return c
104697}
104698
104699// Context sets the context to be used in this call's Do method. Any
104700// pending HTTP request will be aborted if the provided context is
104701// canceled.
104702func (c *RegionAutoscalersPatchCall) Context(ctx context.Context) *RegionAutoscalersPatchCall {
104703	c.ctx_ = ctx
104704	return c
104705}
104706
104707// Header returns an http.Header that can be modified by the caller to
104708// add HTTP headers to the request.
104709func (c *RegionAutoscalersPatchCall) Header() http.Header {
104710	if c.header_ == nil {
104711		c.header_ = make(http.Header)
104712	}
104713	return c.header_
104714}
104715
104716func (c *RegionAutoscalersPatchCall) doRequest(alt string) (*http.Response, error) {
104717	reqHeaders := make(http.Header)
104718	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104719	for k, v := range c.header_ {
104720		reqHeaders[k] = v
104721	}
104722	reqHeaders.Set("User-Agent", c.s.userAgent())
104723	var body io.Reader = nil
104724	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
104725	if err != nil {
104726		return nil, err
104727	}
104728	reqHeaders.Set("Content-Type", "application/json")
104729	c.urlParams_.Set("alt", alt)
104730	c.urlParams_.Set("prettyPrint", "false")
104731	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
104732	urls += "?" + c.urlParams_.Encode()
104733	req, err := http.NewRequest("PATCH", urls, body)
104734	if err != nil {
104735		return nil, err
104736	}
104737	req.Header = reqHeaders
104738	googleapi.Expand(req.URL, map[string]string{
104739		"project": c.project,
104740		"region":  c.region,
104741	})
104742	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104743}
104744
104745// Do executes the "compute.regionAutoscalers.patch" call.
104746// Exactly one of *Operation or error will be non-nil. Any non-2xx
104747// status code is an error. Response headers are in either
104748// *Operation.ServerResponse.Header or (if a response was returned at
104749// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
104750// to check whether the returned error was because
104751// http.StatusNotModified was returned.
104752func (c *RegionAutoscalersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
104753	gensupport.SetOptions(c.urlParams_, opts...)
104754	res, err := c.doRequest("json")
104755	if res != nil && res.StatusCode == http.StatusNotModified {
104756		if res.Body != nil {
104757			res.Body.Close()
104758		}
104759		return nil, &googleapi.Error{
104760			Code:   res.StatusCode,
104761			Header: res.Header,
104762		}
104763	}
104764	if err != nil {
104765		return nil, err
104766	}
104767	defer googleapi.CloseBody(res)
104768	if err := googleapi.CheckResponse(res); err != nil {
104769		return nil, err
104770	}
104771	ret := &Operation{
104772		ServerResponse: googleapi.ServerResponse{
104773			Header:         res.Header,
104774			HTTPStatusCode: res.StatusCode,
104775		},
104776	}
104777	target := &ret
104778	if err := gensupport.DecodeResponse(target, res); err != nil {
104779		return nil, err
104780	}
104781	return ret, nil
104782	// {
104783	//   "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.",
104784	//   "httpMethod": "PATCH",
104785	//   "id": "compute.regionAutoscalers.patch",
104786	//   "parameterOrder": [
104787	//     "project",
104788	//     "region"
104789	//   ],
104790	//   "parameters": {
104791	//     "autoscaler": {
104792	//       "description": "Name of the autoscaler to patch.",
104793	//       "location": "query",
104794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104795	//       "type": "string"
104796	//     },
104797	//     "project": {
104798	//       "description": "Project ID for this request.",
104799	//       "location": "path",
104800	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104801	//       "required": true,
104802	//       "type": "string"
104803	//     },
104804	//     "region": {
104805	//       "description": "Name of the region scoping this request.",
104806	//       "location": "path",
104807	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104808	//       "required": true,
104809	//       "type": "string"
104810	//     },
104811	//     "requestId": {
104812	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
104813	//       "location": "query",
104814	//       "type": "string"
104815	//     }
104816	//   },
104817	//   "path": "{project}/regions/{region}/autoscalers",
104818	//   "request": {
104819	//     "$ref": "Autoscaler"
104820	//   },
104821	//   "response": {
104822	//     "$ref": "Operation"
104823	//   },
104824	//   "scopes": [
104825	//     "https://www.googleapis.com/auth/cloud-platform",
104826	//     "https://www.googleapis.com/auth/compute"
104827	//   ]
104828	// }
104829
104830}
104831
104832// method id "compute.regionAutoscalers.testIamPermissions":
104833
104834type RegionAutoscalersTestIamPermissionsCall struct {
104835	s                      *Service
104836	project                string
104837	region                 string
104838	resource               string
104839	testpermissionsrequest *TestPermissionsRequest
104840	urlParams_             gensupport.URLParams
104841	ctx_                   context.Context
104842	header_                http.Header
104843}
104844
104845// TestIamPermissions: Returns permissions that a caller has on the
104846// specified resource.
104847func (r *RegionAutoscalersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionAutoscalersTestIamPermissionsCall {
104848	c := &RegionAutoscalersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
104849	c.project = project
104850	c.region = region
104851	c.resource = resource
104852	c.testpermissionsrequest = testpermissionsrequest
104853	return c
104854}
104855
104856// Fields allows partial responses to be retrieved. See
104857// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
104858// for more information.
104859func (c *RegionAutoscalersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionAutoscalersTestIamPermissionsCall {
104860	c.urlParams_.Set("fields", googleapi.CombineFields(s))
104861	return c
104862}
104863
104864// Context sets the context to be used in this call's Do method. Any
104865// pending HTTP request will be aborted if the provided context is
104866// canceled.
104867func (c *RegionAutoscalersTestIamPermissionsCall) Context(ctx context.Context) *RegionAutoscalersTestIamPermissionsCall {
104868	c.ctx_ = ctx
104869	return c
104870}
104871
104872// Header returns an http.Header that can be modified by the caller to
104873// add HTTP headers to the request.
104874func (c *RegionAutoscalersTestIamPermissionsCall) Header() http.Header {
104875	if c.header_ == nil {
104876		c.header_ = make(http.Header)
104877	}
104878	return c.header_
104879}
104880
104881func (c *RegionAutoscalersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
104882	reqHeaders := make(http.Header)
104883	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
104884	for k, v := range c.header_ {
104885		reqHeaders[k] = v
104886	}
104887	reqHeaders.Set("User-Agent", c.s.userAgent())
104888	var body io.Reader = nil
104889	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
104890	if err != nil {
104891		return nil, err
104892	}
104893	reqHeaders.Set("Content-Type", "application/json")
104894	c.urlParams_.Set("alt", alt)
104895	c.urlParams_.Set("prettyPrint", "false")
104896	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions")
104897	urls += "?" + c.urlParams_.Encode()
104898	req, err := http.NewRequest("POST", urls, body)
104899	if err != nil {
104900		return nil, err
104901	}
104902	req.Header = reqHeaders
104903	googleapi.Expand(req.URL, map[string]string{
104904		"project":  c.project,
104905		"region":   c.region,
104906		"resource": c.resource,
104907	})
104908	return gensupport.SendRequest(c.ctx_, c.s.client, req)
104909}
104910
104911// Do executes the "compute.regionAutoscalers.testIamPermissions" call.
104912// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
104913// non-2xx status code is an error. Response headers are in either
104914// *TestPermissionsResponse.ServerResponse.Header or (if a response was
104915// returned at all) in error.(*googleapi.Error).Header. Use
104916// googleapi.IsNotModified to check whether the returned error was
104917// because http.StatusNotModified was returned.
104918func (c *RegionAutoscalersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
104919	gensupport.SetOptions(c.urlParams_, opts...)
104920	res, err := c.doRequest("json")
104921	if res != nil && res.StatusCode == http.StatusNotModified {
104922		if res.Body != nil {
104923			res.Body.Close()
104924		}
104925		return nil, &googleapi.Error{
104926			Code:   res.StatusCode,
104927			Header: res.Header,
104928		}
104929	}
104930	if err != nil {
104931		return nil, err
104932	}
104933	defer googleapi.CloseBody(res)
104934	if err := googleapi.CheckResponse(res); err != nil {
104935		return nil, err
104936	}
104937	ret := &TestPermissionsResponse{
104938		ServerResponse: googleapi.ServerResponse{
104939			Header:         res.Header,
104940			HTTPStatusCode: res.StatusCode,
104941		},
104942	}
104943	target := &ret
104944	if err := gensupport.DecodeResponse(target, res); err != nil {
104945		return nil, err
104946	}
104947	return ret, nil
104948	// {
104949	//   "description": "Returns permissions that a caller has on the specified resource.",
104950	//   "httpMethod": "POST",
104951	//   "id": "compute.regionAutoscalers.testIamPermissions",
104952	//   "parameterOrder": [
104953	//     "project",
104954	//     "region",
104955	//     "resource"
104956	//   ],
104957	//   "parameters": {
104958	//     "project": {
104959	//       "description": "Project ID for this request.",
104960	//       "location": "path",
104961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
104962	//       "required": true,
104963	//       "type": "string"
104964	//     },
104965	//     "region": {
104966	//       "description": "The name of the region for this request.",
104967	//       "location": "path",
104968	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
104969	//       "required": true,
104970	//       "type": "string"
104971	//     },
104972	//     "resource": {
104973	//       "description": "Name or id of the resource for this request.",
104974	//       "location": "path",
104975	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
104976	//       "required": true,
104977	//       "type": "string"
104978	//     }
104979	//   },
104980	//   "path": "{project}/regions/{region}/autoscalers/{resource}/testIamPermissions",
104981	//   "request": {
104982	//     "$ref": "TestPermissionsRequest"
104983	//   },
104984	//   "response": {
104985	//     "$ref": "TestPermissionsResponse"
104986	//   },
104987	//   "scopes": [
104988	//     "https://www.googleapis.com/auth/cloud-platform",
104989	//     "https://www.googleapis.com/auth/compute",
104990	//     "https://www.googleapis.com/auth/compute.readonly"
104991	//   ]
104992	// }
104993
104994}
104995
104996// method id "compute.regionAutoscalers.update":
104997
104998type RegionAutoscalersUpdateCall struct {
104999	s          *Service
105000	project    string
105001	region     string
105002	autoscaler *Autoscaler
105003	urlParams_ gensupport.URLParams
105004	ctx_       context.Context
105005	header_    http.Header
105006}
105007
105008// Update: Updates an autoscaler in the specified project using the data
105009// included in the request.
105010func (r *RegionAutoscalersService) Update(project string, region string, autoscaler *Autoscaler) *RegionAutoscalersUpdateCall {
105011	c := &RegionAutoscalersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105012	c.project = project
105013	c.region = region
105014	c.autoscaler = autoscaler
105015	return c
105016}
105017
105018// Autoscaler sets the optional parameter "autoscaler": Name of the
105019// autoscaler to update.
105020func (c *RegionAutoscalersUpdateCall) Autoscaler(autoscaler string) *RegionAutoscalersUpdateCall {
105021	c.urlParams_.Set("autoscaler", autoscaler)
105022	return c
105023}
105024
105025// RequestId sets the optional parameter "requestId": An optional
105026// request ID to identify requests. Specify a unique request ID so that
105027// if you must retry your request, the server will know to ignore the
105028// request if it has already been completed.
105029//
105030// For example, consider a situation where you make an initial request
105031// and the request times out. If you make the request again with the
105032// same request ID, the server can check if original operation with the
105033// same request ID was received, and if so, will ignore the second
105034// request. This prevents clients from accidentally creating duplicate
105035// commitments.
105036//
105037// The request ID must be a valid UUID with the exception that zero UUID
105038// is not supported (00000000-0000-0000-0000-000000000000).
105039func (c *RegionAutoscalersUpdateCall) RequestId(requestId string) *RegionAutoscalersUpdateCall {
105040	c.urlParams_.Set("requestId", requestId)
105041	return c
105042}
105043
105044// Fields allows partial responses to be retrieved. See
105045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105046// for more information.
105047func (c *RegionAutoscalersUpdateCall) Fields(s ...googleapi.Field) *RegionAutoscalersUpdateCall {
105048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105049	return c
105050}
105051
105052// Context sets the context to be used in this call's Do method. Any
105053// pending HTTP request will be aborted if the provided context is
105054// canceled.
105055func (c *RegionAutoscalersUpdateCall) Context(ctx context.Context) *RegionAutoscalersUpdateCall {
105056	c.ctx_ = ctx
105057	return c
105058}
105059
105060// Header returns an http.Header that can be modified by the caller to
105061// add HTTP headers to the request.
105062func (c *RegionAutoscalersUpdateCall) Header() http.Header {
105063	if c.header_ == nil {
105064		c.header_ = make(http.Header)
105065	}
105066	return c.header_
105067}
105068
105069func (c *RegionAutoscalersUpdateCall) doRequest(alt string) (*http.Response, error) {
105070	reqHeaders := make(http.Header)
105071	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105072	for k, v := range c.header_ {
105073		reqHeaders[k] = v
105074	}
105075	reqHeaders.Set("User-Agent", c.s.userAgent())
105076	var body io.Reader = nil
105077	body, err := googleapi.WithoutDataWrapper.JSONReader(c.autoscaler)
105078	if err != nil {
105079		return nil, err
105080	}
105081	reqHeaders.Set("Content-Type", "application/json")
105082	c.urlParams_.Set("alt", alt)
105083	c.urlParams_.Set("prettyPrint", "false")
105084	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/autoscalers")
105085	urls += "?" + c.urlParams_.Encode()
105086	req, err := http.NewRequest("PUT", urls, body)
105087	if err != nil {
105088		return nil, err
105089	}
105090	req.Header = reqHeaders
105091	googleapi.Expand(req.URL, map[string]string{
105092		"project": c.project,
105093		"region":  c.region,
105094	})
105095	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105096}
105097
105098// Do executes the "compute.regionAutoscalers.update" call.
105099// Exactly one of *Operation or error will be non-nil. Any non-2xx
105100// status code is an error. Response headers are in either
105101// *Operation.ServerResponse.Header or (if a response was returned at
105102// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105103// to check whether the returned error was because
105104// http.StatusNotModified was returned.
105105func (c *RegionAutoscalersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105106	gensupport.SetOptions(c.urlParams_, opts...)
105107	res, err := c.doRequest("json")
105108	if res != nil && res.StatusCode == http.StatusNotModified {
105109		if res.Body != nil {
105110			res.Body.Close()
105111		}
105112		return nil, &googleapi.Error{
105113			Code:   res.StatusCode,
105114			Header: res.Header,
105115		}
105116	}
105117	if err != nil {
105118		return nil, err
105119	}
105120	defer googleapi.CloseBody(res)
105121	if err := googleapi.CheckResponse(res); err != nil {
105122		return nil, err
105123	}
105124	ret := &Operation{
105125		ServerResponse: googleapi.ServerResponse{
105126			Header:         res.Header,
105127			HTTPStatusCode: res.StatusCode,
105128		},
105129	}
105130	target := &ret
105131	if err := gensupport.DecodeResponse(target, res); err != nil {
105132		return nil, err
105133	}
105134	return ret, nil
105135	// {
105136	//   "description": "Updates an autoscaler in the specified project using the data included in the request.",
105137	//   "httpMethod": "PUT",
105138	//   "id": "compute.regionAutoscalers.update",
105139	//   "parameterOrder": [
105140	//     "project",
105141	//     "region"
105142	//   ],
105143	//   "parameters": {
105144	//     "autoscaler": {
105145	//       "description": "Name of the autoscaler to update.",
105146	//       "location": "query",
105147	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105148	//       "type": "string"
105149	//     },
105150	//     "project": {
105151	//       "description": "Project ID for this request.",
105152	//       "location": "path",
105153	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105154	//       "required": true,
105155	//       "type": "string"
105156	//     },
105157	//     "region": {
105158	//       "description": "Name of the region scoping this request.",
105159	//       "location": "path",
105160	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105161	//       "required": true,
105162	//       "type": "string"
105163	//     },
105164	//     "requestId": {
105165	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105166	//       "location": "query",
105167	//       "type": "string"
105168	//     }
105169	//   },
105170	//   "path": "{project}/regions/{region}/autoscalers",
105171	//   "request": {
105172	//     "$ref": "Autoscaler"
105173	//   },
105174	//   "response": {
105175	//     "$ref": "Operation"
105176	//   },
105177	//   "scopes": [
105178	//     "https://www.googleapis.com/auth/cloud-platform",
105179	//     "https://www.googleapis.com/auth/compute"
105180	//   ]
105181	// }
105182
105183}
105184
105185// method id "compute.regionBackendServices.delete":
105186
105187type RegionBackendServicesDeleteCall struct {
105188	s              *Service
105189	project        string
105190	region         string
105191	backendService string
105192	urlParams_     gensupport.URLParams
105193	ctx_           context.Context
105194	header_        http.Header
105195}
105196
105197// Delete: Deletes the specified regional BackendService resource.
105198func (r *RegionBackendServicesService) Delete(project string, region string, backendService string) *RegionBackendServicesDeleteCall {
105199	c := &RegionBackendServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105200	c.project = project
105201	c.region = region
105202	c.backendService = backendService
105203	return c
105204}
105205
105206// RequestId sets the optional parameter "requestId": An optional
105207// request ID to identify requests. Specify a unique request ID so that
105208// if you must retry your request, the server will know to ignore the
105209// request if it has already been completed.
105210//
105211// For example, consider a situation where you make an initial request
105212// and the request times out. If you make the request again with the
105213// same request ID, the server can check if original operation with the
105214// same request ID was received, and if so, will ignore the second
105215// request. This prevents clients from accidentally creating duplicate
105216// commitments.
105217//
105218// The request ID must be a valid UUID with the exception that zero UUID
105219// is not supported (00000000-0000-0000-0000-000000000000).
105220func (c *RegionBackendServicesDeleteCall) RequestId(requestId string) *RegionBackendServicesDeleteCall {
105221	c.urlParams_.Set("requestId", requestId)
105222	return c
105223}
105224
105225// Fields allows partial responses to be retrieved. See
105226// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105227// for more information.
105228func (c *RegionBackendServicesDeleteCall) Fields(s ...googleapi.Field) *RegionBackendServicesDeleteCall {
105229	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105230	return c
105231}
105232
105233// Context sets the context to be used in this call's Do method. Any
105234// pending HTTP request will be aborted if the provided context is
105235// canceled.
105236func (c *RegionBackendServicesDeleteCall) Context(ctx context.Context) *RegionBackendServicesDeleteCall {
105237	c.ctx_ = ctx
105238	return c
105239}
105240
105241// Header returns an http.Header that can be modified by the caller to
105242// add HTTP headers to the request.
105243func (c *RegionBackendServicesDeleteCall) Header() http.Header {
105244	if c.header_ == nil {
105245		c.header_ = make(http.Header)
105246	}
105247	return c.header_
105248}
105249
105250func (c *RegionBackendServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
105251	reqHeaders := make(http.Header)
105252	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105253	for k, v := range c.header_ {
105254		reqHeaders[k] = v
105255	}
105256	reqHeaders.Set("User-Agent", c.s.userAgent())
105257	var body io.Reader = nil
105258	c.urlParams_.Set("alt", alt)
105259	c.urlParams_.Set("prettyPrint", "false")
105260	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
105261	urls += "?" + c.urlParams_.Encode()
105262	req, err := http.NewRequest("DELETE", urls, body)
105263	if err != nil {
105264		return nil, err
105265	}
105266	req.Header = reqHeaders
105267	googleapi.Expand(req.URL, map[string]string{
105268		"project":        c.project,
105269		"region":         c.region,
105270		"backendService": c.backendService,
105271	})
105272	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105273}
105274
105275// Do executes the "compute.regionBackendServices.delete" call.
105276// Exactly one of *Operation or error will be non-nil. Any non-2xx
105277// status code is an error. Response headers are in either
105278// *Operation.ServerResponse.Header or (if a response was returned at
105279// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105280// to check whether the returned error was because
105281// http.StatusNotModified was returned.
105282func (c *RegionBackendServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105283	gensupport.SetOptions(c.urlParams_, opts...)
105284	res, err := c.doRequest("json")
105285	if res != nil && res.StatusCode == http.StatusNotModified {
105286		if res.Body != nil {
105287			res.Body.Close()
105288		}
105289		return nil, &googleapi.Error{
105290			Code:   res.StatusCode,
105291			Header: res.Header,
105292		}
105293	}
105294	if err != nil {
105295		return nil, err
105296	}
105297	defer googleapi.CloseBody(res)
105298	if err := googleapi.CheckResponse(res); err != nil {
105299		return nil, err
105300	}
105301	ret := &Operation{
105302		ServerResponse: googleapi.ServerResponse{
105303			Header:         res.Header,
105304			HTTPStatusCode: res.StatusCode,
105305		},
105306	}
105307	target := &ret
105308	if err := gensupport.DecodeResponse(target, res); err != nil {
105309		return nil, err
105310	}
105311	return ret, nil
105312	// {
105313	//   "description": "Deletes the specified regional BackendService resource.",
105314	//   "httpMethod": "DELETE",
105315	//   "id": "compute.regionBackendServices.delete",
105316	//   "parameterOrder": [
105317	//     "project",
105318	//     "region",
105319	//     "backendService"
105320	//   ],
105321	//   "parameters": {
105322	//     "backendService": {
105323	//       "description": "Name of the BackendService resource to delete.",
105324	//       "location": "path",
105325	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105326	//       "required": true,
105327	//       "type": "string"
105328	//     },
105329	//     "project": {
105330	//       "description": "Project ID for this request.",
105331	//       "location": "path",
105332	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105333	//       "required": true,
105334	//       "type": "string"
105335	//     },
105336	//     "region": {
105337	//       "description": "Name of the region scoping this request.",
105338	//       "location": "path",
105339	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105340	//       "required": true,
105341	//       "type": "string"
105342	//     },
105343	//     "requestId": {
105344	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105345	//       "location": "query",
105346	//       "type": "string"
105347	//     }
105348	//   },
105349	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
105350	//   "response": {
105351	//     "$ref": "Operation"
105352	//   },
105353	//   "scopes": [
105354	//     "https://www.googleapis.com/auth/cloud-platform",
105355	//     "https://www.googleapis.com/auth/compute"
105356	//   ]
105357	// }
105358
105359}
105360
105361// method id "compute.regionBackendServices.get":
105362
105363type RegionBackendServicesGetCall struct {
105364	s              *Service
105365	project        string
105366	region         string
105367	backendService string
105368	urlParams_     gensupport.URLParams
105369	ifNoneMatch_   string
105370	ctx_           context.Context
105371	header_        http.Header
105372}
105373
105374// Get: Returns the specified regional BackendService resource.
105375func (r *RegionBackendServicesService) Get(project string, region string, backendService string) *RegionBackendServicesGetCall {
105376	c := &RegionBackendServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105377	c.project = project
105378	c.region = region
105379	c.backendService = backendService
105380	return c
105381}
105382
105383// Fields allows partial responses to be retrieved. See
105384// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105385// for more information.
105386func (c *RegionBackendServicesGetCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetCall {
105387	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105388	return c
105389}
105390
105391// IfNoneMatch sets the optional parameter which makes the operation
105392// fail if the object's ETag matches the given value. This is useful for
105393// getting updates only after the object has changed since the last
105394// request. Use googleapi.IsNotModified to check whether the response
105395// error from Do is the result of In-None-Match.
105396func (c *RegionBackendServicesGetCall) IfNoneMatch(entityTag string) *RegionBackendServicesGetCall {
105397	c.ifNoneMatch_ = entityTag
105398	return c
105399}
105400
105401// Context sets the context to be used in this call's Do method. Any
105402// pending HTTP request will be aborted if the provided context is
105403// canceled.
105404func (c *RegionBackendServicesGetCall) Context(ctx context.Context) *RegionBackendServicesGetCall {
105405	c.ctx_ = ctx
105406	return c
105407}
105408
105409// Header returns an http.Header that can be modified by the caller to
105410// add HTTP headers to the request.
105411func (c *RegionBackendServicesGetCall) Header() http.Header {
105412	if c.header_ == nil {
105413		c.header_ = make(http.Header)
105414	}
105415	return c.header_
105416}
105417
105418func (c *RegionBackendServicesGetCall) doRequest(alt string) (*http.Response, error) {
105419	reqHeaders := make(http.Header)
105420	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105421	for k, v := range c.header_ {
105422		reqHeaders[k] = v
105423	}
105424	reqHeaders.Set("User-Agent", c.s.userAgent())
105425	if c.ifNoneMatch_ != "" {
105426		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105427	}
105428	var body io.Reader = nil
105429	c.urlParams_.Set("alt", alt)
105430	c.urlParams_.Set("prettyPrint", "false")
105431	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
105432	urls += "?" + c.urlParams_.Encode()
105433	req, err := http.NewRequest("GET", urls, body)
105434	if err != nil {
105435		return nil, err
105436	}
105437	req.Header = reqHeaders
105438	googleapi.Expand(req.URL, map[string]string{
105439		"project":        c.project,
105440		"region":         c.region,
105441		"backendService": c.backendService,
105442	})
105443	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105444}
105445
105446// Do executes the "compute.regionBackendServices.get" call.
105447// Exactly one of *BackendService or error will be non-nil. Any non-2xx
105448// status code is an error. Response headers are in either
105449// *BackendService.ServerResponse.Header or (if a response was returned
105450// at all) in error.(*googleapi.Error).Header. Use
105451// googleapi.IsNotModified to check whether the returned error was
105452// because http.StatusNotModified was returned.
105453func (c *RegionBackendServicesGetCall) Do(opts ...googleapi.CallOption) (*BackendService, error) {
105454	gensupport.SetOptions(c.urlParams_, opts...)
105455	res, err := c.doRequest("json")
105456	if res != nil && res.StatusCode == http.StatusNotModified {
105457		if res.Body != nil {
105458			res.Body.Close()
105459		}
105460		return nil, &googleapi.Error{
105461			Code:   res.StatusCode,
105462			Header: res.Header,
105463		}
105464	}
105465	if err != nil {
105466		return nil, err
105467	}
105468	defer googleapi.CloseBody(res)
105469	if err := googleapi.CheckResponse(res); err != nil {
105470		return nil, err
105471	}
105472	ret := &BackendService{
105473		ServerResponse: googleapi.ServerResponse{
105474			Header:         res.Header,
105475			HTTPStatusCode: res.StatusCode,
105476		},
105477	}
105478	target := &ret
105479	if err := gensupport.DecodeResponse(target, res); err != nil {
105480		return nil, err
105481	}
105482	return ret, nil
105483	// {
105484	//   "description": "Returns the specified regional BackendService resource.",
105485	//   "httpMethod": "GET",
105486	//   "id": "compute.regionBackendServices.get",
105487	//   "parameterOrder": [
105488	//     "project",
105489	//     "region",
105490	//     "backendService"
105491	//   ],
105492	//   "parameters": {
105493	//     "backendService": {
105494	//       "description": "Name of the BackendService resource to return.",
105495	//       "location": "path",
105496	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105497	//       "required": true,
105498	//       "type": "string"
105499	//     },
105500	//     "project": {
105501	//       "description": "Project ID for this request.",
105502	//       "location": "path",
105503	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105504	//       "required": true,
105505	//       "type": "string"
105506	//     },
105507	//     "region": {
105508	//       "description": "Name of the region scoping this request.",
105509	//       "location": "path",
105510	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105511	//       "required": true,
105512	//       "type": "string"
105513	//     }
105514	//   },
105515	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
105516	//   "response": {
105517	//     "$ref": "BackendService"
105518	//   },
105519	//   "scopes": [
105520	//     "https://www.googleapis.com/auth/cloud-platform",
105521	//     "https://www.googleapis.com/auth/compute",
105522	//     "https://www.googleapis.com/auth/compute.readonly"
105523	//   ]
105524	// }
105525
105526}
105527
105528// method id "compute.regionBackendServices.getHealth":
105529
105530type RegionBackendServicesGetHealthCall struct {
105531	s                      *Service
105532	project                string
105533	region                 string
105534	backendService         string
105535	resourcegroupreference *ResourceGroupReference
105536	urlParams_             gensupport.URLParams
105537	ctx_                   context.Context
105538	header_                http.Header
105539}
105540
105541// GetHealth: Gets the most recent health check results for this
105542// regional BackendService.
105543func (r *RegionBackendServicesService) GetHealth(project string, region string, backendService string, resourcegroupreference *ResourceGroupReference) *RegionBackendServicesGetHealthCall {
105544	c := &RegionBackendServicesGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105545	c.project = project
105546	c.region = region
105547	c.backendService = backendService
105548	c.resourcegroupreference = resourcegroupreference
105549	return c
105550}
105551
105552// Fields allows partial responses to be retrieved. See
105553// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105554// for more information.
105555func (c *RegionBackendServicesGetHealthCall) Fields(s ...googleapi.Field) *RegionBackendServicesGetHealthCall {
105556	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105557	return c
105558}
105559
105560// Context sets the context to be used in this call's Do method. Any
105561// pending HTTP request will be aborted if the provided context is
105562// canceled.
105563func (c *RegionBackendServicesGetHealthCall) Context(ctx context.Context) *RegionBackendServicesGetHealthCall {
105564	c.ctx_ = ctx
105565	return c
105566}
105567
105568// Header returns an http.Header that can be modified by the caller to
105569// add HTTP headers to the request.
105570func (c *RegionBackendServicesGetHealthCall) Header() http.Header {
105571	if c.header_ == nil {
105572		c.header_ = make(http.Header)
105573	}
105574	return c.header_
105575}
105576
105577func (c *RegionBackendServicesGetHealthCall) doRequest(alt string) (*http.Response, error) {
105578	reqHeaders := make(http.Header)
105579	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105580	for k, v := range c.header_ {
105581		reqHeaders[k] = v
105582	}
105583	reqHeaders.Set("User-Agent", c.s.userAgent())
105584	var body io.Reader = nil
105585	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcegroupreference)
105586	if err != nil {
105587		return nil, err
105588	}
105589	reqHeaders.Set("Content-Type", "application/json")
105590	c.urlParams_.Set("alt", alt)
105591	c.urlParams_.Set("prettyPrint", "false")
105592	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}/getHealth")
105593	urls += "?" + c.urlParams_.Encode()
105594	req, err := http.NewRequest("POST", urls, body)
105595	if err != nil {
105596		return nil, err
105597	}
105598	req.Header = reqHeaders
105599	googleapi.Expand(req.URL, map[string]string{
105600		"project":        c.project,
105601		"region":         c.region,
105602		"backendService": c.backendService,
105603	})
105604	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105605}
105606
105607// Do executes the "compute.regionBackendServices.getHealth" call.
105608// Exactly one of *BackendServiceGroupHealth or error will be non-nil.
105609// Any non-2xx status code is an error. Response headers are in either
105610// *BackendServiceGroupHealth.ServerResponse.Header or (if a response
105611// was returned at all) in error.(*googleapi.Error).Header. Use
105612// googleapi.IsNotModified to check whether the returned error was
105613// because http.StatusNotModified was returned.
105614func (c *RegionBackendServicesGetHealthCall) Do(opts ...googleapi.CallOption) (*BackendServiceGroupHealth, error) {
105615	gensupport.SetOptions(c.urlParams_, opts...)
105616	res, err := c.doRequest("json")
105617	if res != nil && res.StatusCode == http.StatusNotModified {
105618		if res.Body != nil {
105619			res.Body.Close()
105620		}
105621		return nil, &googleapi.Error{
105622			Code:   res.StatusCode,
105623			Header: res.Header,
105624		}
105625	}
105626	if err != nil {
105627		return nil, err
105628	}
105629	defer googleapi.CloseBody(res)
105630	if err := googleapi.CheckResponse(res); err != nil {
105631		return nil, err
105632	}
105633	ret := &BackendServiceGroupHealth{
105634		ServerResponse: googleapi.ServerResponse{
105635			Header:         res.Header,
105636			HTTPStatusCode: res.StatusCode,
105637		},
105638	}
105639	target := &ret
105640	if err := gensupport.DecodeResponse(target, res); err != nil {
105641		return nil, err
105642	}
105643	return ret, nil
105644	// {
105645	//   "description": "Gets the most recent health check results for this regional BackendService.",
105646	//   "httpMethod": "POST",
105647	//   "id": "compute.regionBackendServices.getHealth",
105648	//   "parameterOrder": [
105649	//     "project",
105650	//     "region",
105651	//     "backendService"
105652	//   ],
105653	//   "parameters": {
105654	//     "backendService": {
105655	//       "description": "Name of the BackendService resource for which to get health.",
105656	//       "location": "path",
105657	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
105658	//       "required": true,
105659	//       "type": "string"
105660	//     },
105661	//     "project": {
105662	//       "location": "path",
105663	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105664	//       "required": true,
105665	//       "type": "string"
105666	//     },
105667	//     "region": {
105668	//       "description": "Name of the region scoping this request.",
105669	//       "location": "path",
105670	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105671	//       "required": true,
105672	//       "type": "string"
105673	//     }
105674	//   },
105675	//   "path": "{project}/regions/{region}/backendServices/{backendService}/getHealth",
105676	//   "request": {
105677	//     "$ref": "ResourceGroupReference"
105678	//   },
105679	//   "response": {
105680	//     "$ref": "BackendServiceGroupHealth"
105681	//   },
105682	//   "scopes": [
105683	//     "https://www.googleapis.com/auth/cloud-platform",
105684	//     "https://www.googleapis.com/auth/compute",
105685	//     "https://www.googleapis.com/auth/compute.readonly"
105686	//   ]
105687	// }
105688
105689}
105690
105691// method id "compute.regionBackendServices.insert":
105692
105693type RegionBackendServicesInsertCall struct {
105694	s              *Service
105695	project        string
105696	region         string
105697	backendservice *BackendService
105698	urlParams_     gensupport.URLParams
105699	ctx_           context.Context
105700	header_        http.Header
105701}
105702
105703// Insert: Creates a regional BackendService resource in the specified
105704// project using the data included in the request. There are several
105705// restrictions and guidelines to keep in mind when creating a regional
105706// backend service. Read  Restrictions and Guidelines for more
105707// information.
105708func (r *RegionBackendServicesService) Insert(project string, region string, backendservice *BackendService) *RegionBackendServicesInsertCall {
105709	c := &RegionBackendServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105710	c.project = project
105711	c.region = region
105712	c.backendservice = backendservice
105713	return c
105714}
105715
105716// RequestId sets the optional parameter "requestId": An optional
105717// request ID to identify requests. Specify a unique request ID so that
105718// if you must retry your request, the server will know to ignore the
105719// request if it has already been completed.
105720//
105721// For example, consider a situation where you make an initial request
105722// and the request times out. If you make the request again with the
105723// same request ID, the server can check if original operation with the
105724// same request ID was received, and if so, will ignore the second
105725// request. This prevents clients from accidentally creating duplicate
105726// commitments.
105727//
105728// The request ID must be a valid UUID with the exception that zero UUID
105729// is not supported (00000000-0000-0000-0000-000000000000).
105730func (c *RegionBackendServicesInsertCall) RequestId(requestId string) *RegionBackendServicesInsertCall {
105731	c.urlParams_.Set("requestId", requestId)
105732	return c
105733}
105734
105735// Fields allows partial responses to be retrieved. See
105736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105737// for more information.
105738func (c *RegionBackendServicesInsertCall) Fields(s ...googleapi.Field) *RegionBackendServicesInsertCall {
105739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105740	return c
105741}
105742
105743// Context sets the context to be used in this call's Do method. Any
105744// pending HTTP request will be aborted if the provided context is
105745// canceled.
105746func (c *RegionBackendServicesInsertCall) Context(ctx context.Context) *RegionBackendServicesInsertCall {
105747	c.ctx_ = ctx
105748	return c
105749}
105750
105751// Header returns an http.Header that can be modified by the caller to
105752// add HTTP headers to the request.
105753func (c *RegionBackendServicesInsertCall) Header() http.Header {
105754	if c.header_ == nil {
105755		c.header_ = make(http.Header)
105756	}
105757	return c.header_
105758}
105759
105760func (c *RegionBackendServicesInsertCall) doRequest(alt string) (*http.Response, error) {
105761	reqHeaders := make(http.Header)
105762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105763	for k, v := range c.header_ {
105764		reqHeaders[k] = v
105765	}
105766	reqHeaders.Set("User-Agent", c.s.userAgent())
105767	var body io.Reader = nil
105768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
105769	if err != nil {
105770		return nil, err
105771	}
105772	reqHeaders.Set("Content-Type", "application/json")
105773	c.urlParams_.Set("alt", alt)
105774	c.urlParams_.Set("prettyPrint", "false")
105775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
105776	urls += "?" + c.urlParams_.Encode()
105777	req, err := http.NewRequest("POST", urls, body)
105778	if err != nil {
105779		return nil, err
105780	}
105781	req.Header = reqHeaders
105782	googleapi.Expand(req.URL, map[string]string{
105783		"project": c.project,
105784		"region":  c.region,
105785	})
105786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
105787}
105788
105789// Do executes the "compute.regionBackendServices.insert" call.
105790// Exactly one of *Operation or error will be non-nil. Any non-2xx
105791// status code is an error. Response headers are in either
105792// *Operation.ServerResponse.Header or (if a response was returned at
105793// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
105794// to check whether the returned error was because
105795// http.StatusNotModified was returned.
105796func (c *RegionBackendServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
105797	gensupport.SetOptions(c.urlParams_, opts...)
105798	res, err := c.doRequest("json")
105799	if res != nil && res.StatusCode == http.StatusNotModified {
105800		if res.Body != nil {
105801			res.Body.Close()
105802		}
105803		return nil, &googleapi.Error{
105804			Code:   res.StatusCode,
105805			Header: res.Header,
105806		}
105807	}
105808	if err != nil {
105809		return nil, err
105810	}
105811	defer googleapi.CloseBody(res)
105812	if err := googleapi.CheckResponse(res); err != nil {
105813		return nil, err
105814	}
105815	ret := &Operation{
105816		ServerResponse: googleapi.ServerResponse{
105817			Header:         res.Header,
105818			HTTPStatusCode: res.StatusCode,
105819		},
105820	}
105821	target := &ret
105822	if err := gensupport.DecodeResponse(target, res); err != nil {
105823		return nil, err
105824	}
105825	return ret, nil
105826	// {
105827	//   "description": "Creates a regional BackendService resource in the specified project using the data included in the request. There are several restrictions and guidelines to keep in mind when creating a regional backend service. Read  Restrictions and Guidelines for more information.",
105828	//   "httpMethod": "POST",
105829	//   "id": "compute.regionBackendServices.insert",
105830	//   "parameterOrder": [
105831	//     "project",
105832	//     "region"
105833	//   ],
105834	//   "parameters": {
105835	//     "project": {
105836	//       "description": "Project ID for this request.",
105837	//       "location": "path",
105838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
105839	//       "required": true,
105840	//       "type": "string"
105841	//     },
105842	//     "region": {
105843	//       "description": "Name of the region scoping this request.",
105844	//       "location": "path",
105845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
105846	//       "required": true,
105847	//       "type": "string"
105848	//     },
105849	//     "requestId": {
105850	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
105851	//       "location": "query",
105852	//       "type": "string"
105853	//     }
105854	//   },
105855	//   "path": "{project}/regions/{region}/backendServices",
105856	//   "request": {
105857	//     "$ref": "BackendService"
105858	//   },
105859	//   "response": {
105860	//     "$ref": "Operation"
105861	//   },
105862	//   "scopes": [
105863	//     "https://www.googleapis.com/auth/cloud-platform",
105864	//     "https://www.googleapis.com/auth/compute"
105865	//   ]
105866	// }
105867
105868}
105869
105870// method id "compute.regionBackendServices.list":
105871
105872type RegionBackendServicesListCall struct {
105873	s            *Service
105874	project      string
105875	region       string
105876	urlParams_   gensupport.URLParams
105877	ifNoneMatch_ string
105878	ctx_         context.Context
105879	header_      http.Header
105880}
105881
105882// List: Retrieves the list of regional BackendService resources
105883// available to the specified project in the given region.
105884func (r *RegionBackendServicesService) List(project string, region string) *RegionBackendServicesListCall {
105885	c := &RegionBackendServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
105886	c.project = project
105887	c.region = region
105888	return c
105889}
105890
105891// Filter sets the optional parameter "filter": A filter expression that
105892// filters resources listed in the response. The expression must specify
105893// the field name, a comparison operator, and the value that you want to
105894// use for filtering. The value must be a string, a number, or a
105895// boolean. The comparison operator must be either =, !=, >, or <.
105896//
105897// For example, if you are filtering Compute Engine instances, you can
105898// exclude instances named example-instance by specifying name !=
105899// example-instance.
105900//
105901// You can also filter nested fields. For example, you could specify
105902// scheduling.automaticRestart = false to include instances only if they
105903// are not scheduled for automatic restarts. You can use filtering on
105904// nested fields to filter based on resource labels.
105905//
105906// To filter on multiple expressions, provide each separate expression
105907// within parentheses. For example, (scheduling.automaticRestart = true)
105908// (cpuPlatform = "Intel Skylake"). By default, each expression is an
105909// AND expression. However, you can include AND and OR expressions
105910// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
105911// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
105912// true).
105913func (c *RegionBackendServicesListCall) Filter(filter string) *RegionBackendServicesListCall {
105914	c.urlParams_.Set("filter", filter)
105915	return c
105916}
105917
105918// MaxResults sets the optional parameter "maxResults": The maximum
105919// number of results per page that should be returned. If the number of
105920// available results is larger than maxResults, Compute Engine returns a
105921// nextPageToken that can be used to get the next page of results in
105922// subsequent list requests. Acceptable values are 0 to 500, inclusive.
105923// (Default: 500)
105924func (c *RegionBackendServicesListCall) MaxResults(maxResults int64) *RegionBackendServicesListCall {
105925	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
105926	return c
105927}
105928
105929// OrderBy sets the optional parameter "orderBy": Sorts list results by
105930// a certain order. By default, results are returned in alphanumerical
105931// order based on the resource name.
105932//
105933// You can also sort results in descending order based on the creation
105934// timestamp using orderBy="creationTimestamp desc". This sorts results
105935// based on the creationTimestamp field in reverse chronological order
105936// (newest result first). Use this to sort resources like operations so
105937// that the newest operation is returned first.
105938//
105939// Currently, only sorting by name or creationTimestamp desc is
105940// supported.
105941func (c *RegionBackendServicesListCall) OrderBy(orderBy string) *RegionBackendServicesListCall {
105942	c.urlParams_.Set("orderBy", orderBy)
105943	return c
105944}
105945
105946// PageToken sets the optional parameter "pageToken": Specifies a page
105947// token to use. Set pageToken to the nextPageToken returned by a
105948// previous list request to get the next page of results.
105949func (c *RegionBackendServicesListCall) PageToken(pageToken string) *RegionBackendServicesListCall {
105950	c.urlParams_.Set("pageToken", pageToken)
105951	return c
105952}
105953
105954// Fields allows partial responses to be retrieved. See
105955// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
105956// for more information.
105957func (c *RegionBackendServicesListCall) Fields(s ...googleapi.Field) *RegionBackendServicesListCall {
105958	c.urlParams_.Set("fields", googleapi.CombineFields(s))
105959	return c
105960}
105961
105962// IfNoneMatch sets the optional parameter which makes the operation
105963// fail if the object's ETag matches the given value. This is useful for
105964// getting updates only after the object has changed since the last
105965// request. Use googleapi.IsNotModified to check whether the response
105966// error from Do is the result of In-None-Match.
105967func (c *RegionBackendServicesListCall) IfNoneMatch(entityTag string) *RegionBackendServicesListCall {
105968	c.ifNoneMatch_ = entityTag
105969	return c
105970}
105971
105972// Context sets the context to be used in this call's Do method. Any
105973// pending HTTP request will be aborted if the provided context is
105974// canceled.
105975func (c *RegionBackendServicesListCall) Context(ctx context.Context) *RegionBackendServicesListCall {
105976	c.ctx_ = ctx
105977	return c
105978}
105979
105980// Header returns an http.Header that can be modified by the caller to
105981// add HTTP headers to the request.
105982func (c *RegionBackendServicesListCall) Header() http.Header {
105983	if c.header_ == nil {
105984		c.header_ = make(http.Header)
105985	}
105986	return c.header_
105987}
105988
105989func (c *RegionBackendServicesListCall) doRequest(alt string) (*http.Response, error) {
105990	reqHeaders := make(http.Header)
105991	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
105992	for k, v := range c.header_ {
105993		reqHeaders[k] = v
105994	}
105995	reqHeaders.Set("User-Agent", c.s.userAgent())
105996	if c.ifNoneMatch_ != "" {
105997		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
105998	}
105999	var body io.Reader = nil
106000	c.urlParams_.Set("alt", alt)
106001	c.urlParams_.Set("prettyPrint", "false")
106002	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices")
106003	urls += "?" + c.urlParams_.Encode()
106004	req, err := http.NewRequest("GET", urls, body)
106005	if err != nil {
106006		return nil, err
106007	}
106008	req.Header = reqHeaders
106009	googleapi.Expand(req.URL, map[string]string{
106010		"project": c.project,
106011		"region":  c.region,
106012	})
106013	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106014}
106015
106016// Do executes the "compute.regionBackendServices.list" call.
106017// Exactly one of *BackendServiceList or error will be non-nil. Any
106018// non-2xx status code is an error. Response headers are in either
106019// *BackendServiceList.ServerResponse.Header or (if a response was
106020// returned at all) in error.(*googleapi.Error).Header. Use
106021// googleapi.IsNotModified to check whether the returned error was
106022// because http.StatusNotModified was returned.
106023func (c *RegionBackendServicesListCall) Do(opts ...googleapi.CallOption) (*BackendServiceList, error) {
106024	gensupport.SetOptions(c.urlParams_, opts...)
106025	res, err := c.doRequest("json")
106026	if res != nil && res.StatusCode == http.StatusNotModified {
106027		if res.Body != nil {
106028			res.Body.Close()
106029		}
106030		return nil, &googleapi.Error{
106031			Code:   res.StatusCode,
106032			Header: res.Header,
106033		}
106034	}
106035	if err != nil {
106036		return nil, err
106037	}
106038	defer googleapi.CloseBody(res)
106039	if err := googleapi.CheckResponse(res); err != nil {
106040		return nil, err
106041	}
106042	ret := &BackendServiceList{
106043		ServerResponse: googleapi.ServerResponse{
106044			Header:         res.Header,
106045			HTTPStatusCode: res.StatusCode,
106046		},
106047	}
106048	target := &ret
106049	if err := gensupport.DecodeResponse(target, res); err != nil {
106050		return nil, err
106051	}
106052	return ret, nil
106053	// {
106054	//   "description": "Retrieves the list of regional BackendService resources available to the specified project in the given region.",
106055	//   "httpMethod": "GET",
106056	//   "id": "compute.regionBackendServices.list",
106057	//   "parameterOrder": [
106058	//     "project",
106059	//     "region"
106060	//   ],
106061	//   "parameters": {
106062	//     "filter": {
106063	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
106064	//       "location": "query",
106065	//       "type": "string"
106066	//     },
106067	//     "maxResults": {
106068	//       "default": "500",
106069	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
106070	//       "format": "uint32",
106071	//       "location": "query",
106072	//       "minimum": "0",
106073	//       "type": "integer"
106074	//     },
106075	//     "orderBy": {
106076	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
106077	//       "location": "query",
106078	//       "type": "string"
106079	//     },
106080	//     "pageToken": {
106081	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
106082	//       "location": "query",
106083	//       "type": "string"
106084	//     },
106085	//     "project": {
106086	//       "description": "Project ID for this request.",
106087	//       "location": "path",
106088	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106089	//       "required": true,
106090	//       "type": "string"
106091	//     },
106092	//     "region": {
106093	//       "description": "Name of the region scoping this request.",
106094	//       "location": "path",
106095	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106096	//       "required": true,
106097	//       "type": "string"
106098	//     }
106099	//   },
106100	//   "path": "{project}/regions/{region}/backendServices",
106101	//   "response": {
106102	//     "$ref": "BackendServiceList"
106103	//   },
106104	//   "scopes": [
106105	//     "https://www.googleapis.com/auth/cloud-platform",
106106	//     "https://www.googleapis.com/auth/compute",
106107	//     "https://www.googleapis.com/auth/compute.readonly"
106108	//   ]
106109	// }
106110
106111}
106112
106113// Pages invokes f for each page of results.
106114// A non-nil error returned from f will halt the iteration.
106115// The provided context supersedes any context provided to the Context method.
106116func (c *RegionBackendServicesListCall) Pages(ctx context.Context, f func(*BackendServiceList) error) error {
106117	c.ctx_ = ctx
106118	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106119	for {
106120		x, err := c.Do()
106121		if err != nil {
106122			return err
106123		}
106124		if err := f(x); err != nil {
106125			return err
106126		}
106127		if x.NextPageToken == "" {
106128			return nil
106129		}
106130		c.PageToken(x.NextPageToken)
106131	}
106132}
106133
106134// method id "compute.regionBackendServices.patch":
106135
106136type RegionBackendServicesPatchCall struct {
106137	s              *Service
106138	project        string
106139	region         string
106140	backendService string
106141	backendservice *BackendService
106142	urlParams_     gensupport.URLParams
106143	ctx_           context.Context
106144	header_        http.Header
106145}
106146
106147// Patch: Updates the specified regional BackendService resource with
106148// the data included in the request. There are several restrictions and
106149// guidelines to keep in mind when updating a backend service. Read
106150// Restrictions and Guidelines for more information. This method
106151// supports PATCH semantics and uses the JSON merge patch format and
106152// processing rules.
106153func (r *RegionBackendServicesService) Patch(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesPatchCall {
106154	c := &RegionBackendServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106155	c.project = project
106156	c.region = region
106157	c.backendService = backendService
106158	c.backendservice = backendservice
106159	return c
106160}
106161
106162// RequestId sets the optional parameter "requestId": An optional
106163// request ID to identify requests. Specify a unique request ID so that
106164// if you must retry your request, the server will know to ignore the
106165// request if it has already been completed.
106166//
106167// For example, consider a situation where you make an initial request
106168// and the request times out. If you make the request again with the
106169// same request ID, the server can check if original operation with the
106170// same request ID was received, and if so, will ignore the second
106171// request. This prevents clients from accidentally creating duplicate
106172// commitments.
106173//
106174// The request ID must be a valid UUID with the exception that zero UUID
106175// is not supported (00000000-0000-0000-0000-000000000000).
106176func (c *RegionBackendServicesPatchCall) RequestId(requestId string) *RegionBackendServicesPatchCall {
106177	c.urlParams_.Set("requestId", requestId)
106178	return c
106179}
106180
106181// Fields allows partial responses to be retrieved. See
106182// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106183// for more information.
106184func (c *RegionBackendServicesPatchCall) Fields(s ...googleapi.Field) *RegionBackendServicesPatchCall {
106185	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106186	return c
106187}
106188
106189// Context sets the context to be used in this call's Do method. Any
106190// pending HTTP request will be aborted if the provided context is
106191// canceled.
106192func (c *RegionBackendServicesPatchCall) Context(ctx context.Context) *RegionBackendServicesPatchCall {
106193	c.ctx_ = ctx
106194	return c
106195}
106196
106197// Header returns an http.Header that can be modified by the caller to
106198// add HTTP headers to the request.
106199func (c *RegionBackendServicesPatchCall) Header() http.Header {
106200	if c.header_ == nil {
106201		c.header_ = make(http.Header)
106202	}
106203	return c.header_
106204}
106205
106206func (c *RegionBackendServicesPatchCall) doRequest(alt string) (*http.Response, error) {
106207	reqHeaders := make(http.Header)
106208	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106209	for k, v := range c.header_ {
106210		reqHeaders[k] = v
106211	}
106212	reqHeaders.Set("User-Agent", c.s.userAgent())
106213	var body io.Reader = nil
106214	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
106215	if err != nil {
106216		return nil, err
106217	}
106218	reqHeaders.Set("Content-Type", "application/json")
106219	c.urlParams_.Set("alt", alt)
106220	c.urlParams_.Set("prettyPrint", "false")
106221	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
106222	urls += "?" + c.urlParams_.Encode()
106223	req, err := http.NewRequest("PATCH", urls, body)
106224	if err != nil {
106225		return nil, err
106226	}
106227	req.Header = reqHeaders
106228	googleapi.Expand(req.URL, map[string]string{
106229		"project":        c.project,
106230		"region":         c.region,
106231		"backendService": c.backendService,
106232	})
106233	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106234}
106235
106236// Do executes the "compute.regionBackendServices.patch" call.
106237// Exactly one of *Operation or error will be non-nil. Any non-2xx
106238// status code is an error. Response headers are in either
106239// *Operation.ServerResponse.Header or (if a response was returned at
106240// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106241// to check whether the returned error was because
106242// http.StatusNotModified was returned.
106243func (c *RegionBackendServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106244	gensupport.SetOptions(c.urlParams_, opts...)
106245	res, err := c.doRequest("json")
106246	if res != nil && res.StatusCode == http.StatusNotModified {
106247		if res.Body != nil {
106248			res.Body.Close()
106249		}
106250		return nil, &googleapi.Error{
106251			Code:   res.StatusCode,
106252			Header: res.Header,
106253		}
106254	}
106255	if err != nil {
106256		return nil, err
106257	}
106258	defer googleapi.CloseBody(res)
106259	if err := googleapi.CheckResponse(res); err != nil {
106260		return nil, err
106261	}
106262	ret := &Operation{
106263		ServerResponse: googleapi.ServerResponse{
106264			Header:         res.Header,
106265			HTTPStatusCode: res.StatusCode,
106266		},
106267	}
106268	target := &ret
106269	if err := gensupport.DecodeResponse(target, res); err != nil {
106270		return nil, err
106271	}
106272	return ret, nil
106273	// {
106274	//   "description": "Updates the specified regional BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information. This method supports PATCH semantics and uses the JSON merge patch format and processing rules.",
106275	//   "httpMethod": "PATCH",
106276	//   "id": "compute.regionBackendServices.patch",
106277	//   "parameterOrder": [
106278	//     "project",
106279	//     "region",
106280	//     "backendService"
106281	//   ],
106282	//   "parameters": {
106283	//     "backendService": {
106284	//       "description": "Name of the BackendService resource to patch.",
106285	//       "location": "path",
106286	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106287	//       "required": true,
106288	//       "type": "string"
106289	//     },
106290	//     "project": {
106291	//       "description": "Project ID for this request.",
106292	//       "location": "path",
106293	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106294	//       "required": true,
106295	//       "type": "string"
106296	//     },
106297	//     "region": {
106298	//       "description": "Name of the region scoping this request.",
106299	//       "location": "path",
106300	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106301	//       "required": true,
106302	//       "type": "string"
106303	//     },
106304	//     "requestId": {
106305	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106306	//       "location": "query",
106307	//       "type": "string"
106308	//     }
106309	//   },
106310	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
106311	//   "request": {
106312	//     "$ref": "BackendService"
106313	//   },
106314	//   "response": {
106315	//     "$ref": "Operation"
106316	//   },
106317	//   "scopes": [
106318	//     "https://www.googleapis.com/auth/cloud-platform",
106319	//     "https://www.googleapis.com/auth/compute"
106320	//   ]
106321	// }
106322
106323}
106324
106325// method id "compute.regionBackendServices.testIamPermissions":
106326
106327type RegionBackendServicesTestIamPermissionsCall struct {
106328	s                      *Service
106329	project                string
106330	region                 string
106331	resource               string
106332	testpermissionsrequest *TestPermissionsRequest
106333	urlParams_             gensupport.URLParams
106334	ctx_                   context.Context
106335	header_                http.Header
106336}
106337
106338// TestIamPermissions: Returns permissions that a caller has on the
106339// specified resource.
106340func (r *RegionBackendServicesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionBackendServicesTestIamPermissionsCall {
106341	c := &RegionBackendServicesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106342	c.project = project
106343	c.region = region
106344	c.resource = resource
106345	c.testpermissionsrequest = testpermissionsrequest
106346	return c
106347}
106348
106349// Fields allows partial responses to be retrieved. See
106350// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106351// for more information.
106352func (c *RegionBackendServicesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionBackendServicesTestIamPermissionsCall {
106353	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106354	return c
106355}
106356
106357// Context sets the context to be used in this call's Do method. Any
106358// pending HTTP request will be aborted if the provided context is
106359// canceled.
106360func (c *RegionBackendServicesTestIamPermissionsCall) Context(ctx context.Context) *RegionBackendServicesTestIamPermissionsCall {
106361	c.ctx_ = ctx
106362	return c
106363}
106364
106365// Header returns an http.Header that can be modified by the caller to
106366// add HTTP headers to the request.
106367func (c *RegionBackendServicesTestIamPermissionsCall) Header() http.Header {
106368	if c.header_ == nil {
106369		c.header_ = make(http.Header)
106370	}
106371	return c.header_
106372}
106373
106374func (c *RegionBackendServicesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
106375	reqHeaders := make(http.Header)
106376	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106377	for k, v := range c.header_ {
106378		reqHeaders[k] = v
106379	}
106380	reqHeaders.Set("User-Agent", c.s.userAgent())
106381	var body io.Reader = nil
106382	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
106383	if err != nil {
106384		return nil, err
106385	}
106386	reqHeaders.Set("Content-Type", "application/json")
106387	c.urlParams_.Set("alt", alt)
106388	c.urlParams_.Set("prettyPrint", "false")
106389	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{resource}/testIamPermissions")
106390	urls += "?" + c.urlParams_.Encode()
106391	req, err := http.NewRequest("POST", urls, body)
106392	if err != nil {
106393		return nil, err
106394	}
106395	req.Header = reqHeaders
106396	googleapi.Expand(req.URL, map[string]string{
106397		"project":  c.project,
106398		"region":   c.region,
106399		"resource": c.resource,
106400	})
106401	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106402}
106403
106404// Do executes the "compute.regionBackendServices.testIamPermissions" call.
106405// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
106406// non-2xx status code is an error. Response headers are in either
106407// *TestPermissionsResponse.ServerResponse.Header or (if a response was
106408// returned at all) in error.(*googleapi.Error).Header. Use
106409// googleapi.IsNotModified to check whether the returned error was
106410// because http.StatusNotModified was returned.
106411func (c *RegionBackendServicesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
106412	gensupport.SetOptions(c.urlParams_, opts...)
106413	res, err := c.doRequest("json")
106414	if res != nil && res.StatusCode == http.StatusNotModified {
106415		if res.Body != nil {
106416			res.Body.Close()
106417		}
106418		return nil, &googleapi.Error{
106419			Code:   res.StatusCode,
106420			Header: res.Header,
106421		}
106422	}
106423	if err != nil {
106424		return nil, err
106425	}
106426	defer googleapi.CloseBody(res)
106427	if err := googleapi.CheckResponse(res); err != nil {
106428		return nil, err
106429	}
106430	ret := &TestPermissionsResponse{
106431		ServerResponse: googleapi.ServerResponse{
106432			Header:         res.Header,
106433			HTTPStatusCode: res.StatusCode,
106434		},
106435	}
106436	target := &ret
106437	if err := gensupport.DecodeResponse(target, res); err != nil {
106438		return nil, err
106439	}
106440	return ret, nil
106441	// {
106442	//   "description": "Returns permissions that a caller has on the specified resource.",
106443	//   "httpMethod": "POST",
106444	//   "id": "compute.regionBackendServices.testIamPermissions",
106445	//   "parameterOrder": [
106446	//     "project",
106447	//     "region",
106448	//     "resource"
106449	//   ],
106450	//   "parameters": {
106451	//     "project": {
106452	//       "description": "Project ID for this request.",
106453	//       "location": "path",
106454	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106455	//       "required": true,
106456	//       "type": "string"
106457	//     },
106458	//     "region": {
106459	//       "description": "The name of the region for this request.",
106460	//       "location": "path",
106461	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106462	//       "required": true,
106463	//       "type": "string"
106464	//     },
106465	//     "resource": {
106466	//       "description": "Name or id of the resource for this request.",
106467	//       "location": "path",
106468	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106469	//       "required": true,
106470	//       "type": "string"
106471	//     }
106472	//   },
106473	//   "path": "{project}/regions/{region}/backendServices/{resource}/testIamPermissions",
106474	//   "request": {
106475	//     "$ref": "TestPermissionsRequest"
106476	//   },
106477	//   "response": {
106478	//     "$ref": "TestPermissionsResponse"
106479	//   },
106480	//   "scopes": [
106481	//     "https://www.googleapis.com/auth/cloud-platform",
106482	//     "https://www.googleapis.com/auth/compute",
106483	//     "https://www.googleapis.com/auth/compute.readonly"
106484	//   ]
106485	// }
106486
106487}
106488
106489// method id "compute.regionBackendServices.update":
106490
106491type RegionBackendServicesUpdateCall struct {
106492	s              *Service
106493	project        string
106494	region         string
106495	backendService string
106496	backendservice *BackendService
106497	urlParams_     gensupport.URLParams
106498	ctx_           context.Context
106499	header_        http.Header
106500}
106501
106502// Update: Updates the specified regional BackendService resource with
106503// the data included in the request. There are several restrictions and
106504// guidelines to keep in mind when updating a backend service. Read
106505// Restrictions and Guidelines for more information.
106506func (r *RegionBackendServicesService) Update(project string, region string, backendService string, backendservice *BackendService) *RegionBackendServicesUpdateCall {
106507	c := &RegionBackendServicesUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106508	c.project = project
106509	c.region = region
106510	c.backendService = backendService
106511	c.backendservice = backendservice
106512	return c
106513}
106514
106515// RequestId sets the optional parameter "requestId": An optional
106516// request ID to identify requests. Specify a unique request ID so that
106517// if you must retry your request, the server will know to ignore the
106518// request if it has already been completed.
106519//
106520// For example, consider a situation where you make an initial request
106521// and the request times out. If you make the request again with the
106522// same request ID, the server can check if original operation with the
106523// same request ID was received, and if so, will ignore the second
106524// request. This prevents clients from accidentally creating duplicate
106525// commitments.
106526//
106527// The request ID must be a valid UUID with the exception that zero UUID
106528// is not supported (00000000-0000-0000-0000-000000000000).
106529func (c *RegionBackendServicesUpdateCall) RequestId(requestId string) *RegionBackendServicesUpdateCall {
106530	c.urlParams_.Set("requestId", requestId)
106531	return c
106532}
106533
106534// Fields allows partial responses to be retrieved. See
106535// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106536// for more information.
106537func (c *RegionBackendServicesUpdateCall) Fields(s ...googleapi.Field) *RegionBackendServicesUpdateCall {
106538	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106539	return c
106540}
106541
106542// Context sets the context to be used in this call's Do method. Any
106543// pending HTTP request will be aborted if the provided context is
106544// canceled.
106545func (c *RegionBackendServicesUpdateCall) Context(ctx context.Context) *RegionBackendServicesUpdateCall {
106546	c.ctx_ = ctx
106547	return c
106548}
106549
106550// Header returns an http.Header that can be modified by the caller to
106551// add HTTP headers to the request.
106552func (c *RegionBackendServicesUpdateCall) Header() http.Header {
106553	if c.header_ == nil {
106554		c.header_ = make(http.Header)
106555	}
106556	return c.header_
106557}
106558
106559func (c *RegionBackendServicesUpdateCall) doRequest(alt string) (*http.Response, error) {
106560	reqHeaders := make(http.Header)
106561	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106562	for k, v := range c.header_ {
106563		reqHeaders[k] = v
106564	}
106565	reqHeaders.Set("User-Agent", c.s.userAgent())
106566	var body io.Reader = nil
106567	body, err := googleapi.WithoutDataWrapper.JSONReader(c.backendservice)
106568	if err != nil {
106569		return nil, err
106570	}
106571	reqHeaders.Set("Content-Type", "application/json")
106572	c.urlParams_.Set("alt", alt)
106573	c.urlParams_.Set("prettyPrint", "false")
106574	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/backendServices/{backendService}")
106575	urls += "?" + c.urlParams_.Encode()
106576	req, err := http.NewRequest("PUT", urls, body)
106577	if err != nil {
106578		return nil, err
106579	}
106580	req.Header = reqHeaders
106581	googleapi.Expand(req.URL, map[string]string{
106582		"project":        c.project,
106583		"region":         c.region,
106584		"backendService": c.backendService,
106585	})
106586	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106587}
106588
106589// Do executes the "compute.regionBackendServices.update" call.
106590// Exactly one of *Operation or error will be non-nil. Any non-2xx
106591// status code is an error. Response headers are in either
106592// *Operation.ServerResponse.Header or (if a response was returned at
106593// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
106594// to check whether the returned error was because
106595// http.StatusNotModified was returned.
106596func (c *RegionBackendServicesUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
106597	gensupport.SetOptions(c.urlParams_, opts...)
106598	res, err := c.doRequest("json")
106599	if res != nil && res.StatusCode == http.StatusNotModified {
106600		if res.Body != nil {
106601			res.Body.Close()
106602		}
106603		return nil, &googleapi.Error{
106604			Code:   res.StatusCode,
106605			Header: res.Header,
106606		}
106607	}
106608	if err != nil {
106609		return nil, err
106610	}
106611	defer googleapi.CloseBody(res)
106612	if err := googleapi.CheckResponse(res); err != nil {
106613		return nil, err
106614	}
106615	ret := &Operation{
106616		ServerResponse: googleapi.ServerResponse{
106617			Header:         res.Header,
106618			HTTPStatusCode: res.StatusCode,
106619		},
106620	}
106621	target := &ret
106622	if err := gensupport.DecodeResponse(target, res); err != nil {
106623		return nil, err
106624	}
106625	return ret, nil
106626	// {
106627	//   "description": "Updates the specified regional BackendService resource with the data included in the request. There are several restrictions and guidelines to keep in mind when updating a backend service. Read  Restrictions and Guidelines for more information.",
106628	//   "httpMethod": "PUT",
106629	//   "id": "compute.regionBackendServices.update",
106630	//   "parameterOrder": [
106631	//     "project",
106632	//     "region",
106633	//     "backendService"
106634	//   ],
106635	//   "parameters": {
106636	//     "backendService": {
106637	//       "description": "Name of the BackendService resource to update.",
106638	//       "location": "path",
106639	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
106640	//       "required": true,
106641	//       "type": "string"
106642	//     },
106643	//     "project": {
106644	//       "description": "Project ID for this request.",
106645	//       "location": "path",
106646	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106647	//       "required": true,
106648	//       "type": "string"
106649	//     },
106650	//     "region": {
106651	//       "description": "Name of the region scoping this request.",
106652	//       "location": "path",
106653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
106654	//       "required": true,
106655	//       "type": "string"
106656	//     },
106657	//     "requestId": {
106658	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
106659	//       "location": "query",
106660	//       "type": "string"
106661	//     }
106662	//   },
106663	//   "path": "{project}/regions/{region}/backendServices/{backendService}",
106664	//   "request": {
106665	//     "$ref": "BackendService"
106666	//   },
106667	//   "response": {
106668	//     "$ref": "Operation"
106669	//   },
106670	//   "scopes": [
106671	//     "https://www.googleapis.com/auth/cloud-platform",
106672	//     "https://www.googleapis.com/auth/compute"
106673	//   ]
106674	// }
106675
106676}
106677
106678// method id "compute.regionCommitments.aggregatedList":
106679
106680type RegionCommitmentsAggregatedListCall struct {
106681	s            *Service
106682	project      string
106683	urlParams_   gensupport.URLParams
106684	ifNoneMatch_ string
106685	ctx_         context.Context
106686	header_      http.Header
106687}
106688
106689// AggregatedList: Retrieves an aggregated list of commitments.
106690func (r *RegionCommitmentsService) AggregatedList(project string) *RegionCommitmentsAggregatedListCall {
106691	c := &RegionCommitmentsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106692	c.project = project
106693	return c
106694}
106695
106696// Filter sets the optional parameter "filter": A filter expression that
106697// filters resources listed in the response. The expression must specify
106698// the field name, a comparison operator, and the value that you want to
106699// use for filtering. The value must be a string, a number, or a
106700// boolean. The comparison operator must be either =, !=, >, or <.
106701//
106702// For example, if you are filtering Compute Engine instances, you can
106703// exclude instances named example-instance by specifying name !=
106704// example-instance.
106705//
106706// You can also filter nested fields. For example, you could specify
106707// scheduling.automaticRestart = false to include instances only if they
106708// are not scheduled for automatic restarts. You can use filtering on
106709// nested fields to filter based on resource labels.
106710//
106711// To filter on multiple expressions, provide each separate expression
106712// within parentheses. For example, (scheduling.automaticRestart = true)
106713// (cpuPlatform = "Intel Skylake"). By default, each expression is an
106714// AND expression. However, you can include AND and OR expressions
106715// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
106716// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
106717// true).
106718func (c *RegionCommitmentsAggregatedListCall) Filter(filter string) *RegionCommitmentsAggregatedListCall {
106719	c.urlParams_.Set("filter", filter)
106720	return c
106721}
106722
106723// IncludeAllScopes sets the optional parameter "includeAllScopes":
106724// Indicates whether every visible scope for each scope type (zone,
106725// region, global) should be included in the response. For new resource
106726// types added after this field, the flag has no effect as new resource
106727// types will always include every visible scope for each scope type in
106728// response. For resource types which predate this field, if this flag
106729// is omitted or false, only scopes of the scope types where the
106730// resource type is expected to be found will be included.
106731func (c *RegionCommitmentsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RegionCommitmentsAggregatedListCall {
106732	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
106733	return c
106734}
106735
106736// MaxResults sets the optional parameter "maxResults": The maximum
106737// number of results per page that should be returned. If the number of
106738// available results is larger than maxResults, Compute Engine returns a
106739// nextPageToken that can be used to get the next page of results in
106740// subsequent list requests. Acceptable values are 0 to 500, inclusive.
106741// (Default: 500)
106742func (c *RegionCommitmentsAggregatedListCall) MaxResults(maxResults int64) *RegionCommitmentsAggregatedListCall {
106743	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
106744	return c
106745}
106746
106747// OrderBy sets the optional parameter "orderBy": Sorts list results by
106748// a certain order. By default, results are returned in alphanumerical
106749// order based on the resource name.
106750//
106751// You can also sort results in descending order based on the creation
106752// timestamp using orderBy="creationTimestamp desc". This sorts results
106753// based on the creationTimestamp field in reverse chronological order
106754// (newest result first). Use this to sort resources like operations so
106755// that the newest operation is returned first.
106756//
106757// Currently, only sorting by name or creationTimestamp desc is
106758// supported.
106759func (c *RegionCommitmentsAggregatedListCall) OrderBy(orderBy string) *RegionCommitmentsAggregatedListCall {
106760	c.urlParams_.Set("orderBy", orderBy)
106761	return c
106762}
106763
106764// PageToken sets the optional parameter "pageToken": Specifies a page
106765// token to use. Set pageToken to the nextPageToken returned by a
106766// previous list request to get the next page of results.
106767func (c *RegionCommitmentsAggregatedListCall) PageToken(pageToken string) *RegionCommitmentsAggregatedListCall {
106768	c.urlParams_.Set("pageToken", pageToken)
106769	return c
106770}
106771
106772// Fields allows partial responses to be retrieved. See
106773// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106774// for more information.
106775func (c *RegionCommitmentsAggregatedListCall) Fields(s ...googleapi.Field) *RegionCommitmentsAggregatedListCall {
106776	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106777	return c
106778}
106779
106780// IfNoneMatch sets the optional parameter which makes the operation
106781// fail if the object's ETag matches the given value. This is useful for
106782// getting updates only after the object has changed since the last
106783// request. Use googleapi.IsNotModified to check whether the response
106784// error from Do is the result of In-None-Match.
106785func (c *RegionCommitmentsAggregatedListCall) IfNoneMatch(entityTag string) *RegionCommitmentsAggregatedListCall {
106786	c.ifNoneMatch_ = entityTag
106787	return c
106788}
106789
106790// Context sets the context to be used in this call's Do method. Any
106791// pending HTTP request will be aborted if the provided context is
106792// canceled.
106793func (c *RegionCommitmentsAggregatedListCall) Context(ctx context.Context) *RegionCommitmentsAggregatedListCall {
106794	c.ctx_ = ctx
106795	return c
106796}
106797
106798// Header returns an http.Header that can be modified by the caller to
106799// add HTTP headers to the request.
106800func (c *RegionCommitmentsAggregatedListCall) Header() http.Header {
106801	if c.header_ == nil {
106802		c.header_ = make(http.Header)
106803	}
106804	return c.header_
106805}
106806
106807func (c *RegionCommitmentsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
106808	reqHeaders := make(http.Header)
106809	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
106810	for k, v := range c.header_ {
106811		reqHeaders[k] = v
106812	}
106813	reqHeaders.Set("User-Agent", c.s.userAgent())
106814	if c.ifNoneMatch_ != "" {
106815		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
106816	}
106817	var body io.Reader = nil
106818	c.urlParams_.Set("alt", alt)
106819	c.urlParams_.Set("prettyPrint", "false")
106820	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/commitments")
106821	urls += "?" + c.urlParams_.Encode()
106822	req, err := http.NewRequest("GET", urls, body)
106823	if err != nil {
106824		return nil, err
106825	}
106826	req.Header = reqHeaders
106827	googleapi.Expand(req.URL, map[string]string{
106828		"project": c.project,
106829	})
106830	return gensupport.SendRequest(c.ctx_, c.s.client, req)
106831}
106832
106833// Do executes the "compute.regionCommitments.aggregatedList" call.
106834// Exactly one of *CommitmentAggregatedList or error will be non-nil.
106835// Any non-2xx status code is an error. Response headers are in either
106836// *CommitmentAggregatedList.ServerResponse.Header or (if a response was
106837// returned at all) in error.(*googleapi.Error).Header. Use
106838// googleapi.IsNotModified to check whether the returned error was
106839// because http.StatusNotModified was returned.
106840func (c *RegionCommitmentsAggregatedListCall) Do(opts ...googleapi.CallOption) (*CommitmentAggregatedList, error) {
106841	gensupport.SetOptions(c.urlParams_, opts...)
106842	res, err := c.doRequest("json")
106843	if res != nil && res.StatusCode == http.StatusNotModified {
106844		if res.Body != nil {
106845			res.Body.Close()
106846		}
106847		return nil, &googleapi.Error{
106848			Code:   res.StatusCode,
106849			Header: res.Header,
106850		}
106851	}
106852	if err != nil {
106853		return nil, err
106854	}
106855	defer googleapi.CloseBody(res)
106856	if err := googleapi.CheckResponse(res); err != nil {
106857		return nil, err
106858	}
106859	ret := &CommitmentAggregatedList{
106860		ServerResponse: googleapi.ServerResponse{
106861			Header:         res.Header,
106862			HTTPStatusCode: res.StatusCode,
106863		},
106864	}
106865	target := &ret
106866	if err := gensupport.DecodeResponse(target, res); err != nil {
106867		return nil, err
106868	}
106869	return ret, nil
106870	// {
106871	//   "description": "Retrieves an aggregated list of commitments.",
106872	//   "httpMethod": "GET",
106873	//   "id": "compute.regionCommitments.aggregatedList",
106874	//   "parameterOrder": [
106875	//     "project"
106876	//   ],
106877	//   "parameters": {
106878	//     "filter": {
106879	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
106880	//       "location": "query",
106881	//       "type": "string"
106882	//     },
106883	//     "includeAllScopes": {
106884	//       "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.",
106885	//       "location": "query",
106886	//       "type": "boolean"
106887	//     },
106888	//     "maxResults": {
106889	//       "default": "500",
106890	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
106891	//       "format": "uint32",
106892	//       "location": "query",
106893	//       "minimum": "0",
106894	//       "type": "integer"
106895	//     },
106896	//     "orderBy": {
106897	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
106898	//       "location": "query",
106899	//       "type": "string"
106900	//     },
106901	//     "pageToken": {
106902	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
106903	//       "location": "query",
106904	//       "type": "string"
106905	//     },
106906	//     "project": {
106907	//       "description": "Project ID for this request.",
106908	//       "location": "path",
106909	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
106910	//       "required": true,
106911	//       "type": "string"
106912	//     }
106913	//   },
106914	//   "path": "{project}/aggregated/commitments",
106915	//   "response": {
106916	//     "$ref": "CommitmentAggregatedList"
106917	//   },
106918	//   "scopes": [
106919	//     "https://www.googleapis.com/auth/cloud-platform",
106920	//     "https://www.googleapis.com/auth/compute",
106921	//     "https://www.googleapis.com/auth/compute.readonly"
106922	//   ]
106923	// }
106924
106925}
106926
106927// Pages invokes f for each page of results.
106928// A non-nil error returned from f will halt the iteration.
106929// The provided context supersedes any context provided to the Context method.
106930func (c *RegionCommitmentsAggregatedListCall) Pages(ctx context.Context, f func(*CommitmentAggregatedList) error) error {
106931	c.ctx_ = ctx
106932	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
106933	for {
106934		x, err := c.Do()
106935		if err != nil {
106936			return err
106937		}
106938		if err := f(x); err != nil {
106939			return err
106940		}
106941		if x.NextPageToken == "" {
106942			return nil
106943		}
106944		c.PageToken(x.NextPageToken)
106945	}
106946}
106947
106948// method id "compute.regionCommitments.get":
106949
106950type RegionCommitmentsGetCall struct {
106951	s            *Service
106952	project      string
106953	region       string
106954	commitment   string
106955	urlParams_   gensupport.URLParams
106956	ifNoneMatch_ string
106957	ctx_         context.Context
106958	header_      http.Header
106959}
106960
106961// Get: Returns the specified commitment resource. Gets a list of
106962// available commitments by making a list() request.
106963func (r *RegionCommitmentsService) Get(project string, region string, commitment string) *RegionCommitmentsGetCall {
106964	c := &RegionCommitmentsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
106965	c.project = project
106966	c.region = region
106967	c.commitment = commitment
106968	return c
106969}
106970
106971// Fields allows partial responses to be retrieved. See
106972// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
106973// for more information.
106974func (c *RegionCommitmentsGetCall) Fields(s ...googleapi.Field) *RegionCommitmentsGetCall {
106975	c.urlParams_.Set("fields", googleapi.CombineFields(s))
106976	return c
106977}
106978
106979// IfNoneMatch sets the optional parameter which makes the operation
106980// fail if the object's ETag matches the given value. This is useful for
106981// getting updates only after the object has changed since the last
106982// request. Use googleapi.IsNotModified to check whether the response
106983// error from Do is the result of In-None-Match.
106984func (c *RegionCommitmentsGetCall) IfNoneMatch(entityTag string) *RegionCommitmentsGetCall {
106985	c.ifNoneMatch_ = entityTag
106986	return c
106987}
106988
106989// Context sets the context to be used in this call's Do method. Any
106990// pending HTTP request will be aborted if the provided context is
106991// canceled.
106992func (c *RegionCommitmentsGetCall) Context(ctx context.Context) *RegionCommitmentsGetCall {
106993	c.ctx_ = ctx
106994	return c
106995}
106996
106997// Header returns an http.Header that can be modified by the caller to
106998// add HTTP headers to the request.
106999func (c *RegionCommitmentsGetCall) Header() http.Header {
107000	if c.header_ == nil {
107001		c.header_ = make(http.Header)
107002	}
107003	return c.header_
107004}
107005
107006func (c *RegionCommitmentsGetCall) doRequest(alt string) (*http.Response, error) {
107007	reqHeaders := make(http.Header)
107008	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107009	for k, v := range c.header_ {
107010		reqHeaders[k] = v
107011	}
107012	reqHeaders.Set("User-Agent", c.s.userAgent())
107013	if c.ifNoneMatch_ != "" {
107014		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107015	}
107016	var body io.Reader = nil
107017	c.urlParams_.Set("alt", alt)
107018	c.urlParams_.Set("prettyPrint", "false")
107019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}")
107020	urls += "?" + c.urlParams_.Encode()
107021	req, err := http.NewRequest("GET", urls, body)
107022	if err != nil {
107023		return nil, err
107024	}
107025	req.Header = reqHeaders
107026	googleapi.Expand(req.URL, map[string]string{
107027		"project":    c.project,
107028		"region":     c.region,
107029		"commitment": c.commitment,
107030	})
107031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107032}
107033
107034// Do executes the "compute.regionCommitments.get" call.
107035// Exactly one of *Commitment or error will be non-nil. Any non-2xx
107036// status code is an error. Response headers are in either
107037// *Commitment.ServerResponse.Header or (if a response was returned at
107038// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107039// to check whether the returned error was because
107040// http.StatusNotModified was returned.
107041func (c *RegionCommitmentsGetCall) Do(opts ...googleapi.CallOption) (*Commitment, error) {
107042	gensupport.SetOptions(c.urlParams_, opts...)
107043	res, err := c.doRequest("json")
107044	if res != nil && res.StatusCode == http.StatusNotModified {
107045		if res.Body != nil {
107046			res.Body.Close()
107047		}
107048		return nil, &googleapi.Error{
107049			Code:   res.StatusCode,
107050			Header: res.Header,
107051		}
107052	}
107053	if err != nil {
107054		return nil, err
107055	}
107056	defer googleapi.CloseBody(res)
107057	if err := googleapi.CheckResponse(res); err != nil {
107058		return nil, err
107059	}
107060	ret := &Commitment{
107061		ServerResponse: googleapi.ServerResponse{
107062			Header:         res.Header,
107063			HTTPStatusCode: res.StatusCode,
107064		},
107065	}
107066	target := &ret
107067	if err := gensupport.DecodeResponse(target, res); err != nil {
107068		return nil, err
107069	}
107070	return ret, nil
107071	// {
107072	//   "description": "Returns the specified commitment resource. Gets a list of available commitments by making a list() request.",
107073	//   "httpMethod": "GET",
107074	//   "id": "compute.regionCommitments.get",
107075	//   "parameterOrder": [
107076	//     "project",
107077	//     "region",
107078	//     "commitment"
107079	//   ],
107080	//   "parameters": {
107081	//     "commitment": {
107082	//       "description": "Name of the commitment to return.",
107083	//       "location": "path",
107084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107085	//       "required": true,
107086	//       "type": "string"
107087	//     },
107088	//     "project": {
107089	//       "description": "Project ID for this request.",
107090	//       "location": "path",
107091	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107092	//       "required": true,
107093	//       "type": "string"
107094	//     },
107095	//     "region": {
107096	//       "description": "Name of the region for this request.",
107097	//       "location": "path",
107098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107099	//       "required": true,
107100	//       "type": "string"
107101	//     }
107102	//   },
107103	//   "path": "{project}/regions/{region}/commitments/{commitment}",
107104	//   "response": {
107105	//     "$ref": "Commitment"
107106	//   },
107107	//   "scopes": [
107108	//     "https://www.googleapis.com/auth/cloud-platform",
107109	//     "https://www.googleapis.com/auth/compute",
107110	//     "https://www.googleapis.com/auth/compute.readonly"
107111	//   ]
107112	// }
107113
107114}
107115
107116// method id "compute.regionCommitments.insert":
107117
107118type RegionCommitmentsInsertCall struct {
107119	s          *Service
107120	project    string
107121	region     string
107122	commitment *Commitment
107123	urlParams_ gensupport.URLParams
107124	ctx_       context.Context
107125	header_    http.Header
107126}
107127
107128// Insert: Creates a commitment in the specified project using the data
107129// included in the request.
107130func (r *RegionCommitmentsService) Insert(project string, region string, commitment *Commitment) *RegionCommitmentsInsertCall {
107131	c := &RegionCommitmentsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107132	c.project = project
107133	c.region = region
107134	c.commitment = commitment
107135	return c
107136}
107137
107138// RequestId sets the optional parameter "requestId": An optional
107139// request ID to identify requests. Specify a unique request ID so that
107140// if you must retry your request, the server will know to ignore the
107141// request if it has already been completed.
107142//
107143// For example, consider a situation where you make an initial request
107144// and the request times out. If you make the request again with the
107145// same request ID, the server can check if original operation with the
107146// same request ID was received, and if so, will ignore the second
107147// request. This prevents clients from accidentally creating duplicate
107148// commitments.
107149//
107150// The request ID must be a valid UUID with the exception that zero UUID
107151// is not supported (00000000-0000-0000-0000-000000000000).
107152func (c *RegionCommitmentsInsertCall) RequestId(requestId string) *RegionCommitmentsInsertCall {
107153	c.urlParams_.Set("requestId", requestId)
107154	return c
107155}
107156
107157// Fields allows partial responses to be retrieved. See
107158// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107159// for more information.
107160func (c *RegionCommitmentsInsertCall) Fields(s ...googleapi.Field) *RegionCommitmentsInsertCall {
107161	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107162	return c
107163}
107164
107165// Context sets the context to be used in this call's Do method. Any
107166// pending HTTP request will be aborted if the provided context is
107167// canceled.
107168func (c *RegionCommitmentsInsertCall) Context(ctx context.Context) *RegionCommitmentsInsertCall {
107169	c.ctx_ = ctx
107170	return c
107171}
107172
107173// Header returns an http.Header that can be modified by the caller to
107174// add HTTP headers to the request.
107175func (c *RegionCommitmentsInsertCall) Header() http.Header {
107176	if c.header_ == nil {
107177		c.header_ = make(http.Header)
107178	}
107179	return c.header_
107180}
107181
107182func (c *RegionCommitmentsInsertCall) doRequest(alt string) (*http.Response, error) {
107183	reqHeaders := make(http.Header)
107184	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107185	for k, v := range c.header_ {
107186		reqHeaders[k] = v
107187	}
107188	reqHeaders.Set("User-Agent", c.s.userAgent())
107189	var body io.Reader = nil
107190	body, err := googleapi.WithoutDataWrapper.JSONReader(c.commitment)
107191	if err != nil {
107192		return nil, err
107193	}
107194	reqHeaders.Set("Content-Type", "application/json")
107195	c.urlParams_.Set("alt", alt)
107196	c.urlParams_.Set("prettyPrint", "false")
107197	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
107198	urls += "?" + c.urlParams_.Encode()
107199	req, err := http.NewRequest("POST", urls, body)
107200	if err != nil {
107201		return nil, err
107202	}
107203	req.Header = reqHeaders
107204	googleapi.Expand(req.URL, map[string]string{
107205		"project": c.project,
107206		"region":  c.region,
107207	})
107208	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107209}
107210
107211// Do executes the "compute.regionCommitments.insert" call.
107212// Exactly one of *Operation or error will be non-nil. Any non-2xx
107213// status code is an error. Response headers are in either
107214// *Operation.ServerResponse.Header or (if a response was returned at
107215// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107216// to check whether the returned error was because
107217// http.StatusNotModified was returned.
107218func (c *RegionCommitmentsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107219	gensupport.SetOptions(c.urlParams_, opts...)
107220	res, err := c.doRequest("json")
107221	if res != nil && res.StatusCode == http.StatusNotModified {
107222		if res.Body != nil {
107223			res.Body.Close()
107224		}
107225		return nil, &googleapi.Error{
107226			Code:   res.StatusCode,
107227			Header: res.Header,
107228		}
107229	}
107230	if err != nil {
107231		return nil, err
107232	}
107233	defer googleapi.CloseBody(res)
107234	if err := googleapi.CheckResponse(res); err != nil {
107235		return nil, err
107236	}
107237	ret := &Operation{
107238		ServerResponse: googleapi.ServerResponse{
107239			Header:         res.Header,
107240			HTTPStatusCode: res.StatusCode,
107241		},
107242	}
107243	target := &ret
107244	if err := gensupport.DecodeResponse(target, res); err != nil {
107245		return nil, err
107246	}
107247	return ret, nil
107248	// {
107249	//   "description": "Creates a commitment in the specified project using the data included in the request.",
107250	//   "httpMethod": "POST",
107251	//   "id": "compute.regionCommitments.insert",
107252	//   "parameterOrder": [
107253	//     "project",
107254	//     "region"
107255	//   ],
107256	//   "parameters": {
107257	//     "project": {
107258	//       "description": "Project ID for this request.",
107259	//       "location": "path",
107260	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107261	//       "required": true,
107262	//       "type": "string"
107263	//     },
107264	//     "region": {
107265	//       "description": "Name of the region for this request.",
107266	//       "location": "path",
107267	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107268	//       "required": true,
107269	//       "type": "string"
107270	//     },
107271	//     "requestId": {
107272	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107273	//       "location": "query",
107274	//       "type": "string"
107275	//     }
107276	//   },
107277	//   "path": "{project}/regions/{region}/commitments",
107278	//   "request": {
107279	//     "$ref": "Commitment"
107280	//   },
107281	//   "response": {
107282	//     "$ref": "Operation"
107283	//   },
107284	//   "scopes": [
107285	//     "https://www.googleapis.com/auth/cloud-platform",
107286	//     "https://www.googleapis.com/auth/compute"
107287	//   ]
107288	// }
107289
107290}
107291
107292// method id "compute.regionCommitments.list":
107293
107294type RegionCommitmentsListCall struct {
107295	s            *Service
107296	project      string
107297	region       string
107298	urlParams_   gensupport.URLParams
107299	ifNoneMatch_ string
107300	ctx_         context.Context
107301	header_      http.Header
107302}
107303
107304// List: Retrieves a list of commitments contained within the specified
107305// region.
107306func (r *RegionCommitmentsService) List(project string, region string) *RegionCommitmentsListCall {
107307	c := &RegionCommitmentsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107308	c.project = project
107309	c.region = region
107310	return c
107311}
107312
107313// Filter sets the optional parameter "filter": A filter expression that
107314// filters resources listed in the response. The expression must specify
107315// the field name, a comparison operator, and the value that you want to
107316// use for filtering. The value must be a string, a number, or a
107317// boolean. The comparison operator must be either =, !=, >, or <.
107318//
107319// For example, if you are filtering Compute Engine instances, you can
107320// exclude instances named example-instance by specifying name !=
107321// example-instance.
107322//
107323// You can also filter nested fields. For example, you could specify
107324// scheduling.automaticRestart = false to include instances only if they
107325// are not scheduled for automatic restarts. You can use filtering on
107326// nested fields to filter based on resource labels.
107327//
107328// To filter on multiple expressions, provide each separate expression
107329// within parentheses. For example, (scheduling.automaticRestart = true)
107330// (cpuPlatform = "Intel Skylake"). By default, each expression is an
107331// AND expression. However, you can include AND and OR expressions
107332// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
107333// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
107334// true).
107335func (c *RegionCommitmentsListCall) Filter(filter string) *RegionCommitmentsListCall {
107336	c.urlParams_.Set("filter", filter)
107337	return c
107338}
107339
107340// MaxResults sets the optional parameter "maxResults": The maximum
107341// number of results per page that should be returned. If the number of
107342// available results is larger than maxResults, Compute Engine returns a
107343// nextPageToken that can be used to get the next page of results in
107344// subsequent list requests. Acceptable values are 0 to 500, inclusive.
107345// (Default: 500)
107346func (c *RegionCommitmentsListCall) MaxResults(maxResults int64) *RegionCommitmentsListCall {
107347	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107348	return c
107349}
107350
107351// OrderBy sets the optional parameter "orderBy": Sorts list results by
107352// a certain order. By default, results are returned in alphanumerical
107353// order based on the resource name.
107354//
107355// You can also sort results in descending order based on the creation
107356// timestamp using orderBy="creationTimestamp desc". This sorts results
107357// based on the creationTimestamp field in reverse chronological order
107358// (newest result first). Use this to sort resources like operations so
107359// that the newest operation is returned first.
107360//
107361// Currently, only sorting by name or creationTimestamp desc is
107362// supported.
107363func (c *RegionCommitmentsListCall) OrderBy(orderBy string) *RegionCommitmentsListCall {
107364	c.urlParams_.Set("orderBy", orderBy)
107365	return c
107366}
107367
107368// PageToken sets the optional parameter "pageToken": Specifies a page
107369// token to use. Set pageToken to the nextPageToken returned by a
107370// previous list request to get the next page of results.
107371func (c *RegionCommitmentsListCall) PageToken(pageToken string) *RegionCommitmentsListCall {
107372	c.urlParams_.Set("pageToken", pageToken)
107373	return c
107374}
107375
107376// Fields allows partial responses to be retrieved. See
107377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107378// for more information.
107379func (c *RegionCommitmentsListCall) Fields(s ...googleapi.Field) *RegionCommitmentsListCall {
107380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107381	return c
107382}
107383
107384// IfNoneMatch sets the optional parameter which makes the operation
107385// fail if the object's ETag matches the given value. This is useful for
107386// getting updates only after the object has changed since the last
107387// request. Use googleapi.IsNotModified to check whether the response
107388// error from Do is the result of In-None-Match.
107389func (c *RegionCommitmentsListCall) IfNoneMatch(entityTag string) *RegionCommitmentsListCall {
107390	c.ifNoneMatch_ = entityTag
107391	return c
107392}
107393
107394// Context sets the context to be used in this call's Do method. Any
107395// pending HTTP request will be aborted if the provided context is
107396// canceled.
107397func (c *RegionCommitmentsListCall) Context(ctx context.Context) *RegionCommitmentsListCall {
107398	c.ctx_ = ctx
107399	return c
107400}
107401
107402// Header returns an http.Header that can be modified by the caller to
107403// add HTTP headers to the request.
107404func (c *RegionCommitmentsListCall) Header() http.Header {
107405	if c.header_ == nil {
107406		c.header_ = make(http.Header)
107407	}
107408	return c.header_
107409}
107410
107411func (c *RegionCommitmentsListCall) doRequest(alt string) (*http.Response, error) {
107412	reqHeaders := make(http.Header)
107413	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107414	for k, v := range c.header_ {
107415		reqHeaders[k] = v
107416	}
107417	reqHeaders.Set("User-Agent", c.s.userAgent())
107418	if c.ifNoneMatch_ != "" {
107419		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107420	}
107421	var body io.Reader = nil
107422	c.urlParams_.Set("alt", alt)
107423	c.urlParams_.Set("prettyPrint", "false")
107424	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments")
107425	urls += "?" + c.urlParams_.Encode()
107426	req, err := http.NewRequest("GET", urls, body)
107427	if err != nil {
107428		return nil, err
107429	}
107430	req.Header = reqHeaders
107431	googleapi.Expand(req.URL, map[string]string{
107432		"project": c.project,
107433		"region":  c.region,
107434	})
107435	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107436}
107437
107438// Do executes the "compute.regionCommitments.list" call.
107439// Exactly one of *CommitmentList or error will be non-nil. Any non-2xx
107440// status code is an error. Response headers are in either
107441// *CommitmentList.ServerResponse.Header or (if a response was returned
107442// at all) in error.(*googleapi.Error).Header. Use
107443// googleapi.IsNotModified to check whether the returned error was
107444// because http.StatusNotModified was returned.
107445func (c *RegionCommitmentsListCall) Do(opts ...googleapi.CallOption) (*CommitmentList, error) {
107446	gensupport.SetOptions(c.urlParams_, opts...)
107447	res, err := c.doRequest("json")
107448	if res != nil && res.StatusCode == http.StatusNotModified {
107449		if res.Body != nil {
107450			res.Body.Close()
107451		}
107452		return nil, &googleapi.Error{
107453			Code:   res.StatusCode,
107454			Header: res.Header,
107455		}
107456	}
107457	if err != nil {
107458		return nil, err
107459	}
107460	defer googleapi.CloseBody(res)
107461	if err := googleapi.CheckResponse(res); err != nil {
107462		return nil, err
107463	}
107464	ret := &CommitmentList{
107465		ServerResponse: googleapi.ServerResponse{
107466			Header:         res.Header,
107467			HTTPStatusCode: res.StatusCode,
107468		},
107469	}
107470	target := &ret
107471	if err := gensupport.DecodeResponse(target, res); err != nil {
107472		return nil, err
107473	}
107474	return ret, nil
107475	// {
107476	//   "description": "Retrieves a list of commitments contained within the specified region.",
107477	//   "httpMethod": "GET",
107478	//   "id": "compute.regionCommitments.list",
107479	//   "parameterOrder": [
107480	//     "project",
107481	//     "region"
107482	//   ],
107483	//   "parameters": {
107484	//     "filter": {
107485	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
107486	//       "location": "query",
107487	//       "type": "string"
107488	//     },
107489	//     "maxResults": {
107490	//       "default": "500",
107491	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
107492	//       "format": "uint32",
107493	//       "location": "query",
107494	//       "minimum": "0",
107495	//       "type": "integer"
107496	//     },
107497	//     "orderBy": {
107498	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
107499	//       "location": "query",
107500	//       "type": "string"
107501	//     },
107502	//     "pageToken": {
107503	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
107504	//       "location": "query",
107505	//       "type": "string"
107506	//     },
107507	//     "project": {
107508	//       "description": "Project ID for this request.",
107509	//       "location": "path",
107510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107511	//       "required": true,
107512	//       "type": "string"
107513	//     },
107514	//     "region": {
107515	//       "description": "Name of the region for this request.",
107516	//       "location": "path",
107517	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107518	//       "required": true,
107519	//       "type": "string"
107520	//     }
107521	//   },
107522	//   "path": "{project}/regions/{region}/commitments",
107523	//   "response": {
107524	//     "$ref": "CommitmentList"
107525	//   },
107526	//   "scopes": [
107527	//     "https://www.googleapis.com/auth/cloud-platform",
107528	//     "https://www.googleapis.com/auth/compute",
107529	//     "https://www.googleapis.com/auth/compute.readonly"
107530	//   ]
107531	// }
107532
107533}
107534
107535// Pages invokes f for each page of results.
107536// A non-nil error returned from f will halt the iteration.
107537// The provided context supersedes any context provided to the Context method.
107538func (c *RegionCommitmentsListCall) Pages(ctx context.Context, f func(*CommitmentList) error) error {
107539	c.ctx_ = ctx
107540	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
107541	for {
107542		x, err := c.Do()
107543		if err != nil {
107544			return err
107545		}
107546		if err := f(x); err != nil {
107547			return err
107548		}
107549		if x.NextPageToken == "" {
107550			return nil
107551		}
107552		c.PageToken(x.NextPageToken)
107553	}
107554}
107555
107556// method id "compute.regionCommitments.updateReservations":
107557
107558type RegionCommitmentsUpdateReservationsCall struct {
107559	s                                          *Service
107560	project                                    string
107561	region                                     string
107562	commitment                                 string
107563	regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest
107564	urlParams_                                 gensupport.URLParams
107565	ctx_                                       context.Context
107566	header_                                    http.Header
107567}
107568
107569// UpdateReservations: Transfers GPUs or local SSDs between reservations
107570// within commitments.
107571func (r *RegionCommitmentsService) UpdateReservations(project string, region string, commitment string, regioncommitmentsupdatereservationsrequest *RegionCommitmentsUpdateReservationsRequest) *RegionCommitmentsUpdateReservationsCall {
107572	c := &RegionCommitmentsUpdateReservationsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107573	c.project = project
107574	c.region = region
107575	c.commitment = commitment
107576	c.regioncommitmentsupdatereservationsrequest = regioncommitmentsupdatereservationsrequest
107577	return c
107578}
107579
107580// RequestId sets the optional parameter "requestId": An optional
107581// request ID to identify requests. Specify a unique request ID so that
107582// if you must retry your request, the server will know to ignore the
107583// request if it has already been completed.
107584//
107585// For example, consider a situation where you make an initial request
107586// and the request times out. If you make the request again with the
107587// same request ID, the server can check if original operation with the
107588// same request ID was received, and if so, will ignore the second
107589// request. This prevents clients from accidentally creating duplicate
107590// commitments.
107591//
107592// The request ID must be a valid UUID with the exception that zero UUID
107593// is not supported (00000000-0000-0000-0000-000000000000).
107594func (c *RegionCommitmentsUpdateReservationsCall) RequestId(requestId string) *RegionCommitmentsUpdateReservationsCall {
107595	c.urlParams_.Set("requestId", requestId)
107596	return c
107597}
107598
107599// Fields allows partial responses to be retrieved. See
107600// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107601// for more information.
107602func (c *RegionCommitmentsUpdateReservationsCall) Fields(s ...googleapi.Field) *RegionCommitmentsUpdateReservationsCall {
107603	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107604	return c
107605}
107606
107607// Context sets the context to be used in this call's Do method. Any
107608// pending HTTP request will be aborted if the provided context is
107609// canceled.
107610func (c *RegionCommitmentsUpdateReservationsCall) Context(ctx context.Context) *RegionCommitmentsUpdateReservationsCall {
107611	c.ctx_ = ctx
107612	return c
107613}
107614
107615// Header returns an http.Header that can be modified by the caller to
107616// add HTTP headers to the request.
107617func (c *RegionCommitmentsUpdateReservationsCall) Header() http.Header {
107618	if c.header_ == nil {
107619		c.header_ = make(http.Header)
107620	}
107621	return c.header_
107622}
107623
107624func (c *RegionCommitmentsUpdateReservationsCall) doRequest(alt string) (*http.Response, error) {
107625	reqHeaders := make(http.Header)
107626	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107627	for k, v := range c.header_ {
107628		reqHeaders[k] = v
107629	}
107630	reqHeaders.Set("User-Agent", c.s.userAgent())
107631	var body io.Reader = nil
107632	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioncommitmentsupdatereservationsrequest)
107633	if err != nil {
107634		return nil, err
107635	}
107636	reqHeaders.Set("Content-Type", "application/json")
107637	c.urlParams_.Set("alt", alt)
107638	c.urlParams_.Set("prettyPrint", "false")
107639	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/commitments/{commitment}/updateReservations")
107640	urls += "?" + c.urlParams_.Encode()
107641	req, err := http.NewRequest("POST", urls, body)
107642	if err != nil {
107643		return nil, err
107644	}
107645	req.Header = reqHeaders
107646	googleapi.Expand(req.URL, map[string]string{
107647		"project":    c.project,
107648		"region":     c.region,
107649		"commitment": c.commitment,
107650	})
107651	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107652}
107653
107654// Do executes the "compute.regionCommitments.updateReservations" call.
107655// Exactly one of *Operation or error will be non-nil. Any non-2xx
107656// status code is an error. Response headers are in either
107657// *Operation.ServerResponse.Header or (if a response was returned at
107658// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107659// to check whether the returned error was because
107660// http.StatusNotModified was returned.
107661func (c *RegionCommitmentsUpdateReservationsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
107662	gensupport.SetOptions(c.urlParams_, opts...)
107663	res, err := c.doRequest("json")
107664	if res != nil && res.StatusCode == http.StatusNotModified {
107665		if res.Body != nil {
107666			res.Body.Close()
107667		}
107668		return nil, &googleapi.Error{
107669			Code:   res.StatusCode,
107670			Header: res.Header,
107671		}
107672	}
107673	if err != nil {
107674		return nil, err
107675	}
107676	defer googleapi.CloseBody(res)
107677	if err := googleapi.CheckResponse(res); err != nil {
107678		return nil, err
107679	}
107680	ret := &Operation{
107681		ServerResponse: googleapi.ServerResponse{
107682			Header:         res.Header,
107683			HTTPStatusCode: res.StatusCode,
107684		},
107685	}
107686	target := &ret
107687	if err := gensupport.DecodeResponse(target, res); err != nil {
107688		return nil, err
107689	}
107690	return ret, nil
107691	// {
107692	//   "description": "Transfers GPUs or local SSDs between reservations within commitments.",
107693	//   "httpMethod": "POST",
107694	//   "id": "compute.regionCommitments.updateReservations",
107695	//   "parameterOrder": [
107696	//     "project",
107697	//     "region",
107698	//     "commitment"
107699	//   ],
107700	//   "parameters": {
107701	//     "commitment": {
107702	//       "description": "Name of the commitment for which the reservation is being updated.",
107703	//       "location": "path",
107704	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107705	//       "required": true,
107706	//       "type": "string"
107707	//     },
107708	//     "project": {
107709	//       "description": "Project ID for this request.",
107710	//       "location": "path",
107711	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107712	//       "required": true,
107713	//       "type": "string"
107714	//     },
107715	//     "region": {
107716	//       "description": "Name of the region for this request.",
107717	//       "location": "path",
107718	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107719	//       "required": true,
107720	//       "type": "string"
107721	//     },
107722	//     "requestId": {
107723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
107724	//       "location": "query",
107725	//       "type": "string"
107726	//     }
107727	//   },
107728	//   "path": "{project}/regions/{region}/commitments/{commitment}/updateReservations",
107729	//   "request": {
107730	//     "$ref": "RegionCommitmentsUpdateReservationsRequest"
107731	//   },
107732	//   "response": {
107733	//     "$ref": "Operation"
107734	//   },
107735	//   "scopes": [
107736	//     "https://www.googleapis.com/auth/cloud-platform",
107737	//     "https://www.googleapis.com/auth/compute"
107738	//   ]
107739	// }
107740
107741}
107742
107743// method id "compute.regionDiskTypes.get":
107744
107745type RegionDiskTypesGetCall struct {
107746	s            *Service
107747	project      string
107748	region       string
107749	diskType     string
107750	urlParams_   gensupport.URLParams
107751	ifNoneMatch_ string
107752	ctx_         context.Context
107753	header_      http.Header
107754}
107755
107756// Get: Returns the specified regional disk type. Gets a list of
107757// available disk types by making a list() request.
107758func (r *RegionDiskTypesService) Get(project string, region string, diskType string) *RegionDiskTypesGetCall {
107759	c := &RegionDiskTypesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107760	c.project = project
107761	c.region = region
107762	c.diskType = diskType
107763	return c
107764}
107765
107766// Fields allows partial responses to be retrieved. See
107767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107768// for more information.
107769func (c *RegionDiskTypesGetCall) Fields(s ...googleapi.Field) *RegionDiskTypesGetCall {
107770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
107771	return c
107772}
107773
107774// IfNoneMatch sets the optional parameter which makes the operation
107775// fail if the object's ETag matches the given value. This is useful for
107776// getting updates only after the object has changed since the last
107777// request. Use googleapi.IsNotModified to check whether the response
107778// error from Do is the result of In-None-Match.
107779func (c *RegionDiskTypesGetCall) IfNoneMatch(entityTag string) *RegionDiskTypesGetCall {
107780	c.ifNoneMatch_ = entityTag
107781	return c
107782}
107783
107784// Context sets the context to be used in this call's Do method. Any
107785// pending HTTP request will be aborted if the provided context is
107786// canceled.
107787func (c *RegionDiskTypesGetCall) Context(ctx context.Context) *RegionDiskTypesGetCall {
107788	c.ctx_ = ctx
107789	return c
107790}
107791
107792// Header returns an http.Header that can be modified by the caller to
107793// add HTTP headers to the request.
107794func (c *RegionDiskTypesGetCall) Header() http.Header {
107795	if c.header_ == nil {
107796		c.header_ = make(http.Header)
107797	}
107798	return c.header_
107799}
107800
107801func (c *RegionDiskTypesGetCall) doRequest(alt string) (*http.Response, error) {
107802	reqHeaders := make(http.Header)
107803	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
107804	for k, v := range c.header_ {
107805		reqHeaders[k] = v
107806	}
107807	reqHeaders.Set("User-Agent", c.s.userAgent())
107808	if c.ifNoneMatch_ != "" {
107809		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
107810	}
107811	var body io.Reader = nil
107812	c.urlParams_.Set("alt", alt)
107813	c.urlParams_.Set("prettyPrint", "false")
107814	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes/{diskType}")
107815	urls += "?" + c.urlParams_.Encode()
107816	req, err := http.NewRequest("GET", urls, body)
107817	if err != nil {
107818		return nil, err
107819	}
107820	req.Header = reqHeaders
107821	googleapi.Expand(req.URL, map[string]string{
107822		"project":  c.project,
107823		"region":   c.region,
107824		"diskType": c.diskType,
107825	})
107826	return gensupport.SendRequest(c.ctx_, c.s.client, req)
107827}
107828
107829// Do executes the "compute.regionDiskTypes.get" call.
107830// Exactly one of *DiskType or error will be non-nil. Any non-2xx status
107831// code is an error. Response headers are in either
107832// *DiskType.ServerResponse.Header or (if a response was returned at
107833// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
107834// to check whether the returned error was because
107835// http.StatusNotModified was returned.
107836func (c *RegionDiskTypesGetCall) Do(opts ...googleapi.CallOption) (*DiskType, error) {
107837	gensupport.SetOptions(c.urlParams_, opts...)
107838	res, err := c.doRequest("json")
107839	if res != nil && res.StatusCode == http.StatusNotModified {
107840		if res.Body != nil {
107841			res.Body.Close()
107842		}
107843		return nil, &googleapi.Error{
107844			Code:   res.StatusCode,
107845			Header: res.Header,
107846		}
107847	}
107848	if err != nil {
107849		return nil, err
107850	}
107851	defer googleapi.CloseBody(res)
107852	if err := googleapi.CheckResponse(res); err != nil {
107853		return nil, err
107854	}
107855	ret := &DiskType{
107856		ServerResponse: googleapi.ServerResponse{
107857			Header:         res.Header,
107858			HTTPStatusCode: res.StatusCode,
107859		},
107860	}
107861	target := &ret
107862	if err := gensupport.DecodeResponse(target, res); err != nil {
107863		return nil, err
107864	}
107865	return ret, nil
107866	// {
107867	//   "description": "Returns the specified regional disk type. Gets a list of available disk types by making a list() request.",
107868	//   "httpMethod": "GET",
107869	//   "id": "compute.regionDiskTypes.get",
107870	//   "parameterOrder": [
107871	//     "project",
107872	//     "region",
107873	//     "diskType"
107874	//   ],
107875	//   "parameters": {
107876	//     "diskType": {
107877	//       "description": "Name of the disk type to return.",
107878	//       "location": "path",
107879	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
107880	//       "required": true,
107881	//       "type": "string"
107882	//     },
107883	//     "project": {
107884	//       "description": "Project ID for this request.",
107885	//       "location": "path",
107886	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
107887	//       "required": true,
107888	//       "type": "string"
107889	//     },
107890	//     "region": {
107891	//       "description": "The name of the region for this request.",
107892	//       "location": "path",
107893	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
107894	//       "required": true,
107895	//       "type": "string"
107896	//     }
107897	//   },
107898	//   "path": "{project}/regions/{region}/diskTypes/{diskType}",
107899	//   "response": {
107900	//     "$ref": "DiskType"
107901	//   },
107902	//   "scopes": [
107903	//     "https://www.googleapis.com/auth/cloud-platform",
107904	//     "https://www.googleapis.com/auth/compute",
107905	//     "https://www.googleapis.com/auth/compute.readonly"
107906	//   ]
107907	// }
107908
107909}
107910
107911// method id "compute.regionDiskTypes.list":
107912
107913type RegionDiskTypesListCall struct {
107914	s            *Service
107915	project      string
107916	region       string
107917	urlParams_   gensupport.URLParams
107918	ifNoneMatch_ string
107919	ctx_         context.Context
107920	header_      http.Header
107921}
107922
107923// List: Retrieves a list of regional disk types available to the
107924// specified project.
107925func (r *RegionDiskTypesService) List(project string, region string) *RegionDiskTypesListCall {
107926	c := &RegionDiskTypesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
107927	c.project = project
107928	c.region = region
107929	return c
107930}
107931
107932// Filter sets the optional parameter "filter": A filter expression that
107933// filters resources listed in the response. The expression must specify
107934// the field name, a comparison operator, and the value that you want to
107935// use for filtering. The value must be a string, a number, or a
107936// boolean. The comparison operator must be either =, !=, >, or <.
107937//
107938// For example, if you are filtering Compute Engine instances, you can
107939// exclude instances named example-instance by specifying name !=
107940// example-instance.
107941//
107942// You can also filter nested fields. For example, you could specify
107943// scheduling.automaticRestart = false to include instances only if they
107944// are not scheduled for automatic restarts. You can use filtering on
107945// nested fields to filter based on resource labels.
107946//
107947// To filter on multiple expressions, provide each separate expression
107948// within parentheses. For example, (scheduling.automaticRestart = true)
107949// (cpuPlatform = "Intel Skylake"). By default, each expression is an
107950// AND expression. However, you can include AND and OR expressions
107951// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
107952// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
107953// true).
107954func (c *RegionDiskTypesListCall) Filter(filter string) *RegionDiskTypesListCall {
107955	c.urlParams_.Set("filter", filter)
107956	return c
107957}
107958
107959// MaxResults sets the optional parameter "maxResults": The maximum
107960// number of results per page that should be returned. If the number of
107961// available results is larger than maxResults, Compute Engine returns a
107962// nextPageToken that can be used to get the next page of results in
107963// subsequent list requests. Acceptable values are 0 to 500, inclusive.
107964// (Default: 500)
107965func (c *RegionDiskTypesListCall) MaxResults(maxResults int64) *RegionDiskTypesListCall {
107966	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
107967	return c
107968}
107969
107970// OrderBy sets the optional parameter "orderBy": Sorts list results by
107971// a certain order. By default, results are returned in alphanumerical
107972// order based on the resource name.
107973//
107974// You can also sort results in descending order based on the creation
107975// timestamp using orderBy="creationTimestamp desc". This sorts results
107976// based on the creationTimestamp field in reverse chronological order
107977// (newest result first). Use this to sort resources like operations so
107978// that the newest operation is returned first.
107979//
107980// Currently, only sorting by name or creationTimestamp desc is
107981// supported.
107982func (c *RegionDiskTypesListCall) OrderBy(orderBy string) *RegionDiskTypesListCall {
107983	c.urlParams_.Set("orderBy", orderBy)
107984	return c
107985}
107986
107987// PageToken sets the optional parameter "pageToken": Specifies a page
107988// token to use. Set pageToken to the nextPageToken returned by a
107989// previous list request to get the next page of results.
107990func (c *RegionDiskTypesListCall) PageToken(pageToken string) *RegionDiskTypesListCall {
107991	c.urlParams_.Set("pageToken", pageToken)
107992	return c
107993}
107994
107995// Fields allows partial responses to be retrieved. See
107996// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
107997// for more information.
107998func (c *RegionDiskTypesListCall) Fields(s ...googleapi.Field) *RegionDiskTypesListCall {
107999	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108000	return c
108001}
108002
108003// IfNoneMatch sets the optional parameter which makes the operation
108004// fail if the object's ETag matches the given value. This is useful for
108005// getting updates only after the object has changed since the last
108006// request. Use googleapi.IsNotModified to check whether the response
108007// error from Do is the result of In-None-Match.
108008func (c *RegionDiskTypesListCall) IfNoneMatch(entityTag string) *RegionDiskTypesListCall {
108009	c.ifNoneMatch_ = entityTag
108010	return c
108011}
108012
108013// Context sets the context to be used in this call's Do method. Any
108014// pending HTTP request will be aborted if the provided context is
108015// canceled.
108016func (c *RegionDiskTypesListCall) Context(ctx context.Context) *RegionDiskTypesListCall {
108017	c.ctx_ = ctx
108018	return c
108019}
108020
108021// Header returns an http.Header that can be modified by the caller to
108022// add HTTP headers to the request.
108023func (c *RegionDiskTypesListCall) Header() http.Header {
108024	if c.header_ == nil {
108025		c.header_ = make(http.Header)
108026	}
108027	return c.header_
108028}
108029
108030func (c *RegionDiskTypesListCall) doRequest(alt string) (*http.Response, error) {
108031	reqHeaders := make(http.Header)
108032	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108033	for k, v := range c.header_ {
108034		reqHeaders[k] = v
108035	}
108036	reqHeaders.Set("User-Agent", c.s.userAgent())
108037	if c.ifNoneMatch_ != "" {
108038		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108039	}
108040	var body io.Reader = nil
108041	c.urlParams_.Set("alt", alt)
108042	c.urlParams_.Set("prettyPrint", "false")
108043	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/diskTypes")
108044	urls += "?" + c.urlParams_.Encode()
108045	req, err := http.NewRequest("GET", urls, body)
108046	if err != nil {
108047		return nil, err
108048	}
108049	req.Header = reqHeaders
108050	googleapi.Expand(req.URL, map[string]string{
108051		"project": c.project,
108052		"region":  c.region,
108053	})
108054	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108055}
108056
108057// Do executes the "compute.regionDiskTypes.list" call.
108058// Exactly one of *RegionDiskTypeList or error will be non-nil. Any
108059// non-2xx status code is an error. Response headers are in either
108060// *RegionDiskTypeList.ServerResponse.Header or (if a response was
108061// returned at all) in error.(*googleapi.Error).Header. Use
108062// googleapi.IsNotModified to check whether the returned error was
108063// because http.StatusNotModified was returned.
108064func (c *RegionDiskTypesListCall) Do(opts ...googleapi.CallOption) (*RegionDiskTypeList, error) {
108065	gensupport.SetOptions(c.urlParams_, opts...)
108066	res, err := c.doRequest("json")
108067	if res != nil && res.StatusCode == http.StatusNotModified {
108068		if res.Body != nil {
108069			res.Body.Close()
108070		}
108071		return nil, &googleapi.Error{
108072			Code:   res.StatusCode,
108073			Header: res.Header,
108074		}
108075	}
108076	if err != nil {
108077		return nil, err
108078	}
108079	defer googleapi.CloseBody(res)
108080	if err := googleapi.CheckResponse(res); err != nil {
108081		return nil, err
108082	}
108083	ret := &RegionDiskTypeList{
108084		ServerResponse: googleapi.ServerResponse{
108085			Header:         res.Header,
108086			HTTPStatusCode: res.StatusCode,
108087		},
108088	}
108089	target := &ret
108090	if err := gensupport.DecodeResponse(target, res); err != nil {
108091		return nil, err
108092	}
108093	return ret, nil
108094	// {
108095	//   "description": "Retrieves a list of regional disk types available to the specified project.",
108096	//   "httpMethod": "GET",
108097	//   "id": "compute.regionDiskTypes.list",
108098	//   "parameterOrder": [
108099	//     "project",
108100	//     "region"
108101	//   ],
108102	//   "parameters": {
108103	//     "filter": {
108104	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
108105	//       "location": "query",
108106	//       "type": "string"
108107	//     },
108108	//     "maxResults": {
108109	//       "default": "500",
108110	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
108111	//       "format": "uint32",
108112	//       "location": "query",
108113	//       "minimum": "0",
108114	//       "type": "integer"
108115	//     },
108116	//     "orderBy": {
108117	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
108118	//       "location": "query",
108119	//       "type": "string"
108120	//     },
108121	//     "pageToken": {
108122	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
108123	//       "location": "query",
108124	//       "type": "string"
108125	//     },
108126	//     "project": {
108127	//       "description": "Project ID for this request.",
108128	//       "location": "path",
108129	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108130	//       "required": true,
108131	//       "type": "string"
108132	//     },
108133	//     "region": {
108134	//       "description": "The name of the region for this request.",
108135	//       "location": "path",
108136	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108137	//       "required": true,
108138	//       "type": "string"
108139	//     }
108140	//   },
108141	//   "path": "{project}/regions/{region}/diskTypes",
108142	//   "response": {
108143	//     "$ref": "RegionDiskTypeList"
108144	//   },
108145	//   "scopes": [
108146	//     "https://www.googleapis.com/auth/cloud-platform",
108147	//     "https://www.googleapis.com/auth/compute",
108148	//     "https://www.googleapis.com/auth/compute.readonly"
108149	//   ]
108150	// }
108151
108152}
108153
108154// Pages invokes f for each page of results.
108155// A non-nil error returned from f will halt the iteration.
108156// The provided context supersedes any context provided to the Context method.
108157func (c *RegionDiskTypesListCall) Pages(ctx context.Context, f func(*RegionDiskTypeList) error) error {
108158	c.ctx_ = ctx
108159	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
108160	for {
108161		x, err := c.Do()
108162		if err != nil {
108163			return err
108164		}
108165		if err := f(x); err != nil {
108166			return err
108167		}
108168		if x.NextPageToken == "" {
108169			return nil
108170		}
108171		c.PageToken(x.NextPageToken)
108172	}
108173}
108174
108175// method id "compute.regionDisks.addResourcePolicies":
108176
108177type RegionDisksAddResourcePoliciesCall struct {
108178	s                                     *Service
108179	project                               string
108180	region                                string
108181	disk                                  string
108182	regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest
108183	urlParams_                            gensupport.URLParams
108184	ctx_                                  context.Context
108185	header_                               http.Header
108186}
108187
108188// AddResourcePolicies: Adds existing resource policies to a regional
108189// disk. You can only add one policy which will be applied to this disk
108190// for scheduling snapshot creation.
108191func (r *RegionDisksService) AddResourcePolicies(project string, region string, disk string, regiondisksaddresourcepoliciesrequest *RegionDisksAddResourcePoliciesRequest) *RegionDisksAddResourcePoliciesCall {
108192	c := &RegionDisksAddResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108193	c.project = project
108194	c.region = region
108195	c.disk = disk
108196	c.regiondisksaddresourcepoliciesrequest = regiondisksaddresourcepoliciesrequest
108197	return c
108198}
108199
108200// RequestId sets the optional parameter "requestId": An optional
108201// request ID to identify requests. Specify a unique request ID so that
108202// if you must retry your request, the server will know to ignore the
108203// request if it has already been completed.
108204//
108205// For example, consider a situation where you make an initial request
108206// and the request times out. If you make the request again with the
108207// same request ID, the server can check if original operation with the
108208// same request ID was received, and if so, will ignore the second
108209// request. This prevents clients from accidentally creating duplicate
108210// commitments.
108211//
108212// The request ID must be a valid UUID with the exception that zero UUID
108213// is not supported (00000000-0000-0000-0000-000000000000).
108214func (c *RegionDisksAddResourcePoliciesCall) RequestId(requestId string) *RegionDisksAddResourcePoliciesCall {
108215	c.urlParams_.Set("requestId", requestId)
108216	return c
108217}
108218
108219// Fields allows partial responses to be retrieved. See
108220// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108221// for more information.
108222func (c *RegionDisksAddResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksAddResourcePoliciesCall {
108223	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108224	return c
108225}
108226
108227// Context sets the context to be used in this call's Do method. Any
108228// pending HTTP request will be aborted if the provided context is
108229// canceled.
108230func (c *RegionDisksAddResourcePoliciesCall) Context(ctx context.Context) *RegionDisksAddResourcePoliciesCall {
108231	c.ctx_ = ctx
108232	return c
108233}
108234
108235// Header returns an http.Header that can be modified by the caller to
108236// add HTTP headers to the request.
108237func (c *RegionDisksAddResourcePoliciesCall) Header() http.Header {
108238	if c.header_ == nil {
108239		c.header_ = make(http.Header)
108240	}
108241	return c.header_
108242}
108243
108244func (c *RegionDisksAddResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
108245	reqHeaders := make(http.Header)
108246	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108247	for k, v := range c.header_ {
108248		reqHeaders[k] = v
108249	}
108250	reqHeaders.Set("User-Agent", c.s.userAgent())
108251	var body io.Reader = nil
108252	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksaddresourcepoliciesrequest)
108253	if err != nil {
108254		return nil, err
108255	}
108256	reqHeaders.Set("Content-Type", "application/json")
108257	c.urlParams_.Set("alt", alt)
108258	c.urlParams_.Set("prettyPrint", "false")
108259	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/addResourcePolicies")
108260	urls += "?" + c.urlParams_.Encode()
108261	req, err := http.NewRequest("POST", urls, body)
108262	if err != nil {
108263		return nil, err
108264	}
108265	req.Header = reqHeaders
108266	googleapi.Expand(req.URL, map[string]string{
108267		"project": c.project,
108268		"region":  c.region,
108269		"disk":    c.disk,
108270	})
108271	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108272}
108273
108274// Do executes the "compute.regionDisks.addResourcePolicies" call.
108275// Exactly one of *Operation or error will be non-nil. Any non-2xx
108276// status code is an error. Response headers are in either
108277// *Operation.ServerResponse.Header or (if a response was returned at
108278// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108279// to check whether the returned error was because
108280// http.StatusNotModified was returned.
108281func (c *RegionDisksAddResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108282	gensupport.SetOptions(c.urlParams_, opts...)
108283	res, err := c.doRequest("json")
108284	if res != nil && res.StatusCode == http.StatusNotModified {
108285		if res.Body != nil {
108286			res.Body.Close()
108287		}
108288		return nil, &googleapi.Error{
108289			Code:   res.StatusCode,
108290			Header: res.Header,
108291		}
108292	}
108293	if err != nil {
108294		return nil, err
108295	}
108296	defer googleapi.CloseBody(res)
108297	if err := googleapi.CheckResponse(res); err != nil {
108298		return nil, err
108299	}
108300	ret := &Operation{
108301		ServerResponse: googleapi.ServerResponse{
108302			Header:         res.Header,
108303			HTTPStatusCode: res.StatusCode,
108304		},
108305	}
108306	target := &ret
108307	if err := gensupport.DecodeResponse(target, res); err != nil {
108308		return nil, err
108309	}
108310	return ret, nil
108311	// {
108312	//   "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.",
108313	//   "httpMethod": "POST",
108314	//   "id": "compute.regionDisks.addResourcePolicies",
108315	//   "parameterOrder": [
108316	//     "project",
108317	//     "region",
108318	//     "disk"
108319	//   ],
108320	//   "parameters": {
108321	//     "disk": {
108322	//       "description": "The disk name for this request.",
108323	//       "location": "path",
108324	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108325	//       "required": true,
108326	//       "type": "string"
108327	//     },
108328	//     "project": {
108329	//       "description": "Project ID for this request.",
108330	//       "location": "path",
108331	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108332	//       "required": true,
108333	//       "type": "string"
108334	//     },
108335	//     "region": {
108336	//       "description": "The name of the region for this request.",
108337	//       "location": "path",
108338	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108339	//       "required": true,
108340	//       "type": "string"
108341	//     },
108342	//     "requestId": {
108343	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108344	//       "location": "query",
108345	//       "type": "string"
108346	//     }
108347	//   },
108348	//   "path": "{project}/regions/{region}/disks/{disk}/addResourcePolicies",
108349	//   "request": {
108350	//     "$ref": "RegionDisksAddResourcePoliciesRequest"
108351	//   },
108352	//   "response": {
108353	//     "$ref": "Operation"
108354	//   },
108355	//   "scopes": [
108356	//     "https://www.googleapis.com/auth/cloud-platform",
108357	//     "https://www.googleapis.com/auth/compute"
108358	//   ]
108359	// }
108360
108361}
108362
108363// method id "compute.regionDisks.createSnapshot":
108364
108365type RegionDisksCreateSnapshotCall struct {
108366	s          *Service
108367	project    string
108368	region     string
108369	disk       string
108370	snapshot   *Snapshot
108371	urlParams_ gensupport.URLParams
108372	ctx_       context.Context
108373	header_    http.Header
108374}
108375
108376// CreateSnapshot: Creates a snapshot of this regional disk.
108377func (r *RegionDisksService) CreateSnapshot(project string, region string, disk string, snapshot *Snapshot) *RegionDisksCreateSnapshotCall {
108378	c := &RegionDisksCreateSnapshotCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108379	c.project = project
108380	c.region = region
108381	c.disk = disk
108382	c.snapshot = snapshot
108383	return c
108384}
108385
108386// RequestId sets the optional parameter "requestId": An optional
108387// request ID to identify requests. Specify a unique request ID so that
108388// if you must retry your request, the server will know to ignore the
108389// request if it has already been completed.
108390//
108391// For example, consider a situation where you make an initial request
108392// and the request times out. If you make the request again with the
108393// same request ID, the server can check if original operation with the
108394// same request ID was received, and if so, will ignore the second
108395// request. This prevents clients from accidentally creating duplicate
108396// commitments.
108397//
108398// The request ID must be a valid UUID with the exception that zero UUID
108399// is not supported (00000000-0000-0000-0000-000000000000).
108400func (c *RegionDisksCreateSnapshotCall) RequestId(requestId string) *RegionDisksCreateSnapshotCall {
108401	c.urlParams_.Set("requestId", requestId)
108402	return c
108403}
108404
108405// Fields allows partial responses to be retrieved. See
108406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108407// for more information.
108408func (c *RegionDisksCreateSnapshotCall) Fields(s ...googleapi.Field) *RegionDisksCreateSnapshotCall {
108409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108410	return c
108411}
108412
108413// Context sets the context to be used in this call's Do method. Any
108414// pending HTTP request will be aborted if the provided context is
108415// canceled.
108416func (c *RegionDisksCreateSnapshotCall) Context(ctx context.Context) *RegionDisksCreateSnapshotCall {
108417	c.ctx_ = ctx
108418	return c
108419}
108420
108421// Header returns an http.Header that can be modified by the caller to
108422// add HTTP headers to the request.
108423func (c *RegionDisksCreateSnapshotCall) Header() http.Header {
108424	if c.header_ == nil {
108425		c.header_ = make(http.Header)
108426	}
108427	return c.header_
108428}
108429
108430func (c *RegionDisksCreateSnapshotCall) doRequest(alt string) (*http.Response, error) {
108431	reqHeaders := make(http.Header)
108432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108433	for k, v := range c.header_ {
108434		reqHeaders[k] = v
108435	}
108436	reqHeaders.Set("User-Agent", c.s.userAgent())
108437	var body io.Reader = nil
108438	body, err := googleapi.WithoutDataWrapper.JSONReader(c.snapshot)
108439	if err != nil {
108440		return nil, err
108441	}
108442	reqHeaders.Set("Content-Type", "application/json")
108443	c.urlParams_.Set("alt", alt)
108444	c.urlParams_.Set("prettyPrint", "false")
108445	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/createSnapshot")
108446	urls += "?" + c.urlParams_.Encode()
108447	req, err := http.NewRequest("POST", urls, body)
108448	if err != nil {
108449		return nil, err
108450	}
108451	req.Header = reqHeaders
108452	googleapi.Expand(req.URL, map[string]string{
108453		"project": c.project,
108454		"region":  c.region,
108455		"disk":    c.disk,
108456	})
108457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108458}
108459
108460// Do executes the "compute.regionDisks.createSnapshot" call.
108461// Exactly one of *Operation or error will be non-nil. Any non-2xx
108462// status code is an error. Response headers are in either
108463// *Operation.ServerResponse.Header or (if a response was returned at
108464// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108465// to check whether the returned error was because
108466// http.StatusNotModified was returned.
108467func (c *RegionDisksCreateSnapshotCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108468	gensupport.SetOptions(c.urlParams_, opts...)
108469	res, err := c.doRequest("json")
108470	if res != nil && res.StatusCode == http.StatusNotModified {
108471		if res.Body != nil {
108472			res.Body.Close()
108473		}
108474		return nil, &googleapi.Error{
108475			Code:   res.StatusCode,
108476			Header: res.Header,
108477		}
108478	}
108479	if err != nil {
108480		return nil, err
108481	}
108482	defer googleapi.CloseBody(res)
108483	if err := googleapi.CheckResponse(res); err != nil {
108484		return nil, err
108485	}
108486	ret := &Operation{
108487		ServerResponse: googleapi.ServerResponse{
108488			Header:         res.Header,
108489			HTTPStatusCode: res.StatusCode,
108490		},
108491	}
108492	target := &ret
108493	if err := gensupport.DecodeResponse(target, res); err != nil {
108494		return nil, err
108495	}
108496	return ret, nil
108497	// {
108498	//   "description": "Creates a snapshot of this regional disk.",
108499	//   "httpMethod": "POST",
108500	//   "id": "compute.regionDisks.createSnapshot",
108501	//   "parameterOrder": [
108502	//     "project",
108503	//     "region",
108504	//     "disk"
108505	//   ],
108506	//   "parameters": {
108507	//     "disk": {
108508	//       "description": "Name of the regional persistent disk to snapshot.",
108509	//       "location": "path",
108510	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108511	//       "required": true,
108512	//       "type": "string"
108513	//     },
108514	//     "project": {
108515	//       "description": "Project ID for this request.",
108516	//       "location": "path",
108517	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108518	//       "required": true,
108519	//       "type": "string"
108520	//     },
108521	//     "region": {
108522	//       "description": "Name of the region for this request.",
108523	//       "location": "path",
108524	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108525	//       "required": true,
108526	//       "type": "string"
108527	//     },
108528	//     "requestId": {
108529	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108530	//       "location": "query",
108531	//       "type": "string"
108532	//     }
108533	//   },
108534	//   "path": "{project}/regions/{region}/disks/{disk}/createSnapshot",
108535	//   "request": {
108536	//     "$ref": "Snapshot"
108537	//   },
108538	//   "response": {
108539	//     "$ref": "Operation"
108540	//   },
108541	//   "scopes": [
108542	//     "https://www.googleapis.com/auth/cloud-platform",
108543	//     "https://www.googleapis.com/auth/compute"
108544	//   ]
108545	// }
108546
108547}
108548
108549// method id "compute.regionDisks.delete":
108550
108551type RegionDisksDeleteCall struct {
108552	s          *Service
108553	project    string
108554	region     string
108555	disk       string
108556	urlParams_ gensupport.URLParams
108557	ctx_       context.Context
108558	header_    http.Header
108559}
108560
108561// Delete: Deletes the specified regional persistent disk. Deleting a
108562// regional disk removes all the replicas of its data permanently and is
108563// irreversible. However, deleting a disk does not delete any snapshots
108564// previously made from the disk. You must separately delete snapshots.
108565func (r *RegionDisksService) Delete(project string, region string, disk string) *RegionDisksDeleteCall {
108566	c := &RegionDisksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108567	c.project = project
108568	c.region = region
108569	c.disk = disk
108570	return c
108571}
108572
108573// RequestId sets the optional parameter "requestId": An optional
108574// request ID to identify requests. Specify a unique request ID so that
108575// if you must retry your request, the server will know to ignore the
108576// request if it has already been completed.
108577//
108578// For example, consider a situation where you make an initial request
108579// and the request times out. If you make the request again with the
108580// same request ID, the server can check if original operation with the
108581// same request ID was received, and if so, will ignore the second
108582// request. This prevents clients from accidentally creating duplicate
108583// commitments.
108584//
108585// The request ID must be a valid UUID with the exception that zero UUID
108586// is not supported (00000000-0000-0000-0000-000000000000).
108587func (c *RegionDisksDeleteCall) RequestId(requestId string) *RegionDisksDeleteCall {
108588	c.urlParams_.Set("requestId", requestId)
108589	return c
108590}
108591
108592// Fields allows partial responses to be retrieved. See
108593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108594// for more information.
108595func (c *RegionDisksDeleteCall) Fields(s ...googleapi.Field) *RegionDisksDeleteCall {
108596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108597	return c
108598}
108599
108600// Context sets the context to be used in this call's Do method. Any
108601// pending HTTP request will be aborted if the provided context is
108602// canceled.
108603func (c *RegionDisksDeleteCall) Context(ctx context.Context) *RegionDisksDeleteCall {
108604	c.ctx_ = ctx
108605	return c
108606}
108607
108608// Header returns an http.Header that can be modified by the caller to
108609// add HTTP headers to the request.
108610func (c *RegionDisksDeleteCall) Header() http.Header {
108611	if c.header_ == nil {
108612		c.header_ = make(http.Header)
108613	}
108614	return c.header_
108615}
108616
108617func (c *RegionDisksDeleteCall) doRequest(alt string) (*http.Response, error) {
108618	reqHeaders := make(http.Header)
108619	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108620	for k, v := range c.header_ {
108621		reqHeaders[k] = v
108622	}
108623	reqHeaders.Set("User-Agent", c.s.userAgent())
108624	var body io.Reader = nil
108625	c.urlParams_.Set("alt", alt)
108626	c.urlParams_.Set("prettyPrint", "false")
108627	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
108628	urls += "?" + c.urlParams_.Encode()
108629	req, err := http.NewRequest("DELETE", urls, body)
108630	if err != nil {
108631		return nil, err
108632	}
108633	req.Header = reqHeaders
108634	googleapi.Expand(req.URL, map[string]string{
108635		"project": c.project,
108636		"region":  c.region,
108637		"disk":    c.disk,
108638	})
108639	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108640}
108641
108642// Do executes the "compute.regionDisks.delete" call.
108643// Exactly one of *Operation or error will be non-nil. Any non-2xx
108644// status code is an error. Response headers are in either
108645// *Operation.ServerResponse.Header or (if a response was returned at
108646// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
108647// to check whether the returned error was because
108648// http.StatusNotModified was returned.
108649func (c *RegionDisksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
108650	gensupport.SetOptions(c.urlParams_, opts...)
108651	res, err := c.doRequest("json")
108652	if res != nil && res.StatusCode == http.StatusNotModified {
108653		if res.Body != nil {
108654			res.Body.Close()
108655		}
108656		return nil, &googleapi.Error{
108657			Code:   res.StatusCode,
108658			Header: res.Header,
108659		}
108660	}
108661	if err != nil {
108662		return nil, err
108663	}
108664	defer googleapi.CloseBody(res)
108665	if err := googleapi.CheckResponse(res); err != nil {
108666		return nil, err
108667	}
108668	ret := &Operation{
108669		ServerResponse: googleapi.ServerResponse{
108670			Header:         res.Header,
108671			HTTPStatusCode: res.StatusCode,
108672		},
108673	}
108674	target := &ret
108675	if err := gensupport.DecodeResponse(target, res); err != nil {
108676		return nil, err
108677	}
108678	return ret, nil
108679	// {
108680	//   "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.",
108681	//   "httpMethod": "DELETE",
108682	//   "id": "compute.regionDisks.delete",
108683	//   "parameterOrder": [
108684	//     "project",
108685	//     "region",
108686	//     "disk"
108687	//   ],
108688	//   "parameters": {
108689	//     "disk": {
108690	//       "description": "Name of the regional persistent disk to delete.",
108691	//       "location": "path",
108692	//       "required": true,
108693	//       "type": "string"
108694	//     },
108695	//     "project": {
108696	//       "description": "Project ID for this request.",
108697	//       "location": "path",
108698	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108699	//       "required": true,
108700	//       "type": "string"
108701	//     },
108702	//     "region": {
108703	//       "description": "Name of the region for this request.",
108704	//       "location": "path",
108705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108706	//       "required": true,
108707	//       "type": "string"
108708	//     },
108709	//     "requestId": {
108710	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
108711	//       "location": "query",
108712	//       "type": "string"
108713	//     }
108714	//   },
108715	//   "path": "{project}/regions/{region}/disks/{disk}",
108716	//   "response": {
108717	//     "$ref": "Operation"
108718	//   },
108719	//   "scopes": [
108720	//     "https://www.googleapis.com/auth/cloud-platform",
108721	//     "https://www.googleapis.com/auth/compute"
108722	//   ]
108723	// }
108724
108725}
108726
108727// method id "compute.regionDisks.get":
108728
108729type RegionDisksGetCall struct {
108730	s            *Service
108731	project      string
108732	region       string
108733	disk         string
108734	urlParams_   gensupport.URLParams
108735	ifNoneMatch_ string
108736	ctx_         context.Context
108737	header_      http.Header
108738}
108739
108740// Get: Returns a specified regional persistent disk.
108741func (r *RegionDisksService) Get(project string, region string, disk string) *RegionDisksGetCall {
108742	c := &RegionDisksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108743	c.project = project
108744	c.region = region
108745	c.disk = disk
108746	return c
108747}
108748
108749// Fields allows partial responses to be retrieved. See
108750// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108751// for more information.
108752func (c *RegionDisksGetCall) Fields(s ...googleapi.Field) *RegionDisksGetCall {
108753	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108754	return c
108755}
108756
108757// IfNoneMatch sets the optional parameter which makes the operation
108758// fail if the object's ETag matches the given value. This is useful for
108759// getting updates only after the object has changed since the last
108760// request. Use googleapi.IsNotModified to check whether the response
108761// error from Do is the result of In-None-Match.
108762func (c *RegionDisksGetCall) IfNoneMatch(entityTag string) *RegionDisksGetCall {
108763	c.ifNoneMatch_ = entityTag
108764	return c
108765}
108766
108767// Context sets the context to be used in this call's Do method. Any
108768// pending HTTP request will be aborted if the provided context is
108769// canceled.
108770func (c *RegionDisksGetCall) Context(ctx context.Context) *RegionDisksGetCall {
108771	c.ctx_ = ctx
108772	return c
108773}
108774
108775// Header returns an http.Header that can be modified by the caller to
108776// add HTTP headers to the request.
108777func (c *RegionDisksGetCall) Header() http.Header {
108778	if c.header_ == nil {
108779		c.header_ = make(http.Header)
108780	}
108781	return c.header_
108782}
108783
108784func (c *RegionDisksGetCall) doRequest(alt string) (*http.Response, error) {
108785	reqHeaders := make(http.Header)
108786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108787	for k, v := range c.header_ {
108788		reqHeaders[k] = v
108789	}
108790	reqHeaders.Set("User-Agent", c.s.userAgent())
108791	if c.ifNoneMatch_ != "" {
108792		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108793	}
108794	var body io.Reader = nil
108795	c.urlParams_.Set("alt", alt)
108796	c.urlParams_.Set("prettyPrint", "false")
108797	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}")
108798	urls += "?" + c.urlParams_.Encode()
108799	req, err := http.NewRequest("GET", urls, body)
108800	if err != nil {
108801		return nil, err
108802	}
108803	req.Header = reqHeaders
108804	googleapi.Expand(req.URL, map[string]string{
108805		"project": c.project,
108806		"region":  c.region,
108807		"disk":    c.disk,
108808	})
108809	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108810}
108811
108812// Do executes the "compute.regionDisks.get" call.
108813// Exactly one of *Disk or error will be non-nil. Any non-2xx status
108814// code is an error. Response headers are in either
108815// *Disk.ServerResponse.Header or (if a response was returned at all) in
108816// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
108817// whether the returned error was because http.StatusNotModified was
108818// returned.
108819func (c *RegionDisksGetCall) Do(opts ...googleapi.CallOption) (*Disk, error) {
108820	gensupport.SetOptions(c.urlParams_, opts...)
108821	res, err := c.doRequest("json")
108822	if res != nil && res.StatusCode == http.StatusNotModified {
108823		if res.Body != nil {
108824			res.Body.Close()
108825		}
108826		return nil, &googleapi.Error{
108827			Code:   res.StatusCode,
108828			Header: res.Header,
108829		}
108830	}
108831	if err != nil {
108832		return nil, err
108833	}
108834	defer googleapi.CloseBody(res)
108835	if err := googleapi.CheckResponse(res); err != nil {
108836		return nil, err
108837	}
108838	ret := &Disk{
108839		ServerResponse: googleapi.ServerResponse{
108840			Header:         res.Header,
108841			HTTPStatusCode: res.StatusCode,
108842		},
108843	}
108844	target := &ret
108845	if err := gensupport.DecodeResponse(target, res); err != nil {
108846		return nil, err
108847	}
108848	return ret, nil
108849	// {
108850	//   "description": "Returns a specified regional persistent disk.",
108851	//   "httpMethod": "GET",
108852	//   "id": "compute.regionDisks.get",
108853	//   "parameterOrder": [
108854	//     "project",
108855	//     "region",
108856	//     "disk"
108857	//   ],
108858	//   "parameters": {
108859	//     "disk": {
108860	//       "description": "Name of the regional persistent disk to return.",
108861	//       "location": "path",
108862	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
108863	//       "required": true,
108864	//       "type": "string"
108865	//     },
108866	//     "project": {
108867	//       "description": "Project ID for this request.",
108868	//       "location": "path",
108869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
108870	//       "required": true,
108871	//       "type": "string"
108872	//     },
108873	//     "region": {
108874	//       "description": "Name of the region for this request.",
108875	//       "location": "path",
108876	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
108877	//       "required": true,
108878	//       "type": "string"
108879	//     }
108880	//   },
108881	//   "path": "{project}/regions/{region}/disks/{disk}",
108882	//   "response": {
108883	//     "$ref": "Disk"
108884	//   },
108885	//   "scopes": [
108886	//     "https://www.googleapis.com/auth/cloud-platform",
108887	//     "https://www.googleapis.com/auth/compute",
108888	//     "https://www.googleapis.com/auth/compute.readonly"
108889	//   ]
108890	// }
108891
108892}
108893
108894// method id "compute.regionDisks.getIamPolicy":
108895
108896type RegionDisksGetIamPolicyCall struct {
108897	s            *Service
108898	project      string
108899	region       string
108900	resource     string
108901	urlParams_   gensupport.URLParams
108902	ifNoneMatch_ string
108903	ctx_         context.Context
108904	header_      http.Header
108905}
108906
108907// GetIamPolicy: Gets the access control policy for a resource. May be
108908// empty if no such policy or resource exists.
108909func (r *RegionDisksService) GetIamPolicy(project string, region string, resource string) *RegionDisksGetIamPolicyCall {
108910	c := &RegionDisksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
108911	c.project = project
108912	c.region = region
108913	c.resource = resource
108914	return c
108915}
108916
108917// OptionsRequestedPolicyVersion sets the optional parameter
108918// "optionsRequestedPolicyVersion": Requested IAM Policy version.
108919func (c *RegionDisksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *RegionDisksGetIamPolicyCall {
108920	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
108921	return c
108922}
108923
108924// Fields allows partial responses to be retrieved. See
108925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
108926// for more information.
108927func (c *RegionDisksGetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksGetIamPolicyCall {
108928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
108929	return c
108930}
108931
108932// IfNoneMatch sets the optional parameter which makes the operation
108933// fail if the object's ETag matches the given value. This is useful for
108934// getting updates only after the object has changed since the last
108935// request. Use googleapi.IsNotModified to check whether the response
108936// error from Do is the result of In-None-Match.
108937func (c *RegionDisksGetIamPolicyCall) IfNoneMatch(entityTag string) *RegionDisksGetIamPolicyCall {
108938	c.ifNoneMatch_ = entityTag
108939	return c
108940}
108941
108942// Context sets the context to be used in this call's Do method. Any
108943// pending HTTP request will be aborted if the provided context is
108944// canceled.
108945func (c *RegionDisksGetIamPolicyCall) Context(ctx context.Context) *RegionDisksGetIamPolicyCall {
108946	c.ctx_ = ctx
108947	return c
108948}
108949
108950// Header returns an http.Header that can be modified by the caller to
108951// add HTTP headers to the request.
108952func (c *RegionDisksGetIamPolicyCall) Header() http.Header {
108953	if c.header_ == nil {
108954		c.header_ = make(http.Header)
108955	}
108956	return c.header_
108957}
108958
108959func (c *RegionDisksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
108960	reqHeaders := make(http.Header)
108961	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
108962	for k, v := range c.header_ {
108963		reqHeaders[k] = v
108964	}
108965	reqHeaders.Set("User-Agent", c.s.userAgent())
108966	if c.ifNoneMatch_ != "" {
108967		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
108968	}
108969	var body io.Reader = nil
108970	c.urlParams_.Set("alt", alt)
108971	c.urlParams_.Set("prettyPrint", "false")
108972	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/getIamPolicy")
108973	urls += "?" + c.urlParams_.Encode()
108974	req, err := http.NewRequest("GET", urls, body)
108975	if err != nil {
108976		return nil, err
108977	}
108978	req.Header = reqHeaders
108979	googleapi.Expand(req.URL, map[string]string{
108980		"project":  c.project,
108981		"region":   c.region,
108982		"resource": c.resource,
108983	})
108984	return gensupport.SendRequest(c.ctx_, c.s.client, req)
108985}
108986
108987// Do executes the "compute.regionDisks.getIamPolicy" call.
108988// Exactly one of *Policy or error will be non-nil. Any non-2xx status
108989// code is an error. Response headers are in either
108990// *Policy.ServerResponse.Header or (if a response was returned at all)
108991// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
108992// check whether the returned error was because http.StatusNotModified
108993// was returned.
108994func (c *RegionDisksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
108995	gensupport.SetOptions(c.urlParams_, opts...)
108996	res, err := c.doRequest("json")
108997	if res != nil && res.StatusCode == http.StatusNotModified {
108998		if res.Body != nil {
108999			res.Body.Close()
109000		}
109001		return nil, &googleapi.Error{
109002			Code:   res.StatusCode,
109003			Header: res.Header,
109004		}
109005	}
109006	if err != nil {
109007		return nil, err
109008	}
109009	defer googleapi.CloseBody(res)
109010	if err := googleapi.CheckResponse(res); err != nil {
109011		return nil, err
109012	}
109013	ret := &Policy{
109014		ServerResponse: googleapi.ServerResponse{
109015			Header:         res.Header,
109016			HTTPStatusCode: res.StatusCode,
109017		},
109018	}
109019	target := &ret
109020	if err := gensupport.DecodeResponse(target, res); err != nil {
109021		return nil, err
109022	}
109023	return ret, nil
109024	// {
109025	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
109026	//   "httpMethod": "GET",
109027	//   "id": "compute.regionDisks.getIamPolicy",
109028	//   "parameterOrder": [
109029	//     "project",
109030	//     "region",
109031	//     "resource"
109032	//   ],
109033	//   "parameters": {
109034	//     "optionsRequestedPolicyVersion": {
109035	//       "description": "Requested IAM Policy version.",
109036	//       "format": "int32",
109037	//       "location": "query",
109038	//       "type": "integer"
109039	//     },
109040	//     "project": {
109041	//       "description": "Project ID for this request.",
109042	//       "location": "path",
109043	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109044	//       "required": true,
109045	//       "type": "string"
109046	//     },
109047	//     "region": {
109048	//       "description": "The name of the region for this request.",
109049	//       "location": "path",
109050	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109051	//       "required": true,
109052	//       "type": "string"
109053	//     },
109054	//     "resource": {
109055	//       "description": "Name or id of the resource for this request.",
109056	//       "location": "path",
109057	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109058	//       "required": true,
109059	//       "type": "string"
109060	//     }
109061	//   },
109062	//   "path": "{project}/regions/{region}/disks/{resource}/getIamPolicy",
109063	//   "response": {
109064	//     "$ref": "Policy"
109065	//   },
109066	//   "scopes": [
109067	//     "https://www.googleapis.com/auth/cloud-platform",
109068	//     "https://www.googleapis.com/auth/compute",
109069	//     "https://www.googleapis.com/auth/compute.readonly"
109070	//   ]
109071	// }
109072
109073}
109074
109075// method id "compute.regionDisks.insert":
109076
109077type RegionDisksInsertCall struct {
109078	s          *Service
109079	project    string
109080	region     string
109081	disk       *Disk
109082	urlParams_ gensupport.URLParams
109083	ctx_       context.Context
109084	header_    http.Header
109085}
109086
109087// Insert: Creates a persistent regional disk in the specified project
109088// using the data included in the request.
109089func (r *RegionDisksService) Insert(project string, region string, disk *Disk) *RegionDisksInsertCall {
109090	c := &RegionDisksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109091	c.project = project
109092	c.region = region
109093	c.disk = disk
109094	return c
109095}
109096
109097// RequestId sets the optional parameter "requestId": An optional
109098// request ID to identify requests. Specify a unique request ID so that
109099// if you must retry your request, the server will know to ignore the
109100// request if it has already been completed.
109101//
109102// For example, consider a situation where you make an initial request
109103// and the request times out. If you make the request again with the
109104// same request ID, the server can check if original operation with the
109105// same request ID was received, and if so, will ignore the second
109106// request. This prevents clients from accidentally creating duplicate
109107// commitments.
109108//
109109// The request ID must be a valid UUID with the exception that zero UUID
109110// is not supported (00000000-0000-0000-0000-000000000000).
109111func (c *RegionDisksInsertCall) RequestId(requestId string) *RegionDisksInsertCall {
109112	c.urlParams_.Set("requestId", requestId)
109113	return c
109114}
109115
109116// SourceImage sets the optional parameter "sourceImage": Source image
109117// to restore onto a disk.
109118func (c *RegionDisksInsertCall) SourceImage(sourceImage string) *RegionDisksInsertCall {
109119	c.urlParams_.Set("sourceImage", sourceImage)
109120	return c
109121}
109122
109123// Fields allows partial responses to be retrieved. See
109124// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109125// for more information.
109126func (c *RegionDisksInsertCall) Fields(s ...googleapi.Field) *RegionDisksInsertCall {
109127	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109128	return c
109129}
109130
109131// Context sets the context to be used in this call's Do method. Any
109132// pending HTTP request will be aborted if the provided context is
109133// canceled.
109134func (c *RegionDisksInsertCall) Context(ctx context.Context) *RegionDisksInsertCall {
109135	c.ctx_ = ctx
109136	return c
109137}
109138
109139// Header returns an http.Header that can be modified by the caller to
109140// add HTTP headers to the request.
109141func (c *RegionDisksInsertCall) Header() http.Header {
109142	if c.header_ == nil {
109143		c.header_ = make(http.Header)
109144	}
109145	return c.header_
109146}
109147
109148func (c *RegionDisksInsertCall) doRequest(alt string) (*http.Response, error) {
109149	reqHeaders := make(http.Header)
109150	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109151	for k, v := range c.header_ {
109152		reqHeaders[k] = v
109153	}
109154	reqHeaders.Set("User-Agent", c.s.userAgent())
109155	var body io.Reader = nil
109156	body, err := googleapi.WithoutDataWrapper.JSONReader(c.disk)
109157	if err != nil {
109158		return nil, err
109159	}
109160	reqHeaders.Set("Content-Type", "application/json")
109161	c.urlParams_.Set("alt", alt)
109162	c.urlParams_.Set("prettyPrint", "false")
109163	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
109164	urls += "?" + c.urlParams_.Encode()
109165	req, err := http.NewRequest("POST", urls, body)
109166	if err != nil {
109167		return nil, err
109168	}
109169	req.Header = reqHeaders
109170	googleapi.Expand(req.URL, map[string]string{
109171		"project": c.project,
109172		"region":  c.region,
109173	})
109174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109175}
109176
109177// Do executes the "compute.regionDisks.insert" call.
109178// Exactly one of *Operation or error will be non-nil. Any non-2xx
109179// status code is an error. Response headers are in either
109180// *Operation.ServerResponse.Header or (if a response was returned at
109181// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109182// to check whether the returned error was because
109183// http.StatusNotModified was returned.
109184func (c *RegionDisksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109185	gensupport.SetOptions(c.urlParams_, opts...)
109186	res, err := c.doRequest("json")
109187	if res != nil && res.StatusCode == http.StatusNotModified {
109188		if res.Body != nil {
109189			res.Body.Close()
109190		}
109191		return nil, &googleapi.Error{
109192			Code:   res.StatusCode,
109193			Header: res.Header,
109194		}
109195	}
109196	if err != nil {
109197		return nil, err
109198	}
109199	defer googleapi.CloseBody(res)
109200	if err := googleapi.CheckResponse(res); err != nil {
109201		return nil, err
109202	}
109203	ret := &Operation{
109204		ServerResponse: googleapi.ServerResponse{
109205			Header:         res.Header,
109206			HTTPStatusCode: res.StatusCode,
109207		},
109208	}
109209	target := &ret
109210	if err := gensupport.DecodeResponse(target, res); err != nil {
109211		return nil, err
109212	}
109213	return ret, nil
109214	// {
109215	//   "description": "Creates a persistent regional disk in the specified project using the data included in the request.",
109216	//   "httpMethod": "POST",
109217	//   "id": "compute.regionDisks.insert",
109218	//   "parameterOrder": [
109219	//     "project",
109220	//     "region"
109221	//   ],
109222	//   "parameters": {
109223	//     "project": {
109224	//       "description": "Project ID for this request.",
109225	//       "location": "path",
109226	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109227	//       "required": true,
109228	//       "type": "string"
109229	//     },
109230	//     "region": {
109231	//       "description": "Name of the region for this request.",
109232	//       "location": "path",
109233	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109234	//       "required": true,
109235	//       "type": "string"
109236	//     },
109237	//     "requestId": {
109238	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109239	//       "location": "query",
109240	//       "type": "string"
109241	//     },
109242	//     "sourceImage": {
109243	//       "description": "Optional. Source image to restore onto a disk.",
109244	//       "location": "query",
109245	//       "type": "string"
109246	//     }
109247	//   },
109248	//   "path": "{project}/regions/{region}/disks",
109249	//   "request": {
109250	//     "$ref": "Disk"
109251	//   },
109252	//   "response": {
109253	//     "$ref": "Operation"
109254	//   },
109255	//   "scopes": [
109256	//     "https://www.googleapis.com/auth/cloud-platform",
109257	//     "https://www.googleapis.com/auth/compute"
109258	//   ]
109259	// }
109260
109261}
109262
109263// method id "compute.regionDisks.list":
109264
109265type RegionDisksListCall struct {
109266	s            *Service
109267	project      string
109268	region       string
109269	urlParams_   gensupport.URLParams
109270	ifNoneMatch_ string
109271	ctx_         context.Context
109272	header_      http.Header
109273}
109274
109275// List: Retrieves the list of persistent disks contained within the
109276// specified region.
109277func (r *RegionDisksService) List(project string, region string) *RegionDisksListCall {
109278	c := &RegionDisksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109279	c.project = project
109280	c.region = region
109281	return c
109282}
109283
109284// Filter sets the optional parameter "filter": A filter expression that
109285// filters resources listed in the response. The expression must specify
109286// the field name, a comparison operator, and the value that you want to
109287// use for filtering. The value must be a string, a number, or a
109288// boolean. The comparison operator must be either =, !=, >, or <.
109289//
109290// For example, if you are filtering Compute Engine instances, you can
109291// exclude instances named example-instance by specifying name !=
109292// example-instance.
109293//
109294// You can also filter nested fields. For example, you could specify
109295// scheduling.automaticRestart = false to include instances only if they
109296// are not scheduled for automatic restarts. You can use filtering on
109297// nested fields to filter based on resource labels.
109298//
109299// To filter on multiple expressions, provide each separate expression
109300// within parentheses. For example, (scheduling.automaticRestart = true)
109301// (cpuPlatform = "Intel Skylake"). By default, each expression is an
109302// AND expression. However, you can include AND and OR expressions
109303// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
109304// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
109305// true).
109306func (c *RegionDisksListCall) Filter(filter string) *RegionDisksListCall {
109307	c.urlParams_.Set("filter", filter)
109308	return c
109309}
109310
109311// MaxResults sets the optional parameter "maxResults": The maximum
109312// number of results per page that should be returned. If the number of
109313// available results is larger than maxResults, Compute Engine returns a
109314// nextPageToken that can be used to get the next page of results in
109315// subsequent list requests. Acceptable values are 0 to 500, inclusive.
109316// (Default: 500)
109317func (c *RegionDisksListCall) MaxResults(maxResults int64) *RegionDisksListCall {
109318	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
109319	return c
109320}
109321
109322// OrderBy sets the optional parameter "orderBy": Sorts list results by
109323// a certain order. By default, results are returned in alphanumerical
109324// order based on the resource name.
109325//
109326// You can also sort results in descending order based on the creation
109327// timestamp using orderBy="creationTimestamp desc". This sorts results
109328// based on the creationTimestamp field in reverse chronological order
109329// (newest result first). Use this to sort resources like operations so
109330// that the newest operation is returned first.
109331//
109332// Currently, only sorting by name or creationTimestamp desc is
109333// supported.
109334func (c *RegionDisksListCall) OrderBy(orderBy string) *RegionDisksListCall {
109335	c.urlParams_.Set("orderBy", orderBy)
109336	return c
109337}
109338
109339// PageToken sets the optional parameter "pageToken": Specifies a page
109340// token to use. Set pageToken to the nextPageToken returned by a
109341// previous list request to get the next page of results.
109342func (c *RegionDisksListCall) PageToken(pageToken string) *RegionDisksListCall {
109343	c.urlParams_.Set("pageToken", pageToken)
109344	return c
109345}
109346
109347// Fields allows partial responses to be retrieved. See
109348// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109349// for more information.
109350func (c *RegionDisksListCall) Fields(s ...googleapi.Field) *RegionDisksListCall {
109351	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109352	return c
109353}
109354
109355// IfNoneMatch sets the optional parameter which makes the operation
109356// fail if the object's ETag matches the given value. This is useful for
109357// getting updates only after the object has changed since the last
109358// request. Use googleapi.IsNotModified to check whether the response
109359// error from Do is the result of In-None-Match.
109360func (c *RegionDisksListCall) IfNoneMatch(entityTag string) *RegionDisksListCall {
109361	c.ifNoneMatch_ = entityTag
109362	return c
109363}
109364
109365// Context sets the context to be used in this call's Do method. Any
109366// pending HTTP request will be aborted if the provided context is
109367// canceled.
109368func (c *RegionDisksListCall) Context(ctx context.Context) *RegionDisksListCall {
109369	c.ctx_ = ctx
109370	return c
109371}
109372
109373// Header returns an http.Header that can be modified by the caller to
109374// add HTTP headers to the request.
109375func (c *RegionDisksListCall) Header() http.Header {
109376	if c.header_ == nil {
109377		c.header_ = make(http.Header)
109378	}
109379	return c.header_
109380}
109381
109382func (c *RegionDisksListCall) doRequest(alt string) (*http.Response, error) {
109383	reqHeaders := make(http.Header)
109384	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109385	for k, v := range c.header_ {
109386		reqHeaders[k] = v
109387	}
109388	reqHeaders.Set("User-Agent", c.s.userAgent())
109389	if c.ifNoneMatch_ != "" {
109390		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
109391	}
109392	var body io.Reader = nil
109393	c.urlParams_.Set("alt", alt)
109394	c.urlParams_.Set("prettyPrint", "false")
109395	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks")
109396	urls += "?" + c.urlParams_.Encode()
109397	req, err := http.NewRequest("GET", urls, body)
109398	if err != nil {
109399		return nil, err
109400	}
109401	req.Header = reqHeaders
109402	googleapi.Expand(req.URL, map[string]string{
109403		"project": c.project,
109404		"region":  c.region,
109405	})
109406	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109407}
109408
109409// Do executes the "compute.regionDisks.list" call.
109410// Exactly one of *DiskList or error will be non-nil. Any non-2xx status
109411// code is an error. Response headers are in either
109412// *DiskList.ServerResponse.Header or (if a response was returned at
109413// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109414// to check whether the returned error was because
109415// http.StatusNotModified was returned.
109416func (c *RegionDisksListCall) Do(opts ...googleapi.CallOption) (*DiskList, error) {
109417	gensupport.SetOptions(c.urlParams_, opts...)
109418	res, err := c.doRequest("json")
109419	if res != nil && res.StatusCode == http.StatusNotModified {
109420		if res.Body != nil {
109421			res.Body.Close()
109422		}
109423		return nil, &googleapi.Error{
109424			Code:   res.StatusCode,
109425			Header: res.Header,
109426		}
109427	}
109428	if err != nil {
109429		return nil, err
109430	}
109431	defer googleapi.CloseBody(res)
109432	if err := googleapi.CheckResponse(res); err != nil {
109433		return nil, err
109434	}
109435	ret := &DiskList{
109436		ServerResponse: googleapi.ServerResponse{
109437			Header:         res.Header,
109438			HTTPStatusCode: res.StatusCode,
109439		},
109440	}
109441	target := &ret
109442	if err := gensupport.DecodeResponse(target, res); err != nil {
109443		return nil, err
109444	}
109445	return ret, nil
109446	// {
109447	//   "description": "Retrieves the list of persistent disks contained within the specified region.",
109448	//   "httpMethod": "GET",
109449	//   "id": "compute.regionDisks.list",
109450	//   "parameterOrder": [
109451	//     "project",
109452	//     "region"
109453	//   ],
109454	//   "parameters": {
109455	//     "filter": {
109456	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
109457	//       "location": "query",
109458	//       "type": "string"
109459	//     },
109460	//     "maxResults": {
109461	//       "default": "500",
109462	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
109463	//       "format": "uint32",
109464	//       "location": "query",
109465	//       "minimum": "0",
109466	//       "type": "integer"
109467	//     },
109468	//     "orderBy": {
109469	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
109470	//       "location": "query",
109471	//       "type": "string"
109472	//     },
109473	//     "pageToken": {
109474	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
109475	//       "location": "query",
109476	//       "type": "string"
109477	//     },
109478	//     "project": {
109479	//       "description": "Project ID for this request.",
109480	//       "location": "path",
109481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109482	//       "required": true,
109483	//       "type": "string"
109484	//     },
109485	//     "region": {
109486	//       "description": "Name of the region for this request.",
109487	//       "location": "path",
109488	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109489	//       "required": true,
109490	//       "type": "string"
109491	//     }
109492	//   },
109493	//   "path": "{project}/regions/{region}/disks",
109494	//   "response": {
109495	//     "$ref": "DiskList"
109496	//   },
109497	//   "scopes": [
109498	//     "https://www.googleapis.com/auth/cloud-platform",
109499	//     "https://www.googleapis.com/auth/compute",
109500	//     "https://www.googleapis.com/auth/compute.readonly"
109501	//   ]
109502	// }
109503
109504}
109505
109506// Pages invokes f for each page of results.
109507// A non-nil error returned from f will halt the iteration.
109508// The provided context supersedes any context provided to the Context method.
109509func (c *RegionDisksListCall) Pages(ctx context.Context, f func(*DiskList) error) error {
109510	c.ctx_ = ctx
109511	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
109512	for {
109513		x, err := c.Do()
109514		if err != nil {
109515			return err
109516		}
109517		if err := f(x); err != nil {
109518			return err
109519		}
109520		if x.NextPageToken == "" {
109521			return nil
109522		}
109523		c.PageToken(x.NextPageToken)
109524	}
109525}
109526
109527// method id "compute.regionDisks.removeResourcePolicies":
109528
109529type RegionDisksRemoveResourcePoliciesCall struct {
109530	s                                        *Service
109531	project                                  string
109532	region                                   string
109533	disk                                     string
109534	regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest
109535	urlParams_                               gensupport.URLParams
109536	ctx_                                     context.Context
109537	header_                                  http.Header
109538}
109539
109540// RemoveResourcePolicies: Removes resource policies from a regional
109541// disk.
109542func (r *RegionDisksService) RemoveResourcePolicies(project string, region string, disk string, regiondisksremoveresourcepoliciesrequest *RegionDisksRemoveResourcePoliciesRequest) *RegionDisksRemoveResourcePoliciesCall {
109543	c := &RegionDisksRemoveResourcePoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109544	c.project = project
109545	c.region = region
109546	c.disk = disk
109547	c.regiondisksremoveresourcepoliciesrequest = regiondisksremoveresourcepoliciesrequest
109548	return c
109549}
109550
109551// RequestId sets the optional parameter "requestId": An optional
109552// request ID to identify requests. Specify a unique request ID so that
109553// if you must retry your request, the server will know to ignore the
109554// request if it has already been completed.
109555//
109556// For example, consider a situation where you make an initial request
109557// and the request times out. If you make the request again with the
109558// same request ID, the server can check if original operation with the
109559// same request ID was received, and if so, will ignore the second
109560// request. This prevents clients from accidentally creating duplicate
109561// commitments.
109562//
109563// The request ID must be a valid UUID with the exception that zero UUID
109564// is not supported (00000000-0000-0000-0000-000000000000).
109565func (c *RegionDisksRemoveResourcePoliciesCall) RequestId(requestId string) *RegionDisksRemoveResourcePoliciesCall {
109566	c.urlParams_.Set("requestId", requestId)
109567	return c
109568}
109569
109570// Fields allows partial responses to be retrieved. See
109571// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109572// for more information.
109573func (c *RegionDisksRemoveResourcePoliciesCall) Fields(s ...googleapi.Field) *RegionDisksRemoveResourcePoliciesCall {
109574	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109575	return c
109576}
109577
109578// Context sets the context to be used in this call's Do method. Any
109579// pending HTTP request will be aborted if the provided context is
109580// canceled.
109581func (c *RegionDisksRemoveResourcePoliciesCall) Context(ctx context.Context) *RegionDisksRemoveResourcePoliciesCall {
109582	c.ctx_ = ctx
109583	return c
109584}
109585
109586// Header returns an http.Header that can be modified by the caller to
109587// add HTTP headers to the request.
109588func (c *RegionDisksRemoveResourcePoliciesCall) Header() http.Header {
109589	if c.header_ == nil {
109590		c.header_ = make(http.Header)
109591	}
109592	return c.header_
109593}
109594
109595func (c *RegionDisksRemoveResourcePoliciesCall) doRequest(alt string) (*http.Response, error) {
109596	reqHeaders := make(http.Header)
109597	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109598	for k, v := range c.header_ {
109599		reqHeaders[k] = v
109600	}
109601	reqHeaders.Set("User-Agent", c.s.userAgent())
109602	var body io.Reader = nil
109603	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksremoveresourcepoliciesrequest)
109604	if err != nil {
109605		return nil, err
109606	}
109607	reqHeaders.Set("Content-Type", "application/json")
109608	c.urlParams_.Set("alt", alt)
109609	c.urlParams_.Set("prettyPrint", "false")
109610	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/removeResourcePolicies")
109611	urls += "?" + c.urlParams_.Encode()
109612	req, err := http.NewRequest("POST", urls, body)
109613	if err != nil {
109614		return nil, err
109615	}
109616	req.Header = reqHeaders
109617	googleapi.Expand(req.URL, map[string]string{
109618		"project": c.project,
109619		"region":  c.region,
109620		"disk":    c.disk,
109621	})
109622	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109623}
109624
109625// Do executes the "compute.regionDisks.removeResourcePolicies" call.
109626// Exactly one of *Operation or error will be non-nil. Any non-2xx
109627// status code is an error. Response headers are in either
109628// *Operation.ServerResponse.Header or (if a response was returned at
109629// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109630// to check whether the returned error was because
109631// http.StatusNotModified was returned.
109632func (c *RegionDisksRemoveResourcePoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109633	gensupport.SetOptions(c.urlParams_, opts...)
109634	res, err := c.doRequest("json")
109635	if res != nil && res.StatusCode == http.StatusNotModified {
109636		if res.Body != nil {
109637			res.Body.Close()
109638		}
109639		return nil, &googleapi.Error{
109640			Code:   res.StatusCode,
109641			Header: res.Header,
109642		}
109643	}
109644	if err != nil {
109645		return nil, err
109646	}
109647	defer googleapi.CloseBody(res)
109648	if err := googleapi.CheckResponse(res); err != nil {
109649		return nil, err
109650	}
109651	ret := &Operation{
109652		ServerResponse: googleapi.ServerResponse{
109653			Header:         res.Header,
109654			HTTPStatusCode: res.StatusCode,
109655		},
109656	}
109657	target := &ret
109658	if err := gensupport.DecodeResponse(target, res); err != nil {
109659		return nil, err
109660	}
109661	return ret, nil
109662	// {
109663	//   "description": "Removes resource policies from a regional disk.",
109664	//   "httpMethod": "POST",
109665	//   "id": "compute.regionDisks.removeResourcePolicies",
109666	//   "parameterOrder": [
109667	//     "project",
109668	//     "region",
109669	//     "disk"
109670	//   ],
109671	//   "parameters": {
109672	//     "disk": {
109673	//       "description": "The disk name for this request.",
109674	//       "location": "path",
109675	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109676	//       "required": true,
109677	//       "type": "string"
109678	//     },
109679	//     "project": {
109680	//       "description": "Project ID for this request.",
109681	//       "location": "path",
109682	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109683	//       "required": true,
109684	//       "type": "string"
109685	//     },
109686	//     "region": {
109687	//       "description": "The name of the region for this request.",
109688	//       "location": "path",
109689	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109690	//       "required": true,
109691	//       "type": "string"
109692	//     },
109693	//     "requestId": {
109694	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109695	//       "location": "query",
109696	//       "type": "string"
109697	//     }
109698	//   },
109699	//   "path": "{project}/regions/{region}/disks/{disk}/removeResourcePolicies",
109700	//   "request": {
109701	//     "$ref": "RegionDisksRemoveResourcePoliciesRequest"
109702	//   },
109703	//   "response": {
109704	//     "$ref": "Operation"
109705	//   },
109706	//   "scopes": [
109707	//     "https://www.googleapis.com/auth/cloud-platform",
109708	//     "https://www.googleapis.com/auth/compute"
109709	//   ]
109710	// }
109711
109712}
109713
109714// method id "compute.regionDisks.resize":
109715
109716type RegionDisksResizeCall struct {
109717	s                        *Service
109718	project                  string
109719	region                   string
109720	disk                     string
109721	regiondisksresizerequest *RegionDisksResizeRequest
109722	urlParams_               gensupport.URLParams
109723	ctx_                     context.Context
109724	header_                  http.Header
109725}
109726
109727// Resize: Resizes the specified regional persistent disk.
109728func (r *RegionDisksService) Resize(project string, region string, disk string, regiondisksresizerequest *RegionDisksResizeRequest) *RegionDisksResizeCall {
109729	c := &RegionDisksResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109730	c.project = project
109731	c.region = region
109732	c.disk = disk
109733	c.regiondisksresizerequest = regiondisksresizerequest
109734	return c
109735}
109736
109737// RequestId sets the optional parameter "requestId": An optional
109738// request ID to identify requests. Specify a unique request ID so that
109739// if you must retry your request, the server will know to ignore the
109740// request if it has already been completed.
109741//
109742// For example, consider a situation where you make an initial request
109743// and the request times out. If you make the request again with the
109744// same request ID, the server can check if original operation with the
109745// same request ID was received, and if so, will ignore the second
109746// request. This prevents clients from accidentally creating duplicate
109747// commitments.
109748//
109749// The request ID must be a valid UUID with the exception that zero UUID
109750// is not supported (00000000-0000-0000-0000-000000000000).
109751func (c *RegionDisksResizeCall) RequestId(requestId string) *RegionDisksResizeCall {
109752	c.urlParams_.Set("requestId", requestId)
109753	return c
109754}
109755
109756// Fields allows partial responses to be retrieved. See
109757// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109758// for more information.
109759func (c *RegionDisksResizeCall) Fields(s ...googleapi.Field) *RegionDisksResizeCall {
109760	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109761	return c
109762}
109763
109764// Context sets the context to be used in this call's Do method. Any
109765// pending HTTP request will be aborted if the provided context is
109766// canceled.
109767func (c *RegionDisksResizeCall) Context(ctx context.Context) *RegionDisksResizeCall {
109768	c.ctx_ = ctx
109769	return c
109770}
109771
109772// Header returns an http.Header that can be modified by the caller to
109773// add HTTP headers to the request.
109774func (c *RegionDisksResizeCall) Header() http.Header {
109775	if c.header_ == nil {
109776		c.header_ = make(http.Header)
109777	}
109778	return c.header_
109779}
109780
109781func (c *RegionDisksResizeCall) doRequest(alt string) (*http.Response, error) {
109782	reqHeaders := make(http.Header)
109783	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109784	for k, v := range c.header_ {
109785		reqHeaders[k] = v
109786	}
109787	reqHeaders.Set("User-Agent", c.s.userAgent())
109788	var body io.Reader = nil
109789	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiondisksresizerequest)
109790	if err != nil {
109791		return nil, err
109792	}
109793	reqHeaders.Set("Content-Type", "application/json")
109794	c.urlParams_.Set("alt", alt)
109795	c.urlParams_.Set("prettyPrint", "false")
109796	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{disk}/resize")
109797	urls += "?" + c.urlParams_.Encode()
109798	req, err := http.NewRequest("POST", urls, body)
109799	if err != nil {
109800		return nil, err
109801	}
109802	req.Header = reqHeaders
109803	googleapi.Expand(req.URL, map[string]string{
109804		"project": c.project,
109805		"region":  c.region,
109806		"disk":    c.disk,
109807	})
109808	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109809}
109810
109811// Do executes the "compute.regionDisks.resize" call.
109812// Exactly one of *Operation or error will be non-nil. Any non-2xx
109813// status code is an error. Response headers are in either
109814// *Operation.ServerResponse.Header or (if a response was returned at
109815// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
109816// to check whether the returned error was because
109817// http.StatusNotModified was returned.
109818func (c *RegionDisksResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
109819	gensupport.SetOptions(c.urlParams_, opts...)
109820	res, err := c.doRequest("json")
109821	if res != nil && res.StatusCode == http.StatusNotModified {
109822		if res.Body != nil {
109823			res.Body.Close()
109824		}
109825		return nil, &googleapi.Error{
109826			Code:   res.StatusCode,
109827			Header: res.Header,
109828		}
109829	}
109830	if err != nil {
109831		return nil, err
109832	}
109833	defer googleapi.CloseBody(res)
109834	if err := googleapi.CheckResponse(res); err != nil {
109835		return nil, err
109836	}
109837	ret := &Operation{
109838		ServerResponse: googleapi.ServerResponse{
109839			Header:         res.Header,
109840			HTTPStatusCode: res.StatusCode,
109841		},
109842	}
109843	target := &ret
109844	if err := gensupport.DecodeResponse(target, res); err != nil {
109845		return nil, err
109846	}
109847	return ret, nil
109848	// {
109849	//   "description": "Resizes the specified regional persistent disk.",
109850	//   "httpMethod": "POST",
109851	//   "id": "compute.regionDisks.resize",
109852	//   "parameterOrder": [
109853	//     "project",
109854	//     "region",
109855	//     "disk"
109856	//   ],
109857	//   "parameters": {
109858	//     "disk": {
109859	//       "description": "Name of the regional persistent disk.",
109860	//       "location": "path",
109861	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
109862	//       "required": true,
109863	//       "type": "string"
109864	//     },
109865	//     "project": {
109866	//       "description": "The project ID for this request.",
109867	//       "location": "path",
109868	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
109869	//       "required": true,
109870	//       "type": "string"
109871	//     },
109872	//     "region": {
109873	//       "description": "Name of the region for this request.",
109874	//       "location": "path",
109875	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
109876	//       "required": true,
109877	//       "type": "string"
109878	//     },
109879	//     "requestId": {
109880	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
109881	//       "location": "query",
109882	//       "type": "string"
109883	//     }
109884	//   },
109885	//   "path": "{project}/regions/{region}/disks/{disk}/resize",
109886	//   "request": {
109887	//     "$ref": "RegionDisksResizeRequest"
109888	//   },
109889	//   "response": {
109890	//     "$ref": "Operation"
109891	//   },
109892	//   "scopes": [
109893	//     "https://www.googleapis.com/auth/cloud-platform",
109894	//     "https://www.googleapis.com/auth/compute"
109895	//   ]
109896	// }
109897
109898}
109899
109900// method id "compute.regionDisks.setIamPolicy":
109901
109902type RegionDisksSetIamPolicyCall struct {
109903	s                      *Service
109904	project                string
109905	region                 string
109906	resource               string
109907	regionsetpolicyrequest *RegionSetPolicyRequest
109908	urlParams_             gensupport.URLParams
109909	ctx_                   context.Context
109910	header_                http.Header
109911}
109912
109913// SetIamPolicy: Sets the access control policy on the specified
109914// resource. Replaces any existing policy.
109915func (r *RegionDisksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *RegionDisksSetIamPolicyCall {
109916	c := &RegionDisksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
109917	c.project = project
109918	c.region = region
109919	c.resource = resource
109920	c.regionsetpolicyrequest = regionsetpolicyrequest
109921	return c
109922}
109923
109924// Fields allows partial responses to be retrieved. See
109925// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
109926// for more information.
109927func (c *RegionDisksSetIamPolicyCall) Fields(s ...googleapi.Field) *RegionDisksSetIamPolicyCall {
109928	c.urlParams_.Set("fields", googleapi.CombineFields(s))
109929	return c
109930}
109931
109932// Context sets the context to be used in this call's Do method. Any
109933// pending HTTP request will be aborted if the provided context is
109934// canceled.
109935func (c *RegionDisksSetIamPolicyCall) Context(ctx context.Context) *RegionDisksSetIamPolicyCall {
109936	c.ctx_ = ctx
109937	return c
109938}
109939
109940// Header returns an http.Header that can be modified by the caller to
109941// add HTTP headers to the request.
109942func (c *RegionDisksSetIamPolicyCall) Header() http.Header {
109943	if c.header_ == nil {
109944		c.header_ = make(http.Header)
109945	}
109946	return c.header_
109947}
109948
109949func (c *RegionDisksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
109950	reqHeaders := make(http.Header)
109951	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
109952	for k, v := range c.header_ {
109953		reqHeaders[k] = v
109954	}
109955	reqHeaders.Set("User-Agent", c.s.userAgent())
109956	var body io.Reader = nil
109957	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
109958	if err != nil {
109959		return nil, err
109960	}
109961	reqHeaders.Set("Content-Type", "application/json")
109962	c.urlParams_.Set("alt", alt)
109963	c.urlParams_.Set("prettyPrint", "false")
109964	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setIamPolicy")
109965	urls += "?" + c.urlParams_.Encode()
109966	req, err := http.NewRequest("POST", urls, body)
109967	if err != nil {
109968		return nil, err
109969	}
109970	req.Header = reqHeaders
109971	googleapi.Expand(req.URL, map[string]string{
109972		"project":  c.project,
109973		"region":   c.region,
109974		"resource": c.resource,
109975	})
109976	return gensupport.SendRequest(c.ctx_, c.s.client, req)
109977}
109978
109979// Do executes the "compute.regionDisks.setIamPolicy" call.
109980// Exactly one of *Policy or error will be non-nil. Any non-2xx status
109981// code is an error. Response headers are in either
109982// *Policy.ServerResponse.Header or (if a response was returned at all)
109983// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
109984// check whether the returned error was because http.StatusNotModified
109985// was returned.
109986func (c *RegionDisksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
109987	gensupport.SetOptions(c.urlParams_, opts...)
109988	res, err := c.doRequest("json")
109989	if res != nil && res.StatusCode == http.StatusNotModified {
109990		if res.Body != nil {
109991			res.Body.Close()
109992		}
109993		return nil, &googleapi.Error{
109994			Code:   res.StatusCode,
109995			Header: res.Header,
109996		}
109997	}
109998	if err != nil {
109999		return nil, err
110000	}
110001	defer googleapi.CloseBody(res)
110002	if err := googleapi.CheckResponse(res); err != nil {
110003		return nil, err
110004	}
110005	ret := &Policy{
110006		ServerResponse: googleapi.ServerResponse{
110007			Header:         res.Header,
110008			HTTPStatusCode: res.StatusCode,
110009		},
110010	}
110011	target := &ret
110012	if err := gensupport.DecodeResponse(target, res); err != nil {
110013		return nil, err
110014	}
110015	return ret, nil
110016	// {
110017	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
110018	//   "httpMethod": "POST",
110019	//   "id": "compute.regionDisks.setIamPolicy",
110020	//   "parameterOrder": [
110021	//     "project",
110022	//     "region",
110023	//     "resource"
110024	//   ],
110025	//   "parameters": {
110026	//     "project": {
110027	//       "description": "Project ID for this request.",
110028	//       "location": "path",
110029	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110030	//       "required": true,
110031	//       "type": "string"
110032	//     },
110033	//     "region": {
110034	//       "description": "The name of the region for this request.",
110035	//       "location": "path",
110036	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110037	//       "required": true,
110038	//       "type": "string"
110039	//     },
110040	//     "resource": {
110041	//       "description": "Name or id of the resource for this request.",
110042	//       "location": "path",
110043	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110044	//       "required": true,
110045	//       "type": "string"
110046	//     }
110047	//   },
110048	//   "path": "{project}/regions/{region}/disks/{resource}/setIamPolicy",
110049	//   "request": {
110050	//     "$ref": "RegionSetPolicyRequest"
110051	//   },
110052	//   "response": {
110053	//     "$ref": "Policy"
110054	//   },
110055	//   "scopes": [
110056	//     "https://www.googleapis.com/auth/cloud-platform",
110057	//     "https://www.googleapis.com/auth/compute"
110058	//   ]
110059	// }
110060
110061}
110062
110063// method id "compute.regionDisks.setLabels":
110064
110065type RegionDisksSetLabelsCall struct {
110066	s                      *Service
110067	project                string
110068	region                 string
110069	resource               string
110070	regionsetlabelsrequest *RegionSetLabelsRequest
110071	urlParams_             gensupport.URLParams
110072	ctx_                   context.Context
110073	header_                http.Header
110074}
110075
110076// SetLabels: Sets the labels on the target regional disk.
110077func (r *RegionDisksService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *RegionDisksSetLabelsCall {
110078	c := &RegionDisksSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110079	c.project = project
110080	c.region = region
110081	c.resource = resource
110082	c.regionsetlabelsrequest = regionsetlabelsrequest
110083	return c
110084}
110085
110086// RequestId sets the optional parameter "requestId": An optional
110087// request ID to identify requests. Specify a unique request ID so that
110088// if you must retry your request, the server will know to ignore the
110089// request if it has already been completed.
110090//
110091// For example, consider a situation where you make an initial request
110092// and the request times out. If you make the request again with the
110093// same request ID, the server can check if original operation with the
110094// same request ID was received, and if so, will ignore the second
110095// request. This prevents clients from accidentally creating duplicate
110096// commitments.
110097//
110098// The request ID must be a valid UUID with the exception that zero UUID
110099// is not supported (00000000-0000-0000-0000-000000000000).
110100func (c *RegionDisksSetLabelsCall) RequestId(requestId string) *RegionDisksSetLabelsCall {
110101	c.urlParams_.Set("requestId", requestId)
110102	return c
110103}
110104
110105// Fields allows partial responses to be retrieved. See
110106// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110107// for more information.
110108func (c *RegionDisksSetLabelsCall) Fields(s ...googleapi.Field) *RegionDisksSetLabelsCall {
110109	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110110	return c
110111}
110112
110113// Context sets the context to be used in this call's Do method. Any
110114// pending HTTP request will be aborted if the provided context is
110115// canceled.
110116func (c *RegionDisksSetLabelsCall) Context(ctx context.Context) *RegionDisksSetLabelsCall {
110117	c.ctx_ = ctx
110118	return c
110119}
110120
110121// Header returns an http.Header that can be modified by the caller to
110122// add HTTP headers to the request.
110123func (c *RegionDisksSetLabelsCall) Header() http.Header {
110124	if c.header_ == nil {
110125		c.header_ = make(http.Header)
110126	}
110127	return c.header_
110128}
110129
110130func (c *RegionDisksSetLabelsCall) doRequest(alt string) (*http.Response, error) {
110131	reqHeaders := make(http.Header)
110132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110133	for k, v := range c.header_ {
110134		reqHeaders[k] = v
110135	}
110136	reqHeaders.Set("User-Agent", c.s.userAgent())
110137	var body io.Reader = nil
110138	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
110139	if err != nil {
110140		return nil, err
110141	}
110142	reqHeaders.Set("Content-Type", "application/json")
110143	c.urlParams_.Set("alt", alt)
110144	c.urlParams_.Set("prettyPrint", "false")
110145	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/setLabels")
110146	urls += "?" + c.urlParams_.Encode()
110147	req, err := http.NewRequest("POST", urls, body)
110148	if err != nil {
110149		return nil, err
110150	}
110151	req.Header = reqHeaders
110152	googleapi.Expand(req.URL, map[string]string{
110153		"project":  c.project,
110154		"region":   c.region,
110155		"resource": c.resource,
110156	})
110157	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110158}
110159
110160// Do executes the "compute.regionDisks.setLabels" call.
110161// Exactly one of *Operation or error will be non-nil. Any non-2xx
110162// status code is an error. Response headers are in either
110163// *Operation.ServerResponse.Header or (if a response was returned at
110164// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110165// to check whether the returned error was because
110166// http.StatusNotModified was returned.
110167func (c *RegionDisksSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110168	gensupport.SetOptions(c.urlParams_, opts...)
110169	res, err := c.doRequest("json")
110170	if res != nil && res.StatusCode == http.StatusNotModified {
110171		if res.Body != nil {
110172			res.Body.Close()
110173		}
110174		return nil, &googleapi.Error{
110175			Code:   res.StatusCode,
110176			Header: res.Header,
110177		}
110178	}
110179	if err != nil {
110180		return nil, err
110181	}
110182	defer googleapi.CloseBody(res)
110183	if err := googleapi.CheckResponse(res); err != nil {
110184		return nil, err
110185	}
110186	ret := &Operation{
110187		ServerResponse: googleapi.ServerResponse{
110188			Header:         res.Header,
110189			HTTPStatusCode: res.StatusCode,
110190		},
110191	}
110192	target := &ret
110193	if err := gensupport.DecodeResponse(target, res); err != nil {
110194		return nil, err
110195	}
110196	return ret, nil
110197	// {
110198	//   "description": "Sets the labels on the target regional disk.",
110199	//   "httpMethod": "POST",
110200	//   "id": "compute.regionDisks.setLabels",
110201	//   "parameterOrder": [
110202	//     "project",
110203	//     "region",
110204	//     "resource"
110205	//   ],
110206	//   "parameters": {
110207	//     "project": {
110208	//       "description": "Project ID for this request.",
110209	//       "location": "path",
110210	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110211	//       "required": true,
110212	//       "type": "string"
110213	//     },
110214	//     "region": {
110215	//       "description": "The region for this request.",
110216	//       "location": "path",
110217	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110218	//       "required": true,
110219	//       "type": "string"
110220	//     },
110221	//     "requestId": {
110222	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110223	//       "location": "query",
110224	//       "type": "string"
110225	//     },
110226	//     "resource": {
110227	//       "description": "Name or id of the resource for this request.",
110228	//       "location": "path",
110229	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110230	//       "required": true,
110231	//       "type": "string"
110232	//     }
110233	//   },
110234	//   "path": "{project}/regions/{region}/disks/{resource}/setLabels",
110235	//   "request": {
110236	//     "$ref": "RegionSetLabelsRequest"
110237	//   },
110238	//   "response": {
110239	//     "$ref": "Operation"
110240	//   },
110241	//   "scopes": [
110242	//     "https://www.googleapis.com/auth/cloud-platform",
110243	//     "https://www.googleapis.com/auth/compute"
110244	//   ]
110245	// }
110246
110247}
110248
110249// method id "compute.regionDisks.testIamPermissions":
110250
110251type RegionDisksTestIamPermissionsCall struct {
110252	s                      *Service
110253	project                string
110254	region                 string
110255	resource               string
110256	testpermissionsrequest *TestPermissionsRequest
110257	urlParams_             gensupport.URLParams
110258	ctx_                   context.Context
110259	header_                http.Header
110260}
110261
110262// TestIamPermissions: Returns permissions that a caller has on the
110263// specified resource.
110264func (r *RegionDisksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionDisksTestIamPermissionsCall {
110265	c := &RegionDisksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110266	c.project = project
110267	c.region = region
110268	c.resource = resource
110269	c.testpermissionsrequest = testpermissionsrequest
110270	return c
110271}
110272
110273// Fields allows partial responses to be retrieved. See
110274// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110275// for more information.
110276func (c *RegionDisksTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionDisksTestIamPermissionsCall {
110277	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110278	return c
110279}
110280
110281// Context sets the context to be used in this call's Do method. Any
110282// pending HTTP request will be aborted if the provided context is
110283// canceled.
110284func (c *RegionDisksTestIamPermissionsCall) Context(ctx context.Context) *RegionDisksTestIamPermissionsCall {
110285	c.ctx_ = ctx
110286	return c
110287}
110288
110289// Header returns an http.Header that can be modified by the caller to
110290// add HTTP headers to the request.
110291func (c *RegionDisksTestIamPermissionsCall) Header() http.Header {
110292	if c.header_ == nil {
110293		c.header_ = make(http.Header)
110294	}
110295	return c.header_
110296}
110297
110298func (c *RegionDisksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
110299	reqHeaders := make(http.Header)
110300	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110301	for k, v := range c.header_ {
110302		reqHeaders[k] = v
110303	}
110304	reqHeaders.Set("User-Agent", c.s.userAgent())
110305	var body io.Reader = nil
110306	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
110307	if err != nil {
110308		return nil, err
110309	}
110310	reqHeaders.Set("Content-Type", "application/json")
110311	c.urlParams_.Set("alt", alt)
110312	c.urlParams_.Set("prettyPrint", "false")
110313	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/disks/{resource}/testIamPermissions")
110314	urls += "?" + c.urlParams_.Encode()
110315	req, err := http.NewRequest("POST", urls, body)
110316	if err != nil {
110317		return nil, err
110318	}
110319	req.Header = reqHeaders
110320	googleapi.Expand(req.URL, map[string]string{
110321		"project":  c.project,
110322		"region":   c.region,
110323		"resource": c.resource,
110324	})
110325	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110326}
110327
110328// Do executes the "compute.regionDisks.testIamPermissions" call.
110329// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
110330// non-2xx status code is an error. Response headers are in either
110331// *TestPermissionsResponse.ServerResponse.Header or (if a response was
110332// returned at all) in error.(*googleapi.Error).Header. Use
110333// googleapi.IsNotModified to check whether the returned error was
110334// because http.StatusNotModified was returned.
110335func (c *RegionDisksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
110336	gensupport.SetOptions(c.urlParams_, opts...)
110337	res, err := c.doRequest("json")
110338	if res != nil && res.StatusCode == http.StatusNotModified {
110339		if res.Body != nil {
110340			res.Body.Close()
110341		}
110342		return nil, &googleapi.Error{
110343			Code:   res.StatusCode,
110344			Header: res.Header,
110345		}
110346	}
110347	if err != nil {
110348		return nil, err
110349	}
110350	defer googleapi.CloseBody(res)
110351	if err := googleapi.CheckResponse(res); err != nil {
110352		return nil, err
110353	}
110354	ret := &TestPermissionsResponse{
110355		ServerResponse: googleapi.ServerResponse{
110356			Header:         res.Header,
110357			HTTPStatusCode: res.StatusCode,
110358		},
110359	}
110360	target := &ret
110361	if err := gensupport.DecodeResponse(target, res); err != nil {
110362		return nil, err
110363	}
110364	return ret, nil
110365	// {
110366	//   "description": "Returns permissions that a caller has on the specified resource.",
110367	//   "httpMethod": "POST",
110368	//   "id": "compute.regionDisks.testIamPermissions",
110369	//   "parameterOrder": [
110370	//     "project",
110371	//     "region",
110372	//     "resource"
110373	//   ],
110374	//   "parameters": {
110375	//     "project": {
110376	//       "description": "Project ID for this request.",
110377	//       "location": "path",
110378	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110379	//       "required": true,
110380	//       "type": "string"
110381	//     },
110382	//     "region": {
110383	//       "description": "The name of the region for this request.",
110384	//       "location": "path",
110385	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110386	//       "required": true,
110387	//       "type": "string"
110388	//     },
110389	//     "resource": {
110390	//       "description": "Name or id of the resource for this request.",
110391	//       "location": "path",
110392	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
110393	//       "required": true,
110394	//       "type": "string"
110395	//     }
110396	//   },
110397	//   "path": "{project}/regions/{region}/disks/{resource}/testIamPermissions",
110398	//   "request": {
110399	//     "$ref": "TestPermissionsRequest"
110400	//   },
110401	//   "response": {
110402	//     "$ref": "TestPermissionsResponse"
110403	//   },
110404	//   "scopes": [
110405	//     "https://www.googleapis.com/auth/cloud-platform",
110406	//     "https://www.googleapis.com/auth/compute",
110407	//     "https://www.googleapis.com/auth/compute.readonly"
110408	//   ]
110409	// }
110410
110411}
110412
110413// method id "compute.regionHealthCheckServices.delete":
110414
110415type RegionHealthCheckServicesDeleteCall struct {
110416	s                  *Service
110417	project            string
110418	region             string
110419	healthCheckService string
110420	urlParams_         gensupport.URLParams
110421	ctx_               context.Context
110422	header_            http.Header
110423}
110424
110425// Delete: Deletes the specified regional HealthCheckService.
110426func (r *RegionHealthCheckServicesService) Delete(project string, region string, healthCheckService string) *RegionHealthCheckServicesDeleteCall {
110427	c := &RegionHealthCheckServicesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110428	c.project = project
110429	c.region = region
110430	c.healthCheckService = healthCheckService
110431	return c
110432}
110433
110434// RequestId sets the optional parameter "requestId": An optional
110435// request ID to identify requests. Specify a unique request ID so that
110436// if you must retry your request, the server will know to ignore the
110437// request if it has already been completed.
110438//
110439// For example, consider a situation where you make an initial request
110440// and the request times out. If you make the request again with the
110441// same request ID, the server can check if original operation with the
110442// same request ID was received, and if so, will ignore the second
110443// request. This prevents clients from accidentally creating duplicate
110444// commitments.
110445//
110446// The request ID must be a valid UUID with the exception that zero UUID
110447// is not supported (00000000-0000-0000-0000-000000000000).
110448func (c *RegionHealthCheckServicesDeleteCall) RequestId(requestId string) *RegionHealthCheckServicesDeleteCall {
110449	c.urlParams_.Set("requestId", requestId)
110450	return c
110451}
110452
110453// Fields allows partial responses to be retrieved. See
110454// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110455// for more information.
110456func (c *RegionHealthCheckServicesDeleteCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesDeleteCall {
110457	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110458	return c
110459}
110460
110461// Context sets the context to be used in this call's Do method. Any
110462// pending HTTP request will be aborted if the provided context is
110463// canceled.
110464func (c *RegionHealthCheckServicesDeleteCall) Context(ctx context.Context) *RegionHealthCheckServicesDeleteCall {
110465	c.ctx_ = ctx
110466	return c
110467}
110468
110469// Header returns an http.Header that can be modified by the caller to
110470// add HTTP headers to the request.
110471func (c *RegionHealthCheckServicesDeleteCall) Header() http.Header {
110472	if c.header_ == nil {
110473		c.header_ = make(http.Header)
110474	}
110475	return c.header_
110476}
110477
110478func (c *RegionHealthCheckServicesDeleteCall) doRequest(alt string) (*http.Response, error) {
110479	reqHeaders := make(http.Header)
110480	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110481	for k, v := range c.header_ {
110482		reqHeaders[k] = v
110483	}
110484	reqHeaders.Set("User-Agent", c.s.userAgent())
110485	var body io.Reader = nil
110486	c.urlParams_.Set("alt", alt)
110487	c.urlParams_.Set("prettyPrint", "false")
110488	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
110489	urls += "?" + c.urlParams_.Encode()
110490	req, err := http.NewRequest("DELETE", urls, body)
110491	if err != nil {
110492		return nil, err
110493	}
110494	req.Header = reqHeaders
110495	googleapi.Expand(req.URL, map[string]string{
110496		"project":            c.project,
110497		"region":             c.region,
110498		"healthCheckService": c.healthCheckService,
110499	})
110500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110501}
110502
110503// Do executes the "compute.regionHealthCheckServices.delete" call.
110504// Exactly one of *Operation or error will be non-nil. Any non-2xx
110505// status code is an error. Response headers are in either
110506// *Operation.ServerResponse.Header or (if a response was returned at
110507// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110508// to check whether the returned error was because
110509// http.StatusNotModified was returned.
110510func (c *RegionHealthCheckServicesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110511	gensupport.SetOptions(c.urlParams_, opts...)
110512	res, err := c.doRequest("json")
110513	if res != nil && res.StatusCode == http.StatusNotModified {
110514		if res.Body != nil {
110515			res.Body.Close()
110516		}
110517		return nil, &googleapi.Error{
110518			Code:   res.StatusCode,
110519			Header: res.Header,
110520		}
110521	}
110522	if err != nil {
110523		return nil, err
110524	}
110525	defer googleapi.CloseBody(res)
110526	if err := googleapi.CheckResponse(res); err != nil {
110527		return nil, err
110528	}
110529	ret := &Operation{
110530		ServerResponse: googleapi.ServerResponse{
110531			Header:         res.Header,
110532			HTTPStatusCode: res.StatusCode,
110533		},
110534	}
110535	target := &ret
110536	if err := gensupport.DecodeResponse(target, res); err != nil {
110537		return nil, err
110538	}
110539	return ret, nil
110540	// {
110541	//   "description": "Deletes the specified regional HealthCheckService.",
110542	//   "httpMethod": "DELETE",
110543	//   "id": "compute.regionHealthCheckServices.delete",
110544	//   "parameterOrder": [
110545	//     "project",
110546	//     "region",
110547	//     "healthCheckService"
110548	//   ],
110549	//   "parameters": {
110550	//     "healthCheckService": {
110551	//       "description": "Name of the HealthCheckService to delete. The name must be 1-63 characters long, and comply with RFC1035.",
110552	//       "location": "path",
110553	//       "required": true,
110554	//       "type": "string"
110555	//     },
110556	//     "project": {
110557	//       "description": "Project ID for this request.",
110558	//       "location": "path",
110559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110560	//       "required": true,
110561	//       "type": "string"
110562	//     },
110563	//     "region": {
110564	//       "description": "Name of the region scoping this request.",
110565	//       "location": "path",
110566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110567	//       "required": true,
110568	//       "type": "string"
110569	//     },
110570	//     "requestId": {
110571	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110572	//       "location": "query",
110573	//       "type": "string"
110574	//     }
110575	//   },
110576	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
110577	//   "response": {
110578	//     "$ref": "Operation"
110579	//   },
110580	//   "scopes": [
110581	//     "https://www.googleapis.com/auth/cloud-platform",
110582	//     "https://www.googleapis.com/auth/compute"
110583	//   ]
110584	// }
110585
110586}
110587
110588// method id "compute.regionHealthCheckServices.get":
110589
110590type RegionHealthCheckServicesGetCall struct {
110591	s                  *Service
110592	project            string
110593	region             string
110594	healthCheckService string
110595	urlParams_         gensupport.URLParams
110596	ifNoneMatch_       string
110597	ctx_               context.Context
110598	header_            http.Header
110599}
110600
110601// Get: Returns the specified regional HealthCheckService resource.
110602func (r *RegionHealthCheckServicesService) Get(project string, region string, healthCheckService string) *RegionHealthCheckServicesGetCall {
110603	c := &RegionHealthCheckServicesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110604	c.project = project
110605	c.region = region
110606	c.healthCheckService = healthCheckService
110607	return c
110608}
110609
110610// Fields allows partial responses to be retrieved. See
110611// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110612// for more information.
110613func (c *RegionHealthCheckServicesGetCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesGetCall {
110614	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110615	return c
110616}
110617
110618// IfNoneMatch sets the optional parameter which makes the operation
110619// fail if the object's ETag matches the given value. This is useful for
110620// getting updates only after the object has changed since the last
110621// request. Use googleapi.IsNotModified to check whether the response
110622// error from Do is the result of In-None-Match.
110623func (c *RegionHealthCheckServicesGetCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesGetCall {
110624	c.ifNoneMatch_ = entityTag
110625	return c
110626}
110627
110628// Context sets the context to be used in this call's Do method. Any
110629// pending HTTP request will be aborted if the provided context is
110630// canceled.
110631func (c *RegionHealthCheckServicesGetCall) Context(ctx context.Context) *RegionHealthCheckServicesGetCall {
110632	c.ctx_ = ctx
110633	return c
110634}
110635
110636// Header returns an http.Header that can be modified by the caller to
110637// add HTTP headers to the request.
110638func (c *RegionHealthCheckServicesGetCall) Header() http.Header {
110639	if c.header_ == nil {
110640		c.header_ = make(http.Header)
110641	}
110642	return c.header_
110643}
110644
110645func (c *RegionHealthCheckServicesGetCall) doRequest(alt string) (*http.Response, error) {
110646	reqHeaders := make(http.Header)
110647	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110648	for k, v := range c.header_ {
110649		reqHeaders[k] = v
110650	}
110651	reqHeaders.Set("User-Agent", c.s.userAgent())
110652	if c.ifNoneMatch_ != "" {
110653		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
110654	}
110655	var body io.Reader = nil
110656	c.urlParams_.Set("alt", alt)
110657	c.urlParams_.Set("prettyPrint", "false")
110658	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
110659	urls += "?" + c.urlParams_.Encode()
110660	req, err := http.NewRequest("GET", urls, body)
110661	if err != nil {
110662		return nil, err
110663	}
110664	req.Header = reqHeaders
110665	googleapi.Expand(req.URL, map[string]string{
110666		"project":            c.project,
110667		"region":             c.region,
110668		"healthCheckService": c.healthCheckService,
110669	})
110670	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110671}
110672
110673// Do executes the "compute.regionHealthCheckServices.get" call.
110674// Exactly one of *HealthCheckService or error will be non-nil. Any
110675// non-2xx status code is an error. Response headers are in either
110676// *HealthCheckService.ServerResponse.Header or (if a response was
110677// returned at all) in error.(*googleapi.Error).Header. Use
110678// googleapi.IsNotModified to check whether the returned error was
110679// because http.StatusNotModified was returned.
110680func (c *RegionHealthCheckServicesGetCall) Do(opts ...googleapi.CallOption) (*HealthCheckService, error) {
110681	gensupport.SetOptions(c.urlParams_, opts...)
110682	res, err := c.doRequest("json")
110683	if res != nil && res.StatusCode == http.StatusNotModified {
110684		if res.Body != nil {
110685			res.Body.Close()
110686		}
110687		return nil, &googleapi.Error{
110688			Code:   res.StatusCode,
110689			Header: res.Header,
110690		}
110691	}
110692	if err != nil {
110693		return nil, err
110694	}
110695	defer googleapi.CloseBody(res)
110696	if err := googleapi.CheckResponse(res); err != nil {
110697		return nil, err
110698	}
110699	ret := &HealthCheckService{
110700		ServerResponse: googleapi.ServerResponse{
110701			Header:         res.Header,
110702			HTTPStatusCode: res.StatusCode,
110703		},
110704	}
110705	target := &ret
110706	if err := gensupport.DecodeResponse(target, res); err != nil {
110707		return nil, err
110708	}
110709	return ret, nil
110710	// {
110711	//   "description": "Returns the specified regional HealthCheckService resource.",
110712	//   "httpMethod": "GET",
110713	//   "id": "compute.regionHealthCheckServices.get",
110714	//   "parameterOrder": [
110715	//     "project",
110716	//     "region",
110717	//     "healthCheckService"
110718	//   ],
110719	//   "parameters": {
110720	//     "healthCheckService": {
110721	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
110722	//       "location": "path",
110723	//       "required": true,
110724	//       "type": "string"
110725	//     },
110726	//     "project": {
110727	//       "description": "Project ID for this request.",
110728	//       "location": "path",
110729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110730	//       "required": true,
110731	//       "type": "string"
110732	//     },
110733	//     "region": {
110734	//       "description": "Name of the region scoping this request.",
110735	//       "location": "path",
110736	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110737	//       "required": true,
110738	//       "type": "string"
110739	//     }
110740	//   },
110741	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
110742	//   "response": {
110743	//     "$ref": "HealthCheckService"
110744	//   },
110745	//   "scopes": [
110746	//     "https://www.googleapis.com/auth/cloud-platform",
110747	//     "https://www.googleapis.com/auth/compute",
110748	//     "https://www.googleapis.com/auth/compute.readonly"
110749	//   ]
110750	// }
110751
110752}
110753
110754// method id "compute.regionHealthCheckServices.insert":
110755
110756type RegionHealthCheckServicesInsertCall struct {
110757	s                  *Service
110758	project            string
110759	region             string
110760	healthcheckservice *HealthCheckService
110761	urlParams_         gensupport.URLParams
110762	ctx_               context.Context
110763	header_            http.Header
110764}
110765
110766// Insert: Creates a regional HealthCheckService resource in the
110767// specified project and region using the data included in the request.
110768func (r *RegionHealthCheckServicesService) Insert(project string, region string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesInsertCall {
110769	c := &RegionHealthCheckServicesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110770	c.project = project
110771	c.region = region
110772	c.healthcheckservice = healthcheckservice
110773	return c
110774}
110775
110776// RequestId sets the optional parameter "requestId": An optional
110777// request ID to identify requests. Specify a unique request ID so that
110778// if you must retry your request, the server will know to ignore the
110779// request if it has already been completed.
110780//
110781// For example, consider a situation where you make an initial request
110782// and the request times out. If you make the request again with the
110783// same request ID, the server can check if original operation with the
110784// same request ID was received, and if so, will ignore the second
110785// request. This prevents clients from accidentally creating duplicate
110786// commitments.
110787//
110788// The request ID must be a valid UUID with the exception that zero UUID
110789// is not supported (00000000-0000-0000-0000-000000000000).
110790func (c *RegionHealthCheckServicesInsertCall) RequestId(requestId string) *RegionHealthCheckServicesInsertCall {
110791	c.urlParams_.Set("requestId", requestId)
110792	return c
110793}
110794
110795// Fields allows partial responses to be retrieved. See
110796// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
110797// for more information.
110798func (c *RegionHealthCheckServicesInsertCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesInsertCall {
110799	c.urlParams_.Set("fields", googleapi.CombineFields(s))
110800	return c
110801}
110802
110803// Context sets the context to be used in this call's Do method. Any
110804// pending HTTP request will be aborted if the provided context is
110805// canceled.
110806func (c *RegionHealthCheckServicesInsertCall) Context(ctx context.Context) *RegionHealthCheckServicesInsertCall {
110807	c.ctx_ = ctx
110808	return c
110809}
110810
110811// Header returns an http.Header that can be modified by the caller to
110812// add HTTP headers to the request.
110813func (c *RegionHealthCheckServicesInsertCall) Header() http.Header {
110814	if c.header_ == nil {
110815		c.header_ = make(http.Header)
110816	}
110817	return c.header_
110818}
110819
110820func (c *RegionHealthCheckServicesInsertCall) doRequest(alt string) (*http.Response, error) {
110821	reqHeaders := make(http.Header)
110822	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
110823	for k, v := range c.header_ {
110824		reqHeaders[k] = v
110825	}
110826	reqHeaders.Set("User-Agent", c.s.userAgent())
110827	var body io.Reader = nil
110828	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
110829	if err != nil {
110830		return nil, err
110831	}
110832	reqHeaders.Set("Content-Type", "application/json")
110833	c.urlParams_.Set("alt", alt)
110834	c.urlParams_.Set("prettyPrint", "false")
110835	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
110836	urls += "?" + c.urlParams_.Encode()
110837	req, err := http.NewRequest("POST", urls, body)
110838	if err != nil {
110839		return nil, err
110840	}
110841	req.Header = reqHeaders
110842	googleapi.Expand(req.URL, map[string]string{
110843		"project": c.project,
110844		"region":  c.region,
110845	})
110846	return gensupport.SendRequest(c.ctx_, c.s.client, req)
110847}
110848
110849// Do executes the "compute.regionHealthCheckServices.insert" call.
110850// Exactly one of *Operation or error will be non-nil. Any non-2xx
110851// status code is an error. Response headers are in either
110852// *Operation.ServerResponse.Header or (if a response was returned at
110853// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
110854// to check whether the returned error was because
110855// http.StatusNotModified was returned.
110856func (c *RegionHealthCheckServicesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
110857	gensupport.SetOptions(c.urlParams_, opts...)
110858	res, err := c.doRequest("json")
110859	if res != nil && res.StatusCode == http.StatusNotModified {
110860		if res.Body != nil {
110861			res.Body.Close()
110862		}
110863		return nil, &googleapi.Error{
110864			Code:   res.StatusCode,
110865			Header: res.Header,
110866		}
110867	}
110868	if err != nil {
110869		return nil, err
110870	}
110871	defer googleapi.CloseBody(res)
110872	if err := googleapi.CheckResponse(res); err != nil {
110873		return nil, err
110874	}
110875	ret := &Operation{
110876		ServerResponse: googleapi.ServerResponse{
110877			Header:         res.Header,
110878			HTTPStatusCode: res.StatusCode,
110879		},
110880	}
110881	target := &ret
110882	if err := gensupport.DecodeResponse(target, res); err != nil {
110883		return nil, err
110884	}
110885	return ret, nil
110886	// {
110887	//   "description": "Creates a regional HealthCheckService resource in the specified project and region using the data included in the request.",
110888	//   "httpMethod": "POST",
110889	//   "id": "compute.regionHealthCheckServices.insert",
110890	//   "parameterOrder": [
110891	//     "project",
110892	//     "region"
110893	//   ],
110894	//   "parameters": {
110895	//     "project": {
110896	//       "description": "Project ID for this request.",
110897	//       "location": "path",
110898	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
110899	//       "required": true,
110900	//       "type": "string"
110901	//     },
110902	//     "region": {
110903	//       "description": "Name of the region scoping this request.",
110904	//       "location": "path",
110905	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
110906	//       "required": true,
110907	//       "type": "string"
110908	//     },
110909	//     "requestId": {
110910	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
110911	//       "location": "query",
110912	//       "type": "string"
110913	//     }
110914	//   },
110915	//   "path": "{project}/regions/{region}/healthCheckServices",
110916	//   "request": {
110917	//     "$ref": "HealthCheckService"
110918	//   },
110919	//   "response": {
110920	//     "$ref": "Operation"
110921	//   },
110922	//   "scopes": [
110923	//     "https://www.googleapis.com/auth/cloud-platform",
110924	//     "https://www.googleapis.com/auth/compute"
110925	//   ]
110926	// }
110927
110928}
110929
110930// method id "compute.regionHealthCheckServices.list":
110931
110932type RegionHealthCheckServicesListCall struct {
110933	s            *Service
110934	project      string
110935	region       string
110936	urlParams_   gensupport.URLParams
110937	ifNoneMatch_ string
110938	ctx_         context.Context
110939	header_      http.Header
110940}
110941
110942// List: Lists all the HealthCheckService resources that have been
110943// configured for the specified project in the given region.
110944func (r *RegionHealthCheckServicesService) List(project string, region string) *RegionHealthCheckServicesListCall {
110945	c := &RegionHealthCheckServicesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
110946	c.project = project
110947	c.region = region
110948	return c
110949}
110950
110951// Filter sets the optional parameter "filter": A filter expression that
110952// filters resources listed in the response. The expression must specify
110953// the field name, a comparison operator, and the value that you want to
110954// use for filtering. The value must be a string, a number, or a
110955// boolean. The comparison operator must be either =, !=, >, or <.
110956//
110957// For example, if you are filtering Compute Engine instances, you can
110958// exclude instances named example-instance by specifying name !=
110959// example-instance.
110960//
110961// You can also filter nested fields. For example, you could specify
110962// scheduling.automaticRestart = false to include instances only if they
110963// are not scheduled for automatic restarts. You can use filtering on
110964// nested fields to filter based on resource labels.
110965//
110966// To filter on multiple expressions, provide each separate expression
110967// within parentheses. For example, (scheduling.automaticRestart = true)
110968// (cpuPlatform = "Intel Skylake"). By default, each expression is an
110969// AND expression. However, you can include AND and OR expressions
110970// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
110971// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
110972// true).
110973func (c *RegionHealthCheckServicesListCall) Filter(filter string) *RegionHealthCheckServicesListCall {
110974	c.urlParams_.Set("filter", filter)
110975	return c
110976}
110977
110978// MaxResults sets the optional parameter "maxResults": The maximum
110979// number of results per page that should be returned. If the number of
110980// available results is larger than maxResults, Compute Engine returns a
110981// nextPageToken that can be used to get the next page of results in
110982// subsequent list requests. Acceptable values are 0 to 500, inclusive.
110983// (Default: 500)
110984func (c *RegionHealthCheckServicesListCall) MaxResults(maxResults int64) *RegionHealthCheckServicesListCall {
110985	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
110986	return c
110987}
110988
110989// OrderBy sets the optional parameter "orderBy": Sorts list results by
110990// a certain order. By default, results are returned in alphanumerical
110991// order based on the resource name.
110992//
110993// You can also sort results in descending order based on the creation
110994// timestamp using orderBy="creationTimestamp desc". This sorts results
110995// based on the creationTimestamp field in reverse chronological order
110996// (newest result first). Use this to sort resources like operations so
110997// that the newest operation is returned first.
110998//
110999// Currently, only sorting by name or creationTimestamp desc is
111000// supported.
111001func (c *RegionHealthCheckServicesListCall) OrderBy(orderBy string) *RegionHealthCheckServicesListCall {
111002	c.urlParams_.Set("orderBy", orderBy)
111003	return c
111004}
111005
111006// PageToken sets the optional parameter "pageToken": Specifies a page
111007// token to use. Set pageToken to the nextPageToken returned by a
111008// previous list request to get the next page of results.
111009func (c *RegionHealthCheckServicesListCall) PageToken(pageToken string) *RegionHealthCheckServicesListCall {
111010	c.urlParams_.Set("pageToken", pageToken)
111011	return c
111012}
111013
111014// Fields allows partial responses to be retrieved. See
111015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111016// for more information.
111017func (c *RegionHealthCheckServicesListCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesListCall {
111018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111019	return c
111020}
111021
111022// IfNoneMatch sets the optional parameter which makes the operation
111023// fail if the object's ETag matches the given value. This is useful for
111024// getting updates only after the object has changed since the last
111025// request. Use googleapi.IsNotModified to check whether the response
111026// error from Do is the result of In-None-Match.
111027func (c *RegionHealthCheckServicesListCall) IfNoneMatch(entityTag string) *RegionHealthCheckServicesListCall {
111028	c.ifNoneMatch_ = entityTag
111029	return c
111030}
111031
111032// Context sets the context to be used in this call's Do method. Any
111033// pending HTTP request will be aborted if the provided context is
111034// canceled.
111035func (c *RegionHealthCheckServicesListCall) Context(ctx context.Context) *RegionHealthCheckServicesListCall {
111036	c.ctx_ = ctx
111037	return c
111038}
111039
111040// Header returns an http.Header that can be modified by the caller to
111041// add HTTP headers to the request.
111042func (c *RegionHealthCheckServicesListCall) Header() http.Header {
111043	if c.header_ == nil {
111044		c.header_ = make(http.Header)
111045	}
111046	return c.header_
111047}
111048
111049func (c *RegionHealthCheckServicesListCall) doRequest(alt string) (*http.Response, error) {
111050	reqHeaders := make(http.Header)
111051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111052	for k, v := range c.header_ {
111053		reqHeaders[k] = v
111054	}
111055	reqHeaders.Set("User-Agent", c.s.userAgent())
111056	if c.ifNoneMatch_ != "" {
111057		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111058	}
111059	var body io.Reader = nil
111060	c.urlParams_.Set("alt", alt)
111061	c.urlParams_.Set("prettyPrint", "false")
111062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices")
111063	urls += "?" + c.urlParams_.Encode()
111064	req, err := http.NewRequest("GET", urls, body)
111065	if err != nil {
111066		return nil, err
111067	}
111068	req.Header = reqHeaders
111069	googleapi.Expand(req.URL, map[string]string{
111070		"project": c.project,
111071		"region":  c.region,
111072	})
111073	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111074}
111075
111076// Do executes the "compute.regionHealthCheckServices.list" call.
111077// Exactly one of *HealthCheckServicesList or error will be non-nil. Any
111078// non-2xx status code is an error. Response headers are in either
111079// *HealthCheckServicesList.ServerResponse.Header or (if a response was
111080// returned at all) in error.(*googleapi.Error).Header. Use
111081// googleapi.IsNotModified to check whether the returned error was
111082// because http.StatusNotModified was returned.
111083func (c *RegionHealthCheckServicesListCall) Do(opts ...googleapi.CallOption) (*HealthCheckServicesList, error) {
111084	gensupport.SetOptions(c.urlParams_, opts...)
111085	res, err := c.doRequest("json")
111086	if res != nil && res.StatusCode == http.StatusNotModified {
111087		if res.Body != nil {
111088			res.Body.Close()
111089		}
111090		return nil, &googleapi.Error{
111091			Code:   res.StatusCode,
111092			Header: res.Header,
111093		}
111094	}
111095	if err != nil {
111096		return nil, err
111097	}
111098	defer googleapi.CloseBody(res)
111099	if err := googleapi.CheckResponse(res); err != nil {
111100		return nil, err
111101	}
111102	ret := &HealthCheckServicesList{
111103		ServerResponse: googleapi.ServerResponse{
111104			Header:         res.Header,
111105			HTTPStatusCode: res.StatusCode,
111106		},
111107	}
111108	target := &ret
111109	if err := gensupport.DecodeResponse(target, res); err != nil {
111110		return nil, err
111111	}
111112	return ret, nil
111113	// {
111114	//   "description": "Lists all the HealthCheckService resources that have been configured for the specified project in the given region.",
111115	//   "httpMethod": "GET",
111116	//   "id": "compute.regionHealthCheckServices.list",
111117	//   "parameterOrder": [
111118	//     "project",
111119	//     "region"
111120	//   ],
111121	//   "parameters": {
111122	//     "filter": {
111123	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
111124	//       "location": "query",
111125	//       "type": "string"
111126	//     },
111127	//     "maxResults": {
111128	//       "default": "500",
111129	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
111130	//       "format": "uint32",
111131	//       "location": "query",
111132	//       "minimum": "0",
111133	//       "type": "integer"
111134	//     },
111135	//     "orderBy": {
111136	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
111137	//       "location": "query",
111138	//       "type": "string"
111139	//     },
111140	//     "pageToken": {
111141	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
111142	//       "location": "query",
111143	//       "type": "string"
111144	//     },
111145	//     "project": {
111146	//       "description": "Project ID for this request.",
111147	//       "location": "path",
111148	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111149	//       "required": true,
111150	//       "type": "string"
111151	//     },
111152	//     "region": {
111153	//       "description": "Name of the region scoping this request.",
111154	//       "location": "path",
111155	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111156	//       "required": true,
111157	//       "type": "string"
111158	//     }
111159	//   },
111160	//   "path": "{project}/regions/{region}/healthCheckServices",
111161	//   "response": {
111162	//     "$ref": "HealthCheckServicesList"
111163	//   },
111164	//   "scopes": [
111165	//     "https://www.googleapis.com/auth/cloud-platform",
111166	//     "https://www.googleapis.com/auth/compute",
111167	//     "https://www.googleapis.com/auth/compute.readonly"
111168	//   ]
111169	// }
111170
111171}
111172
111173// Pages invokes f for each page of results.
111174// A non-nil error returned from f will halt the iteration.
111175// The provided context supersedes any context provided to the Context method.
111176func (c *RegionHealthCheckServicesListCall) Pages(ctx context.Context, f func(*HealthCheckServicesList) error) error {
111177	c.ctx_ = ctx
111178	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
111179	for {
111180		x, err := c.Do()
111181		if err != nil {
111182			return err
111183		}
111184		if err := f(x); err != nil {
111185			return err
111186		}
111187		if x.NextPageToken == "" {
111188			return nil
111189		}
111190		c.PageToken(x.NextPageToken)
111191	}
111192}
111193
111194// method id "compute.regionHealthCheckServices.patch":
111195
111196type RegionHealthCheckServicesPatchCall struct {
111197	s                  *Service
111198	project            string
111199	region             string
111200	healthCheckService string
111201	healthcheckservice *HealthCheckService
111202	urlParams_         gensupport.URLParams
111203	ctx_               context.Context
111204	header_            http.Header
111205}
111206
111207// Patch: Updates the specified regional HealthCheckService resource
111208// with the data included in the request. This method supports PATCH
111209// semantics and uses the JSON merge patch format and processing rules.
111210func (r *RegionHealthCheckServicesService) Patch(project string, region string, healthCheckService string, healthcheckservice *HealthCheckService) *RegionHealthCheckServicesPatchCall {
111211	c := &RegionHealthCheckServicesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111212	c.project = project
111213	c.region = region
111214	c.healthCheckService = healthCheckService
111215	c.healthcheckservice = healthcheckservice
111216	return c
111217}
111218
111219// RequestId sets the optional parameter "requestId": An optional
111220// request ID to identify requests. Specify a unique request ID so that
111221// if you must retry your request, the server will know to ignore the
111222// request if it has already been completed.
111223//
111224// For example, consider a situation where you make an initial request
111225// and the request times out. If you make the request again with the
111226// same request ID, the server can check if original operation with the
111227// same request ID was received, and if so, will ignore the second
111228// request. This prevents clients from accidentally creating duplicate
111229// commitments.
111230//
111231// The request ID must be a valid UUID with the exception that zero UUID
111232// is not supported (00000000-0000-0000-0000-000000000000).
111233func (c *RegionHealthCheckServicesPatchCall) RequestId(requestId string) *RegionHealthCheckServicesPatchCall {
111234	c.urlParams_.Set("requestId", requestId)
111235	return c
111236}
111237
111238// Fields allows partial responses to be retrieved. See
111239// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111240// for more information.
111241func (c *RegionHealthCheckServicesPatchCall) Fields(s ...googleapi.Field) *RegionHealthCheckServicesPatchCall {
111242	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111243	return c
111244}
111245
111246// Context sets the context to be used in this call's Do method. Any
111247// pending HTTP request will be aborted if the provided context is
111248// canceled.
111249func (c *RegionHealthCheckServicesPatchCall) Context(ctx context.Context) *RegionHealthCheckServicesPatchCall {
111250	c.ctx_ = ctx
111251	return c
111252}
111253
111254// Header returns an http.Header that can be modified by the caller to
111255// add HTTP headers to the request.
111256func (c *RegionHealthCheckServicesPatchCall) Header() http.Header {
111257	if c.header_ == nil {
111258		c.header_ = make(http.Header)
111259	}
111260	return c.header_
111261}
111262
111263func (c *RegionHealthCheckServicesPatchCall) doRequest(alt string) (*http.Response, error) {
111264	reqHeaders := make(http.Header)
111265	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111266	for k, v := range c.header_ {
111267		reqHeaders[k] = v
111268	}
111269	reqHeaders.Set("User-Agent", c.s.userAgent())
111270	var body io.Reader = nil
111271	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheckservice)
111272	if err != nil {
111273		return nil, err
111274	}
111275	reqHeaders.Set("Content-Type", "application/json")
111276	c.urlParams_.Set("alt", alt)
111277	c.urlParams_.Set("prettyPrint", "false")
111278	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthCheckServices/{healthCheckService}")
111279	urls += "?" + c.urlParams_.Encode()
111280	req, err := http.NewRequest("PATCH", urls, body)
111281	if err != nil {
111282		return nil, err
111283	}
111284	req.Header = reqHeaders
111285	googleapi.Expand(req.URL, map[string]string{
111286		"project":            c.project,
111287		"region":             c.region,
111288		"healthCheckService": c.healthCheckService,
111289	})
111290	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111291}
111292
111293// Do executes the "compute.regionHealthCheckServices.patch" call.
111294// Exactly one of *Operation or error will be non-nil. Any non-2xx
111295// status code is an error. Response headers are in either
111296// *Operation.ServerResponse.Header or (if a response was returned at
111297// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111298// to check whether the returned error was because
111299// http.StatusNotModified was returned.
111300func (c *RegionHealthCheckServicesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111301	gensupport.SetOptions(c.urlParams_, opts...)
111302	res, err := c.doRequest("json")
111303	if res != nil && res.StatusCode == http.StatusNotModified {
111304		if res.Body != nil {
111305			res.Body.Close()
111306		}
111307		return nil, &googleapi.Error{
111308			Code:   res.StatusCode,
111309			Header: res.Header,
111310		}
111311	}
111312	if err != nil {
111313		return nil, err
111314	}
111315	defer googleapi.CloseBody(res)
111316	if err := googleapi.CheckResponse(res); err != nil {
111317		return nil, err
111318	}
111319	ret := &Operation{
111320		ServerResponse: googleapi.ServerResponse{
111321			Header:         res.Header,
111322			HTTPStatusCode: res.StatusCode,
111323		},
111324	}
111325	target := &ret
111326	if err := gensupport.DecodeResponse(target, res); err != nil {
111327		return nil, err
111328	}
111329	return ret, nil
111330	// {
111331	//   "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.",
111332	//   "httpMethod": "PATCH",
111333	//   "id": "compute.regionHealthCheckServices.patch",
111334	//   "parameterOrder": [
111335	//     "project",
111336	//     "region",
111337	//     "healthCheckService"
111338	//   ],
111339	//   "parameters": {
111340	//     "healthCheckService": {
111341	//       "description": "Name of the HealthCheckService to update. The name must be 1-63 characters long, and comply with RFC1035.",
111342	//       "location": "path",
111343	//       "required": true,
111344	//       "type": "string"
111345	//     },
111346	//     "project": {
111347	//       "description": "Project ID for this request.",
111348	//       "location": "path",
111349	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111350	//       "required": true,
111351	//       "type": "string"
111352	//     },
111353	//     "region": {
111354	//       "description": "Name of the region scoping this request.",
111355	//       "location": "path",
111356	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111357	//       "required": true,
111358	//       "type": "string"
111359	//     },
111360	//     "requestId": {
111361	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111362	//       "location": "query",
111363	//       "type": "string"
111364	//     }
111365	//   },
111366	//   "path": "{project}/regions/{region}/healthCheckServices/{healthCheckService}",
111367	//   "request": {
111368	//     "$ref": "HealthCheckService"
111369	//   },
111370	//   "response": {
111371	//     "$ref": "Operation"
111372	//   },
111373	//   "scopes": [
111374	//     "https://www.googleapis.com/auth/cloud-platform",
111375	//     "https://www.googleapis.com/auth/compute"
111376	//   ]
111377	// }
111378
111379}
111380
111381// method id "compute.regionHealthChecks.delete":
111382
111383type RegionHealthChecksDeleteCall struct {
111384	s           *Service
111385	project     string
111386	region      string
111387	healthCheck string
111388	urlParams_  gensupport.URLParams
111389	ctx_        context.Context
111390	header_     http.Header
111391}
111392
111393// Delete: Deletes the specified HealthCheck resource.
111394func (r *RegionHealthChecksService) Delete(project string, region string, healthCheck string) *RegionHealthChecksDeleteCall {
111395	c := &RegionHealthChecksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111396	c.project = project
111397	c.region = region
111398	c.healthCheck = healthCheck
111399	return c
111400}
111401
111402// RequestId sets the optional parameter "requestId": An optional
111403// request ID to identify requests. Specify a unique request ID so that
111404// if you must retry your request, the server will know to ignore the
111405// request if it has already been completed.
111406//
111407// For example, consider a situation where you make an initial request
111408// and the request times out. If you make the request again with the
111409// same request ID, the server can check if original operation with the
111410// same request ID was received, and if so, will ignore the second
111411// request. This prevents clients from accidentally creating duplicate
111412// commitments.
111413//
111414// The request ID must be a valid UUID with the exception that zero UUID
111415// is not supported (00000000-0000-0000-0000-000000000000).
111416func (c *RegionHealthChecksDeleteCall) RequestId(requestId string) *RegionHealthChecksDeleteCall {
111417	c.urlParams_.Set("requestId", requestId)
111418	return c
111419}
111420
111421// Fields allows partial responses to be retrieved. See
111422// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111423// for more information.
111424func (c *RegionHealthChecksDeleteCall) Fields(s ...googleapi.Field) *RegionHealthChecksDeleteCall {
111425	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111426	return c
111427}
111428
111429// Context sets the context to be used in this call's Do method. Any
111430// pending HTTP request will be aborted if the provided context is
111431// canceled.
111432func (c *RegionHealthChecksDeleteCall) Context(ctx context.Context) *RegionHealthChecksDeleteCall {
111433	c.ctx_ = ctx
111434	return c
111435}
111436
111437// Header returns an http.Header that can be modified by the caller to
111438// add HTTP headers to the request.
111439func (c *RegionHealthChecksDeleteCall) Header() http.Header {
111440	if c.header_ == nil {
111441		c.header_ = make(http.Header)
111442	}
111443	return c.header_
111444}
111445
111446func (c *RegionHealthChecksDeleteCall) doRequest(alt string) (*http.Response, error) {
111447	reqHeaders := make(http.Header)
111448	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111449	for k, v := range c.header_ {
111450		reqHeaders[k] = v
111451	}
111452	reqHeaders.Set("User-Agent", c.s.userAgent())
111453	var body io.Reader = nil
111454	c.urlParams_.Set("alt", alt)
111455	c.urlParams_.Set("prettyPrint", "false")
111456	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
111457	urls += "?" + c.urlParams_.Encode()
111458	req, err := http.NewRequest("DELETE", urls, body)
111459	if err != nil {
111460		return nil, err
111461	}
111462	req.Header = reqHeaders
111463	googleapi.Expand(req.URL, map[string]string{
111464		"project":     c.project,
111465		"region":      c.region,
111466		"healthCheck": c.healthCheck,
111467	})
111468	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111469}
111470
111471// Do executes the "compute.regionHealthChecks.delete" call.
111472// Exactly one of *Operation or error will be non-nil. Any non-2xx
111473// status code is an error. Response headers are in either
111474// *Operation.ServerResponse.Header or (if a response was returned at
111475// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111476// to check whether the returned error was because
111477// http.StatusNotModified was returned.
111478func (c *RegionHealthChecksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111479	gensupport.SetOptions(c.urlParams_, opts...)
111480	res, err := c.doRequest("json")
111481	if res != nil && res.StatusCode == http.StatusNotModified {
111482		if res.Body != nil {
111483			res.Body.Close()
111484		}
111485		return nil, &googleapi.Error{
111486			Code:   res.StatusCode,
111487			Header: res.Header,
111488		}
111489	}
111490	if err != nil {
111491		return nil, err
111492	}
111493	defer googleapi.CloseBody(res)
111494	if err := googleapi.CheckResponse(res); err != nil {
111495		return nil, err
111496	}
111497	ret := &Operation{
111498		ServerResponse: googleapi.ServerResponse{
111499			Header:         res.Header,
111500			HTTPStatusCode: res.StatusCode,
111501		},
111502	}
111503	target := &ret
111504	if err := gensupport.DecodeResponse(target, res); err != nil {
111505		return nil, err
111506	}
111507	return ret, nil
111508	// {
111509	//   "description": "Deletes the specified HealthCheck resource.",
111510	//   "httpMethod": "DELETE",
111511	//   "id": "compute.regionHealthChecks.delete",
111512	//   "parameterOrder": [
111513	//     "project",
111514	//     "region",
111515	//     "healthCheck"
111516	//   ],
111517	//   "parameters": {
111518	//     "healthCheck": {
111519	//       "description": "Name of the HealthCheck resource to delete.",
111520	//       "location": "path",
111521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111522	//       "required": true,
111523	//       "type": "string"
111524	//     },
111525	//     "project": {
111526	//       "description": "Project ID for this request.",
111527	//       "location": "path",
111528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111529	//       "required": true,
111530	//       "type": "string"
111531	//     },
111532	//     "region": {
111533	//       "description": "Name of the region scoping this request.",
111534	//       "location": "path",
111535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111536	//       "required": true,
111537	//       "type": "string"
111538	//     },
111539	//     "requestId": {
111540	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111541	//       "location": "query",
111542	//       "type": "string"
111543	//     }
111544	//   },
111545	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
111546	//   "response": {
111547	//     "$ref": "Operation"
111548	//   },
111549	//   "scopes": [
111550	//     "https://www.googleapis.com/auth/cloud-platform",
111551	//     "https://www.googleapis.com/auth/compute"
111552	//   ]
111553	// }
111554
111555}
111556
111557// method id "compute.regionHealthChecks.get":
111558
111559type RegionHealthChecksGetCall struct {
111560	s            *Service
111561	project      string
111562	region       string
111563	healthCheck  string
111564	urlParams_   gensupport.URLParams
111565	ifNoneMatch_ string
111566	ctx_         context.Context
111567	header_      http.Header
111568}
111569
111570// Get: Returns the specified HealthCheck resource. Gets a list of
111571// available health checks by making a list() request.
111572func (r *RegionHealthChecksService) Get(project string, region string, healthCheck string) *RegionHealthChecksGetCall {
111573	c := &RegionHealthChecksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111574	c.project = project
111575	c.region = region
111576	c.healthCheck = healthCheck
111577	return c
111578}
111579
111580// Fields allows partial responses to be retrieved. See
111581// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111582// for more information.
111583func (c *RegionHealthChecksGetCall) Fields(s ...googleapi.Field) *RegionHealthChecksGetCall {
111584	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111585	return c
111586}
111587
111588// IfNoneMatch sets the optional parameter which makes the operation
111589// fail if the object's ETag matches the given value. This is useful for
111590// getting updates only after the object has changed since the last
111591// request. Use googleapi.IsNotModified to check whether the response
111592// error from Do is the result of In-None-Match.
111593func (c *RegionHealthChecksGetCall) IfNoneMatch(entityTag string) *RegionHealthChecksGetCall {
111594	c.ifNoneMatch_ = entityTag
111595	return c
111596}
111597
111598// Context sets the context to be used in this call's Do method. Any
111599// pending HTTP request will be aborted if the provided context is
111600// canceled.
111601func (c *RegionHealthChecksGetCall) Context(ctx context.Context) *RegionHealthChecksGetCall {
111602	c.ctx_ = ctx
111603	return c
111604}
111605
111606// Header returns an http.Header that can be modified by the caller to
111607// add HTTP headers to the request.
111608func (c *RegionHealthChecksGetCall) Header() http.Header {
111609	if c.header_ == nil {
111610		c.header_ = make(http.Header)
111611	}
111612	return c.header_
111613}
111614
111615func (c *RegionHealthChecksGetCall) doRequest(alt string) (*http.Response, error) {
111616	reqHeaders := make(http.Header)
111617	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111618	for k, v := range c.header_ {
111619		reqHeaders[k] = v
111620	}
111621	reqHeaders.Set("User-Agent", c.s.userAgent())
111622	if c.ifNoneMatch_ != "" {
111623		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
111624	}
111625	var body io.Reader = nil
111626	c.urlParams_.Set("alt", alt)
111627	c.urlParams_.Set("prettyPrint", "false")
111628	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
111629	urls += "?" + c.urlParams_.Encode()
111630	req, err := http.NewRequest("GET", urls, body)
111631	if err != nil {
111632		return nil, err
111633	}
111634	req.Header = reqHeaders
111635	googleapi.Expand(req.URL, map[string]string{
111636		"project":     c.project,
111637		"region":      c.region,
111638		"healthCheck": c.healthCheck,
111639	})
111640	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111641}
111642
111643// Do executes the "compute.regionHealthChecks.get" call.
111644// Exactly one of *HealthCheck or error will be non-nil. Any non-2xx
111645// status code is an error. Response headers are in either
111646// *HealthCheck.ServerResponse.Header or (if a response was returned at
111647// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111648// to check whether the returned error was because
111649// http.StatusNotModified was returned.
111650func (c *RegionHealthChecksGetCall) Do(opts ...googleapi.CallOption) (*HealthCheck, error) {
111651	gensupport.SetOptions(c.urlParams_, opts...)
111652	res, err := c.doRequest("json")
111653	if res != nil && res.StatusCode == http.StatusNotModified {
111654		if res.Body != nil {
111655			res.Body.Close()
111656		}
111657		return nil, &googleapi.Error{
111658			Code:   res.StatusCode,
111659			Header: res.Header,
111660		}
111661	}
111662	if err != nil {
111663		return nil, err
111664	}
111665	defer googleapi.CloseBody(res)
111666	if err := googleapi.CheckResponse(res); err != nil {
111667		return nil, err
111668	}
111669	ret := &HealthCheck{
111670		ServerResponse: googleapi.ServerResponse{
111671			Header:         res.Header,
111672			HTTPStatusCode: res.StatusCode,
111673		},
111674	}
111675	target := &ret
111676	if err := gensupport.DecodeResponse(target, res); err != nil {
111677		return nil, err
111678	}
111679	return ret, nil
111680	// {
111681	//   "description": "Returns the specified HealthCheck resource. Gets a list of available health checks by making a list() request.",
111682	//   "httpMethod": "GET",
111683	//   "id": "compute.regionHealthChecks.get",
111684	//   "parameterOrder": [
111685	//     "project",
111686	//     "region",
111687	//     "healthCheck"
111688	//   ],
111689	//   "parameters": {
111690	//     "healthCheck": {
111691	//       "description": "Name of the HealthCheck resource to return.",
111692	//       "location": "path",
111693	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
111694	//       "required": true,
111695	//       "type": "string"
111696	//     },
111697	//     "project": {
111698	//       "description": "Project ID for this request.",
111699	//       "location": "path",
111700	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111701	//       "required": true,
111702	//       "type": "string"
111703	//     },
111704	//     "region": {
111705	//       "description": "Name of the region scoping this request.",
111706	//       "location": "path",
111707	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111708	//       "required": true,
111709	//       "type": "string"
111710	//     }
111711	//   },
111712	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
111713	//   "response": {
111714	//     "$ref": "HealthCheck"
111715	//   },
111716	//   "scopes": [
111717	//     "https://www.googleapis.com/auth/cloud-platform",
111718	//     "https://www.googleapis.com/auth/compute",
111719	//     "https://www.googleapis.com/auth/compute.readonly"
111720	//   ]
111721	// }
111722
111723}
111724
111725// method id "compute.regionHealthChecks.insert":
111726
111727type RegionHealthChecksInsertCall struct {
111728	s           *Service
111729	project     string
111730	region      string
111731	healthcheck *HealthCheck
111732	urlParams_  gensupport.URLParams
111733	ctx_        context.Context
111734	header_     http.Header
111735}
111736
111737// Insert: Creates a HealthCheck resource in the specified project using
111738// the data included in the request.
111739func (r *RegionHealthChecksService) Insert(project string, region string, healthcheck *HealthCheck) *RegionHealthChecksInsertCall {
111740	c := &RegionHealthChecksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111741	c.project = project
111742	c.region = region
111743	c.healthcheck = healthcheck
111744	return c
111745}
111746
111747// RequestId sets the optional parameter "requestId": An optional
111748// request ID to identify requests. Specify a unique request ID so that
111749// if you must retry your request, the server will know to ignore the
111750// request if it has already been completed.
111751//
111752// For example, consider a situation where you make an initial request
111753// and the request times out. If you make the request again with the
111754// same request ID, the server can check if original operation with the
111755// same request ID was received, and if so, will ignore the second
111756// request. This prevents clients from accidentally creating duplicate
111757// commitments.
111758//
111759// The request ID must be a valid UUID with the exception that zero UUID
111760// is not supported (00000000-0000-0000-0000-000000000000).
111761func (c *RegionHealthChecksInsertCall) RequestId(requestId string) *RegionHealthChecksInsertCall {
111762	c.urlParams_.Set("requestId", requestId)
111763	return c
111764}
111765
111766// Fields allows partial responses to be retrieved. See
111767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111768// for more information.
111769func (c *RegionHealthChecksInsertCall) Fields(s ...googleapi.Field) *RegionHealthChecksInsertCall {
111770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111771	return c
111772}
111773
111774// Context sets the context to be used in this call's Do method. Any
111775// pending HTTP request will be aborted if the provided context is
111776// canceled.
111777func (c *RegionHealthChecksInsertCall) Context(ctx context.Context) *RegionHealthChecksInsertCall {
111778	c.ctx_ = ctx
111779	return c
111780}
111781
111782// Header returns an http.Header that can be modified by the caller to
111783// add HTTP headers to the request.
111784func (c *RegionHealthChecksInsertCall) Header() http.Header {
111785	if c.header_ == nil {
111786		c.header_ = make(http.Header)
111787	}
111788	return c.header_
111789}
111790
111791func (c *RegionHealthChecksInsertCall) doRequest(alt string) (*http.Response, error) {
111792	reqHeaders := make(http.Header)
111793	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
111794	for k, v := range c.header_ {
111795		reqHeaders[k] = v
111796	}
111797	reqHeaders.Set("User-Agent", c.s.userAgent())
111798	var body io.Reader = nil
111799	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
111800	if err != nil {
111801		return nil, err
111802	}
111803	reqHeaders.Set("Content-Type", "application/json")
111804	c.urlParams_.Set("alt", alt)
111805	c.urlParams_.Set("prettyPrint", "false")
111806	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
111807	urls += "?" + c.urlParams_.Encode()
111808	req, err := http.NewRequest("POST", urls, body)
111809	if err != nil {
111810		return nil, err
111811	}
111812	req.Header = reqHeaders
111813	googleapi.Expand(req.URL, map[string]string{
111814		"project": c.project,
111815		"region":  c.region,
111816	})
111817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
111818}
111819
111820// Do executes the "compute.regionHealthChecks.insert" call.
111821// Exactly one of *Operation or error will be non-nil. Any non-2xx
111822// status code is an error. Response headers are in either
111823// *Operation.ServerResponse.Header or (if a response was returned at
111824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
111825// to check whether the returned error was because
111826// http.StatusNotModified was returned.
111827func (c *RegionHealthChecksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
111828	gensupport.SetOptions(c.urlParams_, opts...)
111829	res, err := c.doRequest("json")
111830	if res != nil && res.StatusCode == http.StatusNotModified {
111831		if res.Body != nil {
111832			res.Body.Close()
111833		}
111834		return nil, &googleapi.Error{
111835			Code:   res.StatusCode,
111836			Header: res.Header,
111837		}
111838	}
111839	if err != nil {
111840		return nil, err
111841	}
111842	defer googleapi.CloseBody(res)
111843	if err := googleapi.CheckResponse(res); err != nil {
111844		return nil, err
111845	}
111846	ret := &Operation{
111847		ServerResponse: googleapi.ServerResponse{
111848			Header:         res.Header,
111849			HTTPStatusCode: res.StatusCode,
111850		},
111851	}
111852	target := &ret
111853	if err := gensupport.DecodeResponse(target, res); err != nil {
111854		return nil, err
111855	}
111856	return ret, nil
111857	// {
111858	//   "description": "Creates a HealthCheck resource in the specified project using the data included in the request.",
111859	//   "httpMethod": "POST",
111860	//   "id": "compute.regionHealthChecks.insert",
111861	//   "parameterOrder": [
111862	//     "project",
111863	//     "region"
111864	//   ],
111865	//   "parameters": {
111866	//     "project": {
111867	//       "description": "Project ID for this request.",
111868	//       "location": "path",
111869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
111870	//       "required": true,
111871	//       "type": "string"
111872	//     },
111873	//     "region": {
111874	//       "description": "Name of the region scoping this request.",
111875	//       "location": "path",
111876	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
111877	//       "required": true,
111878	//       "type": "string"
111879	//     },
111880	//     "requestId": {
111881	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
111882	//       "location": "query",
111883	//       "type": "string"
111884	//     }
111885	//   },
111886	//   "path": "{project}/regions/{region}/healthChecks",
111887	//   "request": {
111888	//     "$ref": "HealthCheck"
111889	//   },
111890	//   "response": {
111891	//     "$ref": "Operation"
111892	//   },
111893	//   "scopes": [
111894	//     "https://www.googleapis.com/auth/cloud-platform",
111895	//     "https://www.googleapis.com/auth/compute"
111896	//   ]
111897	// }
111898
111899}
111900
111901// method id "compute.regionHealthChecks.list":
111902
111903type RegionHealthChecksListCall struct {
111904	s            *Service
111905	project      string
111906	region       string
111907	urlParams_   gensupport.URLParams
111908	ifNoneMatch_ string
111909	ctx_         context.Context
111910	header_      http.Header
111911}
111912
111913// List: Retrieves the list of HealthCheck resources available to the
111914// specified project.
111915func (r *RegionHealthChecksService) List(project string, region string) *RegionHealthChecksListCall {
111916	c := &RegionHealthChecksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
111917	c.project = project
111918	c.region = region
111919	return c
111920}
111921
111922// Filter sets the optional parameter "filter": A filter expression that
111923// filters resources listed in the response. The expression must specify
111924// the field name, a comparison operator, and the value that you want to
111925// use for filtering. The value must be a string, a number, or a
111926// boolean. The comparison operator must be either =, !=, >, or <.
111927//
111928// For example, if you are filtering Compute Engine instances, you can
111929// exclude instances named example-instance by specifying name !=
111930// example-instance.
111931//
111932// You can also filter nested fields. For example, you could specify
111933// scheduling.automaticRestart = false to include instances only if they
111934// are not scheduled for automatic restarts. You can use filtering on
111935// nested fields to filter based on resource labels.
111936//
111937// To filter on multiple expressions, provide each separate expression
111938// within parentheses. For example, (scheduling.automaticRestart = true)
111939// (cpuPlatform = "Intel Skylake"). By default, each expression is an
111940// AND expression. However, you can include AND and OR expressions
111941// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
111942// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
111943// true).
111944func (c *RegionHealthChecksListCall) Filter(filter string) *RegionHealthChecksListCall {
111945	c.urlParams_.Set("filter", filter)
111946	return c
111947}
111948
111949// MaxResults sets the optional parameter "maxResults": The maximum
111950// number of results per page that should be returned. If the number of
111951// available results is larger than maxResults, Compute Engine returns a
111952// nextPageToken that can be used to get the next page of results in
111953// subsequent list requests. Acceptable values are 0 to 500, inclusive.
111954// (Default: 500)
111955func (c *RegionHealthChecksListCall) MaxResults(maxResults int64) *RegionHealthChecksListCall {
111956	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
111957	return c
111958}
111959
111960// OrderBy sets the optional parameter "orderBy": Sorts list results by
111961// a certain order. By default, results are returned in alphanumerical
111962// order based on the resource name.
111963//
111964// You can also sort results in descending order based on the creation
111965// timestamp using orderBy="creationTimestamp desc". This sorts results
111966// based on the creationTimestamp field in reverse chronological order
111967// (newest result first). Use this to sort resources like operations so
111968// that the newest operation is returned first.
111969//
111970// Currently, only sorting by name or creationTimestamp desc is
111971// supported.
111972func (c *RegionHealthChecksListCall) OrderBy(orderBy string) *RegionHealthChecksListCall {
111973	c.urlParams_.Set("orderBy", orderBy)
111974	return c
111975}
111976
111977// PageToken sets the optional parameter "pageToken": Specifies a page
111978// token to use. Set pageToken to the nextPageToken returned by a
111979// previous list request to get the next page of results.
111980func (c *RegionHealthChecksListCall) PageToken(pageToken string) *RegionHealthChecksListCall {
111981	c.urlParams_.Set("pageToken", pageToken)
111982	return c
111983}
111984
111985// Fields allows partial responses to be retrieved. See
111986// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
111987// for more information.
111988func (c *RegionHealthChecksListCall) Fields(s ...googleapi.Field) *RegionHealthChecksListCall {
111989	c.urlParams_.Set("fields", googleapi.CombineFields(s))
111990	return c
111991}
111992
111993// IfNoneMatch sets the optional parameter which makes the operation
111994// fail if the object's ETag matches the given value. This is useful for
111995// getting updates only after the object has changed since the last
111996// request. Use googleapi.IsNotModified to check whether the response
111997// error from Do is the result of In-None-Match.
111998func (c *RegionHealthChecksListCall) IfNoneMatch(entityTag string) *RegionHealthChecksListCall {
111999	c.ifNoneMatch_ = entityTag
112000	return c
112001}
112002
112003// Context sets the context to be used in this call's Do method. Any
112004// pending HTTP request will be aborted if the provided context is
112005// canceled.
112006func (c *RegionHealthChecksListCall) Context(ctx context.Context) *RegionHealthChecksListCall {
112007	c.ctx_ = ctx
112008	return c
112009}
112010
112011// Header returns an http.Header that can be modified by the caller to
112012// add HTTP headers to the request.
112013func (c *RegionHealthChecksListCall) Header() http.Header {
112014	if c.header_ == nil {
112015		c.header_ = make(http.Header)
112016	}
112017	return c.header_
112018}
112019
112020func (c *RegionHealthChecksListCall) doRequest(alt string) (*http.Response, error) {
112021	reqHeaders := make(http.Header)
112022	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112023	for k, v := range c.header_ {
112024		reqHeaders[k] = v
112025	}
112026	reqHeaders.Set("User-Agent", c.s.userAgent())
112027	if c.ifNoneMatch_ != "" {
112028		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
112029	}
112030	var body io.Reader = nil
112031	c.urlParams_.Set("alt", alt)
112032	c.urlParams_.Set("prettyPrint", "false")
112033	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks")
112034	urls += "?" + c.urlParams_.Encode()
112035	req, err := http.NewRequest("GET", urls, body)
112036	if err != nil {
112037		return nil, err
112038	}
112039	req.Header = reqHeaders
112040	googleapi.Expand(req.URL, map[string]string{
112041		"project": c.project,
112042		"region":  c.region,
112043	})
112044	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112045}
112046
112047// Do executes the "compute.regionHealthChecks.list" call.
112048// Exactly one of *HealthCheckList or error will be non-nil. Any non-2xx
112049// status code is an error. Response headers are in either
112050// *HealthCheckList.ServerResponse.Header or (if a response was returned
112051// at all) in error.(*googleapi.Error).Header. Use
112052// googleapi.IsNotModified to check whether the returned error was
112053// because http.StatusNotModified was returned.
112054func (c *RegionHealthChecksListCall) Do(opts ...googleapi.CallOption) (*HealthCheckList, error) {
112055	gensupport.SetOptions(c.urlParams_, opts...)
112056	res, err := c.doRequest("json")
112057	if res != nil && res.StatusCode == http.StatusNotModified {
112058		if res.Body != nil {
112059			res.Body.Close()
112060		}
112061		return nil, &googleapi.Error{
112062			Code:   res.StatusCode,
112063			Header: res.Header,
112064		}
112065	}
112066	if err != nil {
112067		return nil, err
112068	}
112069	defer googleapi.CloseBody(res)
112070	if err := googleapi.CheckResponse(res); err != nil {
112071		return nil, err
112072	}
112073	ret := &HealthCheckList{
112074		ServerResponse: googleapi.ServerResponse{
112075			Header:         res.Header,
112076			HTTPStatusCode: res.StatusCode,
112077		},
112078	}
112079	target := &ret
112080	if err := gensupport.DecodeResponse(target, res); err != nil {
112081		return nil, err
112082	}
112083	return ret, nil
112084	// {
112085	//   "description": "Retrieves the list of HealthCheck resources available to the specified project.",
112086	//   "httpMethod": "GET",
112087	//   "id": "compute.regionHealthChecks.list",
112088	//   "parameterOrder": [
112089	//     "project",
112090	//     "region"
112091	//   ],
112092	//   "parameters": {
112093	//     "filter": {
112094	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
112095	//       "location": "query",
112096	//       "type": "string"
112097	//     },
112098	//     "maxResults": {
112099	//       "default": "500",
112100	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
112101	//       "format": "uint32",
112102	//       "location": "query",
112103	//       "minimum": "0",
112104	//       "type": "integer"
112105	//     },
112106	//     "orderBy": {
112107	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
112108	//       "location": "query",
112109	//       "type": "string"
112110	//     },
112111	//     "pageToken": {
112112	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
112113	//       "location": "query",
112114	//       "type": "string"
112115	//     },
112116	//     "project": {
112117	//       "description": "Project ID for this request.",
112118	//       "location": "path",
112119	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112120	//       "required": true,
112121	//       "type": "string"
112122	//     },
112123	//     "region": {
112124	//       "description": "Name of the region scoping this request.",
112125	//       "location": "path",
112126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112127	//       "required": true,
112128	//       "type": "string"
112129	//     }
112130	//   },
112131	//   "path": "{project}/regions/{region}/healthChecks",
112132	//   "response": {
112133	//     "$ref": "HealthCheckList"
112134	//   },
112135	//   "scopes": [
112136	//     "https://www.googleapis.com/auth/cloud-platform",
112137	//     "https://www.googleapis.com/auth/compute",
112138	//     "https://www.googleapis.com/auth/compute.readonly"
112139	//   ]
112140	// }
112141
112142}
112143
112144// Pages invokes f for each page of results.
112145// A non-nil error returned from f will halt the iteration.
112146// The provided context supersedes any context provided to the Context method.
112147func (c *RegionHealthChecksListCall) Pages(ctx context.Context, f func(*HealthCheckList) error) error {
112148	c.ctx_ = ctx
112149	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
112150	for {
112151		x, err := c.Do()
112152		if err != nil {
112153			return err
112154		}
112155		if err := f(x); err != nil {
112156			return err
112157		}
112158		if x.NextPageToken == "" {
112159			return nil
112160		}
112161		c.PageToken(x.NextPageToken)
112162	}
112163}
112164
112165// method id "compute.regionHealthChecks.patch":
112166
112167type RegionHealthChecksPatchCall struct {
112168	s           *Service
112169	project     string
112170	region      string
112171	healthCheck string
112172	healthcheck *HealthCheck
112173	urlParams_  gensupport.URLParams
112174	ctx_        context.Context
112175	header_     http.Header
112176}
112177
112178// Patch: Updates a HealthCheck resource in the specified project using
112179// the data included in the request. This method supports PATCH
112180// semantics and uses the JSON merge patch format and processing rules.
112181func (r *RegionHealthChecksService) Patch(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksPatchCall {
112182	c := &RegionHealthChecksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112183	c.project = project
112184	c.region = region
112185	c.healthCheck = healthCheck
112186	c.healthcheck = healthcheck
112187	return c
112188}
112189
112190// RequestId sets the optional parameter "requestId": An optional
112191// request ID to identify requests. Specify a unique request ID so that
112192// if you must retry your request, the server will know to ignore the
112193// request if it has already been completed.
112194//
112195// For example, consider a situation where you make an initial request
112196// and the request times out. If you make the request again with the
112197// same request ID, the server can check if original operation with the
112198// same request ID was received, and if so, will ignore the second
112199// request. This prevents clients from accidentally creating duplicate
112200// commitments.
112201//
112202// The request ID must be a valid UUID with the exception that zero UUID
112203// is not supported (00000000-0000-0000-0000-000000000000).
112204func (c *RegionHealthChecksPatchCall) RequestId(requestId string) *RegionHealthChecksPatchCall {
112205	c.urlParams_.Set("requestId", requestId)
112206	return c
112207}
112208
112209// Fields allows partial responses to be retrieved. See
112210// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112211// for more information.
112212func (c *RegionHealthChecksPatchCall) Fields(s ...googleapi.Field) *RegionHealthChecksPatchCall {
112213	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112214	return c
112215}
112216
112217// Context sets the context to be used in this call's Do method. Any
112218// pending HTTP request will be aborted if the provided context is
112219// canceled.
112220func (c *RegionHealthChecksPatchCall) Context(ctx context.Context) *RegionHealthChecksPatchCall {
112221	c.ctx_ = ctx
112222	return c
112223}
112224
112225// Header returns an http.Header that can be modified by the caller to
112226// add HTTP headers to the request.
112227func (c *RegionHealthChecksPatchCall) Header() http.Header {
112228	if c.header_ == nil {
112229		c.header_ = make(http.Header)
112230	}
112231	return c.header_
112232}
112233
112234func (c *RegionHealthChecksPatchCall) doRequest(alt string) (*http.Response, error) {
112235	reqHeaders := make(http.Header)
112236	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112237	for k, v := range c.header_ {
112238		reqHeaders[k] = v
112239	}
112240	reqHeaders.Set("User-Agent", c.s.userAgent())
112241	var body io.Reader = nil
112242	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
112243	if err != nil {
112244		return nil, err
112245	}
112246	reqHeaders.Set("Content-Type", "application/json")
112247	c.urlParams_.Set("alt", alt)
112248	c.urlParams_.Set("prettyPrint", "false")
112249	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
112250	urls += "?" + c.urlParams_.Encode()
112251	req, err := http.NewRequest("PATCH", urls, body)
112252	if err != nil {
112253		return nil, err
112254	}
112255	req.Header = reqHeaders
112256	googleapi.Expand(req.URL, map[string]string{
112257		"project":     c.project,
112258		"region":      c.region,
112259		"healthCheck": c.healthCheck,
112260	})
112261	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112262}
112263
112264// Do executes the "compute.regionHealthChecks.patch" call.
112265// Exactly one of *Operation or error will be non-nil. Any non-2xx
112266// status code is an error. Response headers are in either
112267// *Operation.ServerResponse.Header or (if a response was returned at
112268// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112269// to check whether the returned error was because
112270// http.StatusNotModified was returned.
112271func (c *RegionHealthChecksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112272	gensupport.SetOptions(c.urlParams_, opts...)
112273	res, err := c.doRequest("json")
112274	if res != nil && res.StatusCode == http.StatusNotModified {
112275		if res.Body != nil {
112276			res.Body.Close()
112277		}
112278		return nil, &googleapi.Error{
112279			Code:   res.StatusCode,
112280			Header: res.Header,
112281		}
112282	}
112283	if err != nil {
112284		return nil, err
112285	}
112286	defer googleapi.CloseBody(res)
112287	if err := googleapi.CheckResponse(res); err != nil {
112288		return nil, err
112289	}
112290	ret := &Operation{
112291		ServerResponse: googleapi.ServerResponse{
112292			Header:         res.Header,
112293			HTTPStatusCode: res.StatusCode,
112294		},
112295	}
112296	target := &ret
112297	if err := gensupport.DecodeResponse(target, res); err != nil {
112298		return nil, err
112299	}
112300	return ret, nil
112301	// {
112302	//   "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.",
112303	//   "httpMethod": "PATCH",
112304	//   "id": "compute.regionHealthChecks.patch",
112305	//   "parameterOrder": [
112306	//     "project",
112307	//     "region",
112308	//     "healthCheck"
112309	//   ],
112310	//   "parameters": {
112311	//     "healthCheck": {
112312	//       "description": "Name of the HealthCheck resource to patch.",
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	//     "project": {
112319	//       "description": "Project ID for this request.",
112320	//       "location": "path",
112321	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112322	//       "required": true,
112323	//       "type": "string"
112324	//     },
112325	//     "region": {
112326	//       "description": "Name of the region scoping this request.",
112327	//       "location": "path",
112328	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112329	//       "required": true,
112330	//       "type": "string"
112331	//     },
112332	//     "requestId": {
112333	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112334	//       "location": "query",
112335	//       "type": "string"
112336	//     }
112337	//   },
112338	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
112339	//   "request": {
112340	//     "$ref": "HealthCheck"
112341	//   },
112342	//   "response": {
112343	//     "$ref": "Operation"
112344	//   },
112345	//   "scopes": [
112346	//     "https://www.googleapis.com/auth/cloud-platform",
112347	//     "https://www.googleapis.com/auth/compute"
112348	//   ]
112349	// }
112350
112351}
112352
112353// method id "compute.regionHealthChecks.update":
112354
112355type RegionHealthChecksUpdateCall struct {
112356	s           *Service
112357	project     string
112358	region      string
112359	healthCheck string
112360	healthcheck *HealthCheck
112361	urlParams_  gensupport.URLParams
112362	ctx_        context.Context
112363	header_     http.Header
112364}
112365
112366// Update: Updates a HealthCheck resource in the specified project using
112367// the data included in the request.
112368func (r *RegionHealthChecksService) Update(project string, region string, healthCheck string, healthcheck *HealthCheck) *RegionHealthChecksUpdateCall {
112369	c := &RegionHealthChecksUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112370	c.project = project
112371	c.region = region
112372	c.healthCheck = healthCheck
112373	c.healthcheck = healthcheck
112374	return c
112375}
112376
112377// RequestId sets the optional parameter "requestId": An optional
112378// request ID to identify requests. Specify a unique request ID so that
112379// if you must retry your request, the server will know to ignore the
112380// request if it has already been completed.
112381//
112382// For example, consider a situation where you make an initial request
112383// and the request times out. If you make the request again with the
112384// same request ID, the server can check if original operation with the
112385// same request ID was received, and if so, will ignore the second
112386// request. This prevents clients from accidentally creating duplicate
112387// commitments.
112388//
112389// The request ID must be a valid UUID with the exception that zero UUID
112390// is not supported (00000000-0000-0000-0000-000000000000).
112391func (c *RegionHealthChecksUpdateCall) RequestId(requestId string) *RegionHealthChecksUpdateCall {
112392	c.urlParams_.Set("requestId", requestId)
112393	return c
112394}
112395
112396// Fields allows partial responses to be retrieved. See
112397// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112398// for more information.
112399func (c *RegionHealthChecksUpdateCall) Fields(s ...googleapi.Field) *RegionHealthChecksUpdateCall {
112400	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112401	return c
112402}
112403
112404// Context sets the context to be used in this call's Do method. Any
112405// pending HTTP request will be aborted if the provided context is
112406// canceled.
112407func (c *RegionHealthChecksUpdateCall) Context(ctx context.Context) *RegionHealthChecksUpdateCall {
112408	c.ctx_ = ctx
112409	return c
112410}
112411
112412// Header returns an http.Header that can be modified by the caller to
112413// add HTTP headers to the request.
112414func (c *RegionHealthChecksUpdateCall) Header() http.Header {
112415	if c.header_ == nil {
112416		c.header_ = make(http.Header)
112417	}
112418	return c.header_
112419}
112420
112421func (c *RegionHealthChecksUpdateCall) doRequest(alt string) (*http.Response, error) {
112422	reqHeaders := make(http.Header)
112423	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112424	for k, v := range c.header_ {
112425		reqHeaders[k] = v
112426	}
112427	reqHeaders.Set("User-Agent", c.s.userAgent())
112428	var body io.Reader = nil
112429	body, err := googleapi.WithoutDataWrapper.JSONReader(c.healthcheck)
112430	if err != nil {
112431		return nil, err
112432	}
112433	reqHeaders.Set("Content-Type", "application/json")
112434	c.urlParams_.Set("alt", alt)
112435	c.urlParams_.Set("prettyPrint", "false")
112436	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/healthChecks/{healthCheck}")
112437	urls += "?" + c.urlParams_.Encode()
112438	req, err := http.NewRequest("PUT", urls, body)
112439	if err != nil {
112440		return nil, err
112441	}
112442	req.Header = reqHeaders
112443	googleapi.Expand(req.URL, map[string]string{
112444		"project":     c.project,
112445		"region":      c.region,
112446		"healthCheck": c.healthCheck,
112447	})
112448	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112449}
112450
112451// Do executes the "compute.regionHealthChecks.update" call.
112452// Exactly one of *Operation or error will be non-nil. Any non-2xx
112453// status code is an error. Response headers are in either
112454// *Operation.ServerResponse.Header or (if a response was returned at
112455// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112456// to check whether the returned error was because
112457// http.StatusNotModified was returned.
112458func (c *RegionHealthChecksUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112459	gensupport.SetOptions(c.urlParams_, opts...)
112460	res, err := c.doRequest("json")
112461	if res != nil && res.StatusCode == http.StatusNotModified {
112462		if res.Body != nil {
112463			res.Body.Close()
112464		}
112465		return nil, &googleapi.Error{
112466			Code:   res.StatusCode,
112467			Header: res.Header,
112468		}
112469	}
112470	if err != nil {
112471		return nil, err
112472	}
112473	defer googleapi.CloseBody(res)
112474	if err := googleapi.CheckResponse(res); err != nil {
112475		return nil, err
112476	}
112477	ret := &Operation{
112478		ServerResponse: googleapi.ServerResponse{
112479			Header:         res.Header,
112480			HTTPStatusCode: res.StatusCode,
112481		},
112482	}
112483	target := &ret
112484	if err := gensupport.DecodeResponse(target, res); err != nil {
112485		return nil, err
112486	}
112487	return ret, nil
112488	// {
112489	//   "description": "Updates a HealthCheck resource in the specified project using the data included in the request.",
112490	//   "httpMethod": "PUT",
112491	//   "id": "compute.regionHealthChecks.update",
112492	//   "parameterOrder": [
112493	//     "project",
112494	//     "region",
112495	//     "healthCheck"
112496	//   ],
112497	//   "parameters": {
112498	//     "healthCheck": {
112499	//       "description": "Name of the HealthCheck resource to update.",
112500	//       "location": "path",
112501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
112502	//       "required": true,
112503	//       "type": "string"
112504	//     },
112505	//     "project": {
112506	//       "description": "Project ID for this request.",
112507	//       "location": "path",
112508	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112509	//       "required": true,
112510	//       "type": "string"
112511	//     },
112512	//     "region": {
112513	//       "description": "Name of the region scoping this request.",
112514	//       "location": "path",
112515	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
112516	//       "required": true,
112517	//       "type": "string"
112518	//     },
112519	//     "requestId": {
112520	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112521	//       "location": "query",
112522	//       "type": "string"
112523	//     }
112524	//   },
112525	//   "path": "{project}/regions/{region}/healthChecks/{healthCheck}",
112526	//   "request": {
112527	//     "$ref": "HealthCheck"
112528	//   },
112529	//   "response": {
112530	//     "$ref": "Operation"
112531	//   },
112532	//   "scopes": [
112533	//     "https://www.googleapis.com/auth/cloud-platform",
112534	//     "https://www.googleapis.com/auth/compute"
112535	//   ]
112536	// }
112537
112538}
112539
112540// method id "compute.regionInstanceGroupManagers.abandonInstances":
112541
112542type RegionInstanceGroupManagersAbandonInstancesCall struct {
112543	s                                                  *Service
112544	project                                            string
112545	region                                             string
112546	instanceGroupManager                               string
112547	regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest
112548	urlParams_                                         gensupport.URLParams
112549	ctx_                                               context.Context
112550	header_                                            http.Header
112551}
112552
112553// AbandonInstances: Flags the specified instances to be immediately
112554// removed from the managed instance group. Abandoning an instance does
112555// not delete the instance, but it does remove the instance from any
112556// target pools that are applied by the managed instance group. This
112557// method reduces the targetSize of the managed instance group by the
112558// number of instances that you abandon. This operation is marked as
112559// DONE when the action is scheduled even if the instances have not yet
112560// been removed from the group. You must separately verify the status of
112561// the abandoning action with the listmanagedinstances method.
112562//
112563// If the group is part of a backend service that has enabled connection
112564// draining, it can take up to 60 seconds after the connection draining
112565// duration has elapsed before the VM instance is removed or
112566// deleted.
112567//
112568// You can specify a maximum of 1000 instances with this method per
112569// request.
112570func (r *RegionInstanceGroupManagersService) AbandonInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersabandoninstancesrequest *RegionInstanceGroupManagersAbandonInstancesRequest) *RegionInstanceGroupManagersAbandonInstancesCall {
112571	c := &RegionInstanceGroupManagersAbandonInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112572	c.project = project
112573	c.region = region
112574	c.instanceGroupManager = instanceGroupManager
112575	c.regioninstancegroupmanagersabandoninstancesrequest = regioninstancegroupmanagersabandoninstancesrequest
112576	return c
112577}
112578
112579// RequestId sets the optional parameter "requestId": An optional
112580// request ID to identify requests. Specify a unique request ID so that
112581// if you must retry your request, the server will know to ignore the
112582// request if it has already been completed.
112583//
112584// For example, consider a situation where you make an initial request
112585// and the request times out. If you make the request again with the
112586// same request ID, the server can check if original operation with the
112587// same request ID was received, and if so, will ignore the second
112588// request. This prevents clients from accidentally creating duplicate
112589// commitments.
112590//
112591// The request ID must be a valid UUID with the exception that zero UUID
112592// is not supported (00000000-0000-0000-0000-000000000000).
112593func (c *RegionInstanceGroupManagersAbandonInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersAbandonInstancesCall {
112594	c.urlParams_.Set("requestId", requestId)
112595	return c
112596}
112597
112598// Fields allows partial responses to be retrieved. See
112599// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112600// for more information.
112601func (c *RegionInstanceGroupManagersAbandonInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersAbandonInstancesCall {
112602	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112603	return c
112604}
112605
112606// Context sets the context to be used in this call's Do method. Any
112607// pending HTTP request will be aborted if the provided context is
112608// canceled.
112609func (c *RegionInstanceGroupManagersAbandonInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersAbandonInstancesCall {
112610	c.ctx_ = ctx
112611	return c
112612}
112613
112614// Header returns an http.Header that can be modified by the caller to
112615// add HTTP headers to the request.
112616func (c *RegionInstanceGroupManagersAbandonInstancesCall) Header() http.Header {
112617	if c.header_ == nil {
112618		c.header_ = make(http.Header)
112619	}
112620	return c.header_
112621}
112622
112623func (c *RegionInstanceGroupManagersAbandonInstancesCall) doRequest(alt string) (*http.Response, error) {
112624	reqHeaders := make(http.Header)
112625	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112626	for k, v := range c.header_ {
112627		reqHeaders[k] = v
112628	}
112629	reqHeaders.Set("User-Agent", c.s.userAgent())
112630	var body io.Reader = nil
112631	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersabandoninstancesrequest)
112632	if err != nil {
112633		return nil, err
112634	}
112635	reqHeaders.Set("Content-Type", "application/json")
112636	c.urlParams_.Set("alt", alt)
112637	c.urlParams_.Set("prettyPrint", "false")
112638	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances")
112639	urls += "?" + c.urlParams_.Encode()
112640	req, err := http.NewRequest("POST", urls, body)
112641	if err != nil {
112642		return nil, err
112643	}
112644	req.Header = reqHeaders
112645	googleapi.Expand(req.URL, map[string]string{
112646		"project":              c.project,
112647		"region":               c.region,
112648		"instanceGroupManager": c.instanceGroupManager,
112649	})
112650	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112651}
112652
112653// Do executes the "compute.regionInstanceGroupManagers.abandonInstances" call.
112654// Exactly one of *Operation or error will be non-nil. Any non-2xx
112655// status code is an error. Response headers are in either
112656// *Operation.ServerResponse.Header or (if a response was returned at
112657// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112658// to check whether the returned error was because
112659// http.StatusNotModified was returned.
112660func (c *RegionInstanceGroupManagersAbandonInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112661	gensupport.SetOptions(c.urlParams_, opts...)
112662	res, err := c.doRequest("json")
112663	if res != nil && res.StatusCode == http.StatusNotModified {
112664		if res.Body != nil {
112665			res.Body.Close()
112666		}
112667		return nil, &googleapi.Error{
112668			Code:   res.StatusCode,
112669			Header: res.Header,
112670		}
112671	}
112672	if err != nil {
112673		return nil, err
112674	}
112675	defer googleapi.CloseBody(res)
112676	if err := googleapi.CheckResponse(res); err != nil {
112677		return nil, err
112678	}
112679	ret := &Operation{
112680		ServerResponse: googleapi.ServerResponse{
112681			Header:         res.Header,
112682			HTTPStatusCode: res.StatusCode,
112683		},
112684	}
112685	target := &ret
112686	if err := gensupport.DecodeResponse(target, res); err != nil {
112687		return nil, err
112688	}
112689	return ret, nil
112690	// {
112691	//   "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.",
112692	//   "httpMethod": "POST",
112693	//   "id": "compute.regionInstanceGroupManagers.abandonInstances",
112694	//   "parameterOrder": [
112695	//     "project",
112696	//     "region",
112697	//     "instanceGroupManager"
112698	//   ],
112699	//   "parameters": {
112700	//     "instanceGroupManager": {
112701	//       "description": "Name of the managed instance group.",
112702	//       "location": "path",
112703	//       "required": true,
112704	//       "type": "string"
112705	//     },
112706	//     "project": {
112707	//       "description": "Project ID for this request.",
112708	//       "location": "path",
112709	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112710	//       "required": true,
112711	//       "type": "string"
112712	//     },
112713	//     "region": {
112714	//       "description": "Name of the region scoping this request.",
112715	//       "location": "path",
112716	//       "required": true,
112717	//       "type": "string"
112718	//     },
112719	//     "requestId": {
112720	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
112721	//       "location": "query",
112722	//       "type": "string"
112723	//     }
112724	//   },
112725	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/abandonInstances",
112726	//   "request": {
112727	//     "$ref": "RegionInstanceGroupManagersAbandonInstancesRequest"
112728	//   },
112729	//   "response": {
112730	//     "$ref": "Operation"
112731	//   },
112732	//   "scopes": [
112733	//     "https://www.googleapis.com/auth/cloud-platform",
112734	//     "https://www.googleapis.com/auth/compute"
112735	//   ]
112736	// }
112737
112738}
112739
112740// method id "compute.regionInstanceGroupManagers.applyUpdatesToInstances":
112741
112742type RegionInstanceGroupManagersApplyUpdatesToInstancesCall struct {
112743	s                                              *Service
112744	project                                        string
112745	region                                         string
112746	instanceGroupManager                           string
112747	regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest
112748	urlParams_                                     gensupport.URLParams
112749	ctx_                                           context.Context
112750	header_                                        http.Header
112751}
112752
112753// ApplyUpdatesToInstances: Apply updates to selected instances the
112754// managed instance group.
112755func (r *RegionInstanceGroupManagersService) ApplyUpdatesToInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersapplyupdatesrequest *RegionInstanceGroupManagersApplyUpdatesRequest) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
112756	c := &RegionInstanceGroupManagersApplyUpdatesToInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112757	c.project = project
112758	c.region = region
112759	c.instanceGroupManager = instanceGroupManager
112760	c.regioninstancegroupmanagersapplyupdatesrequest = regioninstancegroupmanagersapplyupdatesrequest
112761	return c
112762}
112763
112764// Fields allows partial responses to be retrieved. See
112765// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112766// for more information.
112767func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
112768	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112769	return c
112770}
112771
112772// Context sets the context to be used in this call's Do method. Any
112773// pending HTTP request will be aborted if the provided context is
112774// canceled.
112775func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersApplyUpdatesToInstancesCall {
112776	c.ctx_ = ctx
112777	return c
112778}
112779
112780// Header returns an http.Header that can be modified by the caller to
112781// add HTTP headers to the request.
112782func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Header() http.Header {
112783	if c.header_ == nil {
112784		c.header_ = make(http.Header)
112785	}
112786	return c.header_
112787}
112788
112789func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) doRequest(alt string) (*http.Response, error) {
112790	reqHeaders := make(http.Header)
112791	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112792	for k, v := range c.header_ {
112793		reqHeaders[k] = v
112794	}
112795	reqHeaders.Set("User-Agent", c.s.userAgent())
112796	var body io.Reader = nil
112797	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersapplyupdatesrequest)
112798	if err != nil {
112799		return nil, err
112800	}
112801	reqHeaders.Set("Content-Type", "application/json")
112802	c.urlParams_.Set("alt", alt)
112803	c.urlParams_.Set("prettyPrint", "false")
112804	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances")
112805	urls += "?" + c.urlParams_.Encode()
112806	req, err := http.NewRequest("POST", urls, body)
112807	if err != nil {
112808		return nil, err
112809	}
112810	req.Header = reqHeaders
112811	googleapi.Expand(req.URL, map[string]string{
112812		"project":              c.project,
112813		"region":               c.region,
112814		"instanceGroupManager": c.instanceGroupManager,
112815	})
112816	return gensupport.SendRequest(c.ctx_, c.s.client, req)
112817}
112818
112819// Do executes the "compute.regionInstanceGroupManagers.applyUpdatesToInstances" call.
112820// Exactly one of *Operation or error will be non-nil. Any non-2xx
112821// status code is an error. Response headers are in either
112822// *Operation.ServerResponse.Header or (if a response was returned at
112823// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
112824// to check whether the returned error was because
112825// http.StatusNotModified was returned.
112826func (c *RegionInstanceGroupManagersApplyUpdatesToInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
112827	gensupport.SetOptions(c.urlParams_, opts...)
112828	res, err := c.doRequest("json")
112829	if res != nil && res.StatusCode == http.StatusNotModified {
112830		if res.Body != nil {
112831			res.Body.Close()
112832		}
112833		return nil, &googleapi.Error{
112834			Code:   res.StatusCode,
112835			Header: res.Header,
112836		}
112837	}
112838	if err != nil {
112839		return nil, err
112840	}
112841	defer googleapi.CloseBody(res)
112842	if err := googleapi.CheckResponse(res); err != nil {
112843		return nil, err
112844	}
112845	ret := &Operation{
112846		ServerResponse: googleapi.ServerResponse{
112847			Header:         res.Header,
112848			HTTPStatusCode: res.StatusCode,
112849		},
112850	}
112851	target := &ret
112852	if err := gensupport.DecodeResponse(target, res); err != nil {
112853		return nil, err
112854	}
112855	return ret, nil
112856	// {
112857	//   "description": "Apply updates to selected instances the managed instance group.",
112858	//   "httpMethod": "POST",
112859	//   "id": "compute.regionInstanceGroupManagers.applyUpdatesToInstances",
112860	//   "parameterOrder": [
112861	//     "project",
112862	//     "region",
112863	//     "instanceGroupManager"
112864	//   ],
112865	//   "parameters": {
112866	//     "instanceGroupManager": {
112867	//       "description": "The name of the managed instance group, should conform to RFC1035.",
112868	//       "location": "path",
112869	//       "required": true,
112870	//       "type": "string"
112871	//     },
112872	//     "project": {
112873	//       "description": "Project ID for this request.",
112874	//       "location": "path",
112875	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
112876	//       "required": true,
112877	//       "type": "string"
112878	//     },
112879	//     "region": {
112880	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
112881	//       "location": "path",
112882	//       "required": true,
112883	//       "type": "string"
112884	//     }
112885	//   },
112886	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/applyUpdatesToInstances",
112887	//   "request": {
112888	//     "$ref": "RegionInstanceGroupManagersApplyUpdatesRequest"
112889	//   },
112890	//   "response": {
112891	//     "$ref": "Operation"
112892	//   },
112893	//   "scopes": [
112894	//     "https://www.googleapis.com/auth/cloud-platform",
112895	//     "https://www.googleapis.com/auth/compute"
112896	//   ]
112897	// }
112898
112899}
112900
112901// method id "compute.regionInstanceGroupManagers.createInstances":
112902
112903type RegionInstanceGroupManagersCreateInstancesCall struct {
112904	s                                                 *Service
112905	project                                           string
112906	region                                            string
112907	instanceGroupManager                              string
112908	regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest
112909	urlParams_                                        gensupport.URLParams
112910	ctx_                                              context.Context
112911	header_                                           http.Header
112912}
112913
112914// CreateInstances: Creates instances with per-instance configs in this
112915// regional managed instance group. Instances are created using the
112916// current instance template. The create instances operation is marked
112917// DONE if the createInstances request is successful. The underlying
112918// actions take additional time. You must separately verify the status
112919// of the creating or actions with the listmanagedinstances method.
112920func (r *RegionInstanceGroupManagersService) CreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagerscreateinstancesrequest *RegionInstanceGroupManagersCreateInstancesRequest) *RegionInstanceGroupManagersCreateInstancesCall {
112921	c := &RegionInstanceGroupManagersCreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
112922	c.project = project
112923	c.region = region
112924	c.instanceGroupManager = instanceGroupManager
112925	c.regioninstancegroupmanagerscreateinstancesrequest = regioninstancegroupmanagerscreateinstancesrequest
112926	return c
112927}
112928
112929// RequestId sets the optional parameter "requestId": An optional
112930// request ID to identify requests. Specify a unique request ID so that
112931// if you must retry your request, the server will know to ignore the
112932// request if it has already been completed.
112933//
112934// For example, consider a situation where you make an initial request
112935// and the request times out. If you make the request again with the
112936// same request ID, the server can check if original operation with the
112937// same request ID was received, and if so, will ignore the second
112938// request.
112939//
112940// The request ID must be a valid UUID with the exception that zero UUID
112941// is not supported (00000000-0000-0000-0000-000000000000).
112942func (c *RegionInstanceGroupManagersCreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersCreateInstancesCall {
112943	c.urlParams_.Set("requestId", requestId)
112944	return c
112945}
112946
112947// Fields allows partial responses to be retrieved. See
112948// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
112949// for more information.
112950func (c *RegionInstanceGroupManagersCreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersCreateInstancesCall {
112951	c.urlParams_.Set("fields", googleapi.CombineFields(s))
112952	return c
112953}
112954
112955// Context sets the context to be used in this call's Do method. Any
112956// pending HTTP request will be aborted if the provided context is
112957// canceled.
112958func (c *RegionInstanceGroupManagersCreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersCreateInstancesCall {
112959	c.ctx_ = ctx
112960	return c
112961}
112962
112963// Header returns an http.Header that can be modified by the caller to
112964// add HTTP headers to the request.
112965func (c *RegionInstanceGroupManagersCreateInstancesCall) Header() http.Header {
112966	if c.header_ == nil {
112967		c.header_ = make(http.Header)
112968	}
112969	return c.header_
112970}
112971
112972func (c *RegionInstanceGroupManagersCreateInstancesCall) doRequest(alt string) (*http.Response, error) {
112973	reqHeaders := make(http.Header)
112974	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
112975	for k, v := range c.header_ {
112976		reqHeaders[k] = v
112977	}
112978	reqHeaders.Set("User-Agent", c.s.userAgent())
112979	var body io.Reader = nil
112980	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerscreateinstancesrequest)
112981	if err != nil {
112982		return nil, err
112983	}
112984	reqHeaders.Set("Content-Type", "application/json")
112985	c.urlParams_.Set("alt", alt)
112986	c.urlParams_.Set("prettyPrint", "false")
112987	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances")
112988	urls += "?" + c.urlParams_.Encode()
112989	req, err := http.NewRequest("POST", urls, body)
112990	if err != nil {
112991		return nil, err
112992	}
112993	req.Header = reqHeaders
112994	googleapi.Expand(req.URL, map[string]string{
112995		"project":              c.project,
112996		"region":               c.region,
112997		"instanceGroupManager": c.instanceGroupManager,
112998	})
112999	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113000}
113001
113002// Do executes the "compute.regionInstanceGroupManagers.createInstances" call.
113003// Exactly one of *Operation or error will be non-nil. Any non-2xx
113004// status code is an error. Response headers are in either
113005// *Operation.ServerResponse.Header or (if a response was returned at
113006// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113007// to check whether the returned error was because
113008// http.StatusNotModified was returned.
113009func (c *RegionInstanceGroupManagersCreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113010	gensupport.SetOptions(c.urlParams_, opts...)
113011	res, err := c.doRequest("json")
113012	if res != nil && res.StatusCode == http.StatusNotModified {
113013		if res.Body != nil {
113014			res.Body.Close()
113015		}
113016		return nil, &googleapi.Error{
113017			Code:   res.StatusCode,
113018			Header: res.Header,
113019		}
113020	}
113021	if err != nil {
113022		return nil, err
113023	}
113024	defer googleapi.CloseBody(res)
113025	if err := googleapi.CheckResponse(res); err != nil {
113026		return nil, err
113027	}
113028	ret := &Operation{
113029		ServerResponse: googleapi.ServerResponse{
113030			Header:         res.Header,
113031			HTTPStatusCode: res.StatusCode,
113032		},
113033	}
113034	target := &ret
113035	if err := gensupport.DecodeResponse(target, res); err != nil {
113036		return nil, err
113037	}
113038	return ret, nil
113039	// {
113040	//   "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.",
113041	//   "httpMethod": "POST",
113042	//   "id": "compute.regionInstanceGroupManagers.createInstances",
113043	//   "parameterOrder": [
113044	//     "project",
113045	//     "region",
113046	//     "instanceGroupManager"
113047	//   ],
113048	//   "parameters": {
113049	//     "instanceGroupManager": {
113050	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
113051	//       "location": "path",
113052	//       "required": true,
113053	//       "type": "string"
113054	//     },
113055	//     "project": {
113056	//       "description": "Project ID for this request.",
113057	//       "location": "path",
113058	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113059	//       "required": true,
113060	//       "type": "string"
113061	//     },
113062	//     "region": {
113063	//       "description": "The name of the region where the managed instance group is located. It should conform to RFC1035.",
113064	//       "location": "path",
113065	//       "required": true,
113066	//       "type": "string"
113067	//     },
113068	//     "requestId": {
113069	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same 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).",
113070	//       "location": "query",
113071	//       "type": "string"
113072	//     }
113073	//   },
113074	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/createInstances",
113075	//   "request": {
113076	//     "$ref": "RegionInstanceGroupManagersCreateInstancesRequest"
113077	//   },
113078	//   "response": {
113079	//     "$ref": "Operation"
113080	//   },
113081	//   "scopes": [
113082	//     "https://www.googleapis.com/auth/cloud-platform",
113083	//     "https://www.googleapis.com/auth/compute"
113084	//   ]
113085	// }
113086
113087}
113088
113089// method id "compute.regionInstanceGroupManagers.delete":
113090
113091type RegionInstanceGroupManagersDeleteCall struct {
113092	s                    *Service
113093	project              string
113094	region               string
113095	instanceGroupManager string
113096	urlParams_           gensupport.URLParams
113097	ctx_                 context.Context
113098	header_              http.Header
113099}
113100
113101// Delete: Deletes the specified managed instance group and all of the
113102// instances in that group.
113103func (r *RegionInstanceGroupManagersService) Delete(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersDeleteCall {
113104	c := &RegionInstanceGroupManagersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113105	c.project = project
113106	c.region = region
113107	c.instanceGroupManager = instanceGroupManager
113108	return c
113109}
113110
113111// RequestId sets the optional parameter "requestId": An optional
113112// request ID to identify requests. Specify a unique request ID so that
113113// if you must retry your request, the server will know to ignore the
113114// request if it has already been completed.
113115//
113116// For example, consider a situation where you make an initial request
113117// and the request times out. If you make the request again with the
113118// same request ID, the server can check if original operation with the
113119// same request ID was received, and if so, will ignore the second
113120// request. This prevents clients from accidentally creating duplicate
113121// commitments.
113122//
113123// The request ID must be a valid UUID with the exception that zero UUID
113124// is not supported (00000000-0000-0000-0000-000000000000).
113125func (c *RegionInstanceGroupManagersDeleteCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteCall {
113126	c.urlParams_.Set("requestId", requestId)
113127	return c
113128}
113129
113130// Fields allows partial responses to be retrieved. See
113131// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113132// for more information.
113133func (c *RegionInstanceGroupManagersDeleteCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteCall {
113134	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113135	return c
113136}
113137
113138// Context sets the context to be used in this call's Do method. Any
113139// pending HTTP request will be aborted if the provided context is
113140// canceled.
113141func (c *RegionInstanceGroupManagersDeleteCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteCall {
113142	c.ctx_ = ctx
113143	return c
113144}
113145
113146// Header returns an http.Header that can be modified by the caller to
113147// add HTTP headers to the request.
113148func (c *RegionInstanceGroupManagersDeleteCall) Header() http.Header {
113149	if c.header_ == nil {
113150		c.header_ = make(http.Header)
113151	}
113152	return c.header_
113153}
113154
113155func (c *RegionInstanceGroupManagersDeleteCall) doRequest(alt string) (*http.Response, error) {
113156	reqHeaders := make(http.Header)
113157	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113158	for k, v := range c.header_ {
113159		reqHeaders[k] = v
113160	}
113161	reqHeaders.Set("User-Agent", c.s.userAgent())
113162	var body io.Reader = nil
113163	c.urlParams_.Set("alt", alt)
113164	c.urlParams_.Set("prettyPrint", "false")
113165	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
113166	urls += "?" + c.urlParams_.Encode()
113167	req, err := http.NewRequest("DELETE", urls, body)
113168	if err != nil {
113169		return nil, err
113170	}
113171	req.Header = reqHeaders
113172	googleapi.Expand(req.URL, map[string]string{
113173		"project":              c.project,
113174		"region":               c.region,
113175		"instanceGroupManager": c.instanceGroupManager,
113176	})
113177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113178}
113179
113180// Do executes the "compute.regionInstanceGroupManagers.delete" call.
113181// Exactly one of *Operation or error will be non-nil. Any non-2xx
113182// status code is an error. Response headers are in either
113183// *Operation.ServerResponse.Header or (if a response was returned at
113184// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113185// to check whether the returned error was because
113186// http.StatusNotModified was returned.
113187func (c *RegionInstanceGroupManagersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113188	gensupport.SetOptions(c.urlParams_, opts...)
113189	res, err := c.doRequest("json")
113190	if res != nil && res.StatusCode == http.StatusNotModified {
113191		if res.Body != nil {
113192			res.Body.Close()
113193		}
113194		return nil, &googleapi.Error{
113195			Code:   res.StatusCode,
113196			Header: res.Header,
113197		}
113198	}
113199	if err != nil {
113200		return nil, err
113201	}
113202	defer googleapi.CloseBody(res)
113203	if err := googleapi.CheckResponse(res); err != nil {
113204		return nil, err
113205	}
113206	ret := &Operation{
113207		ServerResponse: googleapi.ServerResponse{
113208			Header:         res.Header,
113209			HTTPStatusCode: res.StatusCode,
113210		},
113211	}
113212	target := &ret
113213	if err := gensupport.DecodeResponse(target, res); err != nil {
113214		return nil, err
113215	}
113216	return ret, nil
113217	// {
113218	//   "description": "Deletes the specified managed instance group and all of the instances in that group.",
113219	//   "httpMethod": "DELETE",
113220	//   "id": "compute.regionInstanceGroupManagers.delete",
113221	//   "parameterOrder": [
113222	//     "project",
113223	//     "region",
113224	//     "instanceGroupManager"
113225	//   ],
113226	//   "parameters": {
113227	//     "instanceGroupManager": {
113228	//       "description": "Name of the managed instance group to delete.",
113229	//       "location": "path",
113230	//       "required": true,
113231	//       "type": "string"
113232	//     },
113233	//     "project": {
113234	//       "description": "Project ID for this request.",
113235	//       "location": "path",
113236	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113237	//       "required": true,
113238	//       "type": "string"
113239	//     },
113240	//     "region": {
113241	//       "description": "Name of the region scoping this request.",
113242	//       "location": "path",
113243	//       "required": true,
113244	//       "type": "string"
113245	//     },
113246	//     "requestId": {
113247	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113248	//       "location": "query",
113249	//       "type": "string"
113250	//     }
113251	//   },
113252	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
113253	//   "response": {
113254	//     "$ref": "Operation"
113255	//   },
113256	//   "scopes": [
113257	//     "https://www.googleapis.com/auth/cloud-platform",
113258	//     "https://www.googleapis.com/auth/compute"
113259	//   ]
113260	// }
113261
113262}
113263
113264// method id "compute.regionInstanceGroupManagers.deleteInstances":
113265
113266type RegionInstanceGroupManagersDeleteInstancesCall struct {
113267	s                                                 *Service
113268	project                                           string
113269	region                                            string
113270	instanceGroupManager                              string
113271	regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest
113272	urlParams_                                        gensupport.URLParams
113273	ctx_                                              context.Context
113274	header_                                           http.Header
113275}
113276
113277// DeleteInstances: Flags the specified instances in the managed
113278// instance group to be immediately deleted. The instances are also
113279// removed from any target pools of which they were a member. This
113280// method reduces the targetSize of the managed instance group by the
113281// number of instances that you delete. The deleteInstances operation is
113282// marked DONE if the deleteInstances request is successful. The
113283// underlying actions take additional time. You must separately verify
113284// the status of the deleting action with the listmanagedinstances
113285// method.
113286//
113287// If the group is part of a backend service that has enabled connection
113288// draining, it can take up to 60 seconds after the connection draining
113289// duration has elapsed before the VM instance is removed or
113290// deleted.
113291//
113292// You can specify a maximum of 1000 instances with this method per
113293// request.
113294func (r *RegionInstanceGroupManagersService) DeleteInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersdeleteinstancesrequest *RegionInstanceGroupManagersDeleteInstancesRequest) *RegionInstanceGroupManagersDeleteInstancesCall {
113295	c := &RegionInstanceGroupManagersDeleteInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113296	c.project = project
113297	c.region = region
113298	c.instanceGroupManager = instanceGroupManager
113299	c.regioninstancegroupmanagersdeleteinstancesrequest = regioninstancegroupmanagersdeleteinstancesrequest
113300	return c
113301}
113302
113303// RequestId sets the optional parameter "requestId": An optional
113304// request ID to identify requests. Specify a unique request ID so that
113305// if you must retry your request, the server will know to ignore the
113306// request if it has already been completed.
113307//
113308// For example, consider a situation where you make an initial request
113309// and the request times out. If you make the request again with the
113310// same request ID, the server can check if original operation with the
113311// same request ID was received, and if so, will ignore the second
113312// request. This prevents clients from accidentally creating duplicate
113313// commitments.
113314//
113315// The request ID must be a valid UUID with the exception that zero UUID
113316// is not supported (00000000-0000-0000-0000-000000000000).
113317func (c *RegionInstanceGroupManagersDeleteInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersDeleteInstancesCall {
113318	c.urlParams_.Set("requestId", requestId)
113319	return c
113320}
113321
113322// Fields allows partial responses to be retrieved. See
113323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113324// for more information.
113325func (c *RegionInstanceGroupManagersDeleteInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeleteInstancesCall {
113326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113327	return c
113328}
113329
113330// Context sets the context to be used in this call's Do method. Any
113331// pending HTTP request will be aborted if the provided context is
113332// canceled.
113333func (c *RegionInstanceGroupManagersDeleteInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeleteInstancesCall {
113334	c.ctx_ = ctx
113335	return c
113336}
113337
113338// Header returns an http.Header that can be modified by the caller to
113339// add HTTP headers to the request.
113340func (c *RegionInstanceGroupManagersDeleteInstancesCall) Header() http.Header {
113341	if c.header_ == nil {
113342		c.header_ = make(http.Header)
113343	}
113344	return c.header_
113345}
113346
113347func (c *RegionInstanceGroupManagersDeleteInstancesCall) doRequest(alt string) (*http.Response, error) {
113348	reqHeaders := make(http.Header)
113349	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113350	for k, v := range c.header_ {
113351		reqHeaders[k] = v
113352	}
113353	reqHeaders.Set("User-Agent", c.s.userAgent())
113354	var body io.Reader = nil
113355	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersdeleteinstancesrequest)
113356	if err != nil {
113357		return nil, err
113358	}
113359	reqHeaders.Set("Content-Type", "application/json")
113360	c.urlParams_.Set("alt", alt)
113361	c.urlParams_.Set("prettyPrint", "false")
113362	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances")
113363	urls += "?" + c.urlParams_.Encode()
113364	req, err := http.NewRequest("POST", urls, body)
113365	if err != nil {
113366		return nil, err
113367	}
113368	req.Header = reqHeaders
113369	googleapi.Expand(req.URL, map[string]string{
113370		"project":              c.project,
113371		"region":               c.region,
113372		"instanceGroupManager": c.instanceGroupManager,
113373	})
113374	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113375}
113376
113377// Do executes the "compute.regionInstanceGroupManagers.deleteInstances" call.
113378// Exactly one of *Operation or error will be non-nil. Any non-2xx
113379// status code is an error. Response headers are in either
113380// *Operation.ServerResponse.Header or (if a response was returned at
113381// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113382// to check whether the returned error was because
113383// http.StatusNotModified was returned.
113384func (c *RegionInstanceGroupManagersDeleteInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113385	gensupport.SetOptions(c.urlParams_, opts...)
113386	res, err := c.doRequest("json")
113387	if res != nil && res.StatusCode == http.StatusNotModified {
113388		if res.Body != nil {
113389			res.Body.Close()
113390		}
113391		return nil, &googleapi.Error{
113392			Code:   res.StatusCode,
113393			Header: res.Header,
113394		}
113395	}
113396	if err != nil {
113397		return nil, err
113398	}
113399	defer googleapi.CloseBody(res)
113400	if err := googleapi.CheckResponse(res); err != nil {
113401		return nil, err
113402	}
113403	ret := &Operation{
113404		ServerResponse: googleapi.ServerResponse{
113405			Header:         res.Header,
113406			HTTPStatusCode: res.StatusCode,
113407		},
113408	}
113409	target := &ret
113410	if err := gensupport.DecodeResponse(target, res); err != nil {
113411		return nil, err
113412	}
113413	return ret, nil
113414	// {
113415	//   "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.",
113416	//   "httpMethod": "POST",
113417	//   "id": "compute.regionInstanceGroupManagers.deleteInstances",
113418	//   "parameterOrder": [
113419	//     "project",
113420	//     "region",
113421	//     "instanceGroupManager"
113422	//   ],
113423	//   "parameters": {
113424	//     "instanceGroupManager": {
113425	//       "description": "Name of the managed instance group.",
113426	//       "location": "path",
113427	//       "required": true,
113428	//       "type": "string"
113429	//     },
113430	//     "project": {
113431	//       "description": "Project ID for this request.",
113432	//       "location": "path",
113433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113434	//       "required": true,
113435	//       "type": "string"
113436	//     },
113437	//     "region": {
113438	//       "description": "Name of the region scoping this request.",
113439	//       "location": "path",
113440	//       "required": true,
113441	//       "type": "string"
113442	//     },
113443	//     "requestId": {
113444	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113445	//       "location": "query",
113446	//       "type": "string"
113447	//     }
113448	//   },
113449	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deleteInstances",
113450	//   "request": {
113451	//     "$ref": "RegionInstanceGroupManagersDeleteInstancesRequest"
113452	//   },
113453	//   "response": {
113454	//     "$ref": "Operation"
113455	//   },
113456	//   "scopes": [
113457	//     "https://www.googleapis.com/auth/cloud-platform",
113458	//     "https://www.googleapis.com/auth/compute"
113459	//   ]
113460	// }
113461
113462}
113463
113464// method id "compute.regionInstanceGroupManagers.deletePerInstanceConfigs":
113465
113466type RegionInstanceGroupManagersDeletePerInstanceConfigsCall struct {
113467	s                                                 *Service
113468	project                                           string
113469	region                                            string
113470	instanceGroupManager                              string
113471	regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq
113472	urlParams_                                        gensupport.URLParams
113473	ctx_                                              context.Context
113474	header_                                           http.Header
113475}
113476
113477// DeletePerInstanceConfigs: Deletes selected per-instance configs for
113478// the managed instance group.
113479func (r *RegionInstanceGroupManagersService) DeletePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerdeleteinstanceconfigreq *RegionInstanceGroupManagerDeleteInstanceConfigReq) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
113480	c := &RegionInstanceGroupManagersDeletePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113481	c.project = project
113482	c.region = region
113483	c.instanceGroupManager = instanceGroupManager
113484	c.regioninstancegroupmanagerdeleteinstanceconfigreq = regioninstancegroupmanagerdeleteinstanceconfigreq
113485	return c
113486}
113487
113488// Fields allows partial responses to be retrieved. See
113489// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113490// for more information.
113491func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
113492	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113493	return c
113494}
113495
113496// Context sets the context to be used in this call's Do method. Any
113497// pending HTTP request will be aborted if the provided context is
113498// canceled.
113499func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersDeletePerInstanceConfigsCall {
113500	c.ctx_ = ctx
113501	return c
113502}
113503
113504// Header returns an http.Header that can be modified by the caller to
113505// add HTTP headers to the request.
113506func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Header() http.Header {
113507	if c.header_ == nil {
113508		c.header_ = make(http.Header)
113509	}
113510	return c.header_
113511}
113512
113513func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
113514	reqHeaders := make(http.Header)
113515	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113516	for k, v := range c.header_ {
113517		reqHeaders[k] = v
113518	}
113519	reqHeaders.Set("User-Agent", c.s.userAgent())
113520	var body io.Reader = nil
113521	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerdeleteinstanceconfigreq)
113522	if err != nil {
113523		return nil, err
113524	}
113525	reqHeaders.Set("Content-Type", "application/json")
113526	c.urlParams_.Set("alt", alt)
113527	c.urlParams_.Set("prettyPrint", "false")
113528	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs")
113529	urls += "?" + c.urlParams_.Encode()
113530	req, err := http.NewRequest("POST", urls, body)
113531	if err != nil {
113532		return nil, err
113533	}
113534	req.Header = reqHeaders
113535	googleapi.Expand(req.URL, map[string]string{
113536		"project":              c.project,
113537		"region":               c.region,
113538		"instanceGroupManager": c.instanceGroupManager,
113539	})
113540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113541}
113542
113543// Do executes the "compute.regionInstanceGroupManagers.deletePerInstanceConfigs" call.
113544// Exactly one of *Operation or error will be non-nil. Any non-2xx
113545// status code is an error. Response headers are in either
113546// *Operation.ServerResponse.Header or (if a response was returned at
113547// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113548// to check whether the returned error was because
113549// http.StatusNotModified was returned.
113550func (c *RegionInstanceGroupManagersDeletePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113551	gensupport.SetOptions(c.urlParams_, opts...)
113552	res, err := c.doRequest("json")
113553	if res != nil && res.StatusCode == http.StatusNotModified {
113554		if res.Body != nil {
113555			res.Body.Close()
113556		}
113557		return nil, &googleapi.Error{
113558			Code:   res.StatusCode,
113559			Header: res.Header,
113560		}
113561	}
113562	if err != nil {
113563		return nil, err
113564	}
113565	defer googleapi.CloseBody(res)
113566	if err := googleapi.CheckResponse(res); err != nil {
113567		return nil, err
113568	}
113569	ret := &Operation{
113570		ServerResponse: googleapi.ServerResponse{
113571			Header:         res.Header,
113572			HTTPStatusCode: res.StatusCode,
113573		},
113574	}
113575	target := &ret
113576	if err := gensupport.DecodeResponse(target, res); err != nil {
113577		return nil, err
113578	}
113579	return ret, nil
113580	// {
113581	//   "description": "Deletes selected per-instance configs for the managed instance group.",
113582	//   "httpMethod": "POST",
113583	//   "id": "compute.regionInstanceGroupManagers.deletePerInstanceConfigs",
113584	//   "parameterOrder": [
113585	//     "project",
113586	//     "region",
113587	//     "instanceGroupManager"
113588	//   ],
113589	//   "parameters": {
113590	//     "instanceGroupManager": {
113591	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
113592	//       "location": "path",
113593	//       "required": true,
113594	//       "type": "string"
113595	//     },
113596	//     "project": {
113597	//       "description": "Project ID for this request.",
113598	//       "location": "path",
113599	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113600	//       "required": true,
113601	//       "type": "string"
113602	//     },
113603	//     "region": {
113604	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
113605	//       "location": "path",
113606	//       "required": true,
113607	//       "type": "string"
113608	//     }
113609	//   },
113610	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/deletePerInstanceConfigs",
113611	//   "request": {
113612	//     "$ref": "RegionInstanceGroupManagerDeleteInstanceConfigReq"
113613	//   },
113614	//   "response": {
113615	//     "$ref": "Operation"
113616	//   },
113617	//   "scopes": [
113618	//     "https://www.googleapis.com/auth/cloud-platform",
113619	//     "https://www.googleapis.com/auth/compute"
113620	//   ]
113621	// }
113622
113623}
113624
113625// method id "compute.regionInstanceGroupManagers.get":
113626
113627type RegionInstanceGroupManagersGetCall struct {
113628	s                    *Service
113629	project              string
113630	region               string
113631	instanceGroupManager string
113632	urlParams_           gensupport.URLParams
113633	ifNoneMatch_         string
113634	ctx_                 context.Context
113635	header_              http.Header
113636}
113637
113638// Get: Returns all of the details about the specified managed instance
113639// group.
113640func (r *RegionInstanceGroupManagersService) Get(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersGetCall {
113641	c := &RegionInstanceGroupManagersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113642	c.project = project
113643	c.region = region
113644	c.instanceGroupManager = instanceGroupManager
113645	return c
113646}
113647
113648// Fields allows partial responses to be retrieved. See
113649// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113650// for more information.
113651func (c *RegionInstanceGroupManagersGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersGetCall {
113652	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113653	return c
113654}
113655
113656// IfNoneMatch sets the optional parameter which makes the operation
113657// fail if the object's ETag matches the given value. This is useful for
113658// getting updates only after the object has changed since the last
113659// request. Use googleapi.IsNotModified to check whether the response
113660// error from Do is the result of In-None-Match.
113661func (c *RegionInstanceGroupManagersGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersGetCall {
113662	c.ifNoneMatch_ = entityTag
113663	return c
113664}
113665
113666// Context sets the context to be used in this call's Do method. Any
113667// pending HTTP request will be aborted if the provided context is
113668// canceled.
113669func (c *RegionInstanceGroupManagersGetCall) Context(ctx context.Context) *RegionInstanceGroupManagersGetCall {
113670	c.ctx_ = ctx
113671	return c
113672}
113673
113674// Header returns an http.Header that can be modified by the caller to
113675// add HTTP headers to the request.
113676func (c *RegionInstanceGroupManagersGetCall) Header() http.Header {
113677	if c.header_ == nil {
113678		c.header_ = make(http.Header)
113679	}
113680	return c.header_
113681}
113682
113683func (c *RegionInstanceGroupManagersGetCall) doRequest(alt string) (*http.Response, error) {
113684	reqHeaders := make(http.Header)
113685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113686	for k, v := range c.header_ {
113687		reqHeaders[k] = v
113688	}
113689	reqHeaders.Set("User-Agent", c.s.userAgent())
113690	if c.ifNoneMatch_ != "" {
113691		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
113692	}
113693	var body io.Reader = nil
113694	c.urlParams_.Set("alt", alt)
113695	c.urlParams_.Set("prettyPrint", "false")
113696	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
113697	urls += "?" + c.urlParams_.Encode()
113698	req, err := http.NewRequest("GET", urls, body)
113699	if err != nil {
113700		return nil, err
113701	}
113702	req.Header = reqHeaders
113703	googleapi.Expand(req.URL, map[string]string{
113704		"project":              c.project,
113705		"region":               c.region,
113706		"instanceGroupManager": c.instanceGroupManager,
113707	})
113708	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113709}
113710
113711// Do executes the "compute.regionInstanceGroupManagers.get" call.
113712// Exactly one of *InstanceGroupManager or error will be non-nil. Any
113713// non-2xx status code is an error. Response headers are in either
113714// *InstanceGroupManager.ServerResponse.Header or (if a response was
113715// returned at all) in error.(*googleapi.Error).Header. Use
113716// googleapi.IsNotModified to check whether the returned error was
113717// because http.StatusNotModified was returned.
113718func (c *RegionInstanceGroupManagersGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroupManager, error) {
113719	gensupport.SetOptions(c.urlParams_, opts...)
113720	res, err := c.doRequest("json")
113721	if res != nil && res.StatusCode == http.StatusNotModified {
113722		if res.Body != nil {
113723			res.Body.Close()
113724		}
113725		return nil, &googleapi.Error{
113726			Code:   res.StatusCode,
113727			Header: res.Header,
113728		}
113729	}
113730	if err != nil {
113731		return nil, err
113732	}
113733	defer googleapi.CloseBody(res)
113734	if err := googleapi.CheckResponse(res); err != nil {
113735		return nil, err
113736	}
113737	ret := &InstanceGroupManager{
113738		ServerResponse: googleapi.ServerResponse{
113739			Header:         res.Header,
113740			HTTPStatusCode: res.StatusCode,
113741		},
113742	}
113743	target := &ret
113744	if err := gensupport.DecodeResponse(target, res); err != nil {
113745		return nil, err
113746	}
113747	return ret, nil
113748	// {
113749	//   "description": "Returns all of the details about the specified managed instance group.",
113750	//   "httpMethod": "GET",
113751	//   "id": "compute.regionInstanceGroupManagers.get",
113752	//   "parameterOrder": [
113753	//     "project",
113754	//     "region",
113755	//     "instanceGroupManager"
113756	//   ],
113757	//   "parameters": {
113758	//     "instanceGroupManager": {
113759	//       "description": "Name of the managed instance group to return.",
113760	//       "location": "path",
113761	//       "required": true,
113762	//       "type": "string"
113763	//     },
113764	//     "project": {
113765	//       "description": "Project ID for this request.",
113766	//       "location": "path",
113767	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113768	//       "required": true,
113769	//       "type": "string"
113770	//     },
113771	//     "region": {
113772	//       "description": "Name of the region scoping this request.",
113773	//       "location": "path",
113774	//       "required": true,
113775	//       "type": "string"
113776	//     }
113777	//   },
113778	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
113779	//   "response": {
113780	//     "$ref": "InstanceGroupManager"
113781	//   },
113782	//   "scopes": [
113783	//     "https://www.googleapis.com/auth/cloud-platform",
113784	//     "https://www.googleapis.com/auth/compute",
113785	//     "https://www.googleapis.com/auth/compute.readonly"
113786	//   ]
113787	// }
113788
113789}
113790
113791// method id "compute.regionInstanceGroupManagers.insert":
113792
113793type RegionInstanceGroupManagersInsertCall struct {
113794	s                    *Service
113795	project              string
113796	region               string
113797	instancegroupmanager *InstanceGroupManager
113798	urlParams_           gensupport.URLParams
113799	ctx_                 context.Context
113800	header_              http.Header
113801}
113802
113803// Insert: Creates a managed instance group using the information that
113804// you specify in the request. After the group is created, instances in
113805// the group are created using the specified instance template. This
113806// operation is marked as DONE when the group is created even if the
113807// instances in the group have not yet been created. You must separately
113808// verify the status of the individual instances with the
113809// listmanagedinstances method.
113810//
113811// A regional managed instance group can contain up to 2000 instances.
113812func (r *RegionInstanceGroupManagersService) Insert(project string, region string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersInsertCall {
113813	c := &RegionInstanceGroupManagersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113814	c.project = project
113815	c.region = region
113816	c.instancegroupmanager = instancegroupmanager
113817	return c
113818}
113819
113820// RequestId sets the optional parameter "requestId": An optional
113821// request ID to identify requests. Specify a unique request ID so that
113822// if you must retry your request, the server will know to ignore the
113823// request if it has already been completed.
113824//
113825// For example, consider a situation where you make an initial request
113826// and the request times out. If you make the request again with the
113827// same request ID, the server can check if original operation with the
113828// same request ID was received, and if so, will ignore the second
113829// request. This prevents clients from accidentally creating duplicate
113830// commitments.
113831//
113832// The request ID must be a valid UUID with the exception that zero UUID
113833// is not supported (00000000-0000-0000-0000-000000000000).
113834func (c *RegionInstanceGroupManagersInsertCall) RequestId(requestId string) *RegionInstanceGroupManagersInsertCall {
113835	c.urlParams_.Set("requestId", requestId)
113836	return c
113837}
113838
113839// Fields allows partial responses to be retrieved. See
113840// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
113841// for more information.
113842func (c *RegionInstanceGroupManagersInsertCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersInsertCall {
113843	c.urlParams_.Set("fields", googleapi.CombineFields(s))
113844	return c
113845}
113846
113847// Context sets the context to be used in this call's Do method. Any
113848// pending HTTP request will be aborted if the provided context is
113849// canceled.
113850func (c *RegionInstanceGroupManagersInsertCall) Context(ctx context.Context) *RegionInstanceGroupManagersInsertCall {
113851	c.ctx_ = ctx
113852	return c
113853}
113854
113855// Header returns an http.Header that can be modified by the caller to
113856// add HTTP headers to the request.
113857func (c *RegionInstanceGroupManagersInsertCall) Header() http.Header {
113858	if c.header_ == nil {
113859		c.header_ = make(http.Header)
113860	}
113861	return c.header_
113862}
113863
113864func (c *RegionInstanceGroupManagersInsertCall) doRequest(alt string) (*http.Response, error) {
113865	reqHeaders := make(http.Header)
113866	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
113867	for k, v := range c.header_ {
113868		reqHeaders[k] = v
113869	}
113870	reqHeaders.Set("User-Agent", c.s.userAgent())
113871	var body io.Reader = nil
113872	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
113873	if err != nil {
113874		return nil, err
113875	}
113876	reqHeaders.Set("Content-Type", "application/json")
113877	c.urlParams_.Set("alt", alt)
113878	c.urlParams_.Set("prettyPrint", "false")
113879	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
113880	urls += "?" + c.urlParams_.Encode()
113881	req, err := http.NewRequest("POST", urls, body)
113882	if err != nil {
113883		return nil, err
113884	}
113885	req.Header = reqHeaders
113886	googleapi.Expand(req.URL, map[string]string{
113887		"project": c.project,
113888		"region":  c.region,
113889	})
113890	return gensupport.SendRequest(c.ctx_, c.s.client, req)
113891}
113892
113893// Do executes the "compute.regionInstanceGroupManagers.insert" call.
113894// Exactly one of *Operation or error will be non-nil. Any non-2xx
113895// status code is an error. Response headers are in either
113896// *Operation.ServerResponse.Header or (if a response was returned at
113897// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
113898// to check whether the returned error was because
113899// http.StatusNotModified was returned.
113900func (c *RegionInstanceGroupManagersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
113901	gensupport.SetOptions(c.urlParams_, opts...)
113902	res, err := c.doRequest("json")
113903	if res != nil && res.StatusCode == http.StatusNotModified {
113904		if res.Body != nil {
113905			res.Body.Close()
113906		}
113907		return nil, &googleapi.Error{
113908			Code:   res.StatusCode,
113909			Header: res.Header,
113910		}
113911	}
113912	if err != nil {
113913		return nil, err
113914	}
113915	defer googleapi.CloseBody(res)
113916	if err := googleapi.CheckResponse(res); err != nil {
113917		return nil, err
113918	}
113919	ret := &Operation{
113920		ServerResponse: googleapi.ServerResponse{
113921			Header:         res.Header,
113922			HTTPStatusCode: res.StatusCode,
113923		},
113924	}
113925	target := &ret
113926	if err := gensupport.DecodeResponse(target, res); err != nil {
113927		return nil, err
113928	}
113929	return ret, nil
113930	// {
113931	//   "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.",
113932	//   "httpMethod": "POST",
113933	//   "id": "compute.regionInstanceGroupManagers.insert",
113934	//   "parameterOrder": [
113935	//     "project",
113936	//     "region"
113937	//   ],
113938	//   "parameters": {
113939	//     "project": {
113940	//       "description": "Project ID for this request.",
113941	//       "location": "path",
113942	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
113943	//       "required": true,
113944	//       "type": "string"
113945	//     },
113946	//     "region": {
113947	//       "description": "Name of the region scoping this request.",
113948	//       "location": "path",
113949	//       "required": true,
113950	//       "type": "string"
113951	//     },
113952	//     "requestId": {
113953	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
113954	//       "location": "query",
113955	//       "type": "string"
113956	//     }
113957	//   },
113958	//   "path": "{project}/regions/{region}/instanceGroupManagers",
113959	//   "request": {
113960	//     "$ref": "InstanceGroupManager"
113961	//   },
113962	//   "response": {
113963	//     "$ref": "Operation"
113964	//   },
113965	//   "scopes": [
113966	//     "https://www.googleapis.com/auth/cloud-platform",
113967	//     "https://www.googleapis.com/auth/compute"
113968	//   ]
113969	// }
113970
113971}
113972
113973// method id "compute.regionInstanceGroupManagers.list":
113974
113975type RegionInstanceGroupManagersListCall struct {
113976	s            *Service
113977	project      string
113978	region       string
113979	urlParams_   gensupport.URLParams
113980	ifNoneMatch_ string
113981	ctx_         context.Context
113982	header_      http.Header
113983}
113984
113985// List: Retrieves the list of managed instance groups that are
113986// contained within the specified region.
113987func (r *RegionInstanceGroupManagersService) List(project string, region string) *RegionInstanceGroupManagersListCall {
113988	c := &RegionInstanceGroupManagersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
113989	c.project = project
113990	c.region = region
113991	return c
113992}
113993
113994// Filter sets the optional parameter "filter": A filter expression that
113995// filters resources listed in the response. The expression must specify
113996// the field name, a comparison operator, and the value that you want to
113997// use for filtering. The value must be a string, a number, or a
113998// boolean. The comparison operator must be either =, !=, >, or <.
113999//
114000// For example, if you are filtering Compute Engine instances, you can
114001// exclude instances named example-instance by specifying name !=
114002// example-instance.
114003//
114004// You can also filter nested fields. For example, you could specify
114005// scheduling.automaticRestart = false to include instances only if they
114006// are not scheduled for automatic restarts. You can use filtering on
114007// nested fields to filter based on resource labels.
114008//
114009// To filter on multiple expressions, provide each separate expression
114010// within parentheses. For example, (scheduling.automaticRestart = true)
114011// (cpuPlatform = "Intel Skylake"). By default, each expression is an
114012// AND expression. However, you can include AND and OR expressions
114013// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
114014// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
114015// true).
114016func (c *RegionInstanceGroupManagersListCall) Filter(filter string) *RegionInstanceGroupManagersListCall {
114017	c.urlParams_.Set("filter", filter)
114018	return c
114019}
114020
114021// MaxResults sets the optional parameter "maxResults": The maximum
114022// number of results per page that should be returned. If the number of
114023// available results is larger than maxResults, Compute Engine returns a
114024// nextPageToken that can be used to get the next page of results in
114025// subsequent list requests. Acceptable values are 0 to 500, inclusive.
114026// (Default: 500)
114027func (c *RegionInstanceGroupManagersListCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListCall {
114028	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114029	return c
114030}
114031
114032// OrderBy sets the optional parameter "orderBy": Sorts list results by
114033// a certain order. By default, results are returned in alphanumerical
114034// order based on the resource name.
114035//
114036// You can also sort results in descending order based on the creation
114037// timestamp using orderBy="creationTimestamp desc". This sorts results
114038// based on the creationTimestamp field in reverse chronological order
114039// (newest result first). Use this to sort resources like operations so
114040// that the newest operation is returned first.
114041//
114042// Currently, only sorting by name or creationTimestamp desc is
114043// supported.
114044func (c *RegionInstanceGroupManagersListCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListCall {
114045	c.urlParams_.Set("orderBy", orderBy)
114046	return c
114047}
114048
114049// PageToken sets the optional parameter "pageToken": Specifies a page
114050// token to use. Set pageToken to the nextPageToken returned by a
114051// previous list request to get the next page of results.
114052func (c *RegionInstanceGroupManagersListCall) PageToken(pageToken string) *RegionInstanceGroupManagersListCall {
114053	c.urlParams_.Set("pageToken", pageToken)
114054	return c
114055}
114056
114057// Fields allows partial responses to be retrieved. See
114058// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114059// for more information.
114060func (c *RegionInstanceGroupManagersListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListCall {
114061	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114062	return c
114063}
114064
114065// IfNoneMatch sets the optional parameter which makes the operation
114066// fail if the object's ETag matches the given value. This is useful for
114067// getting updates only after the object has changed since the last
114068// request. Use googleapi.IsNotModified to check whether the response
114069// error from Do is the result of In-None-Match.
114070func (c *RegionInstanceGroupManagersListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListCall {
114071	c.ifNoneMatch_ = entityTag
114072	return c
114073}
114074
114075// Context sets the context to be used in this call's Do method. Any
114076// pending HTTP request will be aborted if the provided context is
114077// canceled.
114078func (c *RegionInstanceGroupManagersListCall) Context(ctx context.Context) *RegionInstanceGroupManagersListCall {
114079	c.ctx_ = ctx
114080	return c
114081}
114082
114083// Header returns an http.Header that can be modified by the caller to
114084// add HTTP headers to the request.
114085func (c *RegionInstanceGroupManagersListCall) Header() http.Header {
114086	if c.header_ == nil {
114087		c.header_ = make(http.Header)
114088	}
114089	return c.header_
114090}
114091
114092func (c *RegionInstanceGroupManagersListCall) doRequest(alt string) (*http.Response, error) {
114093	reqHeaders := make(http.Header)
114094	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114095	for k, v := range c.header_ {
114096		reqHeaders[k] = v
114097	}
114098	reqHeaders.Set("User-Agent", c.s.userAgent())
114099	if c.ifNoneMatch_ != "" {
114100		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114101	}
114102	var body io.Reader = nil
114103	c.urlParams_.Set("alt", alt)
114104	c.urlParams_.Set("prettyPrint", "false")
114105	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers")
114106	urls += "?" + c.urlParams_.Encode()
114107	req, err := http.NewRequest("GET", urls, body)
114108	if err != nil {
114109		return nil, err
114110	}
114111	req.Header = reqHeaders
114112	googleapi.Expand(req.URL, map[string]string{
114113		"project": c.project,
114114		"region":  c.region,
114115	})
114116	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114117}
114118
114119// Do executes the "compute.regionInstanceGroupManagers.list" call.
114120// Exactly one of *RegionInstanceGroupManagerList or error will be
114121// non-nil. Any non-2xx status code is an error. Response headers are in
114122// either *RegionInstanceGroupManagerList.ServerResponse.Header or (if a
114123// response was returned at all) in error.(*googleapi.Error).Header. Use
114124// googleapi.IsNotModified to check whether the returned error was
114125// because http.StatusNotModified was returned.
114126func (c *RegionInstanceGroupManagersListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagerList, error) {
114127	gensupport.SetOptions(c.urlParams_, opts...)
114128	res, err := c.doRequest("json")
114129	if res != nil && res.StatusCode == http.StatusNotModified {
114130		if res.Body != nil {
114131			res.Body.Close()
114132		}
114133		return nil, &googleapi.Error{
114134			Code:   res.StatusCode,
114135			Header: res.Header,
114136		}
114137	}
114138	if err != nil {
114139		return nil, err
114140	}
114141	defer googleapi.CloseBody(res)
114142	if err := googleapi.CheckResponse(res); err != nil {
114143		return nil, err
114144	}
114145	ret := &RegionInstanceGroupManagerList{
114146		ServerResponse: googleapi.ServerResponse{
114147			Header:         res.Header,
114148			HTTPStatusCode: res.StatusCode,
114149		},
114150	}
114151	target := &ret
114152	if err := gensupport.DecodeResponse(target, res); err != nil {
114153		return nil, err
114154	}
114155	return ret, nil
114156	// {
114157	//   "description": "Retrieves the list of managed instance groups that are contained within the specified region.",
114158	//   "httpMethod": "GET",
114159	//   "id": "compute.regionInstanceGroupManagers.list",
114160	//   "parameterOrder": [
114161	//     "project",
114162	//     "region"
114163	//   ],
114164	//   "parameters": {
114165	//     "filter": {
114166	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
114167	//       "location": "query",
114168	//       "type": "string"
114169	//     },
114170	//     "maxResults": {
114171	//       "default": "500",
114172	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
114173	//       "format": "uint32",
114174	//       "location": "query",
114175	//       "minimum": "0",
114176	//       "type": "integer"
114177	//     },
114178	//     "orderBy": {
114179	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
114180	//       "location": "query",
114181	//       "type": "string"
114182	//     },
114183	//     "pageToken": {
114184	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
114185	//       "location": "query",
114186	//       "type": "string"
114187	//     },
114188	//     "project": {
114189	//       "description": "Project ID for this request.",
114190	//       "location": "path",
114191	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114192	//       "required": true,
114193	//       "type": "string"
114194	//     },
114195	//     "region": {
114196	//       "description": "Name of the region scoping this request.",
114197	//       "location": "path",
114198	//       "required": true,
114199	//       "type": "string"
114200	//     }
114201	//   },
114202	//   "path": "{project}/regions/{region}/instanceGroupManagers",
114203	//   "response": {
114204	//     "$ref": "RegionInstanceGroupManagerList"
114205	//   },
114206	//   "scopes": [
114207	//     "https://www.googleapis.com/auth/cloud-platform",
114208	//     "https://www.googleapis.com/auth/compute",
114209	//     "https://www.googleapis.com/auth/compute.readonly"
114210	//   ]
114211	// }
114212
114213}
114214
114215// Pages invokes f for each page of results.
114216// A non-nil error returned from f will halt the iteration.
114217// The provided context supersedes any context provided to the Context method.
114218func (c *RegionInstanceGroupManagersListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagerList) error) error {
114219	c.ctx_ = ctx
114220	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114221	for {
114222		x, err := c.Do()
114223		if err != nil {
114224			return err
114225		}
114226		if err := f(x); err != nil {
114227			return err
114228		}
114229		if x.NextPageToken == "" {
114230			return nil
114231		}
114232		c.PageToken(x.NextPageToken)
114233	}
114234}
114235
114236// method id "compute.regionInstanceGroupManagers.listErrors":
114237
114238type RegionInstanceGroupManagersListErrorsCall struct {
114239	s                    *Service
114240	project              string
114241	region               string
114242	instanceGroupManager string
114243	urlParams_           gensupport.URLParams
114244	ifNoneMatch_         string
114245	ctx_                 context.Context
114246	header_              http.Header
114247}
114248
114249// ListErrors: Lists all errors thrown by actions on instances for a
114250// given regional managed instance group.
114251func (r *RegionInstanceGroupManagersService) ListErrors(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListErrorsCall {
114252	c := &RegionInstanceGroupManagersListErrorsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114253	c.project = project
114254	c.region = region
114255	c.instanceGroupManager = instanceGroupManager
114256	return c
114257}
114258
114259// Filter sets the optional parameter "filter": A filter expression that
114260// filters resources listed in the response. The expression must specify
114261// the field name, a comparison operator, and the value that you want to
114262// use for filtering. The value must be a string, a number, or a
114263// boolean. The comparison operator must be either =, !=, >, or <.
114264//
114265// For example, if you are filtering Compute Engine instances, you can
114266// exclude instances named example-instance by specifying name !=
114267// example-instance.
114268//
114269// You can also filter nested fields. For example, you could specify
114270// scheduling.automaticRestart = false to include instances only if they
114271// are not scheduled for automatic restarts. You can use filtering on
114272// nested fields to filter based on resource labels.
114273//
114274// To filter on multiple expressions, provide each separate expression
114275// within parentheses. For example, (scheduling.automaticRestart = true)
114276// (cpuPlatform = "Intel Skylake"). By default, each expression is an
114277// AND expression. However, you can include AND and OR expressions
114278// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
114279// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
114280// true).
114281func (c *RegionInstanceGroupManagersListErrorsCall) Filter(filter string) *RegionInstanceGroupManagersListErrorsCall {
114282	c.urlParams_.Set("filter", filter)
114283	return c
114284}
114285
114286// MaxResults sets the optional parameter "maxResults": The maximum
114287// number of results per page that should be returned. If the number of
114288// available results is larger than maxResults, Compute Engine returns a
114289// nextPageToken that can be used to get the next page of results in
114290// subsequent list requests. Acceptable values are 0 to 500, inclusive.
114291// (Default: 500)
114292func (c *RegionInstanceGroupManagersListErrorsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListErrorsCall {
114293	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114294	return c
114295}
114296
114297// OrderBy sets the optional parameter "orderBy": Sorts list results by
114298// a certain order. By default, results are returned in alphanumerical
114299// order based on the resource name.
114300//
114301// You can also sort results in descending order based on the creation
114302// timestamp using orderBy="creationTimestamp desc". This sorts results
114303// based on the creationTimestamp field in reverse chronological order
114304// (newest result first). Use this to sort resources like operations so
114305// that the newest operation is returned first.
114306//
114307// Currently, only sorting by name or creationTimestamp desc is
114308// supported.
114309func (c *RegionInstanceGroupManagersListErrorsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListErrorsCall {
114310	c.urlParams_.Set("orderBy", orderBy)
114311	return c
114312}
114313
114314// PageToken sets the optional parameter "pageToken": Specifies a page
114315// token to use. Set pageToken to the nextPageToken returned by a
114316// previous list request to get the next page of results.
114317func (c *RegionInstanceGroupManagersListErrorsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListErrorsCall {
114318	c.urlParams_.Set("pageToken", pageToken)
114319	return c
114320}
114321
114322// Fields allows partial responses to be retrieved. See
114323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114324// for more information.
114325func (c *RegionInstanceGroupManagersListErrorsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListErrorsCall {
114326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114327	return c
114328}
114329
114330// IfNoneMatch sets the optional parameter which makes the operation
114331// fail if the object's ETag matches the given value. This is useful for
114332// getting updates only after the object has changed since the last
114333// request. Use googleapi.IsNotModified to check whether the response
114334// error from Do is the result of In-None-Match.
114335func (c *RegionInstanceGroupManagersListErrorsCall) IfNoneMatch(entityTag string) *RegionInstanceGroupManagersListErrorsCall {
114336	c.ifNoneMatch_ = entityTag
114337	return c
114338}
114339
114340// Context sets the context to be used in this call's Do method. Any
114341// pending HTTP request will be aborted if the provided context is
114342// canceled.
114343func (c *RegionInstanceGroupManagersListErrorsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListErrorsCall {
114344	c.ctx_ = ctx
114345	return c
114346}
114347
114348// Header returns an http.Header that can be modified by the caller to
114349// add HTTP headers to the request.
114350func (c *RegionInstanceGroupManagersListErrorsCall) Header() http.Header {
114351	if c.header_ == nil {
114352		c.header_ = make(http.Header)
114353	}
114354	return c.header_
114355}
114356
114357func (c *RegionInstanceGroupManagersListErrorsCall) doRequest(alt string) (*http.Response, error) {
114358	reqHeaders := make(http.Header)
114359	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114360	for k, v := range c.header_ {
114361		reqHeaders[k] = v
114362	}
114363	reqHeaders.Set("User-Agent", c.s.userAgent())
114364	if c.ifNoneMatch_ != "" {
114365		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
114366	}
114367	var body io.Reader = nil
114368	c.urlParams_.Set("alt", alt)
114369	c.urlParams_.Set("prettyPrint", "false")
114370	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors")
114371	urls += "?" + c.urlParams_.Encode()
114372	req, err := http.NewRequest("GET", urls, body)
114373	if err != nil {
114374		return nil, err
114375	}
114376	req.Header = reqHeaders
114377	googleapi.Expand(req.URL, map[string]string{
114378		"project":              c.project,
114379		"region":               c.region,
114380		"instanceGroupManager": c.instanceGroupManager,
114381	})
114382	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114383}
114384
114385// Do executes the "compute.regionInstanceGroupManagers.listErrors" call.
114386// Exactly one of *RegionInstanceGroupManagersListErrorsResponse or
114387// error will be non-nil. Any non-2xx status code is an error. Response
114388// headers are in either
114389// *RegionInstanceGroupManagersListErrorsResponse.ServerResponse.Header
114390// or (if a response was returned at all) in
114391// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
114392// whether the returned error was because http.StatusNotModified was
114393// returned.
114394func (c *RegionInstanceGroupManagersListErrorsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListErrorsResponse, 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 := &RegionInstanceGroupManagersListErrorsResponse{
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": "Lists all errors thrown by actions on instances for a given regional managed instance group.",
114426	//   "httpMethod": "GET",
114427	//   "id": "compute.regionInstanceGroupManagers.listErrors",
114428	//   "parameterOrder": [
114429	//     "project",
114430	//     "region",
114431	//     "instanceGroupManager"
114432	//   ],
114433	//   "parameters": {
114434	//     "filter": {
114435	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
114436	//       "location": "query",
114437	//       "type": "string"
114438	//     },
114439	//     "instanceGroupManager": {
114440	//       "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}.",
114441	//       "location": "path",
114442	//       "required": true,
114443	//       "type": "string"
114444	//     },
114445	//     "maxResults": {
114446	//       "default": "500",
114447	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
114448	//       "format": "uint32",
114449	//       "location": "query",
114450	//       "minimum": "0",
114451	//       "type": "integer"
114452	//     },
114453	//     "orderBy": {
114454	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
114455	//       "location": "query",
114456	//       "type": "string"
114457	//     },
114458	//     "pageToken": {
114459	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
114460	//       "location": "query",
114461	//       "type": "string"
114462	//     },
114463	//     "project": {
114464	//       "description": "Project ID for this request.",
114465	//       "location": "path",
114466	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114467	//       "required": true,
114468	//       "type": "string"
114469	//     },
114470	//     "region": {
114471	//       "description": "Name of the region scoping this request. This should conform to RFC1035.",
114472	//       "location": "path",
114473	//       "required": true,
114474	//       "type": "string"
114475	//     }
114476	//   },
114477	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listErrors",
114478	//   "response": {
114479	//     "$ref": "RegionInstanceGroupManagersListErrorsResponse"
114480	//   },
114481	//   "scopes": [
114482	//     "https://www.googleapis.com/auth/cloud-platform",
114483	//     "https://www.googleapis.com/auth/compute",
114484	//     "https://www.googleapis.com/auth/compute.readonly"
114485	//   ]
114486	// }
114487
114488}
114489
114490// Pages invokes f for each page of results.
114491// A non-nil error returned from f will halt the iteration.
114492// The provided context supersedes any context provided to the Context method.
114493func (c *RegionInstanceGroupManagersListErrorsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListErrorsResponse) error) error {
114494	c.ctx_ = ctx
114495	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114496	for {
114497		x, err := c.Do()
114498		if err != nil {
114499			return err
114500		}
114501		if err := f(x); err != nil {
114502			return err
114503		}
114504		if x.NextPageToken == "" {
114505			return nil
114506		}
114507		c.PageToken(x.NextPageToken)
114508	}
114509}
114510
114511// method id "compute.regionInstanceGroupManagers.listManagedInstances":
114512
114513type RegionInstanceGroupManagersListManagedInstancesCall struct {
114514	s                    *Service
114515	project              string
114516	region               string
114517	instanceGroupManager string
114518	urlParams_           gensupport.URLParams
114519	ctx_                 context.Context
114520	header_              http.Header
114521}
114522
114523// ListManagedInstances: Lists the instances in the managed instance
114524// group and instances that are scheduled to be created. The list
114525// includes any current actions that the group has scheduled for its
114526// instances.
114527func (r *RegionInstanceGroupManagersService) ListManagedInstances(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListManagedInstancesCall {
114528	c := &RegionInstanceGroupManagersListManagedInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114529	c.project = project
114530	c.region = region
114531	c.instanceGroupManager = instanceGroupManager
114532	return c
114533}
114534
114535// Filter sets the optional parameter "filter": A filter expression that
114536// filters resources listed in the response. The expression must specify
114537// the field name, a comparison operator, and the value that you want to
114538// use for filtering. The value must be a string, a number, or a
114539// boolean. The comparison operator must be either =, !=, >, or <.
114540//
114541// For example, if you are filtering Compute Engine instances, you can
114542// exclude instances named example-instance by specifying name !=
114543// example-instance.
114544//
114545// You can also filter nested fields. For example, you could specify
114546// scheduling.automaticRestart = false to include instances only if they
114547// are not scheduled for automatic restarts. You can use filtering on
114548// nested fields to filter based on resource labels.
114549//
114550// To filter on multiple expressions, provide each separate expression
114551// within parentheses. For example, (scheduling.automaticRestart = true)
114552// (cpuPlatform = "Intel Skylake"). By default, each expression is an
114553// AND expression. However, you can include AND and OR expressions
114554// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
114555// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
114556// true).
114557func (c *RegionInstanceGroupManagersListManagedInstancesCall) Filter(filter string) *RegionInstanceGroupManagersListManagedInstancesCall {
114558	c.urlParams_.Set("filter", filter)
114559	return c
114560}
114561
114562// MaxResults sets the optional parameter "maxResults": The maximum
114563// number of results per page that should be returned. If the number of
114564// available results is larger than maxResults, Compute Engine returns a
114565// nextPageToken that can be used to get the next page of results in
114566// subsequent list requests. Acceptable values are 0 to 500, inclusive.
114567// (Default: 500)
114568func (c *RegionInstanceGroupManagersListManagedInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListManagedInstancesCall {
114569	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114570	return c
114571}
114572
114573// OrderBy sets the optional parameter "order_by": Sorts list results by
114574// a certain order. By default, results are returned in alphanumerical
114575// order based on the resource name.
114576//
114577// You can also sort results in descending order based on the creation
114578// timestamp using orderBy="creationTimestamp desc". This sorts results
114579// based on the creationTimestamp field in reverse chronological order
114580// (newest result first). Use this to sort resources like operations so
114581// that the newest operation is returned first.
114582//
114583// Currently, only sorting by name or creationTimestamp desc is
114584// supported.
114585func (c *RegionInstanceGroupManagersListManagedInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListManagedInstancesCall {
114586	c.urlParams_.Set("order_by", orderBy)
114587	return c
114588}
114589
114590// PageToken sets the optional parameter "pageToken": Specifies a page
114591// token to use. Set pageToken to the nextPageToken returned by a
114592// previous list request to get the next page of results.
114593func (c *RegionInstanceGroupManagersListManagedInstancesCall) PageToken(pageToken string) *RegionInstanceGroupManagersListManagedInstancesCall {
114594	c.urlParams_.Set("pageToken", pageToken)
114595	return c
114596}
114597
114598// Fields allows partial responses to be retrieved. See
114599// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114600// for more information.
114601func (c *RegionInstanceGroupManagersListManagedInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListManagedInstancesCall {
114602	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114603	return c
114604}
114605
114606// Context sets the context to be used in this call's Do method. Any
114607// pending HTTP request will be aborted if the provided context is
114608// canceled.
114609func (c *RegionInstanceGroupManagersListManagedInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersListManagedInstancesCall {
114610	c.ctx_ = ctx
114611	return c
114612}
114613
114614// Header returns an http.Header that can be modified by the caller to
114615// add HTTP headers to the request.
114616func (c *RegionInstanceGroupManagersListManagedInstancesCall) Header() http.Header {
114617	if c.header_ == nil {
114618		c.header_ = make(http.Header)
114619	}
114620	return c.header_
114621}
114622
114623func (c *RegionInstanceGroupManagersListManagedInstancesCall) doRequest(alt string) (*http.Response, error) {
114624	reqHeaders := make(http.Header)
114625	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114626	for k, v := range c.header_ {
114627		reqHeaders[k] = v
114628	}
114629	reqHeaders.Set("User-Agent", c.s.userAgent())
114630	var body io.Reader = nil
114631	c.urlParams_.Set("alt", alt)
114632	c.urlParams_.Set("prettyPrint", "false")
114633	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances")
114634	urls += "?" + c.urlParams_.Encode()
114635	req, err := http.NewRequest("POST", urls, body)
114636	if err != nil {
114637		return nil, err
114638	}
114639	req.Header = reqHeaders
114640	googleapi.Expand(req.URL, map[string]string{
114641		"project":              c.project,
114642		"region":               c.region,
114643		"instanceGroupManager": c.instanceGroupManager,
114644	})
114645	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114646}
114647
114648// Do executes the "compute.regionInstanceGroupManagers.listManagedInstances" call.
114649// Exactly one of *RegionInstanceGroupManagersListInstancesResponse or
114650// error will be non-nil. Any non-2xx status code is an error. Response
114651// headers are in either
114652// *RegionInstanceGroupManagersListInstancesResponse.ServerResponse.Heade
114653// r or (if a response was returned at all) in
114654// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
114655// whether the returned error was because http.StatusNotModified was
114656// returned.
114657func (c *RegionInstanceGroupManagersListManagedInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstancesResponse, error) {
114658	gensupport.SetOptions(c.urlParams_, opts...)
114659	res, err := c.doRequest("json")
114660	if res != nil && res.StatusCode == http.StatusNotModified {
114661		if res.Body != nil {
114662			res.Body.Close()
114663		}
114664		return nil, &googleapi.Error{
114665			Code:   res.StatusCode,
114666			Header: res.Header,
114667		}
114668	}
114669	if err != nil {
114670		return nil, err
114671	}
114672	defer googleapi.CloseBody(res)
114673	if err := googleapi.CheckResponse(res); err != nil {
114674		return nil, err
114675	}
114676	ret := &RegionInstanceGroupManagersListInstancesResponse{
114677		ServerResponse: googleapi.ServerResponse{
114678			Header:         res.Header,
114679			HTTPStatusCode: res.StatusCode,
114680		},
114681	}
114682	target := &ret
114683	if err := gensupport.DecodeResponse(target, res); err != nil {
114684		return nil, err
114685	}
114686	return ret, nil
114687	// {
114688	//   "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.",
114689	//   "httpMethod": "POST",
114690	//   "id": "compute.regionInstanceGroupManagers.listManagedInstances",
114691	//   "parameterOrder": [
114692	//     "project",
114693	//     "region",
114694	//     "instanceGroupManager"
114695	//   ],
114696	//   "parameters": {
114697	//     "filter": {
114698	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
114699	//       "location": "query",
114700	//       "type": "string"
114701	//     },
114702	//     "instanceGroupManager": {
114703	//       "description": "The name of the managed instance group.",
114704	//       "location": "path",
114705	//       "required": true,
114706	//       "type": "string"
114707	//     },
114708	//     "maxResults": {
114709	//       "default": "500",
114710	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
114711	//       "format": "uint32",
114712	//       "location": "query",
114713	//       "minimum": "0",
114714	//       "type": "integer"
114715	//     },
114716	//     "order_by": {
114717	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
114718	//       "location": "query",
114719	//       "type": "string"
114720	//     },
114721	//     "pageToken": {
114722	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
114723	//       "location": "query",
114724	//       "type": "string"
114725	//     },
114726	//     "project": {
114727	//       "description": "Project ID for this request.",
114728	//       "location": "path",
114729	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114730	//       "required": true,
114731	//       "type": "string"
114732	//     },
114733	//     "region": {
114734	//       "description": "Name of the region scoping this request.",
114735	//       "location": "path",
114736	//       "required": true,
114737	//       "type": "string"
114738	//     }
114739	//   },
114740	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listManagedInstances",
114741	//   "response": {
114742	//     "$ref": "RegionInstanceGroupManagersListInstancesResponse"
114743	//   },
114744	//   "scopes": [
114745	//     "https://www.googleapis.com/auth/cloud-platform",
114746	//     "https://www.googleapis.com/auth/compute",
114747	//     "https://www.googleapis.com/auth/compute.readonly"
114748	//   ]
114749	// }
114750
114751}
114752
114753// Pages invokes f for each page of results.
114754// A non-nil error returned from f will halt the iteration.
114755// The provided context supersedes any context provided to the Context method.
114756func (c *RegionInstanceGroupManagersListManagedInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstancesResponse) error) error {
114757	c.ctx_ = ctx
114758	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
114759	for {
114760		x, err := c.Do()
114761		if err != nil {
114762			return err
114763		}
114764		if err := f(x); err != nil {
114765			return err
114766		}
114767		if x.NextPageToken == "" {
114768			return nil
114769		}
114770		c.PageToken(x.NextPageToken)
114771	}
114772}
114773
114774// method id "compute.regionInstanceGroupManagers.listPerInstanceConfigs":
114775
114776type RegionInstanceGroupManagersListPerInstanceConfigsCall struct {
114777	s                    *Service
114778	project              string
114779	region               string
114780	instanceGroupManager string
114781	urlParams_           gensupport.URLParams
114782	ctx_                 context.Context
114783	header_              http.Header
114784}
114785
114786// ListPerInstanceConfigs: Lists all of the per-instance configs defined
114787// for the managed instance group.
114788func (r *RegionInstanceGroupManagersService) ListPerInstanceConfigs(project string, region string, instanceGroupManager string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
114789	c := &RegionInstanceGroupManagersListPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
114790	c.project = project
114791	c.region = region
114792	c.instanceGroupManager = instanceGroupManager
114793	return c
114794}
114795
114796// Filter sets the optional parameter "filter": A filter expression that
114797// filters resources listed in the response. The expression must specify
114798// the field name, a comparison operator, and the value that you want to
114799// use for filtering. The value must be a string, a number, or a
114800// boolean. The comparison operator must be either =, !=, >, or <.
114801//
114802// For example, if you are filtering Compute Engine instances, you can
114803// exclude instances named example-instance by specifying name !=
114804// example-instance.
114805//
114806// You can also filter nested fields. For example, you could specify
114807// scheduling.automaticRestart = false to include instances only if they
114808// are not scheduled for automatic restarts. You can use filtering on
114809// nested fields to filter based on resource labels.
114810//
114811// To filter on multiple expressions, provide each separate expression
114812// within parentheses. For example, (scheduling.automaticRestart = true)
114813// (cpuPlatform = "Intel Skylake"). By default, each expression is an
114814// AND expression. However, you can include AND and OR expressions
114815// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
114816// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
114817// true).
114818func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Filter(filter string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
114819	c.urlParams_.Set("filter", filter)
114820	return c
114821}
114822
114823// MaxResults sets the optional parameter "maxResults": The maximum
114824// number of results per page that should be returned. If the number of
114825// available results is larger than maxResults, Compute Engine returns a
114826// nextPageToken that can be used to get the next page of results in
114827// subsequent list requests. Acceptable values are 0 to 500, inclusive.
114828// (Default: 500)
114829func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) MaxResults(maxResults int64) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
114830	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
114831	return c
114832}
114833
114834// OrderBy sets the optional parameter "orderBy": Sorts list results by
114835// a certain order. By default, results are returned in alphanumerical
114836// order based on the resource name.
114837//
114838// You can also sort results in descending order based on the creation
114839// timestamp using orderBy="creationTimestamp desc". This sorts results
114840// based on the creationTimestamp field in reverse chronological order
114841// (newest result first). Use this to sort resources like operations so
114842// that the newest operation is returned first.
114843//
114844// Currently, only sorting by name or creationTimestamp desc is
114845// supported.
114846func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) OrderBy(orderBy string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
114847	c.urlParams_.Set("orderBy", orderBy)
114848	return c
114849}
114850
114851// PageToken sets the optional parameter "pageToken": Specifies a page
114852// token to use. Set pageToken to the nextPageToken returned by a
114853// previous list request to get the next page of results.
114854func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) PageToken(pageToken string) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
114855	c.urlParams_.Set("pageToken", pageToken)
114856	return c
114857}
114858
114859// Fields allows partial responses to be retrieved. See
114860// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
114861// for more information.
114862func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
114863	c.urlParams_.Set("fields", googleapi.CombineFields(s))
114864	return c
114865}
114866
114867// Context sets the context to be used in this call's Do method. Any
114868// pending HTTP request will be aborted if the provided context is
114869// canceled.
114870func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersListPerInstanceConfigsCall {
114871	c.ctx_ = ctx
114872	return c
114873}
114874
114875// Header returns an http.Header that can be modified by the caller to
114876// add HTTP headers to the request.
114877func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Header() http.Header {
114878	if c.header_ == nil {
114879		c.header_ = make(http.Header)
114880	}
114881	return c.header_
114882}
114883
114884func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
114885	reqHeaders := make(http.Header)
114886	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
114887	for k, v := range c.header_ {
114888		reqHeaders[k] = v
114889	}
114890	reqHeaders.Set("User-Agent", c.s.userAgent())
114891	var body io.Reader = nil
114892	c.urlParams_.Set("alt", alt)
114893	c.urlParams_.Set("prettyPrint", "false")
114894	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs")
114895	urls += "?" + c.urlParams_.Encode()
114896	req, err := http.NewRequest("POST", urls, body)
114897	if err != nil {
114898		return nil, err
114899	}
114900	req.Header = reqHeaders
114901	googleapi.Expand(req.URL, map[string]string{
114902		"project":              c.project,
114903		"region":               c.region,
114904		"instanceGroupManager": c.instanceGroupManager,
114905	})
114906	return gensupport.SendRequest(c.ctx_, c.s.client, req)
114907}
114908
114909// Do executes the "compute.regionInstanceGroupManagers.listPerInstanceConfigs" call.
114910// Exactly one of *RegionInstanceGroupManagersListInstanceConfigsResp or
114911// error will be non-nil. Any non-2xx status code is an error. Response
114912// headers are in either
114913// *RegionInstanceGroupManagersListInstanceConfigsResp.ServerResponse.Hea
114914// der or (if a response was returned at all) in
114915// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
114916// whether the returned error was because http.StatusNotModified was
114917// returned.
114918func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupManagersListInstanceConfigsResp, error) {
114919	gensupport.SetOptions(c.urlParams_, opts...)
114920	res, err := c.doRequest("json")
114921	if res != nil && res.StatusCode == http.StatusNotModified {
114922		if res.Body != nil {
114923			res.Body.Close()
114924		}
114925		return nil, &googleapi.Error{
114926			Code:   res.StatusCode,
114927			Header: res.Header,
114928		}
114929	}
114930	if err != nil {
114931		return nil, err
114932	}
114933	defer googleapi.CloseBody(res)
114934	if err := googleapi.CheckResponse(res); err != nil {
114935		return nil, err
114936	}
114937	ret := &RegionInstanceGroupManagersListInstanceConfigsResp{
114938		ServerResponse: googleapi.ServerResponse{
114939			Header:         res.Header,
114940			HTTPStatusCode: res.StatusCode,
114941		},
114942	}
114943	target := &ret
114944	if err := gensupport.DecodeResponse(target, res); err != nil {
114945		return nil, err
114946	}
114947	return ret, nil
114948	// {
114949	//   "description": "Lists all of the per-instance configs defined for the managed instance group.",
114950	//   "httpMethod": "POST",
114951	//   "id": "compute.regionInstanceGroupManagers.listPerInstanceConfigs",
114952	//   "parameterOrder": [
114953	//     "project",
114954	//     "region",
114955	//     "instanceGroupManager"
114956	//   ],
114957	//   "parameters": {
114958	//     "filter": {
114959	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
114960	//       "location": "query",
114961	//       "type": "string"
114962	//     },
114963	//     "instanceGroupManager": {
114964	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
114965	//       "location": "path",
114966	//       "required": true,
114967	//       "type": "string"
114968	//     },
114969	//     "maxResults": {
114970	//       "default": "500",
114971	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
114972	//       "format": "uint32",
114973	//       "location": "query",
114974	//       "minimum": "0",
114975	//       "type": "integer"
114976	//     },
114977	//     "orderBy": {
114978	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
114979	//       "location": "query",
114980	//       "type": "string"
114981	//     },
114982	//     "pageToken": {
114983	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
114984	//       "location": "query",
114985	//       "type": "string"
114986	//     },
114987	//     "project": {
114988	//       "description": "Project ID for this request.",
114989	//       "location": "path",
114990	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
114991	//       "required": true,
114992	//       "type": "string"
114993	//     },
114994	//     "region": {
114995	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
114996	//       "location": "path",
114997	//       "required": true,
114998	//       "type": "string"
114999	//     }
115000	//   },
115001	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/listPerInstanceConfigs",
115002	//   "response": {
115003	//     "$ref": "RegionInstanceGroupManagersListInstanceConfigsResp"
115004	//   },
115005	//   "scopes": [
115006	//     "https://www.googleapis.com/auth/cloud-platform",
115007	//     "https://www.googleapis.com/auth/compute",
115008	//     "https://www.googleapis.com/auth/compute.readonly"
115009	//   ]
115010	// }
115011
115012}
115013
115014// Pages invokes f for each page of results.
115015// A non-nil error returned from f will halt the iteration.
115016// The provided context supersedes any context provided to the Context method.
115017func (c *RegionInstanceGroupManagersListPerInstanceConfigsCall) Pages(ctx context.Context, f func(*RegionInstanceGroupManagersListInstanceConfigsResp) error) error {
115018	c.ctx_ = ctx
115019	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
115020	for {
115021		x, err := c.Do()
115022		if err != nil {
115023			return err
115024		}
115025		if err := f(x); err != nil {
115026			return err
115027		}
115028		if x.NextPageToken == "" {
115029			return nil
115030		}
115031		c.PageToken(x.NextPageToken)
115032	}
115033}
115034
115035// method id "compute.regionInstanceGroupManagers.patch":
115036
115037type RegionInstanceGroupManagersPatchCall struct {
115038	s                    *Service
115039	project              string
115040	region               string
115041	instanceGroupManager string
115042	instancegroupmanager *InstanceGroupManager
115043	urlParams_           gensupport.URLParams
115044	ctx_                 context.Context
115045	header_              http.Header
115046}
115047
115048// Patch: Updates a managed instance group using the information that
115049// you specify in the request. This operation is marked as DONE when the
115050// group is patched even if the instances in the group are still in the
115051// process of being patched. You must separately verify the status of
115052// the individual instances with the listmanagedinstances method. This
115053// method supports PATCH semantics and uses the JSON merge patch format
115054// and processing rules.
115055func (r *RegionInstanceGroupManagersService) Patch(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersPatchCall {
115056	c := &RegionInstanceGroupManagersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115057	c.project = project
115058	c.region = region
115059	c.instanceGroupManager = instanceGroupManager
115060	c.instancegroupmanager = instancegroupmanager
115061	return c
115062}
115063
115064// RequestId sets the optional parameter "requestId": An optional
115065// request ID to identify requests. Specify a unique request ID so that
115066// if you must retry your request, the server will know to ignore the
115067// request if it has already been completed.
115068//
115069// For example, consider a situation where you make an initial request
115070// and the request times out. If you make the request again with the
115071// same request ID, the server can check if original operation with the
115072// same request ID was received, and if so, will ignore the second
115073// request. This prevents clients from accidentally creating duplicate
115074// commitments.
115075//
115076// The request ID must be a valid UUID with the exception that zero UUID
115077// is not supported (00000000-0000-0000-0000-000000000000).
115078func (c *RegionInstanceGroupManagersPatchCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchCall {
115079	c.urlParams_.Set("requestId", requestId)
115080	return c
115081}
115082
115083// Fields allows partial responses to be retrieved. See
115084// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115085// for more information.
115086func (c *RegionInstanceGroupManagersPatchCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchCall {
115087	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115088	return c
115089}
115090
115091// Context sets the context to be used in this call's Do method. Any
115092// pending HTTP request will be aborted if the provided context is
115093// canceled.
115094func (c *RegionInstanceGroupManagersPatchCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchCall {
115095	c.ctx_ = ctx
115096	return c
115097}
115098
115099// Header returns an http.Header that can be modified by the caller to
115100// add HTTP headers to the request.
115101func (c *RegionInstanceGroupManagersPatchCall) Header() http.Header {
115102	if c.header_ == nil {
115103		c.header_ = make(http.Header)
115104	}
115105	return c.header_
115106}
115107
115108func (c *RegionInstanceGroupManagersPatchCall) doRequest(alt string) (*http.Response, error) {
115109	reqHeaders := make(http.Header)
115110	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115111	for k, v := range c.header_ {
115112		reqHeaders[k] = v
115113	}
115114	reqHeaders.Set("User-Agent", c.s.userAgent())
115115	var body io.Reader = nil
115116	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
115117	if err != nil {
115118		return nil, err
115119	}
115120	reqHeaders.Set("Content-Type", "application/json")
115121	c.urlParams_.Set("alt", alt)
115122	c.urlParams_.Set("prettyPrint", "false")
115123	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
115124	urls += "?" + c.urlParams_.Encode()
115125	req, err := http.NewRequest("PATCH", urls, body)
115126	if err != nil {
115127		return nil, err
115128	}
115129	req.Header = reqHeaders
115130	googleapi.Expand(req.URL, map[string]string{
115131		"project":              c.project,
115132		"region":               c.region,
115133		"instanceGroupManager": c.instanceGroupManager,
115134	})
115135	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115136}
115137
115138// Do executes the "compute.regionInstanceGroupManagers.patch" call.
115139// Exactly one of *Operation or error will be non-nil. Any non-2xx
115140// status code is an error. Response headers are in either
115141// *Operation.ServerResponse.Header or (if a response was returned at
115142// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115143// to check whether the returned error was because
115144// http.StatusNotModified was returned.
115145func (c *RegionInstanceGroupManagersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115146	gensupport.SetOptions(c.urlParams_, opts...)
115147	res, err := c.doRequest("json")
115148	if res != nil && res.StatusCode == http.StatusNotModified {
115149		if res.Body != nil {
115150			res.Body.Close()
115151		}
115152		return nil, &googleapi.Error{
115153			Code:   res.StatusCode,
115154			Header: res.Header,
115155		}
115156	}
115157	if err != nil {
115158		return nil, err
115159	}
115160	defer googleapi.CloseBody(res)
115161	if err := googleapi.CheckResponse(res); err != nil {
115162		return nil, err
115163	}
115164	ret := &Operation{
115165		ServerResponse: googleapi.ServerResponse{
115166			Header:         res.Header,
115167			HTTPStatusCode: res.StatusCode,
115168		},
115169	}
115170	target := &ret
115171	if err := gensupport.DecodeResponse(target, res); err != nil {
115172		return nil, err
115173	}
115174	return ret, nil
115175	// {
115176	//   "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.",
115177	//   "httpMethod": "PATCH",
115178	//   "id": "compute.regionInstanceGroupManagers.patch",
115179	//   "parameterOrder": [
115180	//     "project",
115181	//     "region",
115182	//     "instanceGroupManager"
115183	//   ],
115184	//   "parameters": {
115185	//     "instanceGroupManager": {
115186	//       "description": "The name of the instance group manager.",
115187	//       "location": "path",
115188	//       "required": true,
115189	//       "type": "string"
115190	//     },
115191	//     "project": {
115192	//       "description": "Project ID for this request.",
115193	//       "location": "path",
115194	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115195	//       "required": true,
115196	//       "type": "string"
115197	//     },
115198	//     "region": {
115199	//       "description": "Name of the region scoping this request.",
115200	//       "location": "path",
115201	//       "required": true,
115202	//       "type": "string"
115203	//     },
115204	//     "requestId": {
115205	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115206	//       "location": "query",
115207	//       "type": "string"
115208	//     }
115209	//   },
115210	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
115211	//   "request": {
115212	//     "$ref": "InstanceGroupManager"
115213	//   },
115214	//   "response": {
115215	//     "$ref": "Operation"
115216	//   },
115217	//   "scopes": [
115218	//     "https://www.googleapis.com/auth/cloud-platform",
115219	//     "https://www.googleapis.com/auth/compute"
115220	//   ]
115221	// }
115222
115223}
115224
115225// method id "compute.regionInstanceGroupManagers.patchPerInstanceConfigs":
115226
115227type RegionInstanceGroupManagersPatchPerInstanceConfigsCall struct {
115228	s                                                *Service
115229	project                                          string
115230	region                                           string
115231	instanceGroupManager                             string
115232	regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq
115233	urlParams_                                       gensupport.URLParams
115234	ctx_                                             context.Context
115235	header_                                          http.Header
115236}
115237
115238// PatchPerInstanceConfigs: Insert or patch (for the ones that already
115239// exist) per-instance configs for the managed instance group.
115240// perInstanceConfig.instance serves as a key used to distinguish
115241// whether to perform insert or patch.
115242func (r *RegionInstanceGroupManagersService) PatchPerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerpatchinstanceconfigreq *RegionInstanceGroupManagerPatchInstanceConfigReq) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
115243	c := &RegionInstanceGroupManagersPatchPerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115244	c.project = project
115245	c.region = region
115246	c.instanceGroupManager = instanceGroupManager
115247	c.regioninstancegroupmanagerpatchinstanceconfigreq = regioninstancegroupmanagerpatchinstanceconfigreq
115248	return c
115249}
115250
115251// RequestId sets the optional parameter "requestId": An optional
115252// request ID to identify requests. Specify a unique request ID so that
115253// if you must retry your request, the server will know to ignore the
115254// request if it has already been completed.
115255//
115256// For example, consider a situation where you make an initial request
115257// and the request times out. If you make the request again with the
115258// same request ID, the server can check if original operation with the
115259// same request ID was received, and if so, will ignore the second
115260// request. This prevents clients from accidentally creating duplicate
115261// commitments.
115262//
115263// The request ID must be a valid UUID with the exception that zero UUID
115264// is not supported (00000000-0000-0000-0000-000000000000).
115265func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
115266	c.urlParams_.Set("requestId", requestId)
115267	return c
115268}
115269
115270// Fields allows partial responses to be retrieved. See
115271// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115272// for more information.
115273func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
115274	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115275	return c
115276}
115277
115278// Context sets the context to be used in this call's Do method. Any
115279// pending HTTP request will be aborted if the provided context is
115280// canceled.
115281func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersPatchPerInstanceConfigsCall {
115282	c.ctx_ = ctx
115283	return c
115284}
115285
115286// Header returns an http.Header that can be modified by the caller to
115287// add HTTP headers to the request.
115288func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Header() http.Header {
115289	if c.header_ == nil {
115290		c.header_ = make(http.Header)
115291	}
115292	return c.header_
115293}
115294
115295func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
115296	reqHeaders := make(http.Header)
115297	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115298	for k, v := range c.header_ {
115299		reqHeaders[k] = v
115300	}
115301	reqHeaders.Set("User-Agent", c.s.userAgent())
115302	var body io.Reader = nil
115303	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerpatchinstanceconfigreq)
115304	if err != nil {
115305		return nil, err
115306	}
115307	reqHeaders.Set("Content-Type", "application/json")
115308	c.urlParams_.Set("alt", alt)
115309	c.urlParams_.Set("prettyPrint", "false")
115310	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs")
115311	urls += "?" + c.urlParams_.Encode()
115312	req, err := http.NewRequest("POST", urls, body)
115313	if err != nil {
115314		return nil, err
115315	}
115316	req.Header = reqHeaders
115317	googleapi.Expand(req.URL, map[string]string{
115318		"project":              c.project,
115319		"region":               c.region,
115320		"instanceGroupManager": c.instanceGroupManager,
115321	})
115322	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115323}
115324
115325// Do executes the "compute.regionInstanceGroupManagers.patchPerInstanceConfigs" call.
115326// Exactly one of *Operation or error will be non-nil. Any non-2xx
115327// status code is an error. Response headers are in either
115328// *Operation.ServerResponse.Header or (if a response was returned at
115329// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115330// to check whether the returned error was because
115331// http.StatusNotModified was returned.
115332func (c *RegionInstanceGroupManagersPatchPerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115333	gensupport.SetOptions(c.urlParams_, opts...)
115334	res, err := c.doRequest("json")
115335	if res != nil && res.StatusCode == http.StatusNotModified {
115336		if res.Body != nil {
115337			res.Body.Close()
115338		}
115339		return nil, &googleapi.Error{
115340			Code:   res.StatusCode,
115341			Header: res.Header,
115342		}
115343	}
115344	if err != nil {
115345		return nil, err
115346	}
115347	defer googleapi.CloseBody(res)
115348	if err := googleapi.CheckResponse(res); err != nil {
115349		return nil, err
115350	}
115351	ret := &Operation{
115352		ServerResponse: googleapi.ServerResponse{
115353			Header:         res.Header,
115354			HTTPStatusCode: res.StatusCode,
115355		},
115356	}
115357	target := &ret
115358	if err := gensupport.DecodeResponse(target, res); err != nil {
115359		return nil, err
115360	}
115361	return ret, nil
115362	// {
115363	//   "description": "Insert or patch (for the ones that already exist) per-instance configs for the managed instance group. perInstanceConfig.instance serves as a key used to distinguish whether to perform insert or patch.",
115364	//   "httpMethod": "POST",
115365	//   "id": "compute.regionInstanceGroupManagers.patchPerInstanceConfigs",
115366	//   "parameterOrder": [
115367	//     "project",
115368	//     "region",
115369	//     "instanceGroupManager"
115370	//   ],
115371	//   "parameters": {
115372	//     "instanceGroupManager": {
115373	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
115374	//       "location": "path",
115375	//       "required": true,
115376	//       "type": "string"
115377	//     },
115378	//     "project": {
115379	//       "description": "Project ID for this request.",
115380	//       "location": "path",
115381	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115382	//       "required": true,
115383	//       "type": "string"
115384	//     },
115385	//     "region": {
115386	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
115387	//       "location": "path",
115388	//       "required": true,
115389	//       "type": "string"
115390	//     },
115391	//     "requestId": {
115392	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115393	//       "location": "query",
115394	//       "type": "string"
115395	//     }
115396	//   },
115397	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/patchPerInstanceConfigs",
115398	//   "request": {
115399	//     "$ref": "RegionInstanceGroupManagerPatchInstanceConfigReq"
115400	//   },
115401	//   "response": {
115402	//     "$ref": "Operation"
115403	//   },
115404	//   "scopes": [
115405	//     "https://www.googleapis.com/auth/cloud-platform",
115406	//     "https://www.googleapis.com/auth/compute"
115407	//   ]
115408	// }
115409
115410}
115411
115412// method id "compute.regionInstanceGroupManagers.recreateInstances":
115413
115414type RegionInstanceGroupManagersRecreateInstancesCall struct {
115415	s                                          *Service
115416	project                                    string
115417	region                                     string
115418	instanceGroupManager                       string
115419	regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest
115420	urlParams_                                 gensupport.URLParams
115421	ctx_                                       context.Context
115422	header_                                    http.Header
115423}
115424
115425// RecreateInstances: Flags the specified instances in the managed
115426// instance group to be immediately recreated. The instances are deleted
115427// and recreated using the current instance template for the managed
115428// instance group. This operation is marked as DONE when the flag is set
115429// even if the instances have not yet been recreated. You must
115430// separately verify the status of the recreating action with the
115431// listmanagedinstances method.
115432//
115433// If the group is part of a backend service that has enabled connection
115434// draining, it can take up to 60 seconds after the connection draining
115435// duration has elapsed before the VM instance is removed or
115436// deleted.
115437//
115438// You can specify a maximum of 1000 instances with this method per
115439// request.
115440func (r *RegionInstanceGroupManagersService) RecreateInstances(project string, region string, instanceGroupManager string, regioninstancegroupmanagersrecreaterequest *RegionInstanceGroupManagersRecreateRequest) *RegionInstanceGroupManagersRecreateInstancesCall {
115441	c := &RegionInstanceGroupManagersRecreateInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115442	c.project = project
115443	c.region = region
115444	c.instanceGroupManager = instanceGroupManager
115445	c.regioninstancegroupmanagersrecreaterequest = regioninstancegroupmanagersrecreaterequest
115446	return c
115447}
115448
115449// RequestId sets the optional parameter "requestId": An optional
115450// request ID to identify requests. Specify a unique request ID so that
115451// if you must retry your request, the server will know to ignore the
115452// request if it has already been completed.
115453//
115454// For example, consider a situation where you make an initial request
115455// and the request times out. If you make the request again with the
115456// same request ID, the server can check if original operation with the
115457// same request ID was received, and if so, will ignore the second
115458// request. This prevents clients from accidentally creating duplicate
115459// commitments.
115460//
115461// The request ID must be a valid UUID with the exception that zero UUID
115462// is not supported (00000000-0000-0000-0000-000000000000).
115463func (c *RegionInstanceGroupManagersRecreateInstancesCall) RequestId(requestId string) *RegionInstanceGroupManagersRecreateInstancesCall {
115464	c.urlParams_.Set("requestId", requestId)
115465	return c
115466}
115467
115468// Fields allows partial responses to be retrieved. See
115469// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115470// for more information.
115471func (c *RegionInstanceGroupManagersRecreateInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersRecreateInstancesCall {
115472	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115473	return c
115474}
115475
115476// Context sets the context to be used in this call's Do method. Any
115477// pending HTTP request will be aborted if the provided context is
115478// canceled.
115479func (c *RegionInstanceGroupManagersRecreateInstancesCall) Context(ctx context.Context) *RegionInstanceGroupManagersRecreateInstancesCall {
115480	c.ctx_ = ctx
115481	return c
115482}
115483
115484// Header returns an http.Header that can be modified by the caller to
115485// add HTTP headers to the request.
115486func (c *RegionInstanceGroupManagersRecreateInstancesCall) Header() http.Header {
115487	if c.header_ == nil {
115488		c.header_ = make(http.Header)
115489	}
115490	return c.header_
115491}
115492
115493func (c *RegionInstanceGroupManagersRecreateInstancesCall) doRequest(alt string) (*http.Response, error) {
115494	reqHeaders := make(http.Header)
115495	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115496	for k, v := range c.header_ {
115497		reqHeaders[k] = v
115498	}
115499	reqHeaders.Set("User-Agent", c.s.userAgent())
115500	var body io.Reader = nil
115501	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagersrecreaterequest)
115502	if err != nil {
115503		return nil, err
115504	}
115505	reqHeaders.Set("Content-Type", "application/json")
115506	c.urlParams_.Set("alt", alt)
115507	c.urlParams_.Set("prettyPrint", "false")
115508	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances")
115509	urls += "?" + c.urlParams_.Encode()
115510	req, err := http.NewRequest("POST", urls, body)
115511	if err != nil {
115512		return nil, err
115513	}
115514	req.Header = reqHeaders
115515	googleapi.Expand(req.URL, map[string]string{
115516		"project":              c.project,
115517		"region":               c.region,
115518		"instanceGroupManager": c.instanceGroupManager,
115519	})
115520	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115521}
115522
115523// Do executes the "compute.regionInstanceGroupManagers.recreateInstances" call.
115524// Exactly one of *Operation or error will be non-nil. Any non-2xx
115525// status code is an error. Response headers are in either
115526// *Operation.ServerResponse.Header or (if a response was returned at
115527// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115528// to check whether the returned error was because
115529// http.StatusNotModified was returned.
115530func (c *RegionInstanceGroupManagersRecreateInstancesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115531	gensupport.SetOptions(c.urlParams_, opts...)
115532	res, err := c.doRequest("json")
115533	if res != nil && res.StatusCode == http.StatusNotModified {
115534		if res.Body != nil {
115535			res.Body.Close()
115536		}
115537		return nil, &googleapi.Error{
115538			Code:   res.StatusCode,
115539			Header: res.Header,
115540		}
115541	}
115542	if err != nil {
115543		return nil, err
115544	}
115545	defer googleapi.CloseBody(res)
115546	if err := googleapi.CheckResponse(res); err != nil {
115547		return nil, err
115548	}
115549	ret := &Operation{
115550		ServerResponse: googleapi.ServerResponse{
115551			Header:         res.Header,
115552			HTTPStatusCode: res.StatusCode,
115553		},
115554	}
115555	target := &ret
115556	if err := gensupport.DecodeResponse(target, res); err != nil {
115557		return nil, err
115558	}
115559	return ret, nil
115560	// {
115561	//   "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.",
115562	//   "httpMethod": "POST",
115563	//   "id": "compute.regionInstanceGroupManagers.recreateInstances",
115564	//   "parameterOrder": [
115565	//     "project",
115566	//     "region",
115567	//     "instanceGroupManager"
115568	//   ],
115569	//   "parameters": {
115570	//     "instanceGroupManager": {
115571	//       "description": "Name of the managed instance group.",
115572	//       "location": "path",
115573	//       "required": true,
115574	//       "type": "string"
115575	//     },
115576	//     "project": {
115577	//       "description": "Project ID for this request.",
115578	//       "location": "path",
115579	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115580	//       "required": true,
115581	//       "type": "string"
115582	//     },
115583	//     "region": {
115584	//       "description": "Name of the region scoping this request.",
115585	//       "location": "path",
115586	//       "required": true,
115587	//       "type": "string"
115588	//     },
115589	//     "requestId": {
115590	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115591	//       "location": "query",
115592	//       "type": "string"
115593	//     }
115594	//   },
115595	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/recreateInstances",
115596	//   "request": {
115597	//     "$ref": "RegionInstanceGroupManagersRecreateRequest"
115598	//   },
115599	//   "response": {
115600	//     "$ref": "Operation"
115601	//   },
115602	//   "scopes": [
115603	//     "https://www.googleapis.com/auth/cloud-platform",
115604	//     "https://www.googleapis.com/auth/compute"
115605	//   ]
115606	// }
115607
115608}
115609
115610// method id "compute.regionInstanceGroupManagers.resize":
115611
115612type RegionInstanceGroupManagersResizeCall struct {
115613	s                    *Service
115614	project              string
115615	region               string
115616	instanceGroupManager string
115617	urlParams_           gensupport.URLParams
115618	ctx_                 context.Context
115619	header_              http.Header
115620}
115621
115622// Resize: Changes the intended size of the managed instance group. If
115623// you increase the size, the group creates new instances using the
115624// current instance template. If you decrease the size, the group
115625// deletes one or more instances.
115626//
115627// The resize operation is marked DONE if the resize request is
115628// successful. The underlying actions take additional time. You must
115629// separately verify the status of the creating or deleting actions with
115630// the listmanagedinstances method.
115631//
115632// If the group is part of a backend service that has enabled connection
115633// draining, it can take up to 60 seconds after the connection draining
115634// duration has elapsed before the VM instance is removed or deleted.
115635func (r *RegionInstanceGroupManagersService) Resize(project string, region string, instanceGroupManager string, size int64) *RegionInstanceGroupManagersResizeCall {
115636	c := &RegionInstanceGroupManagersResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115637	c.project = project
115638	c.region = region
115639	c.instanceGroupManager = instanceGroupManager
115640	c.urlParams_.Set("size", fmt.Sprint(size))
115641	return c
115642}
115643
115644// RequestId sets the optional parameter "requestId": An optional
115645// request ID to identify requests. Specify a unique request ID so that
115646// if you must retry your request, the server will know to ignore the
115647// request if it has already been completed.
115648//
115649// For example, consider a situation where you make an initial request
115650// and the request times out. If you make the request again with the
115651// same request ID, the server can check if original operation with the
115652// same request ID was received, and if so, will ignore the second
115653// request. This prevents clients from accidentally creating duplicate
115654// commitments.
115655//
115656// The request ID must be a valid UUID with the exception that zero UUID
115657// is not supported (00000000-0000-0000-0000-000000000000).
115658func (c *RegionInstanceGroupManagersResizeCall) RequestId(requestId string) *RegionInstanceGroupManagersResizeCall {
115659	c.urlParams_.Set("requestId", requestId)
115660	return c
115661}
115662
115663// Fields allows partial responses to be retrieved. See
115664// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115665// for more information.
115666func (c *RegionInstanceGroupManagersResizeCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersResizeCall {
115667	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115668	return c
115669}
115670
115671// Context sets the context to be used in this call's Do method. Any
115672// pending HTTP request will be aborted if the provided context is
115673// canceled.
115674func (c *RegionInstanceGroupManagersResizeCall) Context(ctx context.Context) *RegionInstanceGroupManagersResizeCall {
115675	c.ctx_ = ctx
115676	return c
115677}
115678
115679// Header returns an http.Header that can be modified by the caller to
115680// add HTTP headers to the request.
115681func (c *RegionInstanceGroupManagersResizeCall) Header() http.Header {
115682	if c.header_ == nil {
115683		c.header_ = make(http.Header)
115684	}
115685	return c.header_
115686}
115687
115688func (c *RegionInstanceGroupManagersResizeCall) doRequest(alt string) (*http.Response, error) {
115689	reqHeaders := make(http.Header)
115690	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115691	for k, v := range c.header_ {
115692		reqHeaders[k] = v
115693	}
115694	reqHeaders.Set("User-Agent", c.s.userAgent())
115695	var body io.Reader = nil
115696	c.urlParams_.Set("alt", alt)
115697	c.urlParams_.Set("prettyPrint", "false")
115698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize")
115699	urls += "?" + c.urlParams_.Encode()
115700	req, err := http.NewRequest("POST", urls, body)
115701	if err != nil {
115702		return nil, err
115703	}
115704	req.Header = reqHeaders
115705	googleapi.Expand(req.URL, map[string]string{
115706		"project":              c.project,
115707		"region":               c.region,
115708		"instanceGroupManager": c.instanceGroupManager,
115709	})
115710	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115711}
115712
115713// Do executes the "compute.regionInstanceGroupManagers.resize" call.
115714// Exactly one of *Operation or error will be non-nil. Any non-2xx
115715// status code is an error. Response headers are in either
115716// *Operation.ServerResponse.Header or (if a response was returned at
115717// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115718// to check whether the returned error was because
115719// http.StatusNotModified was returned.
115720func (c *RegionInstanceGroupManagersResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115721	gensupport.SetOptions(c.urlParams_, opts...)
115722	res, err := c.doRequest("json")
115723	if res != nil && res.StatusCode == http.StatusNotModified {
115724		if res.Body != nil {
115725			res.Body.Close()
115726		}
115727		return nil, &googleapi.Error{
115728			Code:   res.StatusCode,
115729			Header: res.Header,
115730		}
115731	}
115732	if err != nil {
115733		return nil, err
115734	}
115735	defer googleapi.CloseBody(res)
115736	if err := googleapi.CheckResponse(res); err != nil {
115737		return nil, err
115738	}
115739	ret := &Operation{
115740		ServerResponse: googleapi.ServerResponse{
115741			Header:         res.Header,
115742			HTTPStatusCode: res.StatusCode,
115743		},
115744	}
115745	target := &ret
115746	if err := gensupport.DecodeResponse(target, res); err != nil {
115747		return nil, err
115748	}
115749	return ret, nil
115750	// {
115751	//   "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.",
115752	//   "httpMethod": "POST",
115753	//   "id": "compute.regionInstanceGroupManagers.resize",
115754	//   "parameterOrder": [
115755	//     "project",
115756	//     "region",
115757	//     "instanceGroupManager",
115758	//     "size"
115759	//   ],
115760	//   "parameters": {
115761	//     "instanceGroupManager": {
115762	//       "description": "Name of the managed instance group.",
115763	//       "location": "path",
115764	//       "required": true,
115765	//       "type": "string"
115766	//     },
115767	//     "project": {
115768	//       "description": "Project ID for this request.",
115769	//       "location": "path",
115770	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115771	//       "required": true,
115772	//       "type": "string"
115773	//     },
115774	//     "region": {
115775	//       "description": "Name of the region scoping this request.",
115776	//       "location": "path",
115777	//       "required": true,
115778	//       "type": "string"
115779	//     },
115780	//     "requestId": {
115781	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115782	//       "location": "query",
115783	//       "type": "string"
115784	//     },
115785	//     "size": {
115786	//       "description": "Number of instances that should exist in this instance group manager.",
115787	//       "format": "int32",
115788	//       "location": "query",
115789	//       "minimum": "0",
115790	//       "required": true,
115791	//       "type": "integer"
115792	//     }
115793	//   },
115794	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/resize",
115795	//   "response": {
115796	//     "$ref": "Operation"
115797	//   },
115798	//   "scopes": [
115799	//     "https://www.googleapis.com/auth/cloud-platform",
115800	//     "https://www.googleapis.com/auth/compute"
115801	//   ]
115802	// }
115803
115804}
115805
115806// method id "compute.regionInstanceGroupManagers.setAutoHealingPolicies":
115807
115808type RegionInstanceGroupManagersSetAutoHealingPoliciesCall struct {
115809	s                                                *Service
115810	project                                          string
115811	region                                           string
115812	instanceGroupManager                             string
115813	regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest
115814	urlParams_                                       gensupport.URLParams
115815	ctx_                                             context.Context
115816	header_                                          http.Header
115817}
115818
115819// SetAutoHealingPolicies: Modifies the autohealing policy for the
115820// instances in this managed instance group. [Deprecated] This method is
115821// deprecated. Please use Patch instead.
115822func (r *RegionInstanceGroupManagersService) SetAutoHealingPolicies(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssetautohealingrequest *RegionInstanceGroupManagersSetAutoHealingRequest) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
115823	c := &RegionInstanceGroupManagersSetAutoHealingPoliciesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
115824	c.project = project
115825	c.region = region
115826	c.instanceGroupManager = instanceGroupManager
115827	c.regioninstancegroupmanagerssetautohealingrequest = regioninstancegroupmanagerssetautohealingrequest
115828	return c
115829}
115830
115831// RequestId sets the optional parameter "requestId": An optional
115832// request ID to identify requests. Specify a unique request ID so that
115833// if you must retry your request, the server will know to ignore the
115834// request if it has already been completed.
115835//
115836// For example, consider a situation where you make an initial request
115837// and the request times out. If you make the request again with the
115838// same request ID, the server can check if original operation with the
115839// same request ID was received, and if so, will ignore the second
115840// request. This prevents clients from accidentally creating duplicate
115841// commitments.
115842//
115843// The request ID must be a valid UUID with the exception that zero UUID
115844// is not supported (00000000-0000-0000-0000-000000000000).
115845func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) RequestId(requestId string) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
115846	c.urlParams_.Set("requestId", requestId)
115847	return c
115848}
115849
115850// Fields allows partial responses to be retrieved. See
115851// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
115852// for more information.
115853func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
115854	c.urlParams_.Set("fields", googleapi.CombineFields(s))
115855	return c
115856}
115857
115858// Context sets the context to be used in this call's Do method. Any
115859// pending HTTP request will be aborted if the provided context is
115860// canceled.
115861func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetAutoHealingPoliciesCall {
115862	c.ctx_ = ctx
115863	return c
115864}
115865
115866// Header returns an http.Header that can be modified by the caller to
115867// add HTTP headers to the request.
115868func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Header() http.Header {
115869	if c.header_ == nil {
115870		c.header_ = make(http.Header)
115871	}
115872	return c.header_
115873}
115874
115875func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) doRequest(alt string) (*http.Response, error) {
115876	reqHeaders := make(http.Header)
115877	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
115878	for k, v := range c.header_ {
115879		reqHeaders[k] = v
115880	}
115881	reqHeaders.Set("User-Agent", c.s.userAgent())
115882	var body io.Reader = nil
115883	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssetautohealingrequest)
115884	if err != nil {
115885		return nil, err
115886	}
115887	reqHeaders.Set("Content-Type", "application/json")
115888	c.urlParams_.Set("alt", alt)
115889	c.urlParams_.Set("prettyPrint", "false")
115890	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies")
115891	urls += "?" + c.urlParams_.Encode()
115892	req, err := http.NewRequest("POST", urls, body)
115893	if err != nil {
115894		return nil, err
115895	}
115896	req.Header = reqHeaders
115897	googleapi.Expand(req.URL, map[string]string{
115898		"project":              c.project,
115899		"region":               c.region,
115900		"instanceGroupManager": c.instanceGroupManager,
115901	})
115902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
115903}
115904
115905// Do executes the "compute.regionInstanceGroupManagers.setAutoHealingPolicies" call.
115906// Exactly one of *Operation or error will be non-nil. Any non-2xx
115907// status code is an error. Response headers are in either
115908// *Operation.ServerResponse.Header or (if a response was returned at
115909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
115910// to check whether the returned error was because
115911// http.StatusNotModified was returned.
115912func (c *RegionInstanceGroupManagersSetAutoHealingPoliciesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
115913	gensupport.SetOptions(c.urlParams_, opts...)
115914	res, err := c.doRequest("json")
115915	if res != nil && res.StatusCode == http.StatusNotModified {
115916		if res.Body != nil {
115917			res.Body.Close()
115918		}
115919		return nil, &googleapi.Error{
115920			Code:   res.StatusCode,
115921			Header: res.Header,
115922		}
115923	}
115924	if err != nil {
115925		return nil, err
115926	}
115927	defer googleapi.CloseBody(res)
115928	if err := googleapi.CheckResponse(res); err != nil {
115929		return nil, err
115930	}
115931	ret := &Operation{
115932		ServerResponse: googleapi.ServerResponse{
115933			Header:         res.Header,
115934			HTTPStatusCode: res.StatusCode,
115935		},
115936	}
115937	target := &ret
115938	if err := gensupport.DecodeResponse(target, res); err != nil {
115939		return nil, err
115940	}
115941	return ret, nil
115942	// {
115943	//   "description": "Modifies the autohealing policy for the instances in this managed instance group. [Deprecated] This method is deprecated. Please use Patch instead.",
115944	//   "httpMethod": "POST",
115945	//   "id": "compute.regionInstanceGroupManagers.setAutoHealingPolicies",
115946	//   "parameterOrder": [
115947	//     "project",
115948	//     "region",
115949	//     "instanceGroupManager"
115950	//   ],
115951	//   "parameters": {
115952	//     "instanceGroupManager": {
115953	//       "description": "Name of the managed instance group.",
115954	//       "location": "path",
115955	//       "required": true,
115956	//       "type": "string"
115957	//     },
115958	//     "project": {
115959	//       "description": "Project ID for this request.",
115960	//       "location": "path",
115961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
115962	//       "required": true,
115963	//       "type": "string"
115964	//     },
115965	//     "region": {
115966	//       "description": "Name of the region scoping this request.",
115967	//       "location": "path",
115968	//       "required": true,
115969	//       "type": "string"
115970	//     },
115971	//     "requestId": {
115972	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
115973	//       "location": "query",
115974	//       "type": "string"
115975	//     }
115976	//   },
115977	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setAutoHealingPolicies",
115978	//   "request": {
115979	//     "$ref": "RegionInstanceGroupManagersSetAutoHealingRequest"
115980	//   },
115981	//   "response": {
115982	//     "$ref": "Operation"
115983	//   },
115984	//   "scopes": [
115985	//     "https://www.googleapis.com/auth/cloud-platform",
115986	//     "https://www.googleapis.com/auth/compute"
115987	//   ]
115988	// }
115989
115990}
115991
115992// method id "compute.regionInstanceGroupManagers.setInstanceTemplate":
115993
115994type RegionInstanceGroupManagersSetInstanceTemplateCall struct {
115995	s                                             *Service
115996	project                                       string
115997	region                                        string
115998	instanceGroupManager                          string
115999	regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest
116000	urlParams_                                    gensupport.URLParams
116001	ctx_                                          context.Context
116002	header_                                       http.Header
116003}
116004
116005// SetInstanceTemplate: Sets the instance template to use when creating
116006// new instances or recreating instances in this group. Existing
116007// instances are not affected.
116008func (r *RegionInstanceGroupManagersService) SetInstanceTemplate(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettemplaterequest *RegionInstanceGroupManagersSetTemplateRequest) *RegionInstanceGroupManagersSetInstanceTemplateCall {
116009	c := &RegionInstanceGroupManagersSetInstanceTemplateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116010	c.project = project
116011	c.region = region
116012	c.instanceGroupManager = instanceGroupManager
116013	c.regioninstancegroupmanagerssettemplaterequest = regioninstancegroupmanagerssettemplaterequest
116014	return c
116015}
116016
116017// RequestId sets the optional parameter "requestId": An optional
116018// request ID to identify requests. Specify a unique request ID so that
116019// if you must retry your request, the server will know to ignore the
116020// request if it has already been completed.
116021//
116022// For example, consider a situation where you make an initial request
116023// and the request times out. If you make the request again with the
116024// same request ID, the server can check if original operation with the
116025// same request ID was received, and if so, will ignore the second
116026// request. This prevents clients from accidentally creating duplicate
116027// commitments.
116028//
116029// The request ID must be a valid UUID with the exception that zero UUID
116030// is not supported (00000000-0000-0000-0000-000000000000).
116031func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) RequestId(requestId string) *RegionInstanceGroupManagersSetInstanceTemplateCall {
116032	c.urlParams_.Set("requestId", requestId)
116033	return c
116034}
116035
116036// Fields allows partial responses to be retrieved. See
116037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116038// for more information.
116039func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetInstanceTemplateCall {
116040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116041	return c
116042}
116043
116044// Context sets the context to be used in this call's Do method. Any
116045// pending HTTP request will be aborted if the provided context is
116046// canceled.
116047func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetInstanceTemplateCall {
116048	c.ctx_ = ctx
116049	return c
116050}
116051
116052// Header returns an http.Header that can be modified by the caller to
116053// add HTTP headers to the request.
116054func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Header() http.Header {
116055	if c.header_ == nil {
116056		c.header_ = make(http.Header)
116057	}
116058	return c.header_
116059}
116060
116061func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) doRequest(alt string) (*http.Response, error) {
116062	reqHeaders := make(http.Header)
116063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116064	for k, v := range c.header_ {
116065		reqHeaders[k] = v
116066	}
116067	reqHeaders.Set("User-Agent", c.s.userAgent())
116068	var body io.Reader = nil
116069	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettemplaterequest)
116070	if err != nil {
116071		return nil, err
116072	}
116073	reqHeaders.Set("Content-Type", "application/json")
116074	c.urlParams_.Set("alt", alt)
116075	c.urlParams_.Set("prettyPrint", "false")
116076	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate")
116077	urls += "?" + c.urlParams_.Encode()
116078	req, err := http.NewRequest("POST", urls, body)
116079	if err != nil {
116080		return nil, err
116081	}
116082	req.Header = reqHeaders
116083	googleapi.Expand(req.URL, map[string]string{
116084		"project":              c.project,
116085		"region":               c.region,
116086		"instanceGroupManager": c.instanceGroupManager,
116087	})
116088	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116089}
116090
116091// Do executes the "compute.regionInstanceGroupManagers.setInstanceTemplate" call.
116092// Exactly one of *Operation or error will be non-nil. Any non-2xx
116093// status code is an error. Response headers are in either
116094// *Operation.ServerResponse.Header or (if a response was returned at
116095// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116096// to check whether the returned error was because
116097// http.StatusNotModified was returned.
116098func (c *RegionInstanceGroupManagersSetInstanceTemplateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116099	gensupport.SetOptions(c.urlParams_, opts...)
116100	res, err := c.doRequest("json")
116101	if res != nil && res.StatusCode == http.StatusNotModified {
116102		if res.Body != nil {
116103			res.Body.Close()
116104		}
116105		return nil, &googleapi.Error{
116106			Code:   res.StatusCode,
116107			Header: res.Header,
116108		}
116109	}
116110	if err != nil {
116111		return nil, err
116112	}
116113	defer googleapi.CloseBody(res)
116114	if err := googleapi.CheckResponse(res); err != nil {
116115		return nil, err
116116	}
116117	ret := &Operation{
116118		ServerResponse: googleapi.ServerResponse{
116119			Header:         res.Header,
116120			HTTPStatusCode: res.StatusCode,
116121		},
116122	}
116123	target := &ret
116124	if err := gensupport.DecodeResponse(target, res); err != nil {
116125		return nil, err
116126	}
116127	return ret, nil
116128	// {
116129	//   "description": "Sets the instance template to use when creating new instances or recreating instances in this group. Existing instances are not affected.",
116130	//   "httpMethod": "POST",
116131	//   "id": "compute.regionInstanceGroupManagers.setInstanceTemplate",
116132	//   "parameterOrder": [
116133	//     "project",
116134	//     "region",
116135	//     "instanceGroupManager"
116136	//   ],
116137	//   "parameters": {
116138	//     "instanceGroupManager": {
116139	//       "description": "The name of the managed instance group.",
116140	//       "location": "path",
116141	//       "required": true,
116142	//       "type": "string"
116143	//     },
116144	//     "project": {
116145	//       "description": "Project ID for this request.",
116146	//       "location": "path",
116147	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116148	//       "required": true,
116149	//       "type": "string"
116150	//     },
116151	//     "region": {
116152	//       "description": "Name of the region scoping this request.",
116153	//       "location": "path",
116154	//       "required": true,
116155	//       "type": "string"
116156	//     },
116157	//     "requestId": {
116158	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116159	//       "location": "query",
116160	//       "type": "string"
116161	//     }
116162	//   },
116163	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setInstanceTemplate",
116164	//   "request": {
116165	//     "$ref": "RegionInstanceGroupManagersSetTemplateRequest"
116166	//   },
116167	//   "response": {
116168	//     "$ref": "Operation"
116169	//   },
116170	//   "scopes": [
116171	//     "https://www.googleapis.com/auth/cloud-platform",
116172	//     "https://www.googleapis.com/auth/compute"
116173	//   ]
116174	// }
116175
116176}
116177
116178// method id "compute.regionInstanceGroupManagers.setTargetPools":
116179
116180type RegionInstanceGroupManagersSetTargetPoolsCall struct {
116181	s                                                *Service
116182	project                                          string
116183	region                                           string
116184	instanceGroupManager                             string
116185	regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest
116186	urlParams_                                       gensupport.URLParams
116187	ctx_                                             context.Context
116188	header_                                          http.Header
116189}
116190
116191// SetTargetPools: Modifies the target pools to which all new instances
116192// in this group are assigned. Existing instances in the group are not
116193// affected.
116194func (r *RegionInstanceGroupManagersService) SetTargetPools(project string, region string, instanceGroupManager string, regioninstancegroupmanagerssettargetpoolsrequest *RegionInstanceGroupManagersSetTargetPoolsRequest) *RegionInstanceGroupManagersSetTargetPoolsCall {
116195	c := &RegionInstanceGroupManagersSetTargetPoolsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116196	c.project = project
116197	c.region = region
116198	c.instanceGroupManager = instanceGroupManager
116199	c.regioninstancegroupmanagerssettargetpoolsrequest = regioninstancegroupmanagerssettargetpoolsrequest
116200	return c
116201}
116202
116203// RequestId sets the optional parameter "requestId": An optional
116204// request ID to identify requests. Specify a unique request ID so that
116205// if you must retry your request, the server will know to ignore the
116206// request if it has already been completed.
116207//
116208// For example, consider a situation where you make an initial request
116209// and the request times out. If you make the request again with the
116210// same request ID, the server can check if original operation with the
116211// same request ID was received, and if so, will ignore the second
116212// request. This prevents clients from accidentally creating duplicate
116213// commitments.
116214//
116215// The request ID must be a valid UUID with the exception that zero UUID
116216// is not supported (00000000-0000-0000-0000-000000000000).
116217func (c *RegionInstanceGroupManagersSetTargetPoolsCall) RequestId(requestId string) *RegionInstanceGroupManagersSetTargetPoolsCall {
116218	c.urlParams_.Set("requestId", requestId)
116219	return c
116220}
116221
116222// Fields allows partial responses to be retrieved. See
116223// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116224// for more information.
116225func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersSetTargetPoolsCall {
116226	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116227	return c
116228}
116229
116230// Context sets the context to be used in this call's Do method. Any
116231// pending HTTP request will be aborted if the provided context is
116232// canceled.
116233func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Context(ctx context.Context) *RegionInstanceGroupManagersSetTargetPoolsCall {
116234	c.ctx_ = ctx
116235	return c
116236}
116237
116238// Header returns an http.Header that can be modified by the caller to
116239// add HTTP headers to the request.
116240func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Header() http.Header {
116241	if c.header_ == nil {
116242		c.header_ = make(http.Header)
116243	}
116244	return c.header_
116245}
116246
116247func (c *RegionInstanceGroupManagersSetTargetPoolsCall) doRequest(alt string) (*http.Response, error) {
116248	reqHeaders := make(http.Header)
116249	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116250	for k, v := range c.header_ {
116251		reqHeaders[k] = v
116252	}
116253	reqHeaders.Set("User-Agent", c.s.userAgent())
116254	var body io.Reader = nil
116255	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerssettargetpoolsrequest)
116256	if err != nil {
116257		return nil, err
116258	}
116259	reqHeaders.Set("Content-Type", "application/json")
116260	c.urlParams_.Set("alt", alt)
116261	c.urlParams_.Set("prettyPrint", "false")
116262	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools")
116263	urls += "?" + c.urlParams_.Encode()
116264	req, err := http.NewRequest("POST", urls, body)
116265	if err != nil {
116266		return nil, err
116267	}
116268	req.Header = reqHeaders
116269	googleapi.Expand(req.URL, map[string]string{
116270		"project":              c.project,
116271		"region":               c.region,
116272		"instanceGroupManager": c.instanceGroupManager,
116273	})
116274	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116275}
116276
116277// Do executes the "compute.regionInstanceGroupManagers.setTargetPools" call.
116278// Exactly one of *Operation or error will be non-nil. Any non-2xx
116279// status code is an error. Response headers are in either
116280// *Operation.ServerResponse.Header or (if a response was returned at
116281// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116282// to check whether the returned error was because
116283// http.StatusNotModified was returned.
116284func (c *RegionInstanceGroupManagersSetTargetPoolsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116285	gensupport.SetOptions(c.urlParams_, opts...)
116286	res, err := c.doRequest("json")
116287	if res != nil && res.StatusCode == http.StatusNotModified {
116288		if res.Body != nil {
116289			res.Body.Close()
116290		}
116291		return nil, &googleapi.Error{
116292			Code:   res.StatusCode,
116293			Header: res.Header,
116294		}
116295	}
116296	if err != nil {
116297		return nil, err
116298	}
116299	defer googleapi.CloseBody(res)
116300	if err := googleapi.CheckResponse(res); err != nil {
116301		return nil, err
116302	}
116303	ret := &Operation{
116304		ServerResponse: googleapi.ServerResponse{
116305			Header:         res.Header,
116306			HTTPStatusCode: res.StatusCode,
116307		},
116308	}
116309	target := &ret
116310	if err := gensupport.DecodeResponse(target, res); err != nil {
116311		return nil, err
116312	}
116313	return ret, nil
116314	// {
116315	//   "description": "Modifies the target pools to which all new instances in this group are assigned. Existing instances in the group are not affected.",
116316	//   "httpMethod": "POST",
116317	//   "id": "compute.regionInstanceGroupManagers.setTargetPools",
116318	//   "parameterOrder": [
116319	//     "project",
116320	//     "region",
116321	//     "instanceGroupManager"
116322	//   ],
116323	//   "parameters": {
116324	//     "instanceGroupManager": {
116325	//       "description": "Name of the managed instance group.",
116326	//       "location": "path",
116327	//       "required": true,
116328	//       "type": "string"
116329	//     },
116330	//     "project": {
116331	//       "description": "Project ID for this request.",
116332	//       "location": "path",
116333	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116334	//       "required": true,
116335	//       "type": "string"
116336	//     },
116337	//     "region": {
116338	//       "description": "Name of the region scoping this request.",
116339	//       "location": "path",
116340	//       "required": true,
116341	//       "type": "string"
116342	//     },
116343	//     "requestId": {
116344	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116345	//       "location": "query",
116346	//       "type": "string"
116347	//     }
116348	//   },
116349	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/setTargetPools",
116350	//   "request": {
116351	//     "$ref": "RegionInstanceGroupManagersSetTargetPoolsRequest"
116352	//   },
116353	//   "response": {
116354	//     "$ref": "Operation"
116355	//   },
116356	//   "scopes": [
116357	//     "https://www.googleapis.com/auth/cloud-platform",
116358	//     "https://www.googleapis.com/auth/compute"
116359	//   ]
116360	// }
116361
116362}
116363
116364// method id "compute.regionInstanceGroupManagers.testIamPermissions":
116365
116366type RegionInstanceGroupManagersTestIamPermissionsCall struct {
116367	s                      *Service
116368	project                string
116369	region                 string
116370	resource               string
116371	testpermissionsrequest *TestPermissionsRequest
116372	urlParams_             gensupport.URLParams
116373	ctx_                   context.Context
116374	header_                http.Header
116375}
116376
116377// TestIamPermissions: Returns permissions that a caller has on the
116378// specified resource.
116379func (r *RegionInstanceGroupManagersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupManagersTestIamPermissionsCall {
116380	c := &RegionInstanceGroupManagersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116381	c.project = project
116382	c.region = region
116383	c.resource = resource
116384	c.testpermissionsrequest = testpermissionsrequest
116385	return c
116386}
116387
116388// Fields allows partial responses to be retrieved. See
116389// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116390// for more information.
116391func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersTestIamPermissionsCall {
116392	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116393	return c
116394}
116395
116396// Context sets the context to be used in this call's Do method. Any
116397// pending HTTP request will be aborted if the provided context is
116398// canceled.
116399func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupManagersTestIamPermissionsCall {
116400	c.ctx_ = ctx
116401	return c
116402}
116403
116404// Header returns an http.Header that can be modified by the caller to
116405// add HTTP headers to the request.
116406func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Header() http.Header {
116407	if c.header_ == nil {
116408		c.header_ = make(http.Header)
116409	}
116410	return c.header_
116411}
116412
116413func (c *RegionInstanceGroupManagersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
116414	reqHeaders := make(http.Header)
116415	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116416	for k, v := range c.header_ {
116417		reqHeaders[k] = v
116418	}
116419	reqHeaders.Set("User-Agent", c.s.userAgent())
116420	var body io.Reader = nil
116421	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
116422	if err != nil {
116423		return nil, err
116424	}
116425	reqHeaders.Set("Content-Type", "application/json")
116426	c.urlParams_.Set("alt", alt)
116427	c.urlParams_.Set("prettyPrint", "false")
116428	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions")
116429	urls += "?" + c.urlParams_.Encode()
116430	req, err := http.NewRequest("POST", urls, body)
116431	if err != nil {
116432		return nil, err
116433	}
116434	req.Header = reqHeaders
116435	googleapi.Expand(req.URL, map[string]string{
116436		"project":  c.project,
116437		"region":   c.region,
116438		"resource": c.resource,
116439	})
116440	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116441}
116442
116443// Do executes the "compute.regionInstanceGroupManagers.testIamPermissions" call.
116444// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
116445// non-2xx status code is an error. Response headers are in either
116446// *TestPermissionsResponse.ServerResponse.Header or (if a response was
116447// returned at all) in error.(*googleapi.Error).Header. Use
116448// googleapi.IsNotModified to check whether the returned error was
116449// because http.StatusNotModified was returned.
116450func (c *RegionInstanceGroupManagersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
116451	gensupport.SetOptions(c.urlParams_, opts...)
116452	res, err := c.doRequest("json")
116453	if res != nil && res.StatusCode == http.StatusNotModified {
116454		if res.Body != nil {
116455			res.Body.Close()
116456		}
116457		return nil, &googleapi.Error{
116458			Code:   res.StatusCode,
116459			Header: res.Header,
116460		}
116461	}
116462	if err != nil {
116463		return nil, err
116464	}
116465	defer googleapi.CloseBody(res)
116466	if err := googleapi.CheckResponse(res); err != nil {
116467		return nil, err
116468	}
116469	ret := &TestPermissionsResponse{
116470		ServerResponse: googleapi.ServerResponse{
116471			Header:         res.Header,
116472			HTTPStatusCode: res.StatusCode,
116473		},
116474	}
116475	target := &ret
116476	if err := gensupport.DecodeResponse(target, res); err != nil {
116477		return nil, err
116478	}
116479	return ret, nil
116480	// {
116481	//   "description": "Returns permissions that a caller has on the specified resource.",
116482	//   "httpMethod": "POST",
116483	//   "id": "compute.regionInstanceGroupManagers.testIamPermissions",
116484	//   "parameterOrder": [
116485	//     "project",
116486	//     "region",
116487	//     "resource"
116488	//   ],
116489	//   "parameters": {
116490	//     "project": {
116491	//       "description": "Project ID for this request.",
116492	//       "location": "path",
116493	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116494	//       "required": true,
116495	//       "type": "string"
116496	//     },
116497	//     "region": {
116498	//       "description": "The name of the region for this request.",
116499	//       "location": "path",
116500	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
116501	//       "required": true,
116502	//       "type": "string"
116503	//     },
116504	//     "resource": {
116505	//       "description": "Name or id of the resource for this request.",
116506	//       "location": "path",
116507	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
116508	//       "required": true,
116509	//       "type": "string"
116510	//     }
116511	//   },
116512	//   "path": "{project}/regions/{region}/instanceGroupManagers/{resource}/testIamPermissions",
116513	//   "request": {
116514	//     "$ref": "TestPermissionsRequest"
116515	//   },
116516	//   "response": {
116517	//     "$ref": "TestPermissionsResponse"
116518	//   },
116519	//   "scopes": [
116520	//     "https://www.googleapis.com/auth/cloud-platform",
116521	//     "https://www.googleapis.com/auth/compute",
116522	//     "https://www.googleapis.com/auth/compute.readonly"
116523	//   ]
116524	// }
116525
116526}
116527
116528// method id "compute.regionInstanceGroupManagers.update":
116529
116530type RegionInstanceGroupManagersUpdateCall struct {
116531	s                    *Service
116532	project              string
116533	region               string
116534	instanceGroupManager string
116535	instancegroupmanager *InstanceGroupManager
116536	urlParams_           gensupport.URLParams
116537	ctx_                 context.Context
116538	header_              http.Header
116539}
116540
116541// Update: Updates a managed instance group using the information that
116542// you specify in the request. This operation is marked as DONE when the
116543// group is updated even if the instances in the group have not yet been
116544// updated. You must separately verify the status of the individual
116545// instances with the listmanagedinstances method.
116546func (r *RegionInstanceGroupManagersService) Update(project string, region string, instanceGroupManager string, instancegroupmanager *InstanceGroupManager) *RegionInstanceGroupManagersUpdateCall {
116547	c := &RegionInstanceGroupManagersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116548	c.project = project
116549	c.region = region
116550	c.instanceGroupManager = instanceGroupManager
116551	c.instancegroupmanager = instancegroupmanager
116552	return c
116553}
116554
116555// RequestId sets the optional parameter "requestId": An optional
116556// request ID to identify requests. Specify a unique request ID so that
116557// if you must retry your request, the server will know to ignore the
116558// request if it has already been completed.
116559//
116560// For example, consider a situation where you make an initial request
116561// and the request times out. If you make the request again with the
116562// same request ID, the server can check if original operation with the
116563// same request ID was received, and if so, will ignore the second
116564// request. This prevents clients from accidentally creating duplicate
116565// commitments.
116566//
116567// The request ID must be a valid UUID with the exception that zero UUID
116568// is not supported (00000000-0000-0000-0000-000000000000).
116569func (c *RegionInstanceGroupManagersUpdateCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdateCall {
116570	c.urlParams_.Set("requestId", requestId)
116571	return c
116572}
116573
116574// Fields allows partial responses to be retrieved. See
116575// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116576// for more information.
116577func (c *RegionInstanceGroupManagersUpdateCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdateCall {
116578	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116579	return c
116580}
116581
116582// Context sets the context to be used in this call's Do method. Any
116583// pending HTTP request will be aborted if the provided context is
116584// canceled.
116585func (c *RegionInstanceGroupManagersUpdateCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdateCall {
116586	c.ctx_ = ctx
116587	return c
116588}
116589
116590// Header returns an http.Header that can be modified by the caller to
116591// add HTTP headers to the request.
116592func (c *RegionInstanceGroupManagersUpdateCall) Header() http.Header {
116593	if c.header_ == nil {
116594		c.header_ = make(http.Header)
116595	}
116596	return c.header_
116597}
116598
116599func (c *RegionInstanceGroupManagersUpdateCall) doRequest(alt string) (*http.Response, error) {
116600	reqHeaders := make(http.Header)
116601	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116602	for k, v := range c.header_ {
116603		reqHeaders[k] = v
116604	}
116605	reqHeaders.Set("User-Agent", c.s.userAgent())
116606	var body io.Reader = nil
116607	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancegroupmanager)
116608	if err != nil {
116609		return nil, err
116610	}
116611	reqHeaders.Set("Content-Type", "application/json")
116612	c.urlParams_.Set("alt", alt)
116613	c.urlParams_.Set("prettyPrint", "false")
116614	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}")
116615	urls += "?" + c.urlParams_.Encode()
116616	req, err := http.NewRequest("PUT", urls, body)
116617	if err != nil {
116618		return nil, err
116619	}
116620	req.Header = reqHeaders
116621	googleapi.Expand(req.URL, map[string]string{
116622		"project":              c.project,
116623		"region":               c.region,
116624		"instanceGroupManager": c.instanceGroupManager,
116625	})
116626	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116627}
116628
116629// Do executes the "compute.regionInstanceGroupManagers.update" call.
116630// Exactly one of *Operation or error will be non-nil. Any non-2xx
116631// status code is an error. Response headers are in either
116632// *Operation.ServerResponse.Header or (if a response was returned at
116633// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116634// to check whether the returned error was because
116635// http.StatusNotModified was returned.
116636func (c *RegionInstanceGroupManagersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116637	gensupport.SetOptions(c.urlParams_, opts...)
116638	res, err := c.doRequest("json")
116639	if res != nil && res.StatusCode == http.StatusNotModified {
116640		if res.Body != nil {
116641			res.Body.Close()
116642		}
116643		return nil, &googleapi.Error{
116644			Code:   res.StatusCode,
116645			Header: res.Header,
116646		}
116647	}
116648	if err != nil {
116649		return nil, err
116650	}
116651	defer googleapi.CloseBody(res)
116652	if err := googleapi.CheckResponse(res); err != nil {
116653		return nil, err
116654	}
116655	ret := &Operation{
116656		ServerResponse: googleapi.ServerResponse{
116657			Header:         res.Header,
116658			HTTPStatusCode: res.StatusCode,
116659		},
116660	}
116661	target := &ret
116662	if err := gensupport.DecodeResponse(target, res); err != nil {
116663		return nil, err
116664	}
116665	return ret, nil
116666	// {
116667	//   "description": "Updates a managed instance group using the information that you specify in the request. This operation is marked as DONE when the group is updated even if the instances in the group have not yet been updated. You must separately verify the status of the individual instances with the listmanagedinstances method.",
116668	//   "httpMethod": "PUT",
116669	//   "id": "compute.regionInstanceGroupManagers.update",
116670	//   "parameterOrder": [
116671	//     "project",
116672	//     "region",
116673	//     "instanceGroupManager"
116674	//   ],
116675	//   "parameters": {
116676	//     "instanceGroupManager": {
116677	//       "description": "The name of the instance group manager.",
116678	//       "location": "path",
116679	//       "required": true,
116680	//       "type": "string"
116681	//     },
116682	//     "project": {
116683	//       "description": "Project ID for this request.",
116684	//       "location": "path",
116685	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116686	//       "required": true,
116687	//       "type": "string"
116688	//     },
116689	//     "region": {
116690	//       "description": "Name of the region scoping this request.",
116691	//       "location": "path",
116692	//       "required": true,
116693	//       "type": "string"
116694	//     },
116695	//     "requestId": {
116696	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116697	//       "location": "query",
116698	//       "type": "string"
116699	//     }
116700	//   },
116701	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}",
116702	//   "request": {
116703	//     "$ref": "InstanceGroupManager"
116704	//   },
116705	//   "response": {
116706	//     "$ref": "Operation"
116707	//   },
116708	//   "scopes": [
116709	//     "https://www.googleapis.com/auth/cloud-platform",
116710	//     "https://www.googleapis.com/auth/compute"
116711	//   ]
116712	// }
116713
116714}
116715
116716// method id "compute.regionInstanceGroupManagers.updatePerInstanceConfigs":
116717
116718type RegionInstanceGroupManagersUpdatePerInstanceConfigsCall struct {
116719	s                                                 *Service
116720	project                                           string
116721	region                                            string
116722	instanceGroupManager                              string
116723	regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq
116724	urlParams_                                        gensupport.URLParams
116725	ctx_                                              context.Context
116726	header_                                           http.Header
116727}
116728
116729// UpdatePerInstanceConfigs: Insert or update (for the ones that already
116730// exist) per-instance configs for the managed instance group.
116731// perInstanceConfig.instance serves as a key used to distinguish
116732// whether to perform insert or patch.
116733func (r *RegionInstanceGroupManagersService) UpdatePerInstanceConfigs(project string, region string, instanceGroupManager string, regioninstancegroupmanagerupdateinstanceconfigreq *RegionInstanceGroupManagerUpdateInstanceConfigReq) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
116734	c := &RegionInstanceGroupManagersUpdatePerInstanceConfigsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116735	c.project = project
116736	c.region = region
116737	c.instanceGroupManager = instanceGroupManager
116738	c.regioninstancegroupmanagerupdateinstanceconfigreq = regioninstancegroupmanagerupdateinstanceconfigreq
116739	return c
116740}
116741
116742// RequestId sets the optional parameter "requestId": An optional
116743// request ID to identify requests. Specify a unique request ID so that
116744// if you must retry your request, the server will know to ignore the
116745// request if it has already been completed.
116746//
116747// For example, consider a situation where you make an initial request
116748// and the request times out. If you make the request again with the
116749// same request ID, the server can check if original operation with the
116750// same request ID was received, and if so, will ignore the second
116751// request. This prevents clients from accidentally creating duplicate
116752// commitments.
116753//
116754// The request ID must be a valid UUID with the exception that zero UUID
116755// is not supported (00000000-0000-0000-0000-000000000000).
116756func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) RequestId(requestId string) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
116757	c.urlParams_.Set("requestId", requestId)
116758	return c
116759}
116760
116761// Fields allows partial responses to be retrieved. See
116762// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116763// for more information.
116764func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
116765	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116766	return c
116767}
116768
116769// Context sets the context to be used in this call's Do method. Any
116770// pending HTTP request will be aborted if the provided context is
116771// canceled.
116772func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Context(ctx context.Context) *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall {
116773	c.ctx_ = ctx
116774	return c
116775}
116776
116777// Header returns an http.Header that can be modified by the caller to
116778// add HTTP headers to the request.
116779func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Header() http.Header {
116780	if c.header_ == nil {
116781		c.header_ = make(http.Header)
116782	}
116783	return c.header_
116784}
116785
116786func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) doRequest(alt string) (*http.Response, error) {
116787	reqHeaders := make(http.Header)
116788	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116789	for k, v := range c.header_ {
116790		reqHeaders[k] = v
116791	}
116792	reqHeaders.Set("User-Agent", c.s.userAgent())
116793	var body io.Reader = nil
116794	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupmanagerupdateinstanceconfigreq)
116795	if err != nil {
116796		return nil, err
116797	}
116798	reqHeaders.Set("Content-Type", "application/json")
116799	c.urlParams_.Set("alt", alt)
116800	c.urlParams_.Set("prettyPrint", "false")
116801	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs")
116802	urls += "?" + c.urlParams_.Encode()
116803	req, err := http.NewRequest("POST", urls, body)
116804	if err != nil {
116805		return nil, err
116806	}
116807	req.Header = reqHeaders
116808	googleapi.Expand(req.URL, map[string]string{
116809		"project":              c.project,
116810		"region":               c.region,
116811		"instanceGroupManager": c.instanceGroupManager,
116812	})
116813	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116814}
116815
116816// Do executes the "compute.regionInstanceGroupManagers.updatePerInstanceConfigs" call.
116817// Exactly one of *Operation or error will be non-nil. Any non-2xx
116818// status code is an error. Response headers are in either
116819// *Operation.ServerResponse.Header or (if a response was returned at
116820// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
116821// to check whether the returned error was because
116822// http.StatusNotModified was returned.
116823func (c *RegionInstanceGroupManagersUpdatePerInstanceConfigsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
116824	gensupport.SetOptions(c.urlParams_, opts...)
116825	res, err := c.doRequest("json")
116826	if res != nil && res.StatusCode == http.StatusNotModified {
116827		if res.Body != nil {
116828			res.Body.Close()
116829		}
116830		return nil, &googleapi.Error{
116831			Code:   res.StatusCode,
116832			Header: res.Header,
116833		}
116834	}
116835	if err != nil {
116836		return nil, err
116837	}
116838	defer googleapi.CloseBody(res)
116839	if err := googleapi.CheckResponse(res); err != nil {
116840		return nil, err
116841	}
116842	ret := &Operation{
116843		ServerResponse: googleapi.ServerResponse{
116844			Header:         res.Header,
116845			HTTPStatusCode: res.StatusCode,
116846		},
116847	}
116848	target := &ret
116849	if err := gensupport.DecodeResponse(target, res); err != nil {
116850		return nil, err
116851	}
116852	return ret, nil
116853	// {
116854	//   "description": "Insert or update (for the ones that already exist) per-instance configs for the managed instance group. perInstanceConfig.instance serves as a key used to distinguish whether to perform insert or patch.",
116855	//   "httpMethod": "POST",
116856	//   "id": "compute.regionInstanceGroupManagers.updatePerInstanceConfigs",
116857	//   "parameterOrder": [
116858	//     "project",
116859	//     "region",
116860	//     "instanceGroupManager"
116861	//   ],
116862	//   "parameters": {
116863	//     "instanceGroupManager": {
116864	//       "description": "The name of the managed instance group. It should conform to RFC1035.",
116865	//       "location": "path",
116866	//       "required": true,
116867	//       "type": "string"
116868	//     },
116869	//     "project": {
116870	//       "description": "Project ID for this request.",
116871	//       "location": "path",
116872	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
116873	//       "required": true,
116874	//       "type": "string"
116875	//     },
116876	//     "region": {
116877	//       "description": "Name of the region scoping this request, should conform to RFC1035.",
116878	//       "location": "path",
116879	//       "required": true,
116880	//       "type": "string"
116881	//     },
116882	//     "requestId": {
116883	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
116884	//       "location": "query",
116885	//       "type": "string"
116886	//     }
116887	//   },
116888	//   "path": "{project}/regions/{region}/instanceGroupManagers/{instanceGroupManager}/updatePerInstanceConfigs",
116889	//   "request": {
116890	//     "$ref": "RegionInstanceGroupManagerUpdateInstanceConfigReq"
116891	//   },
116892	//   "response": {
116893	//     "$ref": "Operation"
116894	//   },
116895	//   "scopes": [
116896	//     "https://www.googleapis.com/auth/cloud-platform",
116897	//     "https://www.googleapis.com/auth/compute"
116898	//   ]
116899	// }
116900
116901}
116902
116903// method id "compute.regionInstanceGroups.get":
116904
116905type RegionInstanceGroupsGetCall struct {
116906	s             *Service
116907	project       string
116908	region        string
116909	instanceGroup string
116910	urlParams_    gensupport.URLParams
116911	ifNoneMatch_  string
116912	ctx_          context.Context
116913	header_       http.Header
116914}
116915
116916// Get: Returns the specified instance group resource.
116917func (r *RegionInstanceGroupsService) Get(project string, region string, instanceGroup string) *RegionInstanceGroupsGetCall {
116918	c := &RegionInstanceGroupsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
116919	c.project = project
116920	c.region = region
116921	c.instanceGroup = instanceGroup
116922	return c
116923}
116924
116925// Fields allows partial responses to be retrieved. See
116926// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
116927// for more information.
116928func (c *RegionInstanceGroupsGetCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsGetCall {
116929	c.urlParams_.Set("fields", googleapi.CombineFields(s))
116930	return c
116931}
116932
116933// IfNoneMatch sets the optional parameter which makes the operation
116934// fail if the object's ETag matches the given value. This is useful for
116935// getting updates only after the object has changed since the last
116936// request. Use googleapi.IsNotModified to check whether the response
116937// error from Do is the result of In-None-Match.
116938func (c *RegionInstanceGroupsGetCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsGetCall {
116939	c.ifNoneMatch_ = entityTag
116940	return c
116941}
116942
116943// Context sets the context to be used in this call's Do method. Any
116944// pending HTTP request will be aborted if the provided context is
116945// canceled.
116946func (c *RegionInstanceGroupsGetCall) Context(ctx context.Context) *RegionInstanceGroupsGetCall {
116947	c.ctx_ = ctx
116948	return c
116949}
116950
116951// Header returns an http.Header that can be modified by the caller to
116952// add HTTP headers to the request.
116953func (c *RegionInstanceGroupsGetCall) Header() http.Header {
116954	if c.header_ == nil {
116955		c.header_ = make(http.Header)
116956	}
116957	return c.header_
116958}
116959
116960func (c *RegionInstanceGroupsGetCall) doRequest(alt string) (*http.Response, error) {
116961	reqHeaders := make(http.Header)
116962	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
116963	for k, v := range c.header_ {
116964		reqHeaders[k] = v
116965	}
116966	reqHeaders.Set("User-Agent", c.s.userAgent())
116967	if c.ifNoneMatch_ != "" {
116968		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
116969	}
116970	var body io.Reader = nil
116971	c.urlParams_.Set("alt", alt)
116972	c.urlParams_.Set("prettyPrint", "false")
116973	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}")
116974	urls += "?" + c.urlParams_.Encode()
116975	req, err := http.NewRequest("GET", urls, body)
116976	if err != nil {
116977		return nil, err
116978	}
116979	req.Header = reqHeaders
116980	googleapi.Expand(req.URL, map[string]string{
116981		"project":       c.project,
116982		"region":        c.region,
116983		"instanceGroup": c.instanceGroup,
116984	})
116985	return gensupport.SendRequest(c.ctx_, c.s.client, req)
116986}
116987
116988// Do executes the "compute.regionInstanceGroups.get" call.
116989// Exactly one of *InstanceGroup or error will be non-nil. Any non-2xx
116990// status code is an error. Response headers are in either
116991// *InstanceGroup.ServerResponse.Header or (if a response was returned
116992// at all) in error.(*googleapi.Error).Header. Use
116993// googleapi.IsNotModified to check whether the returned error was
116994// because http.StatusNotModified was returned.
116995func (c *RegionInstanceGroupsGetCall) Do(opts ...googleapi.CallOption) (*InstanceGroup, error) {
116996	gensupport.SetOptions(c.urlParams_, opts...)
116997	res, err := c.doRequest("json")
116998	if res != nil && res.StatusCode == http.StatusNotModified {
116999		if res.Body != nil {
117000			res.Body.Close()
117001		}
117002		return nil, &googleapi.Error{
117003			Code:   res.StatusCode,
117004			Header: res.Header,
117005		}
117006	}
117007	if err != nil {
117008		return nil, err
117009	}
117010	defer googleapi.CloseBody(res)
117011	if err := googleapi.CheckResponse(res); err != nil {
117012		return nil, err
117013	}
117014	ret := &InstanceGroup{
117015		ServerResponse: googleapi.ServerResponse{
117016			Header:         res.Header,
117017			HTTPStatusCode: res.StatusCode,
117018		},
117019	}
117020	target := &ret
117021	if err := gensupport.DecodeResponse(target, res); err != nil {
117022		return nil, err
117023	}
117024	return ret, nil
117025	// {
117026	//   "description": "Returns the specified instance group resource.",
117027	//   "httpMethod": "GET",
117028	//   "id": "compute.regionInstanceGroups.get",
117029	//   "parameterOrder": [
117030	//     "project",
117031	//     "region",
117032	//     "instanceGroup"
117033	//   ],
117034	//   "parameters": {
117035	//     "instanceGroup": {
117036	//       "description": "Name of the instance group resource to return.",
117037	//       "location": "path",
117038	//       "required": true,
117039	//       "type": "string"
117040	//     },
117041	//     "project": {
117042	//       "description": "Project ID for this request.",
117043	//       "location": "path",
117044	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117045	//       "required": true,
117046	//       "type": "string"
117047	//     },
117048	//     "region": {
117049	//       "description": "Name of the region scoping this request.",
117050	//       "location": "path",
117051	//       "required": true,
117052	//       "type": "string"
117053	//     }
117054	//   },
117055	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}",
117056	//   "response": {
117057	//     "$ref": "InstanceGroup"
117058	//   },
117059	//   "scopes": [
117060	//     "https://www.googleapis.com/auth/cloud-platform",
117061	//     "https://www.googleapis.com/auth/compute",
117062	//     "https://www.googleapis.com/auth/compute.readonly"
117063	//   ]
117064	// }
117065
117066}
117067
117068// method id "compute.regionInstanceGroups.list":
117069
117070type RegionInstanceGroupsListCall struct {
117071	s            *Service
117072	project      string
117073	region       string
117074	urlParams_   gensupport.URLParams
117075	ifNoneMatch_ string
117076	ctx_         context.Context
117077	header_      http.Header
117078}
117079
117080// List: Retrieves the list of instance group resources contained within
117081// the specified region.
117082func (r *RegionInstanceGroupsService) List(project string, region string) *RegionInstanceGroupsListCall {
117083	c := &RegionInstanceGroupsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117084	c.project = project
117085	c.region = region
117086	return c
117087}
117088
117089// Filter sets the optional parameter "filter": A filter expression that
117090// filters resources listed in the response. The expression must specify
117091// the field name, a comparison operator, and the value that you want to
117092// use for filtering. The value must be a string, a number, or a
117093// boolean. The comparison operator must be either =, !=, >, or <.
117094//
117095// For example, if you are filtering Compute Engine instances, you can
117096// exclude instances named example-instance by specifying name !=
117097// example-instance.
117098//
117099// You can also filter nested fields. For example, you could specify
117100// scheduling.automaticRestart = false to include instances only if they
117101// are not scheduled for automatic restarts. You can use filtering on
117102// nested fields to filter based on resource labels.
117103//
117104// To filter on multiple expressions, provide each separate expression
117105// within parentheses. For example, (scheduling.automaticRestart = true)
117106// (cpuPlatform = "Intel Skylake"). By default, each expression is an
117107// AND expression. However, you can include AND and OR expressions
117108// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
117109// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
117110// true).
117111func (c *RegionInstanceGroupsListCall) Filter(filter string) *RegionInstanceGroupsListCall {
117112	c.urlParams_.Set("filter", filter)
117113	return c
117114}
117115
117116// MaxResults sets the optional parameter "maxResults": The maximum
117117// number of results per page that should be returned. If the number of
117118// available results is larger than maxResults, Compute Engine returns a
117119// nextPageToken that can be used to get the next page of results in
117120// subsequent list requests. Acceptable values are 0 to 500, inclusive.
117121// (Default: 500)
117122func (c *RegionInstanceGroupsListCall) MaxResults(maxResults int64) *RegionInstanceGroupsListCall {
117123	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117124	return c
117125}
117126
117127// OrderBy sets the optional parameter "orderBy": Sorts list results by
117128// a certain order. By default, results are returned in alphanumerical
117129// order based on the resource name.
117130//
117131// You can also sort results in descending order based on the creation
117132// timestamp using orderBy="creationTimestamp desc". This sorts results
117133// based on the creationTimestamp field in reverse chronological order
117134// (newest result first). Use this to sort resources like operations so
117135// that the newest operation is returned first.
117136//
117137// Currently, only sorting by name or creationTimestamp desc is
117138// supported.
117139func (c *RegionInstanceGroupsListCall) OrderBy(orderBy string) *RegionInstanceGroupsListCall {
117140	c.urlParams_.Set("orderBy", orderBy)
117141	return c
117142}
117143
117144// PageToken sets the optional parameter "pageToken": Specifies a page
117145// token to use. Set pageToken to the nextPageToken returned by a
117146// previous list request to get the next page of results.
117147func (c *RegionInstanceGroupsListCall) PageToken(pageToken string) *RegionInstanceGroupsListCall {
117148	c.urlParams_.Set("pageToken", pageToken)
117149	return c
117150}
117151
117152// Fields allows partial responses to be retrieved. See
117153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117154// for more information.
117155func (c *RegionInstanceGroupsListCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListCall {
117156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117157	return c
117158}
117159
117160// IfNoneMatch sets the optional parameter which makes the operation
117161// fail if the object's ETag matches the given value. This is useful for
117162// getting updates only after the object has changed since the last
117163// request. Use googleapi.IsNotModified to check whether the response
117164// error from Do is the result of In-None-Match.
117165func (c *RegionInstanceGroupsListCall) IfNoneMatch(entityTag string) *RegionInstanceGroupsListCall {
117166	c.ifNoneMatch_ = entityTag
117167	return c
117168}
117169
117170// Context sets the context to be used in this call's Do method. Any
117171// pending HTTP request will be aborted if the provided context is
117172// canceled.
117173func (c *RegionInstanceGroupsListCall) Context(ctx context.Context) *RegionInstanceGroupsListCall {
117174	c.ctx_ = ctx
117175	return c
117176}
117177
117178// Header returns an http.Header that can be modified by the caller to
117179// add HTTP headers to the request.
117180func (c *RegionInstanceGroupsListCall) Header() http.Header {
117181	if c.header_ == nil {
117182		c.header_ = make(http.Header)
117183	}
117184	return c.header_
117185}
117186
117187func (c *RegionInstanceGroupsListCall) doRequest(alt string) (*http.Response, error) {
117188	reqHeaders := make(http.Header)
117189	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117190	for k, v := range c.header_ {
117191		reqHeaders[k] = v
117192	}
117193	reqHeaders.Set("User-Agent", c.s.userAgent())
117194	if c.ifNoneMatch_ != "" {
117195		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
117196	}
117197	var body io.Reader = nil
117198	c.urlParams_.Set("alt", alt)
117199	c.urlParams_.Set("prettyPrint", "false")
117200	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups")
117201	urls += "?" + c.urlParams_.Encode()
117202	req, err := http.NewRequest("GET", urls, body)
117203	if err != nil {
117204		return nil, err
117205	}
117206	req.Header = reqHeaders
117207	googleapi.Expand(req.URL, map[string]string{
117208		"project": c.project,
117209		"region":  c.region,
117210	})
117211	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117212}
117213
117214// Do executes the "compute.regionInstanceGroups.list" call.
117215// Exactly one of *RegionInstanceGroupList or error will be non-nil. Any
117216// non-2xx status code is an error. Response headers are in either
117217// *RegionInstanceGroupList.ServerResponse.Header or (if a response was
117218// returned at all) in error.(*googleapi.Error).Header. Use
117219// googleapi.IsNotModified to check whether the returned error was
117220// because http.StatusNotModified was returned.
117221func (c *RegionInstanceGroupsListCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupList, error) {
117222	gensupport.SetOptions(c.urlParams_, opts...)
117223	res, err := c.doRequest("json")
117224	if res != nil && res.StatusCode == http.StatusNotModified {
117225		if res.Body != nil {
117226			res.Body.Close()
117227		}
117228		return nil, &googleapi.Error{
117229			Code:   res.StatusCode,
117230			Header: res.Header,
117231		}
117232	}
117233	if err != nil {
117234		return nil, err
117235	}
117236	defer googleapi.CloseBody(res)
117237	if err := googleapi.CheckResponse(res); err != nil {
117238		return nil, err
117239	}
117240	ret := &RegionInstanceGroupList{
117241		ServerResponse: googleapi.ServerResponse{
117242			Header:         res.Header,
117243			HTTPStatusCode: res.StatusCode,
117244		},
117245	}
117246	target := &ret
117247	if err := gensupport.DecodeResponse(target, res); err != nil {
117248		return nil, err
117249	}
117250	return ret, nil
117251	// {
117252	//   "description": "Retrieves the list of instance group resources contained within the specified region.",
117253	//   "httpMethod": "GET",
117254	//   "id": "compute.regionInstanceGroups.list",
117255	//   "parameterOrder": [
117256	//     "project",
117257	//     "region"
117258	//   ],
117259	//   "parameters": {
117260	//     "filter": {
117261	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
117262	//       "location": "query",
117263	//       "type": "string"
117264	//     },
117265	//     "maxResults": {
117266	//       "default": "500",
117267	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
117268	//       "format": "uint32",
117269	//       "location": "query",
117270	//       "minimum": "0",
117271	//       "type": "integer"
117272	//     },
117273	//     "orderBy": {
117274	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
117275	//       "location": "query",
117276	//       "type": "string"
117277	//     },
117278	//     "pageToken": {
117279	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
117280	//       "location": "query",
117281	//       "type": "string"
117282	//     },
117283	//     "project": {
117284	//       "description": "Project ID for this request.",
117285	//       "location": "path",
117286	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117287	//       "required": true,
117288	//       "type": "string"
117289	//     },
117290	//     "region": {
117291	//       "description": "Name of the region scoping this request.",
117292	//       "location": "path",
117293	//       "required": true,
117294	//       "type": "string"
117295	//     }
117296	//   },
117297	//   "path": "{project}/regions/{region}/instanceGroups",
117298	//   "response": {
117299	//     "$ref": "RegionInstanceGroupList"
117300	//   },
117301	//   "scopes": [
117302	//     "https://www.googleapis.com/auth/cloud-platform",
117303	//     "https://www.googleapis.com/auth/compute",
117304	//     "https://www.googleapis.com/auth/compute.readonly"
117305	//   ]
117306	// }
117307
117308}
117309
117310// Pages invokes f for each page of results.
117311// A non-nil error returned from f will halt the iteration.
117312// The provided context supersedes any context provided to the Context method.
117313func (c *RegionInstanceGroupsListCall) Pages(ctx context.Context, f func(*RegionInstanceGroupList) error) error {
117314	c.ctx_ = ctx
117315	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117316	for {
117317		x, err := c.Do()
117318		if err != nil {
117319			return err
117320		}
117321		if err := f(x); err != nil {
117322			return err
117323		}
117324		if x.NextPageToken == "" {
117325			return nil
117326		}
117327		c.PageToken(x.NextPageToken)
117328	}
117329}
117330
117331// method id "compute.regionInstanceGroups.listInstances":
117332
117333type RegionInstanceGroupsListInstancesCall struct {
117334	s                                        *Service
117335	project                                  string
117336	region                                   string
117337	instanceGroup                            string
117338	regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest
117339	urlParams_                               gensupport.URLParams
117340	ctx_                                     context.Context
117341	header_                                  http.Header
117342}
117343
117344// ListInstances: Lists the instances in the specified instance group
117345// and displays information about the named ports. Depending on the
117346// specified options, this method can list all instances or only the
117347// instances that are running.
117348func (r *RegionInstanceGroupsService) ListInstances(project string, region string, instanceGroup string, regioninstancegroupslistinstancesrequest *RegionInstanceGroupsListInstancesRequest) *RegionInstanceGroupsListInstancesCall {
117349	c := &RegionInstanceGroupsListInstancesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117350	c.project = project
117351	c.region = region
117352	c.instanceGroup = instanceGroup
117353	c.regioninstancegroupslistinstancesrequest = regioninstancegroupslistinstancesrequest
117354	return c
117355}
117356
117357// Filter sets the optional parameter "filter": A filter expression that
117358// filters resources listed in the response. The expression must specify
117359// the field name, a comparison operator, and the value that you want to
117360// use for filtering. The value must be a string, a number, or a
117361// boolean. The comparison operator must be either =, !=, >, or <.
117362//
117363// For example, if you are filtering Compute Engine instances, you can
117364// exclude instances named example-instance by specifying name !=
117365// example-instance.
117366//
117367// You can also filter nested fields. For example, you could specify
117368// scheduling.automaticRestart = false to include instances only if they
117369// are not scheduled for automatic restarts. You can use filtering on
117370// nested fields to filter based on resource labels.
117371//
117372// To filter on multiple expressions, provide each separate expression
117373// within parentheses. For example, (scheduling.automaticRestart = true)
117374// (cpuPlatform = "Intel Skylake"). By default, each expression is an
117375// AND expression. However, you can include AND and OR expressions
117376// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
117377// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
117378// true).
117379func (c *RegionInstanceGroupsListInstancesCall) Filter(filter string) *RegionInstanceGroupsListInstancesCall {
117380	c.urlParams_.Set("filter", filter)
117381	return c
117382}
117383
117384// MaxResults sets the optional parameter "maxResults": The maximum
117385// number of results per page that should be returned. If the number of
117386// available results is larger than maxResults, Compute Engine returns a
117387// nextPageToken that can be used to get the next page of results in
117388// subsequent list requests. Acceptable values are 0 to 500, inclusive.
117389// (Default: 500)
117390func (c *RegionInstanceGroupsListInstancesCall) MaxResults(maxResults int64) *RegionInstanceGroupsListInstancesCall {
117391	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
117392	return c
117393}
117394
117395// OrderBy sets the optional parameter "orderBy": Sorts list results by
117396// a certain order. By default, results are returned in alphanumerical
117397// order based on the resource name.
117398//
117399// You can also sort results in descending order based on the creation
117400// timestamp using orderBy="creationTimestamp desc". This sorts results
117401// based on the creationTimestamp field in reverse chronological order
117402// (newest result first). Use this to sort resources like operations so
117403// that the newest operation is returned first.
117404//
117405// Currently, only sorting by name or creationTimestamp desc is
117406// supported.
117407func (c *RegionInstanceGroupsListInstancesCall) OrderBy(orderBy string) *RegionInstanceGroupsListInstancesCall {
117408	c.urlParams_.Set("orderBy", orderBy)
117409	return c
117410}
117411
117412// PageToken sets the optional parameter "pageToken": Specifies a page
117413// token to use. Set pageToken to the nextPageToken returned by a
117414// previous list request to get the next page of results.
117415func (c *RegionInstanceGroupsListInstancesCall) PageToken(pageToken string) *RegionInstanceGroupsListInstancesCall {
117416	c.urlParams_.Set("pageToken", pageToken)
117417	return c
117418}
117419
117420// Fields allows partial responses to be retrieved. See
117421// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117422// for more information.
117423func (c *RegionInstanceGroupsListInstancesCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsListInstancesCall {
117424	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117425	return c
117426}
117427
117428// Context sets the context to be used in this call's Do method. Any
117429// pending HTTP request will be aborted if the provided context is
117430// canceled.
117431func (c *RegionInstanceGroupsListInstancesCall) Context(ctx context.Context) *RegionInstanceGroupsListInstancesCall {
117432	c.ctx_ = ctx
117433	return c
117434}
117435
117436// Header returns an http.Header that can be modified by the caller to
117437// add HTTP headers to the request.
117438func (c *RegionInstanceGroupsListInstancesCall) Header() http.Header {
117439	if c.header_ == nil {
117440		c.header_ = make(http.Header)
117441	}
117442	return c.header_
117443}
117444
117445func (c *RegionInstanceGroupsListInstancesCall) doRequest(alt string) (*http.Response, error) {
117446	reqHeaders := make(http.Header)
117447	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117448	for k, v := range c.header_ {
117449		reqHeaders[k] = v
117450	}
117451	reqHeaders.Set("User-Agent", c.s.userAgent())
117452	var body io.Reader = nil
117453	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupslistinstancesrequest)
117454	if err != nil {
117455		return nil, err
117456	}
117457	reqHeaders.Set("Content-Type", "application/json")
117458	c.urlParams_.Set("alt", alt)
117459	c.urlParams_.Set("prettyPrint", "false")
117460	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances")
117461	urls += "?" + c.urlParams_.Encode()
117462	req, err := http.NewRequest("POST", 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		"region":        c.region,
117470		"instanceGroup": c.instanceGroup,
117471	})
117472	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117473}
117474
117475// Do executes the "compute.regionInstanceGroups.listInstances" call.
117476// Exactly one of *RegionInstanceGroupsListInstances or error will be
117477// non-nil. Any non-2xx status code is an error. Response headers are in
117478// either *RegionInstanceGroupsListInstances.ServerResponse.Header or
117479// (if a response was returned at all) in
117480// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
117481// whether the returned error was because http.StatusNotModified was
117482// returned.
117483func (c *RegionInstanceGroupsListInstancesCall) Do(opts ...googleapi.CallOption) (*RegionInstanceGroupsListInstances, error) {
117484	gensupport.SetOptions(c.urlParams_, opts...)
117485	res, err := c.doRequest("json")
117486	if res != nil && res.StatusCode == http.StatusNotModified {
117487		if res.Body != nil {
117488			res.Body.Close()
117489		}
117490		return nil, &googleapi.Error{
117491			Code:   res.StatusCode,
117492			Header: res.Header,
117493		}
117494	}
117495	if err != nil {
117496		return nil, err
117497	}
117498	defer googleapi.CloseBody(res)
117499	if err := googleapi.CheckResponse(res); err != nil {
117500		return nil, err
117501	}
117502	ret := &RegionInstanceGroupsListInstances{
117503		ServerResponse: googleapi.ServerResponse{
117504			Header:         res.Header,
117505			HTTPStatusCode: res.StatusCode,
117506		},
117507	}
117508	target := &ret
117509	if err := gensupport.DecodeResponse(target, res); err != nil {
117510		return nil, err
117511	}
117512	return ret, nil
117513	// {
117514	//   "description": "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.",
117515	//   "httpMethod": "POST",
117516	//   "id": "compute.regionInstanceGroups.listInstances",
117517	//   "parameterOrder": [
117518	//     "project",
117519	//     "region",
117520	//     "instanceGroup"
117521	//   ],
117522	//   "parameters": {
117523	//     "filter": {
117524	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
117525	//       "location": "query",
117526	//       "type": "string"
117527	//     },
117528	//     "instanceGroup": {
117529	//       "description": "Name of the regional instance group for which we want to list the instances.",
117530	//       "location": "path",
117531	//       "required": true,
117532	//       "type": "string"
117533	//     },
117534	//     "maxResults": {
117535	//       "default": "500",
117536	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
117537	//       "format": "uint32",
117538	//       "location": "query",
117539	//       "minimum": "0",
117540	//       "type": "integer"
117541	//     },
117542	//     "orderBy": {
117543	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
117544	//       "location": "query",
117545	//       "type": "string"
117546	//     },
117547	//     "pageToken": {
117548	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
117549	//       "location": "query",
117550	//       "type": "string"
117551	//     },
117552	//     "project": {
117553	//       "description": "Project ID for this request.",
117554	//       "location": "path",
117555	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117556	//       "required": true,
117557	//       "type": "string"
117558	//     },
117559	//     "region": {
117560	//       "description": "Name of the region scoping this request.",
117561	//       "location": "path",
117562	//       "required": true,
117563	//       "type": "string"
117564	//     }
117565	//   },
117566	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/listInstances",
117567	//   "request": {
117568	//     "$ref": "RegionInstanceGroupsListInstancesRequest"
117569	//   },
117570	//   "response": {
117571	//     "$ref": "RegionInstanceGroupsListInstances"
117572	//   },
117573	//   "scopes": [
117574	//     "https://www.googleapis.com/auth/cloud-platform",
117575	//     "https://www.googleapis.com/auth/compute",
117576	//     "https://www.googleapis.com/auth/compute.readonly"
117577	//   ]
117578	// }
117579
117580}
117581
117582// Pages invokes f for each page of results.
117583// A non-nil error returned from f will halt the iteration.
117584// The provided context supersedes any context provided to the Context method.
117585func (c *RegionInstanceGroupsListInstancesCall) Pages(ctx context.Context, f func(*RegionInstanceGroupsListInstances) error) error {
117586	c.ctx_ = ctx
117587	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
117588	for {
117589		x, err := c.Do()
117590		if err != nil {
117591			return err
117592		}
117593		if err := f(x); err != nil {
117594			return err
117595		}
117596		if x.NextPageToken == "" {
117597			return nil
117598		}
117599		c.PageToken(x.NextPageToken)
117600	}
117601}
117602
117603// method id "compute.regionInstanceGroups.setNamedPorts":
117604
117605type RegionInstanceGroupsSetNamedPortsCall struct {
117606	s                                        *Service
117607	project                                  string
117608	region                                   string
117609	instanceGroup                            string
117610	regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest
117611	urlParams_                               gensupport.URLParams
117612	ctx_                                     context.Context
117613	header_                                  http.Header
117614}
117615
117616// SetNamedPorts: Sets the named ports for the specified regional
117617// instance group.
117618func (r *RegionInstanceGroupsService) SetNamedPorts(project string, region string, instanceGroup string, regioninstancegroupssetnamedportsrequest *RegionInstanceGroupsSetNamedPortsRequest) *RegionInstanceGroupsSetNamedPortsCall {
117619	c := &RegionInstanceGroupsSetNamedPortsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117620	c.project = project
117621	c.region = region
117622	c.instanceGroup = instanceGroup
117623	c.regioninstancegroupssetnamedportsrequest = regioninstancegroupssetnamedportsrequest
117624	return c
117625}
117626
117627// RequestId sets the optional parameter "requestId": An optional
117628// request ID to identify requests. Specify a unique request ID so that
117629// if you must retry your request, the server will know to ignore the
117630// request if it has already been completed.
117631//
117632// For example, consider a situation where you make an initial request
117633// and the request times out. If you make the request again with the
117634// same request ID, the server can check if original operation with the
117635// same request ID was received, and if so, will ignore the second
117636// request. This prevents clients from accidentally creating duplicate
117637// commitments.
117638//
117639// The request ID must be a valid UUID with the exception that zero UUID
117640// is not supported (00000000-0000-0000-0000-000000000000).
117641func (c *RegionInstanceGroupsSetNamedPortsCall) RequestId(requestId string) *RegionInstanceGroupsSetNamedPortsCall {
117642	c.urlParams_.Set("requestId", requestId)
117643	return c
117644}
117645
117646// Fields allows partial responses to be retrieved. See
117647// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117648// for more information.
117649func (c *RegionInstanceGroupsSetNamedPortsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsSetNamedPortsCall {
117650	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117651	return c
117652}
117653
117654// Context sets the context to be used in this call's Do method. Any
117655// pending HTTP request will be aborted if the provided context is
117656// canceled.
117657func (c *RegionInstanceGroupsSetNamedPortsCall) Context(ctx context.Context) *RegionInstanceGroupsSetNamedPortsCall {
117658	c.ctx_ = ctx
117659	return c
117660}
117661
117662// Header returns an http.Header that can be modified by the caller to
117663// add HTTP headers to the request.
117664func (c *RegionInstanceGroupsSetNamedPortsCall) Header() http.Header {
117665	if c.header_ == nil {
117666		c.header_ = make(http.Header)
117667	}
117668	return c.header_
117669}
117670
117671func (c *RegionInstanceGroupsSetNamedPortsCall) doRequest(alt string) (*http.Response, error) {
117672	reqHeaders := make(http.Header)
117673	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117674	for k, v := range c.header_ {
117675		reqHeaders[k] = v
117676	}
117677	reqHeaders.Set("User-Agent", c.s.userAgent())
117678	var body io.Reader = nil
117679	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regioninstancegroupssetnamedportsrequest)
117680	if err != nil {
117681		return nil, err
117682	}
117683	reqHeaders.Set("Content-Type", "application/json")
117684	c.urlParams_.Set("alt", alt)
117685	c.urlParams_.Set("prettyPrint", "false")
117686	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts")
117687	urls += "?" + c.urlParams_.Encode()
117688	req, err := http.NewRequest("POST", urls, body)
117689	if err != nil {
117690		return nil, err
117691	}
117692	req.Header = reqHeaders
117693	googleapi.Expand(req.URL, map[string]string{
117694		"project":       c.project,
117695		"region":        c.region,
117696		"instanceGroup": c.instanceGroup,
117697	})
117698	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117699}
117700
117701// Do executes the "compute.regionInstanceGroups.setNamedPorts" call.
117702// Exactly one of *Operation or error will be non-nil. Any non-2xx
117703// status code is an error. Response headers are in either
117704// *Operation.ServerResponse.Header or (if a response was returned at
117705// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
117706// to check whether the returned error was because
117707// http.StatusNotModified was returned.
117708func (c *RegionInstanceGroupsSetNamedPortsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
117709	gensupport.SetOptions(c.urlParams_, opts...)
117710	res, err := c.doRequest("json")
117711	if res != nil && res.StatusCode == http.StatusNotModified {
117712		if res.Body != nil {
117713			res.Body.Close()
117714		}
117715		return nil, &googleapi.Error{
117716			Code:   res.StatusCode,
117717			Header: res.Header,
117718		}
117719	}
117720	if err != nil {
117721		return nil, err
117722	}
117723	defer googleapi.CloseBody(res)
117724	if err := googleapi.CheckResponse(res); err != nil {
117725		return nil, err
117726	}
117727	ret := &Operation{
117728		ServerResponse: googleapi.ServerResponse{
117729			Header:         res.Header,
117730			HTTPStatusCode: res.StatusCode,
117731		},
117732	}
117733	target := &ret
117734	if err := gensupport.DecodeResponse(target, res); err != nil {
117735		return nil, err
117736	}
117737	return ret, nil
117738	// {
117739	//   "description": "Sets the named ports for the specified regional instance group.",
117740	//   "httpMethod": "POST",
117741	//   "id": "compute.regionInstanceGroups.setNamedPorts",
117742	//   "parameterOrder": [
117743	//     "project",
117744	//     "region",
117745	//     "instanceGroup"
117746	//   ],
117747	//   "parameters": {
117748	//     "instanceGroup": {
117749	//       "description": "The name of the regional instance group where the named ports are updated.",
117750	//       "location": "path",
117751	//       "required": true,
117752	//       "type": "string"
117753	//     },
117754	//     "project": {
117755	//       "description": "Project ID for this request.",
117756	//       "location": "path",
117757	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117758	//       "required": true,
117759	//       "type": "string"
117760	//     },
117761	//     "region": {
117762	//       "description": "Name of the region scoping this request.",
117763	//       "location": "path",
117764	//       "required": true,
117765	//       "type": "string"
117766	//     },
117767	//     "requestId": {
117768	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
117769	//       "location": "query",
117770	//       "type": "string"
117771	//     }
117772	//   },
117773	//   "path": "{project}/regions/{region}/instanceGroups/{instanceGroup}/setNamedPorts",
117774	//   "request": {
117775	//     "$ref": "RegionInstanceGroupsSetNamedPortsRequest"
117776	//   },
117777	//   "response": {
117778	//     "$ref": "Operation"
117779	//   },
117780	//   "scopes": [
117781	//     "https://www.googleapis.com/auth/cloud-platform",
117782	//     "https://www.googleapis.com/auth/compute"
117783	//   ]
117784	// }
117785
117786}
117787
117788// method id "compute.regionInstanceGroups.testIamPermissions":
117789
117790type RegionInstanceGroupsTestIamPermissionsCall struct {
117791	s                      *Service
117792	project                string
117793	region                 string
117794	resource               string
117795	testpermissionsrequest *TestPermissionsRequest
117796	urlParams_             gensupport.URLParams
117797	ctx_                   context.Context
117798	header_                http.Header
117799}
117800
117801// TestIamPermissions: Returns permissions that a caller has on the
117802// specified resource.
117803func (r *RegionInstanceGroupsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RegionInstanceGroupsTestIamPermissionsCall {
117804	c := &RegionInstanceGroupsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117805	c.project = project
117806	c.region = region
117807	c.resource = resource
117808	c.testpermissionsrequest = testpermissionsrequest
117809	return c
117810}
117811
117812// Fields allows partial responses to be retrieved. See
117813// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117814// for more information.
117815func (c *RegionInstanceGroupsTestIamPermissionsCall) Fields(s ...googleapi.Field) *RegionInstanceGroupsTestIamPermissionsCall {
117816	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117817	return c
117818}
117819
117820// Context sets the context to be used in this call's Do method. Any
117821// pending HTTP request will be aborted if the provided context is
117822// canceled.
117823func (c *RegionInstanceGroupsTestIamPermissionsCall) Context(ctx context.Context) *RegionInstanceGroupsTestIamPermissionsCall {
117824	c.ctx_ = ctx
117825	return c
117826}
117827
117828// Header returns an http.Header that can be modified by the caller to
117829// add HTTP headers to the request.
117830func (c *RegionInstanceGroupsTestIamPermissionsCall) Header() http.Header {
117831	if c.header_ == nil {
117832		c.header_ = make(http.Header)
117833	}
117834	return c.header_
117835}
117836
117837func (c *RegionInstanceGroupsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
117838	reqHeaders := make(http.Header)
117839	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
117840	for k, v := range c.header_ {
117841		reqHeaders[k] = v
117842	}
117843	reqHeaders.Set("User-Agent", c.s.userAgent())
117844	var body io.Reader = nil
117845	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
117846	if err != nil {
117847		return nil, err
117848	}
117849	reqHeaders.Set("Content-Type", "application/json")
117850	c.urlParams_.Set("alt", alt)
117851	c.urlParams_.Set("prettyPrint", "false")
117852	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions")
117853	urls += "?" + c.urlParams_.Encode()
117854	req, err := http.NewRequest("POST", urls, body)
117855	if err != nil {
117856		return nil, err
117857	}
117858	req.Header = reqHeaders
117859	googleapi.Expand(req.URL, map[string]string{
117860		"project":  c.project,
117861		"region":   c.region,
117862		"resource": c.resource,
117863	})
117864	return gensupport.SendRequest(c.ctx_, c.s.client, req)
117865}
117866
117867// Do executes the "compute.regionInstanceGroups.testIamPermissions" call.
117868// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
117869// non-2xx status code is an error. Response headers are in either
117870// *TestPermissionsResponse.ServerResponse.Header or (if a response was
117871// returned at all) in error.(*googleapi.Error).Header. Use
117872// googleapi.IsNotModified to check whether the returned error was
117873// because http.StatusNotModified was returned.
117874func (c *RegionInstanceGroupsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
117875	gensupport.SetOptions(c.urlParams_, opts...)
117876	res, err := c.doRequest("json")
117877	if res != nil && res.StatusCode == http.StatusNotModified {
117878		if res.Body != nil {
117879			res.Body.Close()
117880		}
117881		return nil, &googleapi.Error{
117882			Code:   res.StatusCode,
117883			Header: res.Header,
117884		}
117885	}
117886	if err != nil {
117887		return nil, err
117888	}
117889	defer googleapi.CloseBody(res)
117890	if err := googleapi.CheckResponse(res); err != nil {
117891		return nil, err
117892	}
117893	ret := &TestPermissionsResponse{
117894		ServerResponse: googleapi.ServerResponse{
117895			Header:         res.Header,
117896			HTTPStatusCode: res.StatusCode,
117897		},
117898	}
117899	target := &ret
117900	if err := gensupport.DecodeResponse(target, res); err != nil {
117901		return nil, err
117902	}
117903	return ret, nil
117904	// {
117905	//   "description": "Returns permissions that a caller has on the specified resource.",
117906	//   "httpMethod": "POST",
117907	//   "id": "compute.regionInstanceGroups.testIamPermissions",
117908	//   "parameterOrder": [
117909	//     "project",
117910	//     "region",
117911	//     "resource"
117912	//   ],
117913	//   "parameters": {
117914	//     "project": {
117915	//       "description": "Project ID for this request.",
117916	//       "location": "path",
117917	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
117918	//       "required": true,
117919	//       "type": "string"
117920	//     },
117921	//     "region": {
117922	//       "description": "The name of the region for this request.",
117923	//       "location": "path",
117924	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
117925	//       "required": true,
117926	//       "type": "string"
117927	//     },
117928	//     "resource": {
117929	//       "description": "Name or id of the resource for this request.",
117930	//       "location": "path",
117931	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
117932	//       "required": true,
117933	//       "type": "string"
117934	//     }
117935	//   },
117936	//   "path": "{project}/regions/{region}/instanceGroups/{resource}/testIamPermissions",
117937	//   "request": {
117938	//     "$ref": "TestPermissionsRequest"
117939	//   },
117940	//   "response": {
117941	//     "$ref": "TestPermissionsResponse"
117942	//   },
117943	//   "scopes": [
117944	//     "https://www.googleapis.com/auth/cloud-platform",
117945	//     "https://www.googleapis.com/auth/compute",
117946	//     "https://www.googleapis.com/auth/compute.readonly"
117947	//   ]
117948	// }
117949
117950}
117951
117952// method id "compute.regionNotificationEndpoints.delete":
117953
117954type RegionNotificationEndpointsDeleteCall struct {
117955	s                    *Service
117956	project              string
117957	region               string
117958	notificationEndpoint string
117959	urlParams_           gensupport.URLParams
117960	ctx_                 context.Context
117961	header_              http.Header
117962}
117963
117964// Delete: Deletes the specified NotificationEndpoint in the given
117965// region
117966func (r *RegionNotificationEndpointsService) Delete(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsDeleteCall {
117967	c := &RegionNotificationEndpointsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
117968	c.project = project
117969	c.region = region
117970	c.notificationEndpoint = notificationEndpoint
117971	return c
117972}
117973
117974// RequestId sets the optional parameter "requestId": An optional
117975// request ID to identify requests. Specify a unique request ID so that
117976// if you must retry your request, the server will know to ignore the
117977// request if it has already been completed.
117978//
117979// For example, consider a situation where you make an initial request
117980// and the request times out. If you make the request again with the
117981// same request ID, the server can check if original operation with the
117982// same request ID was received, and if so, will ignore the second
117983// request. This prevents clients from accidentally creating duplicate
117984// commitments.
117985//
117986// The request ID must be a valid UUID with the exception that zero UUID
117987// is not supported (00000000-0000-0000-0000-000000000000).
117988func (c *RegionNotificationEndpointsDeleteCall) RequestId(requestId string) *RegionNotificationEndpointsDeleteCall {
117989	c.urlParams_.Set("requestId", requestId)
117990	return c
117991}
117992
117993// Fields allows partial responses to be retrieved. See
117994// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
117995// for more information.
117996func (c *RegionNotificationEndpointsDeleteCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsDeleteCall {
117997	c.urlParams_.Set("fields", googleapi.CombineFields(s))
117998	return c
117999}
118000
118001// Context sets the context to be used in this call's Do method. Any
118002// pending HTTP request will be aborted if the provided context is
118003// canceled.
118004func (c *RegionNotificationEndpointsDeleteCall) Context(ctx context.Context) *RegionNotificationEndpointsDeleteCall {
118005	c.ctx_ = ctx
118006	return c
118007}
118008
118009// Header returns an http.Header that can be modified by the caller to
118010// add HTTP headers to the request.
118011func (c *RegionNotificationEndpointsDeleteCall) Header() http.Header {
118012	if c.header_ == nil {
118013		c.header_ = make(http.Header)
118014	}
118015	return c.header_
118016}
118017
118018func (c *RegionNotificationEndpointsDeleteCall) doRequest(alt string) (*http.Response, error) {
118019	reqHeaders := make(http.Header)
118020	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118021	for k, v := range c.header_ {
118022		reqHeaders[k] = v
118023	}
118024	reqHeaders.Set("User-Agent", c.s.userAgent())
118025	var body io.Reader = nil
118026	c.urlParams_.Set("alt", alt)
118027	c.urlParams_.Set("prettyPrint", "false")
118028	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
118029	urls += "?" + c.urlParams_.Encode()
118030	req, err := http.NewRequest("DELETE", urls, body)
118031	if err != nil {
118032		return nil, err
118033	}
118034	req.Header = reqHeaders
118035	googleapi.Expand(req.URL, map[string]string{
118036		"project":              c.project,
118037		"region":               c.region,
118038		"notificationEndpoint": c.notificationEndpoint,
118039	})
118040	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118041}
118042
118043// Do executes the "compute.regionNotificationEndpoints.delete" call.
118044// Exactly one of *Operation or error will be non-nil. Any non-2xx
118045// status code is an error. Response headers are in either
118046// *Operation.ServerResponse.Header or (if a response was returned at
118047// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118048// to check whether the returned error was because
118049// http.StatusNotModified was returned.
118050func (c *RegionNotificationEndpointsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118051	gensupport.SetOptions(c.urlParams_, opts...)
118052	res, err := c.doRequest("json")
118053	if res != nil && res.StatusCode == http.StatusNotModified {
118054		if res.Body != nil {
118055			res.Body.Close()
118056		}
118057		return nil, &googleapi.Error{
118058			Code:   res.StatusCode,
118059			Header: res.Header,
118060		}
118061	}
118062	if err != nil {
118063		return nil, err
118064	}
118065	defer googleapi.CloseBody(res)
118066	if err := googleapi.CheckResponse(res); err != nil {
118067		return nil, err
118068	}
118069	ret := &Operation{
118070		ServerResponse: googleapi.ServerResponse{
118071			Header:         res.Header,
118072			HTTPStatusCode: res.StatusCode,
118073		},
118074	}
118075	target := &ret
118076	if err := gensupport.DecodeResponse(target, res); err != nil {
118077		return nil, err
118078	}
118079	return ret, nil
118080	// {
118081	//   "description": "Deletes the specified NotificationEndpoint in the given region",
118082	//   "httpMethod": "DELETE",
118083	//   "id": "compute.regionNotificationEndpoints.delete",
118084	//   "parameterOrder": [
118085	//     "project",
118086	//     "region",
118087	//     "notificationEndpoint"
118088	//   ],
118089	//   "parameters": {
118090	//     "notificationEndpoint": {
118091	//       "description": "Name of the NotificationEndpoint resource to delete.",
118092	//       "location": "path",
118093	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118094	//       "required": true,
118095	//       "type": "string"
118096	//     },
118097	//     "project": {
118098	//       "description": "Project ID for this request.",
118099	//       "location": "path",
118100	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118101	//       "required": true,
118102	//       "type": "string"
118103	//     },
118104	//     "region": {
118105	//       "description": "Name of the region scoping this request.",
118106	//       "location": "path",
118107	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118108	//       "required": true,
118109	//       "type": "string"
118110	//     },
118111	//     "requestId": {
118112	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118113	//       "location": "query",
118114	//       "type": "string"
118115	//     }
118116	//   },
118117	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
118118	//   "response": {
118119	//     "$ref": "Operation"
118120	//   },
118121	//   "scopes": [
118122	//     "https://www.googleapis.com/auth/cloud-platform",
118123	//     "https://www.googleapis.com/auth/compute"
118124	//   ]
118125	// }
118126
118127}
118128
118129// method id "compute.regionNotificationEndpoints.get":
118130
118131type RegionNotificationEndpointsGetCall struct {
118132	s                    *Service
118133	project              string
118134	region               string
118135	notificationEndpoint string
118136	urlParams_           gensupport.URLParams
118137	ifNoneMatch_         string
118138	ctx_                 context.Context
118139	header_              http.Header
118140}
118141
118142// Get: Returns the specified NotificationEndpoint resource in the given
118143// region.
118144func (r *RegionNotificationEndpointsService) Get(project string, region string, notificationEndpoint string) *RegionNotificationEndpointsGetCall {
118145	c := &RegionNotificationEndpointsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118146	c.project = project
118147	c.region = region
118148	c.notificationEndpoint = notificationEndpoint
118149	return c
118150}
118151
118152// Fields allows partial responses to be retrieved. See
118153// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118154// for more information.
118155func (c *RegionNotificationEndpointsGetCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsGetCall {
118156	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118157	return c
118158}
118159
118160// IfNoneMatch sets the optional parameter which makes the operation
118161// fail if the object's ETag matches the given value. This is useful for
118162// getting updates only after the object has changed since the last
118163// request. Use googleapi.IsNotModified to check whether the response
118164// error from Do is the result of In-None-Match.
118165func (c *RegionNotificationEndpointsGetCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsGetCall {
118166	c.ifNoneMatch_ = entityTag
118167	return c
118168}
118169
118170// Context sets the context to be used in this call's Do method. Any
118171// pending HTTP request will be aborted if the provided context is
118172// canceled.
118173func (c *RegionNotificationEndpointsGetCall) Context(ctx context.Context) *RegionNotificationEndpointsGetCall {
118174	c.ctx_ = ctx
118175	return c
118176}
118177
118178// Header returns an http.Header that can be modified by the caller to
118179// add HTTP headers to the request.
118180func (c *RegionNotificationEndpointsGetCall) Header() http.Header {
118181	if c.header_ == nil {
118182		c.header_ = make(http.Header)
118183	}
118184	return c.header_
118185}
118186
118187func (c *RegionNotificationEndpointsGetCall) doRequest(alt string) (*http.Response, error) {
118188	reqHeaders := make(http.Header)
118189	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118190	for k, v := range c.header_ {
118191		reqHeaders[k] = v
118192	}
118193	reqHeaders.Set("User-Agent", c.s.userAgent())
118194	if c.ifNoneMatch_ != "" {
118195		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118196	}
118197	var body io.Reader = nil
118198	c.urlParams_.Set("alt", alt)
118199	c.urlParams_.Set("prettyPrint", "false")
118200	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}")
118201	urls += "?" + c.urlParams_.Encode()
118202	req, err := http.NewRequest("GET", urls, body)
118203	if err != nil {
118204		return nil, err
118205	}
118206	req.Header = reqHeaders
118207	googleapi.Expand(req.URL, map[string]string{
118208		"project":              c.project,
118209		"region":               c.region,
118210		"notificationEndpoint": c.notificationEndpoint,
118211	})
118212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118213}
118214
118215// Do executes the "compute.regionNotificationEndpoints.get" call.
118216// Exactly one of *NotificationEndpoint or error will be non-nil. Any
118217// non-2xx status code is an error. Response headers are in either
118218// *NotificationEndpoint.ServerResponse.Header or (if a response was
118219// returned at all) in error.(*googleapi.Error).Header. Use
118220// googleapi.IsNotModified to check whether the returned error was
118221// because http.StatusNotModified was returned.
118222func (c *RegionNotificationEndpointsGetCall) Do(opts ...googleapi.CallOption) (*NotificationEndpoint, error) {
118223	gensupport.SetOptions(c.urlParams_, opts...)
118224	res, err := c.doRequest("json")
118225	if res != nil && res.StatusCode == http.StatusNotModified {
118226		if res.Body != nil {
118227			res.Body.Close()
118228		}
118229		return nil, &googleapi.Error{
118230			Code:   res.StatusCode,
118231			Header: res.Header,
118232		}
118233	}
118234	if err != nil {
118235		return nil, err
118236	}
118237	defer googleapi.CloseBody(res)
118238	if err := googleapi.CheckResponse(res); err != nil {
118239		return nil, err
118240	}
118241	ret := &NotificationEndpoint{
118242		ServerResponse: googleapi.ServerResponse{
118243			Header:         res.Header,
118244			HTTPStatusCode: res.StatusCode,
118245		},
118246	}
118247	target := &ret
118248	if err := gensupport.DecodeResponse(target, res); err != nil {
118249		return nil, err
118250	}
118251	return ret, nil
118252	// {
118253	//   "description": "Returns the specified NotificationEndpoint resource in the given region.",
118254	//   "httpMethod": "GET",
118255	//   "id": "compute.regionNotificationEndpoints.get",
118256	//   "parameterOrder": [
118257	//     "project",
118258	//     "region",
118259	//     "notificationEndpoint"
118260	//   ],
118261	//   "parameters": {
118262	//     "notificationEndpoint": {
118263	//       "description": "Name of the NotificationEndpoint resource to return.",
118264	//       "location": "path",
118265	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118266	//       "required": true,
118267	//       "type": "string"
118268	//     },
118269	//     "project": {
118270	//       "description": "Project ID for this request.",
118271	//       "location": "path",
118272	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118273	//       "required": true,
118274	//       "type": "string"
118275	//     },
118276	//     "region": {
118277	//       "description": "Name of the region scoping this request.",
118278	//       "location": "path",
118279	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118280	//       "required": true,
118281	//       "type": "string"
118282	//     }
118283	//   },
118284	//   "path": "{project}/regions/{region}/notificationEndpoints/{notificationEndpoint}",
118285	//   "response": {
118286	//     "$ref": "NotificationEndpoint"
118287	//   },
118288	//   "scopes": [
118289	//     "https://www.googleapis.com/auth/cloud-platform",
118290	//     "https://www.googleapis.com/auth/compute",
118291	//     "https://www.googleapis.com/auth/compute.readonly"
118292	//   ]
118293	// }
118294
118295}
118296
118297// method id "compute.regionNotificationEndpoints.insert":
118298
118299type RegionNotificationEndpointsInsertCall struct {
118300	s                    *Service
118301	project              string
118302	region               string
118303	notificationendpoint *NotificationEndpoint
118304	urlParams_           gensupport.URLParams
118305	ctx_                 context.Context
118306	header_              http.Header
118307}
118308
118309// Insert: Create a NotificationEndpoint in the specified project in the
118310// given region using the parameters that are included in the request.
118311func (r *RegionNotificationEndpointsService) Insert(project string, region string, notificationendpoint *NotificationEndpoint) *RegionNotificationEndpointsInsertCall {
118312	c := &RegionNotificationEndpointsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118313	c.project = project
118314	c.region = region
118315	c.notificationendpoint = notificationendpoint
118316	return c
118317}
118318
118319// RequestId sets the optional parameter "requestId": An optional
118320// request ID to identify requests. Specify a unique request ID so that
118321// if you must retry your request, the server will know to ignore the
118322// request if it has already been completed.
118323//
118324// For example, consider a situation where you make an initial request
118325// and the request times out. If you make the request again with the
118326// same request ID, the server can check if original operation with the
118327// same request ID was received, and if so, will ignore the second
118328// request. This prevents clients from accidentally creating duplicate
118329// commitments.
118330//
118331// The request ID must be a valid UUID with the exception that zero UUID
118332// is not supported (00000000-0000-0000-0000-000000000000).
118333func (c *RegionNotificationEndpointsInsertCall) RequestId(requestId string) *RegionNotificationEndpointsInsertCall {
118334	c.urlParams_.Set("requestId", requestId)
118335	return c
118336}
118337
118338// Fields allows partial responses to be retrieved. See
118339// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118340// for more information.
118341func (c *RegionNotificationEndpointsInsertCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsInsertCall {
118342	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118343	return c
118344}
118345
118346// Context sets the context to be used in this call's Do method. Any
118347// pending HTTP request will be aborted if the provided context is
118348// canceled.
118349func (c *RegionNotificationEndpointsInsertCall) Context(ctx context.Context) *RegionNotificationEndpointsInsertCall {
118350	c.ctx_ = ctx
118351	return c
118352}
118353
118354// Header returns an http.Header that can be modified by the caller to
118355// add HTTP headers to the request.
118356func (c *RegionNotificationEndpointsInsertCall) Header() http.Header {
118357	if c.header_ == nil {
118358		c.header_ = make(http.Header)
118359	}
118360	return c.header_
118361}
118362
118363func (c *RegionNotificationEndpointsInsertCall) doRequest(alt string) (*http.Response, error) {
118364	reqHeaders := make(http.Header)
118365	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118366	for k, v := range c.header_ {
118367		reqHeaders[k] = v
118368	}
118369	reqHeaders.Set("User-Agent", c.s.userAgent())
118370	var body io.Reader = nil
118371	body, err := googleapi.WithoutDataWrapper.JSONReader(c.notificationendpoint)
118372	if err != nil {
118373		return nil, err
118374	}
118375	reqHeaders.Set("Content-Type", "application/json")
118376	c.urlParams_.Set("alt", alt)
118377	c.urlParams_.Set("prettyPrint", "false")
118378	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
118379	urls += "?" + c.urlParams_.Encode()
118380	req, err := http.NewRequest("POST", urls, body)
118381	if err != nil {
118382		return nil, err
118383	}
118384	req.Header = reqHeaders
118385	googleapi.Expand(req.URL, map[string]string{
118386		"project": c.project,
118387		"region":  c.region,
118388	})
118389	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118390}
118391
118392// Do executes the "compute.regionNotificationEndpoints.insert" call.
118393// Exactly one of *Operation or error will be non-nil. Any non-2xx
118394// status code is an error. Response headers are in either
118395// *Operation.ServerResponse.Header or (if a response was returned at
118396// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118397// to check whether the returned error was because
118398// http.StatusNotModified was returned.
118399func (c *RegionNotificationEndpointsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118400	gensupport.SetOptions(c.urlParams_, opts...)
118401	res, err := c.doRequest("json")
118402	if res != nil && res.StatusCode == http.StatusNotModified {
118403		if res.Body != nil {
118404			res.Body.Close()
118405		}
118406		return nil, &googleapi.Error{
118407			Code:   res.StatusCode,
118408			Header: res.Header,
118409		}
118410	}
118411	if err != nil {
118412		return nil, err
118413	}
118414	defer googleapi.CloseBody(res)
118415	if err := googleapi.CheckResponse(res); err != nil {
118416		return nil, err
118417	}
118418	ret := &Operation{
118419		ServerResponse: googleapi.ServerResponse{
118420			Header:         res.Header,
118421			HTTPStatusCode: res.StatusCode,
118422		},
118423	}
118424	target := &ret
118425	if err := gensupport.DecodeResponse(target, res); err != nil {
118426		return nil, err
118427	}
118428	return ret, nil
118429	// {
118430	//   "description": "Create a NotificationEndpoint in the specified project in the given region using the parameters that are included in the request.",
118431	//   "httpMethod": "POST",
118432	//   "id": "compute.regionNotificationEndpoints.insert",
118433	//   "parameterOrder": [
118434	//     "project",
118435	//     "region"
118436	//   ],
118437	//   "parameters": {
118438	//     "project": {
118439	//       "description": "Project ID for this request.",
118440	//       "location": "path",
118441	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118442	//       "required": true,
118443	//       "type": "string"
118444	//     },
118445	//     "region": {
118446	//       "description": "Name of the region scoping this request.",
118447	//       "location": "path",
118448	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118449	//       "required": true,
118450	//       "type": "string"
118451	//     },
118452	//     "requestId": {
118453	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
118454	//       "location": "query",
118455	//       "type": "string"
118456	//     }
118457	//   },
118458	//   "path": "{project}/regions/{region}/notificationEndpoints",
118459	//   "request": {
118460	//     "$ref": "NotificationEndpoint"
118461	//   },
118462	//   "response": {
118463	//     "$ref": "Operation"
118464	//   },
118465	//   "scopes": [
118466	//     "https://www.googleapis.com/auth/cloud-platform",
118467	//     "https://www.googleapis.com/auth/compute"
118468	//   ]
118469	// }
118470
118471}
118472
118473// method id "compute.regionNotificationEndpoints.list":
118474
118475type RegionNotificationEndpointsListCall struct {
118476	s            *Service
118477	project      string
118478	region       string
118479	urlParams_   gensupport.URLParams
118480	ifNoneMatch_ string
118481	ctx_         context.Context
118482	header_      http.Header
118483}
118484
118485// List: Lists the NotificationEndpoints for a project in the given
118486// region.
118487func (r *RegionNotificationEndpointsService) List(project string, region string) *RegionNotificationEndpointsListCall {
118488	c := &RegionNotificationEndpointsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118489	c.project = project
118490	c.region = region
118491	return c
118492}
118493
118494// Filter sets the optional parameter "filter": A filter expression that
118495// filters resources listed in the response. The expression must specify
118496// the field name, a comparison operator, and the value that you want to
118497// use for filtering. The value must be a string, a number, or a
118498// boolean. The comparison operator must be either =, !=, >, or <.
118499//
118500// For example, if you are filtering Compute Engine instances, you can
118501// exclude instances named example-instance by specifying name !=
118502// example-instance.
118503//
118504// You can also filter nested fields. For example, you could specify
118505// scheduling.automaticRestart = false to include instances only if they
118506// are not scheduled for automatic restarts. You can use filtering on
118507// nested fields to filter based on resource labels.
118508//
118509// To filter on multiple expressions, provide each separate expression
118510// within parentheses. For example, (scheduling.automaticRestart = true)
118511// (cpuPlatform = "Intel Skylake"). By default, each expression is an
118512// AND expression. However, you can include AND and OR expressions
118513// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
118514// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
118515// true).
118516func (c *RegionNotificationEndpointsListCall) Filter(filter string) *RegionNotificationEndpointsListCall {
118517	c.urlParams_.Set("filter", filter)
118518	return c
118519}
118520
118521// MaxResults sets the optional parameter "maxResults": The maximum
118522// number of results per page that should be returned. If the number of
118523// available results is larger than maxResults, Compute Engine returns a
118524// nextPageToken that can be used to get the next page of results in
118525// subsequent list requests. Acceptable values are 0 to 500, inclusive.
118526// (Default: 500)
118527func (c *RegionNotificationEndpointsListCall) MaxResults(maxResults int64) *RegionNotificationEndpointsListCall {
118528	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
118529	return c
118530}
118531
118532// OrderBy sets the optional parameter "orderBy": Sorts list results by
118533// a certain order. By default, results are returned in alphanumerical
118534// order based on the resource name.
118535//
118536// You can also sort results in descending order based on the creation
118537// timestamp using orderBy="creationTimestamp desc". This sorts results
118538// based on the creationTimestamp field in reverse chronological order
118539// (newest result first). Use this to sort resources like operations so
118540// that the newest operation is returned first.
118541//
118542// Currently, only sorting by name or creationTimestamp desc is
118543// supported.
118544func (c *RegionNotificationEndpointsListCall) OrderBy(orderBy string) *RegionNotificationEndpointsListCall {
118545	c.urlParams_.Set("orderBy", orderBy)
118546	return c
118547}
118548
118549// PageToken sets the optional parameter "pageToken": Specifies a page
118550// token to use. Set pageToken to the nextPageToken returned by a
118551// previous list request to get the next page of results.
118552func (c *RegionNotificationEndpointsListCall) PageToken(pageToken string) *RegionNotificationEndpointsListCall {
118553	c.urlParams_.Set("pageToken", pageToken)
118554	return c
118555}
118556
118557// Fields allows partial responses to be retrieved. See
118558// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118559// for more information.
118560func (c *RegionNotificationEndpointsListCall) Fields(s ...googleapi.Field) *RegionNotificationEndpointsListCall {
118561	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118562	return c
118563}
118564
118565// IfNoneMatch sets the optional parameter which makes the operation
118566// fail if the object's ETag matches the given value. This is useful for
118567// getting updates only after the object has changed since the last
118568// request. Use googleapi.IsNotModified to check whether the response
118569// error from Do is the result of In-None-Match.
118570func (c *RegionNotificationEndpointsListCall) IfNoneMatch(entityTag string) *RegionNotificationEndpointsListCall {
118571	c.ifNoneMatch_ = entityTag
118572	return c
118573}
118574
118575// Context sets the context to be used in this call's Do method. Any
118576// pending HTTP request will be aborted if the provided context is
118577// canceled.
118578func (c *RegionNotificationEndpointsListCall) Context(ctx context.Context) *RegionNotificationEndpointsListCall {
118579	c.ctx_ = ctx
118580	return c
118581}
118582
118583// Header returns an http.Header that can be modified by the caller to
118584// add HTTP headers to the request.
118585func (c *RegionNotificationEndpointsListCall) Header() http.Header {
118586	if c.header_ == nil {
118587		c.header_ = make(http.Header)
118588	}
118589	return c.header_
118590}
118591
118592func (c *RegionNotificationEndpointsListCall) doRequest(alt string) (*http.Response, error) {
118593	reqHeaders := make(http.Header)
118594	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118595	for k, v := range c.header_ {
118596		reqHeaders[k] = v
118597	}
118598	reqHeaders.Set("User-Agent", c.s.userAgent())
118599	if c.ifNoneMatch_ != "" {
118600		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118601	}
118602	var body io.Reader = nil
118603	c.urlParams_.Set("alt", alt)
118604	c.urlParams_.Set("prettyPrint", "false")
118605	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/notificationEndpoints")
118606	urls += "?" + c.urlParams_.Encode()
118607	req, err := http.NewRequest("GET", urls, body)
118608	if err != nil {
118609		return nil, err
118610	}
118611	req.Header = reqHeaders
118612	googleapi.Expand(req.URL, map[string]string{
118613		"project": c.project,
118614		"region":  c.region,
118615	})
118616	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118617}
118618
118619// Do executes the "compute.regionNotificationEndpoints.list" call.
118620// Exactly one of *NotificationEndpointList or error will be non-nil.
118621// Any non-2xx status code is an error. Response headers are in either
118622// *NotificationEndpointList.ServerResponse.Header or (if a response was
118623// returned at all) in error.(*googleapi.Error).Header. Use
118624// googleapi.IsNotModified to check whether the returned error was
118625// because http.StatusNotModified was returned.
118626func (c *RegionNotificationEndpointsListCall) Do(opts ...googleapi.CallOption) (*NotificationEndpointList, error) {
118627	gensupport.SetOptions(c.urlParams_, opts...)
118628	res, err := c.doRequest("json")
118629	if res != nil && res.StatusCode == http.StatusNotModified {
118630		if res.Body != nil {
118631			res.Body.Close()
118632		}
118633		return nil, &googleapi.Error{
118634			Code:   res.StatusCode,
118635			Header: res.Header,
118636		}
118637	}
118638	if err != nil {
118639		return nil, err
118640	}
118641	defer googleapi.CloseBody(res)
118642	if err := googleapi.CheckResponse(res); err != nil {
118643		return nil, err
118644	}
118645	ret := &NotificationEndpointList{
118646		ServerResponse: googleapi.ServerResponse{
118647			Header:         res.Header,
118648			HTTPStatusCode: res.StatusCode,
118649		},
118650	}
118651	target := &ret
118652	if err := gensupport.DecodeResponse(target, res); err != nil {
118653		return nil, err
118654	}
118655	return ret, nil
118656	// {
118657	//   "description": "Lists the NotificationEndpoints for a project in the given region.",
118658	//   "httpMethod": "GET",
118659	//   "id": "compute.regionNotificationEndpoints.list",
118660	//   "parameterOrder": [
118661	//     "project",
118662	//     "region"
118663	//   ],
118664	//   "parameters": {
118665	//     "filter": {
118666	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
118667	//       "location": "query",
118668	//       "type": "string"
118669	//     },
118670	//     "maxResults": {
118671	//       "default": "500",
118672	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
118673	//       "format": "uint32",
118674	//       "location": "query",
118675	//       "minimum": "0",
118676	//       "type": "integer"
118677	//     },
118678	//     "orderBy": {
118679	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
118680	//       "location": "query",
118681	//       "type": "string"
118682	//     },
118683	//     "pageToken": {
118684	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
118685	//       "location": "query",
118686	//       "type": "string"
118687	//     },
118688	//     "project": {
118689	//       "description": "Project ID for this request.",
118690	//       "location": "path",
118691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118692	//       "required": true,
118693	//       "type": "string"
118694	//     },
118695	//     "region": {
118696	//       "description": "Name of the region scoping this request.",
118697	//       "location": "path",
118698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118699	//       "required": true,
118700	//       "type": "string"
118701	//     }
118702	//   },
118703	//   "path": "{project}/regions/{region}/notificationEndpoints",
118704	//   "response": {
118705	//     "$ref": "NotificationEndpointList"
118706	//   },
118707	//   "scopes": [
118708	//     "https://www.googleapis.com/auth/cloud-platform",
118709	//     "https://www.googleapis.com/auth/compute",
118710	//     "https://www.googleapis.com/auth/compute.readonly"
118711	//   ]
118712	// }
118713
118714}
118715
118716// Pages invokes f for each page of results.
118717// A non-nil error returned from f will halt the iteration.
118718// The provided context supersedes any context provided to the Context method.
118719func (c *RegionNotificationEndpointsListCall) Pages(ctx context.Context, f func(*NotificationEndpointList) error) error {
118720	c.ctx_ = ctx
118721	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
118722	for {
118723		x, err := c.Do()
118724		if err != nil {
118725			return err
118726		}
118727		if err := f(x); err != nil {
118728			return err
118729		}
118730		if x.NextPageToken == "" {
118731			return nil
118732		}
118733		c.PageToken(x.NextPageToken)
118734	}
118735}
118736
118737// method id "compute.regionOperations.delete":
118738
118739type RegionOperationsDeleteCall struct {
118740	s          *Service
118741	project    string
118742	region     string
118743	operation  string
118744	urlParams_ gensupport.URLParams
118745	ctx_       context.Context
118746	header_    http.Header
118747}
118748
118749// Delete: Deletes the specified region-specific Operations resource.
118750// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/delete
118751func (r *RegionOperationsService) Delete(project string, region string, operation string) *RegionOperationsDeleteCall {
118752	c := &RegionOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118753	c.project = project
118754	c.region = region
118755	c.operation = operation
118756	return c
118757}
118758
118759// Fields allows partial responses to be retrieved. See
118760// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118761// for more information.
118762func (c *RegionOperationsDeleteCall) Fields(s ...googleapi.Field) *RegionOperationsDeleteCall {
118763	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118764	return c
118765}
118766
118767// Context sets the context to be used in this call's Do method. Any
118768// pending HTTP request will be aborted if the provided context is
118769// canceled.
118770func (c *RegionOperationsDeleteCall) Context(ctx context.Context) *RegionOperationsDeleteCall {
118771	c.ctx_ = ctx
118772	return c
118773}
118774
118775// Header returns an http.Header that can be modified by the caller to
118776// add HTTP headers to the request.
118777func (c *RegionOperationsDeleteCall) Header() http.Header {
118778	if c.header_ == nil {
118779		c.header_ = make(http.Header)
118780	}
118781	return c.header_
118782}
118783
118784func (c *RegionOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
118785	reqHeaders := make(http.Header)
118786	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118787	for k, v := range c.header_ {
118788		reqHeaders[k] = v
118789	}
118790	reqHeaders.Set("User-Agent", c.s.userAgent())
118791	var body io.Reader = nil
118792	c.urlParams_.Set("alt", alt)
118793	c.urlParams_.Set("prettyPrint", "false")
118794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
118795	urls += "?" + c.urlParams_.Encode()
118796	req, err := http.NewRequest("DELETE", urls, body)
118797	if err != nil {
118798		return nil, err
118799	}
118800	req.Header = reqHeaders
118801	googleapi.Expand(req.URL, map[string]string{
118802		"project":   c.project,
118803		"region":    c.region,
118804		"operation": c.operation,
118805	})
118806	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118807}
118808
118809// Do executes the "compute.regionOperations.delete" call.
118810func (c *RegionOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
118811	gensupport.SetOptions(c.urlParams_, opts...)
118812	res, err := c.doRequest("json")
118813	if err != nil {
118814		return err
118815	}
118816	defer googleapi.CloseBody(res)
118817	if err := googleapi.CheckResponse(res); err != nil {
118818		return err
118819	}
118820	return nil
118821	// {
118822	//   "description": "Deletes the specified region-specific Operations resource.",
118823	//   "httpMethod": "DELETE",
118824	//   "id": "compute.regionOperations.delete",
118825	//   "parameterOrder": [
118826	//     "project",
118827	//     "region",
118828	//     "operation"
118829	//   ],
118830	//   "parameters": {
118831	//     "operation": {
118832	//       "description": "Name of the Operations resource to delete.",
118833	//       "location": "path",
118834	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118835	//       "required": true,
118836	//       "type": "string"
118837	//     },
118838	//     "project": {
118839	//       "description": "Project ID for this request.",
118840	//       "location": "path",
118841	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
118842	//       "required": true,
118843	//       "type": "string"
118844	//     },
118845	//     "region": {
118846	//       "description": "Name of the region for this request.",
118847	//       "location": "path",
118848	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
118849	//       "required": true,
118850	//       "type": "string"
118851	//     }
118852	//   },
118853	//   "path": "{project}/regions/{region}/operations/{operation}",
118854	//   "scopes": [
118855	//     "https://www.googleapis.com/auth/cloud-platform",
118856	//     "https://www.googleapis.com/auth/compute"
118857	//   ]
118858	// }
118859
118860}
118861
118862// method id "compute.regionOperations.get":
118863
118864type RegionOperationsGetCall struct {
118865	s            *Service
118866	project      string
118867	region       string
118868	operation    string
118869	urlParams_   gensupport.URLParams
118870	ifNoneMatch_ string
118871	ctx_         context.Context
118872	header_      http.Header
118873}
118874
118875// Get: Retrieves the specified region-specific Operations resource.
118876// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/get
118877func (r *RegionOperationsService) Get(project string, region string, operation string) *RegionOperationsGetCall {
118878	c := &RegionOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
118879	c.project = project
118880	c.region = region
118881	c.operation = operation
118882	return c
118883}
118884
118885// Fields allows partial responses to be retrieved. See
118886// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
118887// for more information.
118888func (c *RegionOperationsGetCall) Fields(s ...googleapi.Field) *RegionOperationsGetCall {
118889	c.urlParams_.Set("fields", googleapi.CombineFields(s))
118890	return c
118891}
118892
118893// IfNoneMatch sets the optional parameter which makes the operation
118894// fail if the object's ETag matches the given value. This is useful for
118895// getting updates only after the object has changed since the last
118896// request. Use googleapi.IsNotModified to check whether the response
118897// error from Do is the result of In-None-Match.
118898func (c *RegionOperationsGetCall) IfNoneMatch(entityTag string) *RegionOperationsGetCall {
118899	c.ifNoneMatch_ = entityTag
118900	return c
118901}
118902
118903// Context sets the context to be used in this call's Do method. Any
118904// pending HTTP request will be aborted if the provided context is
118905// canceled.
118906func (c *RegionOperationsGetCall) Context(ctx context.Context) *RegionOperationsGetCall {
118907	c.ctx_ = ctx
118908	return c
118909}
118910
118911// Header returns an http.Header that can be modified by the caller to
118912// add HTTP headers to the request.
118913func (c *RegionOperationsGetCall) Header() http.Header {
118914	if c.header_ == nil {
118915		c.header_ = make(http.Header)
118916	}
118917	return c.header_
118918}
118919
118920func (c *RegionOperationsGetCall) doRequest(alt string) (*http.Response, error) {
118921	reqHeaders := make(http.Header)
118922	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
118923	for k, v := range c.header_ {
118924		reqHeaders[k] = v
118925	}
118926	reqHeaders.Set("User-Agent", c.s.userAgent())
118927	if c.ifNoneMatch_ != "" {
118928		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
118929	}
118930	var body io.Reader = nil
118931	c.urlParams_.Set("alt", alt)
118932	c.urlParams_.Set("prettyPrint", "false")
118933	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}")
118934	urls += "?" + c.urlParams_.Encode()
118935	req, err := http.NewRequest("GET", urls, body)
118936	if err != nil {
118937		return nil, err
118938	}
118939	req.Header = reqHeaders
118940	googleapi.Expand(req.URL, map[string]string{
118941		"project":   c.project,
118942		"region":    c.region,
118943		"operation": c.operation,
118944	})
118945	return gensupport.SendRequest(c.ctx_, c.s.client, req)
118946}
118947
118948// Do executes the "compute.regionOperations.get" call.
118949// Exactly one of *Operation or error will be non-nil. Any non-2xx
118950// status code is an error. Response headers are in either
118951// *Operation.ServerResponse.Header or (if a response was returned at
118952// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
118953// to check whether the returned error was because
118954// http.StatusNotModified was returned.
118955func (c *RegionOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
118956	gensupport.SetOptions(c.urlParams_, opts...)
118957	res, err := c.doRequest("json")
118958	if res != nil && res.StatusCode == http.StatusNotModified {
118959		if res.Body != nil {
118960			res.Body.Close()
118961		}
118962		return nil, &googleapi.Error{
118963			Code:   res.StatusCode,
118964			Header: res.Header,
118965		}
118966	}
118967	if err != nil {
118968		return nil, err
118969	}
118970	defer googleapi.CloseBody(res)
118971	if err := googleapi.CheckResponse(res); err != nil {
118972		return nil, err
118973	}
118974	ret := &Operation{
118975		ServerResponse: googleapi.ServerResponse{
118976			Header:         res.Header,
118977			HTTPStatusCode: res.StatusCode,
118978		},
118979	}
118980	target := &ret
118981	if err := gensupport.DecodeResponse(target, res); err != nil {
118982		return nil, err
118983	}
118984	return ret, nil
118985	// {
118986	//   "description": "Retrieves the specified region-specific Operations resource.",
118987	//   "httpMethod": "GET",
118988	//   "id": "compute.regionOperations.get",
118989	//   "parameterOrder": [
118990	//     "project",
118991	//     "region",
118992	//     "operation"
118993	//   ],
118994	//   "parameters": {
118995	//     "operation": {
118996	//       "description": "Name of the Operations resource to return.",
118997	//       "location": "path",
118998	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
118999	//       "required": true,
119000	//       "type": "string"
119001	//     },
119002	//     "project": {
119003	//       "description": "Project ID for this request.",
119004	//       "location": "path",
119005	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119006	//       "required": true,
119007	//       "type": "string"
119008	//     },
119009	//     "region": {
119010	//       "description": "Name of the region for this request.",
119011	//       "location": "path",
119012	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119013	//       "required": true,
119014	//       "type": "string"
119015	//     }
119016	//   },
119017	//   "path": "{project}/regions/{region}/operations/{operation}",
119018	//   "response": {
119019	//     "$ref": "Operation"
119020	//   },
119021	//   "scopes": [
119022	//     "https://www.googleapis.com/auth/cloud-platform",
119023	//     "https://www.googleapis.com/auth/compute",
119024	//     "https://www.googleapis.com/auth/compute.readonly"
119025	//   ]
119026	// }
119027
119028}
119029
119030// method id "compute.regionOperations.list":
119031
119032type RegionOperationsListCall struct {
119033	s            *Service
119034	project      string
119035	region       string
119036	urlParams_   gensupport.URLParams
119037	ifNoneMatch_ string
119038	ctx_         context.Context
119039	header_      http.Header
119040}
119041
119042// List: Retrieves a list of Operation resources contained within the
119043// specified region.
119044// For details, see https://cloud.google.com/compute/docs/reference/latest/regionOperations/list
119045func (r *RegionOperationsService) List(project string, region string) *RegionOperationsListCall {
119046	c := &RegionOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119047	c.project = project
119048	c.region = region
119049	return c
119050}
119051
119052// Filter sets the optional parameter "filter": A filter expression that
119053// filters resources listed in the response. The expression must specify
119054// the field name, a comparison operator, and the value that you want to
119055// use for filtering. The value must be a string, a number, or a
119056// boolean. The comparison operator must be either =, !=, >, or <.
119057//
119058// For example, if you are filtering Compute Engine instances, you can
119059// exclude instances named example-instance by specifying name !=
119060// example-instance.
119061//
119062// You can also filter nested fields. For example, you could specify
119063// scheduling.automaticRestart = false to include instances only if they
119064// are not scheduled for automatic restarts. You can use filtering on
119065// nested fields to filter based on resource labels.
119066//
119067// To filter on multiple expressions, provide each separate expression
119068// within parentheses. For example, (scheduling.automaticRestart = true)
119069// (cpuPlatform = "Intel Skylake"). By default, each expression is an
119070// AND expression. However, you can include AND and OR expressions
119071// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
119072// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
119073// true).
119074func (c *RegionOperationsListCall) Filter(filter string) *RegionOperationsListCall {
119075	c.urlParams_.Set("filter", filter)
119076	return c
119077}
119078
119079// MaxResults sets the optional parameter "maxResults": The maximum
119080// number of results per page that should be returned. If the number of
119081// available results is larger than maxResults, Compute Engine returns a
119082// nextPageToken that can be used to get the next page of results in
119083// subsequent list requests. Acceptable values are 0 to 500, inclusive.
119084// (Default: 500)
119085func (c *RegionOperationsListCall) MaxResults(maxResults int64) *RegionOperationsListCall {
119086	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
119087	return c
119088}
119089
119090// OrderBy sets the optional parameter "orderBy": Sorts list results by
119091// a certain order. By default, results are returned in alphanumerical
119092// order based on the resource name.
119093//
119094// You can also sort results in descending order based on the creation
119095// timestamp using orderBy="creationTimestamp desc". This sorts results
119096// based on the creationTimestamp field in reverse chronological order
119097// (newest result first). Use this to sort resources like operations so
119098// that the newest operation is returned first.
119099//
119100// Currently, only sorting by name or creationTimestamp desc is
119101// supported.
119102func (c *RegionOperationsListCall) OrderBy(orderBy string) *RegionOperationsListCall {
119103	c.urlParams_.Set("orderBy", orderBy)
119104	return c
119105}
119106
119107// PageToken sets the optional parameter "pageToken": Specifies a page
119108// token to use. Set pageToken to the nextPageToken returned by a
119109// previous list request to get the next page of results.
119110func (c *RegionOperationsListCall) PageToken(pageToken string) *RegionOperationsListCall {
119111	c.urlParams_.Set("pageToken", pageToken)
119112	return c
119113}
119114
119115// Fields allows partial responses to be retrieved. See
119116// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119117// for more information.
119118func (c *RegionOperationsListCall) Fields(s ...googleapi.Field) *RegionOperationsListCall {
119119	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119120	return c
119121}
119122
119123// IfNoneMatch sets the optional parameter which makes the operation
119124// fail if the object's ETag matches the given value. This is useful for
119125// getting updates only after the object has changed since the last
119126// request. Use googleapi.IsNotModified to check whether the response
119127// error from Do is the result of In-None-Match.
119128func (c *RegionOperationsListCall) IfNoneMatch(entityTag string) *RegionOperationsListCall {
119129	c.ifNoneMatch_ = entityTag
119130	return c
119131}
119132
119133// Context sets the context to be used in this call's Do method. Any
119134// pending HTTP request will be aborted if the provided context is
119135// canceled.
119136func (c *RegionOperationsListCall) Context(ctx context.Context) *RegionOperationsListCall {
119137	c.ctx_ = ctx
119138	return c
119139}
119140
119141// Header returns an http.Header that can be modified by the caller to
119142// add HTTP headers to the request.
119143func (c *RegionOperationsListCall) Header() http.Header {
119144	if c.header_ == nil {
119145		c.header_ = make(http.Header)
119146	}
119147	return c.header_
119148}
119149
119150func (c *RegionOperationsListCall) doRequest(alt string) (*http.Response, error) {
119151	reqHeaders := make(http.Header)
119152	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119153	for k, v := range c.header_ {
119154		reqHeaders[k] = v
119155	}
119156	reqHeaders.Set("User-Agent", c.s.userAgent())
119157	if c.ifNoneMatch_ != "" {
119158		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119159	}
119160	var body io.Reader = nil
119161	c.urlParams_.Set("alt", alt)
119162	c.urlParams_.Set("prettyPrint", "false")
119163	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations")
119164	urls += "?" + c.urlParams_.Encode()
119165	req, err := http.NewRequest("GET", urls, body)
119166	if err != nil {
119167		return nil, err
119168	}
119169	req.Header = reqHeaders
119170	googleapi.Expand(req.URL, map[string]string{
119171		"project": c.project,
119172		"region":  c.region,
119173	})
119174	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119175}
119176
119177// Do executes the "compute.regionOperations.list" call.
119178// Exactly one of *OperationList or error will be non-nil. Any non-2xx
119179// status code is an error. Response headers are in either
119180// *OperationList.ServerResponse.Header or (if a response was returned
119181// at all) in error.(*googleapi.Error).Header. Use
119182// googleapi.IsNotModified to check whether the returned error was
119183// because http.StatusNotModified was returned.
119184func (c *RegionOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
119185	gensupport.SetOptions(c.urlParams_, opts...)
119186	res, err := c.doRequest("json")
119187	if res != nil && res.StatusCode == http.StatusNotModified {
119188		if res.Body != nil {
119189			res.Body.Close()
119190		}
119191		return nil, &googleapi.Error{
119192			Code:   res.StatusCode,
119193			Header: res.Header,
119194		}
119195	}
119196	if err != nil {
119197		return nil, err
119198	}
119199	defer googleapi.CloseBody(res)
119200	if err := googleapi.CheckResponse(res); err != nil {
119201		return nil, err
119202	}
119203	ret := &OperationList{
119204		ServerResponse: googleapi.ServerResponse{
119205			Header:         res.Header,
119206			HTTPStatusCode: res.StatusCode,
119207		},
119208	}
119209	target := &ret
119210	if err := gensupport.DecodeResponse(target, res); err != nil {
119211		return nil, err
119212	}
119213	return ret, nil
119214	// {
119215	//   "description": "Retrieves a list of Operation resources contained within the specified region.",
119216	//   "httpMethod": "GET",
119217	//   "id": "compute.regionOperations.list",
119218	//   "parameterOrder": [
119219	//     "project",
119220	//     "region"
119221	//   ],
119222	//   "parameters": {
119223	//     "filter": {
119224	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
119225	//       "location": "query",
119226	//       "type": "string"
119227	//     },
119228	//     "maxResults": {
119229	//       "default": "500",
119230	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
119231	//       "format": "uint32",
119232	//       "location": "query",
119233	//       "minimum": "0",
119234	//       "type": "integer"
119235	//     },
119236	//     "orderBy": {
119237	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
119238	//       "location": "query",
119239	//       "type": "string"
119240	//     },
119241	//     "pageToken": {
119242	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
119243	//       "location": "query",
119244	//       "type": "string"
119245	//     },
119246	//     "project": {
119247	//       "description": "Project ID for this request.",
119248	//       "location": "path",
119249	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119250	//       "required": true,
119251	//       "type": "string"
119252	//     },
119253	//     "region": {
119254	//       "description": "Name of the region for this request.",
119255	//       "location": "path",
119256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119257	//       "required": true,
119258	//       "type": "string"
119259	//     }
119260	//   },
119261	//   "path": "{project}/regions/{region}/operations",
119262	//   "response": {
119263	//     "$ref": "OperationList"
119264	//   },
119265	//   "scopes": [
119266	//     "https://www.googleapis.com/auth/cloud-platform",
119267	//     "https://www.googleapis.com/auth/compute",
119268	//     "https://www.googleapis.com/auth/compute.readonly"
119269	//   ]
119270	// }
119271
119272}
119273
119274// Pages invokes f for each page of results.
119275// A non-nil error returned from f will halt the iteration.
119276// The provided context supersedes any context provided to the Context method.
119277func (c *RegionOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
119278	c.ctx_ = ctx
119279	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
119280	for {
119281		x, err := c.Do()
119282		if err != nil {
119283			return err
119284		}
119285		if err := f(x); err != nil {
119286			return err
119287		}
119288		if x.NextPageToken == "" {
119289			return nil
119290		}
119291		c.PageToken(x.NextPageToken)
119292	}
119293}
119294
119295// method id "compute.regionOperations.wait":
119296
119297type RegionOperationsWaitCall struct {
119298	s          *Service
119299	project    string
119300	region     string
119301	operation  string
119302	urlParams_ gensupport.URLParams
119303	ctx_       context.Context
119304	header_    http.Header
119305}
119306
119307// Wait: Waits for the specified Operation resource to return as DONE or
119308// for the request to approach the 2 minute deadline, and retrieves the
119309// specified Operation resource. This method differs from the GET method
119310// in that it waits for no more than the default deadline (2 minutes)
119311// and then returns the current state of the operation, which might be
119312// DONE or still in progress.
119313//
119314// This method is called on a best-effort basis. Specifically:
119315// - In uncommon cases, when the server is overloaded, the request might
119316// return before the default deadline is reached, or might return after
119317// zero seconds.
119318// - If the default deadline is reached, there is no guarantee that the
119319// operation is actually done when the method returns. Be prepared to
119320// retry if the operation is not DONE.
119321func (r *RegionOperationsService) Wait(project string, region string, operation string) *RegionOperationsWaitCall {
119322	c := &RegionOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119323	c.project = project
119324	c.region = region
119325	c.operation = operation
119326	return c
119327}
119328
119329// Fields allows partial responses to be retrieved. See
119330// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119331// for more information.
119332func (c *RegionOperationsWaitCall) Fields(s ...googleapi.Field) *RegionOperationsWaitCall {
119333	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119334	return c
119335}
119336
119337// Context sets the context to be used in this call's Do method. Any
119338// pending HTTP request will be aborted if the provided context is
119339// canceled.
119340func (c *RegionOperationsWaitCall) Context(ctx context.Context) *RegionOperationsWaitCall {
119341	c.ctx_ = ctx
119342	return c
119343}
119344
119345// Header returns an http.Header that can be modified by the caller to
119346// add HTTP headers to the request.
119347func (c *RegionOperationsWaitCall) Header() http.Header {
119348	if c.header_ == nil {
119349		c.header_ = make(http.Header)
119350	}
119351	return c.header_
119352}
119353
119354func (c *RegionOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
119355	reqHeaders := make(http.Header)
119356	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119357	for k, v := range c.header_ {
119358		reqHeaders[k] = v
119359	}
119360	reqHeaders.Set("User-Agent", c.s.userAgent())
119361	var body io.Reader = nil
119362	c.urlParams_.Set("alt", alt)
119363	c.urlParams_.Set("prettyPrint", "false")
119364	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/operations/{operation}/wait")
119365	urls += "?" + c.urlParams_.Encode()
119366	req, err := http.NewRequest("POST", urls, body)
119367	if err != nil {
119368		return nil, err
119369	}
119370	req.Header = reqHeaders
119371	googleapi.Expand(req.URL, map[string]string{
119372		"project":   c.project,
119373		"region":    c.region,
119374		"operation": c.operation,
119375	})
119376	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119377}
119378
119379// Do executes the "compute.regionOperations.wait" call.
119380// Exactly one of *Operation or error will be non-nil. Any non-2xx
119381// status code is an error. Response headers are in either
119382// *Operation.ServerResponse.Header or (if a response was returned at
119383// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119384// to check whether the returned error was because
119385// http.StatusNotModified was returned.
119386func (c *RegionOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119387	gensupport.SetOptions(c.urlParams_, opts...)
119388	res, err := c.doRequest("json")
119389	if res != nil && res.StatusCode == http.StatusNotModified {
119390		if res.Body != nil {
119391			res.Body.Close()
119392		}
119393		return nil, &googleapi.Error{
119394			Code:   res.StatusCode,
119395			Header: res.Header,
119396		}
119397	}
119398	if err != nil {
119399		return nil, err
119400	}
119401	defer googleapi.CloseBody(res)
119402	if err := googleapi.CheckResponse(res); err != nil {
119403		return nil, err
119404	}
119405	ret := &Operation{
119406		ServerResponse: googleapi.ServerResponse{
119407			Header:         res.Header,
119408			HTTPStatusCode: res.StatusCode,
119409		},
119410	}
119411	target := &ret
119412	if err := gensupport.DecodeResponse(target, res); err != nil {
119413		return nil, err
119414	}
119415	return ret, nil
119416	// {
119417	//   "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.",
119418	//   "httpMethod": "POST",
119419	//   "id": "compute.regionOperations.wait",
119420	//   "parameterOrder": [
119421	//     "project",
119422	//     "region",
119423	//     "operation"
119424	//   ],
119425	//   "parameters": {
119426	//     "operation": {
119427	//       "description": "Name of the Operations resource to return.",
119428	//       "location": "path",
119429	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119430	//       "required": true,
119431	//       "type": "string"
119432	//     },
119433	//     "project": {
119434	//       "description": "Project ID for this request.",
119435	//       "location": "path",
119436	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119437	//       "required": true,
119438	//       "type": "string"
119439	//     },
119440	//     "region": {
119441	//       "description": "Name of the region for this request.",
119442	//       "location": "path",
119443	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119444	//       "required": true,
119445	//       "type": "string"
119446	//     }
119447	//   },
119448	//   "path": "{project}/regions/{region}/operations/{operation}/wait",
119449	//   "response": {
119450	//     "$ref": "Operation"
119451	//   },
119452	//   "scopes": [
119453	//     "https://www.googleapis.com/auth/cloud-platform",
119454	//     "https://www.googleapis.com/auth/compute",
119455	//     "https://www.googleapis.com/auth/compute.readonly"
119456	//   ]
119457	// }
119458
119459}
119460
119461// method id "compute.regionSslCertificates.delete":
119462
119463type RegionSslCertificatesDeleteCall struct {
119464	s              *Service
119465	project        string
119466	region         string
119467	sslCertificate string
119468	urlParams_     gensupport.URLParams
119469	ctx_           context.Context
119470	header_        http.Header
119471}
119472
119473// Delete: Deletes the specified SslCertificate resource in the region.
119474func (r *RegionSslCertificatesService) Delete(project string, region string, sslCertificate string) *RegionSslCertificatesDeleteCall {
119475	c := &RegionSslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119476	c.project = project
119477	c.region = region
119478	c.sslCertificate = sslCertificate
119479	return c
119480}
119481
119482// RequestId sets the optional parameter "requestId": An optional
119483// request ID to identify requests. Specify a unique request ID so that
119484// if you must retry your request, the server will know to ignore the
119485// request if it has already been completed.
119486//
119487// For example, consider a situation where you make an initial request
119488// and the request times out. If you make the request again with the
119489// same request ID, the server can check if original operation with the
119490// same request ID was received, and if so, will ignore the second
119491// request. This prevents clients from accidentally creating duplicate
119492// commitments.
119493//
119494// The request ID must be a valid UUID with the exception that zero UUID
119495// is not supported (00000000-0000-0000-0000-000000000000).
119496func (c *RegionSslCertificatesDeleteCall) RequestId(requestId string) *RegionSslCertificatesDeleteCall {
119497	c.urlParams_.Set("requestId", requestId)
119498	return c
119499}
119500
119501// Fields allows partial responses to be retrieved. See
119502// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119503// for more information.
119504func (c *RegionSslCertificatesDeleteCall) Fields(s ...googleapi.Field) *RegionSslCertificatesDeleteCall {
119505	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119506	return c
119507}
119508
119509// Context sets the context to be used in this call's Do method. Any
119510// pending HTTP request will be aborted if the provided context is
119511// canceled.
119512func (c *RegionSslCertificatesDeleteCall) Context(ctx context.Context) *RegionSslCertificatesDeleteCall {
119513	c.ctx_ = ctx
119514	return c
119515}
119516
119517// Header returns an http.Header that can be modified by the caller to
119518// add HTTP headers to the request.
119519func (c *RegionSslCertificatesDeleteCall) Header() http.Header {
119520	if c.header_ == nil {
119521		c.header_ = make(http.Header)
119522	}
119523	return c.header_
119524}
119525
119526func (c *RegionSslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
119527	reqHeaders := make(http.Header)
119528	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119529	for k, v := range c.header_ {
119530		reqHeaders[k] = v
119531	}
119532	reqHeaders.Set("User-Agent", c.s.userAgent())
119533	var body io.Reader = nil
119534	c.urlParams_.Set("alt", alt)
119535	c.urlParams_.Set("prettyPrint", "false")
119536	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
119537	urls += "?" + c.urlParams_.Encode()
119538	req, err := http.NewRequest("DELETE", urls, body)
119539	if err != nil {
119540		return nil, err
119541	}
119542	req.Header = reqHeaders
119543	googleapi.Expand(req.URL, map[string]string{
119544		"project":        c.project,
119545		"region":         c.region,
119546		"sslCertificate": c.sslCertificate,
119547	})
119548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119549}
119550
119551// Do executes the "compute.regionSslCertificates.delete" call.
119552// Exactly one of *Operation or error will be non-nil. Any non-2xx
119553// status code is an error. Response headers are in either
119554// *Operation.ServerResponse.Header or (if a response was returned at
119555// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119556// to check whether the returned error was because
119557// http.StatusNotModified was returned.
119558func (c *RegionSslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119559	gensupport.SetOptions(c.urlParams_, opts...)
119560	res, err := c.doRequest("json")
119561	if res != nil && res.StatusCode == http.StatusNotModified {
119562		if res.Body != nil {
119563			res.Body.Close()
119564		}
119565		return nil, &googleapi.Error{
119566			Code:   res.StatusCode,
119567			Header: res.Header,
119568		}
119569	}
119570	if err != nil {
119571		return nil, err
119572	}
119573	defer googleapi.CloseBody(res)
119574	if err := googleapi.CheckResponse(res); err != nil {
119575		return nil, err
119576	}
119577	ret := &Operation{
119578		ServerResponse: googleapi.ServerResponse{
119579			Header:         res.Header,
119580			HTTPStatusCode: res.StatusCode,
119581		},
119582	}
119583	target := &ret
119584	if err := gensupport.DecodeResponse(target, res); err != nil {
119585		return nil, err
119586	}
119587	return ret, nil
119588	// {
119589	//   "description": "Deletes the specified SslCertificate resource in the region.",
119590	//   "httpMethod": "DELETE",
119591	//   "id": "compute.regionSslCertificates.delete",
119592	//   "parameterOrder": [
119593	//     "project",
119594	//     "region",
119595	//     "sslCertificate"
119596	//   ],
119597	//   "parameters": {
119598	//     "project": {
119599	//       "description": "Project ID for this request.",
119600	//       "location": "path",
119601	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119602	//       "required": true,
119603	//       "type": "string"
119604	//     },
119605	//     "region": {
119606	//       "description": "Name of the region scoping this request.",
119607	//       "location": "path",
119608	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119609	//       "required": true,
119610	//       "type": "string"
119611	//     },
119612	//     "requestId": {
119613	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119614	//       "location": "query",
119615	//       "type": "string"
119616	//     },
119617	//     "sslCertificate": {
119618	//       "description": "Name of the SslCertificate resource to delete.",
119619	//       "location": "path",
119620	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119621	//       "required": true,
119622	//       "type": "string"
119623	//     }
119624	//   },
119625	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
119626	//   "response": {
119627	//     "$ref": "Operation"
119628	//   },
119629	//   "scopes": [
119630	//     "https://www.googleapis.com/auth/cloud-platform",
119631	//     "https://www.googleapis.com/auth/compute"
119632	//   ]
119633	// }
119634
119635}
119636
119637// method id "compute.regionSslCertificates.get":
119638
119639type RegionSslCertificatesGetCall struct {
119640	s              *Service
119641	project        string
119642	region         string
119643	sslCertificate string
119644	urlParams_     gensupport.URLParams
119645	ifNoneMatch_   string
119646	ctx_           context.Context
119647	header_        http.Header
119648}
119649
119650// Get: Returns the specified SslCertificate resource in the specified
119651// region. Get a list of available SSL certificates by making a list()
119652// request.
119653func (r *RegionSslCertificatesService) Get(project string, region string, sslCertificate string) *RegionSslCertificatesGetCall {
119654	c := &RegionSslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119655	c.project = project
119656	c.region = region
119657	c.sslCertificate = sslCertificate
119658	return c
119659}
119660
119661// Fields allows partial responses to be retrieved. See
119662// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119663// for more information.
119664func (c *RegionSslCertificatesGetCall) Fields(s ...googleapi.Field) *RegionSslCertificatesGetCall {
119665	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119666	return c
119667}
119668
119669// IfNoneMatch sets the optional parameter which makes the operation
119670// fail if the object's ETag matches the given value. This is useful for
119671// getting updates only after the object has changed since the last
119672// request. Use googleapi.IsNotModified to check whether the response
119673// error from Do is the result of In-None-Match.
119674func (c *RegionSslCertificatesGetCall) IfNoneMatch(entityTag string) *RegionSslCertificatesGetCall {
119675	c.ifNoneMatch_ = entityTag
119676	return c
119677}
119678
119679// Context sets the context to be used in this call's Do method. Any
119680// pending HTTP request will be aborted if the provided context is
119681// canceled.
119682func (c *RegionSslCertificatesGetCall) Context(ctx context.Context) *RegionSslCertificatesGetCall {
119683	c.ctx_ = ctx
119684	return c
119685}
119686
119687// Header returns an http.Header that can be modified by the caller to
119688// add HTTP headers to the request.
119689func (c *RegionSslCertificatesGetCall) Header() http.Header {
119690	if c.header_ == nil {
119691		c.header_ = make(http.Header)
119692	}
119693	return c.header_
119694}
119695
119696func (c *RegionSslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
119697	reqHeaders := make(http.Header)
119698	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119699	for k, v := range c.header_ {
119700		reqHeaders[k] = v
119701	}
119702	reqHeaders.Set("User-Agent", c.s.userAgent())
119703	if c.ifNoneMatch_ != "" {
119704		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
119705	}
119706	var body io.Reader = nil
119707	c.urlParams_.Set("alt", alt)
119708	c.urlParams_.Set("prettyPrint", "false")
119709	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates/{sslCertificate}")
119710	urls += "?" + c.urlParams_.Encode()
119711	req, err := http.NewRequest("GET", urls, body)
119712	if err != nil {
119713		return nil, err
119714	}
119715	req.Header = reqHeaders
119716	googleapi.Expand(req.URL, map[string]string{
119717		"project":        c.project,
119718		"region":         c.region,
119719		"sslCertificate": c.sslCertificate,
119720	})
119721	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119722}
119723
119724// Do executes the "compute.regionSslCertificates.get" call.
119725// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
119726// status code is an error. Response headers are in either
119727// *SslCertificate.ServerResponse.Header or (if a response was returned
119728// at all) in error.(*googleapi.Error).Header. Use
119729// googleapi.IsNotModified to check whether the returned error was
119730// because http.StatusNotModified was returned.
119731func (c *RegionSslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
119732	gensupport.SetOptions(c.urlParams_, opts...)
119733	res, err := c.doRequest("json")
119734	if res != nil && res.StatusCode == http.StatusNotModified {
119735		if res.Body != nil {
119736			res.Body.Close()
119737		}
119738		return nil, &googleapi.Error{
119739			Code:   res.StatusCode,
119740			Header: res.Header,
119741		}
119742	}
119743	if err != nil {
119744		return nil, err
119745	}
119746	defer googleapi.CloseBody(res)
119747	if err := googleapi.CheckResponse(res); err != nil {
119748		return nil, err
119749	}
119750	ret := &SslCertificate{
119751		ServerResponse: googleapi.ServerResponse{
119752			Header:         res.Header,
119753			HTTPStatusCode: res.StatusCode,
119754		},
119755	}
119756	target := &ret
119757	if err := gensupport.DecodeResponse(target, res); err != nil {
119758		return nil, err
119759	}
119760	return ret, nil
119761	// {
119762	//   "description": "Returns the specified SslCertificate resource in the specified region. Get a list of available SSL certificates by making a list() request.",
119763	//   "httpMethod": "GET",
119764	//   "id": "compute.regionSslCertificates.get",
119765	//   "parameterOrder": [
119766	//     "project",
119767	//     "region",
119768	//     "sslCertificate"
119769	//   ],
119770	//   "parameters": {
119771	//     "project": {
119772	//       "description": "Project ID for this request.",
119773	//       "location": "path",
119774	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119775	//       "required": true,
119776	//       "type": "string"
119777	//     },
119778	//     "region": {
119779	//       "description": "Name of the region scoping this request.",
119780	//       "location": "path",
119781	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119782	//       "required": true,
119783	//       "type": "string"
119784	//     },
119785	//     "sslCertificate": {
119786	//       "description": "Name of the SslCertificate resource to return.",
119787	//       "location": "path",
119788	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
119789	//       "required": true,
119790	//       "type": "string"
119791	//     }
119792	//   },
119793	//   "path": "{project}/regions/{region}/sslCertificates/{sslCertificate}",
119794	//   "response": {
119795	//     "$ref": "SslCertificate"
119796	//   },
119797	//   "scopes": [
119798	//     "https://www.googleapis.com/auth/cloud-platform",
119799	//     "https://www.googleapis.com/auth/compute",
119800	//     "https://www.googleapis.com/auth/compute.readonly"
119801	//   ]
119802	// }
119803
119804}
119805
119806// method id "compute.regionSslCertificates.insert":
119807
119808type RegionSslCertificatesInsertCall struct {
119809	s              *Service
119810	project        string
119811	region         string
119812	sslcertificate *SslCertificate
119813	urlParams_     gensupport.URLParams
119814	ctx_           context.Context
119815	header_        http.Header
119816}
119817
119818// Insert: Creates a SslCertificate resource in the specified project
119819// and region using the data included in the request
119820func (r *RegionSslCertificatesService) Insert(project string, region string, sslcertificate *SslCertificate) *RegionSslCertificatesInsertCall {
119821	c := &RegionSslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119822	c.project = project
119823	c.region = region
119824	c.sslcertificate = sslcertificate
119825	return c
119826}
119827
119828// RequestId sets the optional parameter "requestId": An optional
119829// request ID to identify requests. Specify a unique request ID so that
119830// if you must retry your request, the server will know to ignore the
119831// request if it has already been completed.
119832//
119833// For example, consider a situation where you make an initial request
119834// and the request times out. If you make the request again with the
119835// same request ID, the server can check if original operation with the
119836// same request ID was received, and if so, will ignore the second
119837// request. This prevents clients from accidentally creating duplicate
119838// commitments.
119839//
119840// The request ID must be a valid UUID with the exception that zero UUID
119841// is not supported (00000000-0000-0000-0000-000000000000).
119842func (c *RegionSslCertificatesInsertCall) RequestId(requestId string) *RegionSslCertificatesInsertCall {
119843	c.urlParams_.Set("requestId", requestId)
119844	return c
119845}
119846
119847// Fields allows partial responses to be retrieved. See
119848// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
119849// for more information.
119850func (c *RegionSslCertificatesInsertCall) Fields(s ...googleapi.Field) *RegionSslCertificatesInsertCall {
119851	c.urlParams_.Set("fields", googleapi.CombineFields(s))
119852	return c
119853}
119854
119855// Context sets the context to be used in this call's Do method. Any
119856// pending HTTP request will be aborted if the provided context is
119857// canceled.
119858func (c *RegionSslCertificatesInsertCall) Context(ctx context.Context) *RegionSslCertificatesInsertCall {
119859	c.ctx_ = ctx
119860	return c
119861}
119862
119863// Header returns an http.Header that can be modified by the caller to
119864// add HTTP headers to the request.
119865func (c *RegionSslCertificatesInsertCall) Header() http.Header {
119866	if c.header_ == nil {
119867		c.header_ = make(http.Header)
119868	}
119869	return c.header_
119870}
119871
119872func (c *RegionSslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
119873	reqHeaders := make(http.Header)
119874	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
119875	for k, v := range c.header_ {
119876		reqHeaders[k] = v
119877	}
119878	reqHeaders.Set("User-Agent", c.s.userAgent())
119879	var body io.Reader = nil
119880	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
119881	if err != nil {
119882		return nil, err
119883	}
119884	reqHeaders.Set("Content-Type", "application/json")
119885	c.urlParams_.Set("alt", alt)
119886	c.urlParams_.Set("prettyPrint", "false")
119887	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
119888	urls += "?" + c.urlParams_.Encode()
119889	req, err := http.NewRequest("POST", urls, body)
119890	if err != nil {
119891		return nil, err
119892	}
119893	req.Header = reqHeaders
119894	googleapi.Expand(req.URL, map[string]string{
119895		"project": c.project,
119896		"region":  c.region,
119897	})
119898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
119899}
119900
119901// Do executes the "compute.regionSslCertificates.insert" call.
119902// Exactly one of *Operation or error will be non-nil. Any non-2xx
119903// status code is an error. Response headers are in either
119904// *Operation.ServerResponse.Header or (if a response was returned at
119905// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
119906// to check whether the returned error was because
119907// http.StatusNotModified was returned.
119908func (c *RegionSslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
119909	gensupport.SetOptions(c.urlParams_, opts...)
119910	res, err := c.doRequest("json")
119911	if res != nil && res.StatusCode == http.StatusNotModified {
119912		if res.Body != nil {
119913			res.Body.Close()
119914		}
119915		return nil, &googleapi.Error{
119916			Code:   res.StatusCode,
119917			Header: res.Header,
119918		}
119919	}
119920	if err != nil {
119921		return nil, err
119922	}
119923	defer googleapi.CloseBody(res)
119924	if err := googleapi.CheckResponse(res); err != nil {
119925		return nil, err
119926	}
119927	ret := &Operation{
119928		ServerResponse: googleapi.ServerResponse{
119929			Header:         res.Header,
119930			HTTPStatusCode: res.StatusCode,
119931		},
119932	}
119933	target := &ret
119934	if err := gensupport.DecodeResponse(target, res); err != nil {
119935		return nil, err
119936	}
119937	return ret, nil
119938	// {
119939	//   "description": "Creates a SslCertificate resource in the specified project and region using the data included in the request",
119940	//   "httpMethod": "POST",
119941	//   "id": "compute.regionSslCertificates.insert",
119942	//   "parameterOrder": [
119943	//     "project",
119944	//     "region"
119945	//   ],
119946	//   "parameters": {
119947	//     "project": {
119948	//       "description": "Project ID for this request.",
119949	//       "location": "path",
119950	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
119951	//       "required": true,
119952	//       "type": "string"
119953	//     },
119954	//     "region": {
119955	//       "description": "Name of the region scoping this request.",
119956	//       "location": "path",
119957	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
119958	//       "required": true,
119959	//       "type": "string"
119960	//     },
119961	//     "requestId": {
119962	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
119963	//       "location": "query",
119964	//       "type": "string"
119965	//     }
119966	//   },
119967	//   "path": "{project}/regions/{region}/sslCertificates",
119968	//   "request": {
119969	//     "$ref": "SslCertificate"
119970	//   },
119971	//   "response": {
119972	//     "$ref": "Operation"
119973	//   },
119974	//   "scopes": [
119975	//     "https://www.googleapis.com/auth/cloud-platform",
119976	//     "https://www.googleapis.com/auth/compute"
119977	//   ]
119978	// }
119979
119980}
119981
119982// method id "compute.regionSslCertificates.list":
119983
119984type RegionSslCertificatesListCall struct {
119985	s            *Service
119986	project      string
119987	region       string
119988	urlParams_   gensupport.URLParams
119989	ifNoneMatch_ string
119990	ctx_         context.Context
119991	header_      http.Header
119992}
119993
119994// List: Retrieves the list of SslCertificate resources available to the
119995// specified project in the specified region.
119996func (r *RegionSslCertificatesService) List(project string, region string) *RegionSslCertificatesListCall {
119997	c := &RegionSslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
119998	c.project = project
119999	c.region = region
120000	return c
120001}
120002
120003// Filter sets the optional parameter "filter": A filter expression that
120004// filters resources listed in the response. The expression must specify
120005// the field name, a comparison operator, and the value that you want to
120006// use for filtering. The value must be a string, a number, or a
120007// boolean. The comparison operator must be either =, !=, >, or <.
120008//
120009// For example, if you are filtering Compute Engine instances, you can
120010// exclude instances named example-instance by specifying name !=
120011// example-instance.
120012//
120013// You can also filter nested fields. For example, you could specify
120014// scheduling.automaticRestart = false to include instances only if they
120015// are not scheduled for automatic restarts. You can use filtering on
120016// nested fields to filter based on resource labels.
120017//
120018// To filter on multiple expressions, provide each separate expression
120019// within parentheses. For example, (scheduling.automaticRestart = true)
120020// (cpuPlatform = "Intel Skylake"). By default, each expression is an
120021// AND expression. However, you can include AND and OR expressions
120022// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
120023// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
120024// true).
120025func (c *RegionSslCertificatesListCall) Filter(filter string) *RegionSslCertificatesListCall {
120026	c.urlParams_.Set("filter", filter)
120027	return c
120028}
120029
120030// MaxResults sets the optional parameter "maxResults": The maximum
120031// number of results per page that should be returned. If the number of
120032// available results is larger than maxResults, Compute Engine returns a
120033// nextPageToken that can be used to get the next page of results in
120034// subsequent list requests. Acceptable values are 0 to 500, inclusive.
120035// (Default: 500)
120036func (c *RegionSslCertificatesListCall) MaxResults(maxResults int64) *RegionSslCertificatesListCall {
120037	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120038	return c
120039}
120040
120041// OrderBy sets the optional parameter "orderBy": Sorts list results by
120042// a certain order. By default, results are returned in alphanumerical
120043// order based on the resource name.
120044//
120045// You can also sort results in descending order based on the creation
120046// timestamp using orderBy="creationTimestamp desc". This sorts results
120047// based on the creationTimestamp field in reverse chronological order
120048// (newest result first). Use this to sort resources like operations so
120049// that the newest operation is returned first.
120050//
120051// Currently, only sorting by name or creationTimestamp desc is
120052// supported.
120053func (c *RegionSslCertificatesListCall) OrderBy(orderBy string) *RegionSslCertificatesListCall {
120054	c.urlParams_.Set("orderBy", orderBy)
120055	return c
120056}
120057
120058// PageToken sets the optional parameter "pageToken": Specifies a page
120059// token to use. Set pageToken to the nextPageToken returned by a
120060// previous list request to get the next page of results.
120061func (c *RegionSslCertificatesListCall) PageToken(pageToken string) *RegionSslCertificatesListCall {
120062	c.urlParams_.Set("pageToken", pageToken)
120063	return c
120064}
120065
120066// Fields allows partial responses to be retrieved. See
120067// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120068// for more information.
120069func (c *RegionSslCertificatesListCall) Fields(s ...googleapi.Field) *RegionSslCertificatesListCall {
120070	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120071	return c
120072}
120073
120074// IfNoneMatch sets the optional parameter which makes the operation
120075// fail if the object's ETag matches the given value. This is useful for
120076// getting updates only after the object has changed since the last
120077// request. Use googleapi.IsNotModified to check whether the response
120078// error from Do is the result of In-None-Match.
120079func (c *RegionSslCertificatesListCall) IfNoneMatch(entityTag string) *RegionSslCertificatesListCall {
120080	c.ifNoneMatch_ = entityTag
120081	return c
120082}
120083
120084// Context sets the context to be used in this call's Do method. Any
120085// pending HTTP request will be aborted if the provided context is
120086// canceled.
120087func (c *RegionSslCertificatesListCall) Context(ctx context.Context) *RegionSslCertificatesListCall {
120088	c.ctx_ = ctx
120089	return c
120090}
120091
120092// Header returns an http.Header that can be modified by the caller to
120093// add HTTP headers to the request.
120094func (c *RegionSslCertificatesListCall) Header() http.Header {
120095	if c.header_ == nil {
120096		c.header_ = make(http.Header)
120097	}
120098	return c.header_
120099}
120100
120101func (c *RegionSslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
120102	reqHeaders := make(http.Header)
120103	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120104	for k, v := range c.header_ {
120105		reqHeaders[k] = v
120106	}
120107	reqHeaders.Set("User-Agent", c.s.userAgent())
120108	if c.ifNoneMatch_ != "" {
120109		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120110	}
120111	var body io.Reader = nil
120112	c.urlParams_.Set("alt", alt)
120113	c.urlParams_.Set("prettyPrint", "false")
120114	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/sslCertificates")
120115	urls += "?" + c.urlParams_.Encode()
120116	req, err := http.NewRequest("GET", urls, body)
120117	if err != nil {
120118		return nil, err
120119	}
120120	req.Header = reqHeaders
120121	googleapi.Expand(req.URL, map[string]string{
120122		"project": c.project,
120123		"region":  c.region,
120124	})
120125	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120126}
120127
120128// Do executes the "compute.regionSslCertificates.list" call.
120129// Exactly one of *SslCertificateList or error will be non-nil. Any
120130// non-2xx status code is an error. Response headers are in either
120131// *SslCertificateList.ServerResponse.Header or (if a response was
120132// returned at all) in error.(*googleapi.Error).Header. Use
120133// googleapi.IsNotModified to check whether the returned error was
120134// because http.StatusNotModified was returned.
120135func (c *RegionSslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
120136	gensupport.SetOptions(c.urlParams_, opts...)
120137	res, err := c.doRequest("json")
120138	if res != nil && res.StatusCode == http.StatusNotModified {
120139		if res.Body != nil {
120140			res.Body.Close()
120141		}
120142		return nil, &googleapi.Error{
120143			Code:   res.StatusCode,
120144			Header: res.Header,
120145		}
120146	}
120147	if err != nil {
120148		return nil, err
120149	}
120150	defer googleapi.CloseBody(res)
120151	if err := googleapi.CheckResponse(res); err != nil {
120152		return nil, err
120153	}
120154	ret := &SslCertificateList{
120155		ServerResponse: googleapi.ServerResponse{
120156			Header:         res.Header,
120157			HTTPStatusCode: res.StatusCode,
120158		},
120159	}
120160	target := &ret
120161	if err := gensupport.DecodeResponse(target, res); err != nil {
120162		return nil, err
120163	}
120164	return ret, nil
120165	// {
120166	//   "description": "Retrieves the list of SslCertificate resources available to the specified project in the specified region.",
120167	//   "httpMethod": "GET",
120168	//   "id": "compute.regionSslCertificates.list",
120169	//   "parameterOrder": [
120170	//     "project",
120171	//     "region"
120172	//   ],
120173	//   "parameters": {
120174	//     "filter": {
120175	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
120176	//       "location": "query",
120177	//       "type": "string"
120178	//     },
120179	//     "maxResults": {
120180	//       "default": "500",
120181	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
120182	//       "format": "uint32",
120183	//       "location": "query",
120184	//       "minimum": "0",
120185	//       "type": "integer"
120186	//     },
120187	//     "orderBy": {
120188	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
120189	//       "location": "query",
120190	//       "type": "string"
120191	//     },
120192	//     "pageToken": {
120193	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
120194	//       "location": "query",
120195	//       "type": "string"
120196	//     },
120197	//     "project": {
120198	//       "description": "Project ID for this request.",
120199	//       "location": "path",
120200	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120201	//       "required": true,
120202	//       "type": "string"
120203	//     },
120204	//     "region": {
120205	//       "description": "Name of the region scoping this request.",
120206	//       "location": "path",
120207	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120208	//       "required": true,
120209	//       "type": "string"
120210	//     }
120211	//   },
120212	//   "path": "{project}/regions/{region}/sslCertificates",
120213	//   "response": {
120214	//     "$ref": "SslCertificateList"
120215	//   },
120216	//   "scopes": [
120217	//     "https://www.googleapis.com/auth/cloud-platform",
120218	//     "https://www.googleapis.com/auth/compute",
120219	//     "https://www.googleapis.com/auth/compute.readonly"
120220	//   ]
120221	// }
120222
120223}
120224
120225// Pages invokes f for each page of results.
120226// A non-nil error returned from f will halt the iteration.
120227// The provided context supersedes any context provided to the Context method.
120228func (c *RegionSslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
120229	c.ctx_ = ctx
120230	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
120231	for {
120232		x, err := c.Do()
120233		if err != nil {
120234			return err
120235		}
120236		if err := f(x); err != nil {
120237			return err
120238		}
120239		if x.NextPageToken == "" {
120240			return nil
120241		}
120242		c.PageToken(x.NextPageToken)
120243	}
120244}
120245
120246// method id "compute.regionTargetHttpProxies.delete":
120247
120248type RegionTargetHttpProxiesDeleteCall struct {
120249	s               *Service
120250	project         string
120251	region          string
120252	targetHttpProxy string
120253	urlParams_      gensupport.URLParams
120254	ctx_            context.Context
120255	header_         http.Header
120256}
120257
120258// Delete: Deletes the specified TargetHttpProxy resource.
120259func (r *RegionTargetHttpProxiesService) Delete(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesDeleteCall {
120260	c := &RegionTargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120261	c.project = project
120262	c.region = region
120263	c.targetHttpProxy = targetHttpProxy
120264	return c
120265}
120266
120267// RequestId sets the optional parameter "requestId": An optional
120268// request ID to identify requests. Specify a unique request ID so that
120269// if you must retry your request, the server will know to ignore the
120270// request if it has already been completed.
120271//
120272// For example, consider a situation where you make an initial request
120273// and the request times out. If you make the request again with the
120274// same request ID, the server can check if original operation with the
120275// same request ID was received, and if so, will ignore the second
120276// request. This prevents clients from accidentally creating duplicate
120277// commitments.
120278//
120279// The request ID must be a valid UUID with the exception that zero UUID
120280// is not supported (00000000-0000-0000-0000-000000000000).
120281func (c *RegionTargetHttpProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpProxiesDeleteCall {
120282	c.urlParams_.Set("requestId", requestId)
120283	return c
120284}
120285
120286// Fields allows partial responses to be retrieved. See
120287// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120288// for more information.
120289func (c *RegionTargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesDeleteCall {
120290	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120291	return c
120292}
120293
120294// Context sets the context to be used in this call's Do method. Any
120295// pending HTTP request will be aborted if the provided context is
120296// canceled.
120297func (c *RegionTargetHttpProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpProxiesDeleteCall {
120298	c.ctx_ = ctx
120299	return c
120300}
120301
120302// Header returns an http.Header that can be modified by the caller to
120303// add HTTP headers to the request.
120304func (c *RegionTargetHttpProxiesDeleteCall) Header() http.Header {
120305	if c.header_ == nil {
120306		c.header_ = make(http.Header)
120307	}
120308	return c.header_
120309}
120310
120311func (c *RegionTargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
120312	reqHeaders := make(http.Header)
120313	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120314	for k, v := range c.header_ {
120315		reqHeaders[k] = v
120316	}
120317	reqHeaders.Set("User-Agent", c.s.userAgent())
120318	var body io.Reader = nil
120319	c.urlParams_.Set("alt", alt)
120320	c.urlParams_.Set("prettyPrint", "false")
120321	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
120322	urls += "?" + c.urlParams_.Encode()
120323	req, err := http.NewRequest("DELETE", urls, body)
120324	if err != nil {
120325		return nil, err
120326	}
120327	req.Header = reqHeaders
120328	googleapi.Expand(req.URL, map[string]string{
120329		"project":         c.project,
120330		"region":          c.region,
120331		"targetHttpProxy": c.targetHttpProxy,
120332	})
120333	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120334}
120335
120336// Do executes the "compute.regionTargetHttpProxies.delete" call.
120337// Exactly one of *Operation or error will be non-nil. Any non-2xx
120338// status code is an error. Response headers are in either
120339// *Operation.ServerResponse.Header or (if a response was returned at
120340// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120341// to check whether the returned error was because
120342// http.StatusNotModified was returned.
120343func (c *RegionTargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120344	gensupport.SetOptions(c.urlParams_, opts...)
120345	res, err := c.doRequest("json")
120346	if res != nil && res.StatusCode == http.StatusNotModified {
120347		if res.Body != nil {
120348			res.Body.Close()
120349		}
120350		return nil, &googleapi.Error{
120351			Code:   res.StatusCode,
120352			Header: res.Header,
120353		}
120354	}
120355	if err != nil {
120356		return nil, err
120357	}
120358	defer googleapi.CloseBody(res)
120359	if err := googleapi.CheckResponse(res); err != nil {
120360		return nil, err
120361	}
120362	ret := &Operation{
120363		ServerResponse: googleapi.ServerResponse{
120364			Header:         res.Header,
120365			HTTPStatusCode: res.StatusCode,
120366		},
120367	}
120368	target := &ret
120369	if err := gensupport.DecodeResponse(target, res); err != nil {
120370		return nil, err
120371	}
120372	return ret, nil
120373	// {
120374	//   "description": "Deletes the specified TargetHttpProxy resource.",
120375	//   "httpMethod": "DELETE",
120376	//   "id": "compute.regionTargetHttpProxies.delete",
120377	//   "parameterOrder": [
120378	//     "project",
120379	//     "region",
120380	//     "targetHttpProxy"
120381	//   ],
120382	//   "parameters": {
120383	//     "project": {
120384	//       "description": "Project ID for this request.",
120385	//       "location": "path",
120386	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120387	//       "required": true,
120388	//       "type": "string"
120389	//     },
120390	//     "region": {
120391	//       "description": "Name of the region scoping this request.",
120392	//       "location": "path",
120393	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120394	//       "required": true,
120395	//       "type": "string"
120396	//     },
120397	//     "requestId": {
120398	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120399	//       "location": "query",
120400	//       "type": "string"
120401	//     },
120402	//     "targetHttpProxy": {
120403	//       "description": "Name of the TargetHttpProxy resource to delete.",
120404	//       "location": "path",
120405	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120406	//       "required": true,
120407	//       "type": "string"
120408	//     }
120409	//   },
120410	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
120411	//   "response": {
120412	//     "$ref": "Operation"
120413	//   },
120414	//   "scopes": [
120415	//     "https://www.googleapis.com/auth/cloud-platform",
120416	//     "https://www.googleapis.com/auth/compute"
120417	//   ]
120418	// }
120419
120420}
120421
120422// method id "compute.regionTargetHttpProxies.get":
120423
120424type RegionTargetHttpProxiesGetCall struct {
120425	s               *Service
120426	project         string
120427	region          string
120428	targetHttpProxy string
120429	urlParams_      gensupport.URLParams
120430	ifNoneMatch_    string
120431	ctx_            context.Context
120432	header_         http.Header
120433}
120434
120435// Get: Returns the specified TargetHttpProxy resource in the specified
120436// region. Gets a list of available target HTTP proxies by making a
120437// list() request.
120438func (r *RegionTargetHttpProxiesService) Get(project string, region string, targetHttpProxy string) *RegionTargetHttpProxiesGetCall {
120439	c := &RegionTargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120440	c.project = project
120441	c.region = region
120442	c.targetHttpProxy = targetHttpProxy
120443	return c
120444}
120445
120446// Fields allows partial responses to be retrieved. See
120447// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120448// for more information.
120449func (c *RegionTargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesGetCall {
120450	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120451	return c
120452}
120453
120454// IfNoneMatch sets the optional parameter which makes the operation
120455// fail if the object's ETag matches the given value. This is useful for
120456// getting updates only after the object has changed since the last
120457// request. Use googleapi.IsNotModified to check whether the response
120458// error from Do is the result of In-None-Match.
120459func (c *RegionTargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesGetCall {
120460	c.ifNoneMatch_ = entityTag
120461	return c
120462}
120463
120464// Context sets the context to be used in this call's Do method. Any
120465// pending HTTP request will be aborted if the provided context is
120466// canceled.
120467func (c *RegionTargetHttpProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpProxiesGetCall {
120468	c.ctx_ = ctx
120469	return c
120470}
120471
120472// Header returns an http.Header that can be modified by the caller to
120473// add HTTP headers to the request.
120474func (c *RegionTargetHttpProxiesGetCall) Header() http.Header {
120475	if c.header_ == nil {
120476		c.header_ = make(http.Header)
120477	}
120478	return c.header_
120479}
120480
120481func (c *RegionTargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
120482	reqHeaders := make(http.Header)
120483	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120484	for k, v := range c.header_ {
120485		reqHeaders[k] = v
120486	}
120487	reqHeaders.Set("User-Agent", c.s.userAgent())
120488	if c.ifNoneMatch_ != "" {
120489		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120490	}
120491	var body io.Reader = nil
120492	c.urlParams_.Set("alt", alt)
120493	c.urlParams_.Set("prettyPrint", "false")
120494	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}")
120495	urls += "?" + c.urlParams_.Encode()
120496	req, err := http.NewRequest("GET", urls, body)
120497	if err != nil {
120498		return nil, err
120499	}
120500	req.Header = reqHeaders
120501	googleapi.Expand(req.URL, map[string]string{
120502		"project":         c.project,
120503		"region":          c.region,
120504		"targetHttpProxy": c.targetHttpProxy,
120505	})
120506	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120507}
120508
120509// Do executes the "compute.regionTargetHttpProxies.get" call.
120510// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
120511// status code is an error. Response headers are in either
120512// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
120513// at all) in error.(*googleapi.Error).Header. Use
120514// googleapi.IsNotModified to check whether the returned error was
120515// because http.StatusNotModified was returned.
120516func (c *RegionTargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
120517	gensupport.SetOptions(c.urlParams_, opts...)
120518	res, err := c.doRequest("json")
120519	if res != nil && res.StatusCode == http.StatusNotModified {
120520		if res.Body != nil {
120521			res.Body.Close()
120522		}
120523		return nil, &googleapi.Error{
120524			Code:   res.StatusCode,
120525			Header: res.Header,
120526		}
120527	}
120528	if err != nil {
120529		return nil, err
120530	}
120531	defer googleapi.CloseBody(res)
120532	if err := googleapi.CheckResponse(res); err != nil {
120533		return nil, err
120534	}
120535	ret := &TargetHttpProxy{
120536		ServerResponse: googleapi.ServerResponse{
120537			Header:         res.Header,
120538			HTTPStatusCode: res.StatusCode,
120539		},
120540	}
120541	target := &ret
120542	if err := gensupport.DecodeResponse(target, res); err != nil {
120543		return nil, err
120544	}
120545	return ret, nil
120546	// {
120547	//   "description": "Returns the specified TargetHttpProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
120548	//   "httpMethod": "GET",
120549	//   "id": "compute.regionTargetHttpProxies.get",
120550	//   "parameterOrder": [
120551	//     "project",
120552	//     "region",
120553	//     "targetHttpProxy"
120554	//   ],
120555	//   "parameters": {
120556	//     "project": {
120557	//       "description": "Project ID for this request.",
120558	//       "location": "path",
120559	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120560	//       "required": true,
120561	//       "type": "string"
120562	//     },
120563	//     "region": {
120564	//       "description": "Name of the region scoping this request.",
120565	//       "location": "path",
120566	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120567	//       "required": true,
120568	//       "type": "string"
120569	//     },
120570	//     "targetHttpProxy": {
120571	//       "description": "Name of the TargetHttpProxy resource to return.",
120572	//       "location": "path",
120573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
120574	//       "required": true,
120575	//       "type": "string"
120576	//     }
120577	//   },
120578	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}",
120579	//   "response": {
120580	//     "$ref": "TargetHttpProxy"
120581	//   },
120582	//   "scopes": [
120583	//     "https://www.googleapis.com/auth/cloud-platform",
120584	//     "https://www.googleapis.com/auth/compute",
120585	//     "https://www.googleapis.com/auth/compute.readonly"
120586	//   ]
120587	// }
120588
120589}
120590
120591// method id "compute.regionTargetHttpProxies.insert":
120592
120593type RegionTargetHttpProxiesInsertCall struct {
120594	s               *Service
120595	project         string
120596	region          string
120597	targethttpproxy *TargetHttpProxy
120598	urlParams_      gensupport.URLParams
120599	ctx_            context.Context
120600	header_         http.Header
120601}
120602
120603// Insert: Creates a TargetHttpProxy resource in the specified project
120604// and region using the data included in the request.
120605func (r *RegionTargetHttpProxiesService) Insert(project string, region string, targethttpproxy *TargetHttpProxy) *RegionTargetHttpProxiesInsertCall {
120606	c := &RegionTargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120607	c.project = project
120608	c.region = region
120609	c.targethttpproxy = targethttpproxy
120610	return c
120611}
120612
120613// RequestId sets the optional parameter "requestId": An optional
120614// request ID to identify requests. Specify a unique request ID so that
120615// if you must retry your request, the server will know to ignore the
120616// request if it has already been completed.
120617//
120618// For example, consider a situation where you make an initial request
120619// and the request times out. If you make the request again with the
120620// same request ID, the server can check if original operation with the
120621// same request ID was received, and if so, will ignore the second
120622// request. This prevents clients from accidentally creating duplicate
120623// commitments.
120624//
120625// The request ID must be a valid UUID with the exception that zero UUID
120626// is not supported (00000000-0000-0000-0000-000000000000).
120627func (c *RegionTargetHttpProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpProxiesInsertCall {
120628	c.urlParams_.Set("requestId", requestId)
120629	return c
120630}
120631
120632// Fields allows partial responses to be retrieved. See
120633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120634// for more information.
120635func (c *RegionTargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesInsertCall {
120636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120637	return c
120638}
120639
120640// Context sets the context to be used in this call's Do method. Any
120641// pending HTTP request will be aborted if the provided context is
120642// canceled.
120643func (c *RegionTargetHttpProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpProxiesInsertCall {
120644	c.ctx_ = ctx
120645	return c
120646}
120647
120648// Header returns an http.Header that can be modified by the caller to
120649// add HTTP headers to the request.
120650func (c *RegionTargetHttpProxiesInsertCall) Header() http.Header {
120651	if c.header_ == nil {
120652		c.header_ = make(http.Header)
120653	}
120654	return c.header_
120655}
120656
120657func (c *RegionTargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
120658	reqHeaders := make(http.Header)
120659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120660	for k, v := range c.header_ {
120661		reqHeaders[k] = v
120662	}
120663	reqHeaders.Set("User-Agent", c.s.userAgent())
120664	var body io.Reader = nil
120665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
120666	if err != nil {
120667		return nil, err
120668	}
120669	reqHeaders.Set("Content-Type", "application/json")
120670	c.urlParams_.Set("alt", alt)
120671	c.urlParams_.Set("prettyPrint", "false")
120672	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
120673	urls += "?" + c.urlParams_.Encode()
120674	req, err := http.NewRequest("POST", urls, body)
120675	if err != nil {
120676		return nil, err
120677	}
120678	req.Header = reqHeaders
120679	googleapi.Expand(req.URL, map[string]string{
120680		"project": c.project,
120681		"region":  c.region,
120682	})
120683	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120684}
120685
120686// Do executes the "compute.regionTargetHttpProxies.insert" call.
120687// Exactly one of *Operation or error will be non-nil. Any non-2xx
120688// status code is an error. Response headers are in either
120689// *Operation.ServerResponse.Header or (if a response was returned at
120690// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
120691// to check whether the returned error was because
120692// http.StatusNotModified was returned.
120693func (c *RegionTargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
120694	gensupport.SetOptions(c.urlParams_, opts...)
120695	res, err := c.doRequest("json")
120696	if res != nil && res.StatusCode == http.StatusNotModified {
120697		if res.Body != nil {
120698			res.Body.Close()
120699		}
120700		return nil, &googleapi.Error{
120701			Code:   res.StatusCode,
120702			Header: res.Header,
120703		}
120704	}
120705	if err != nil {
120706		return nil, err
120707	}
120708	defer googleapi.CloseBody(res)
120709	if err := googleapi.CheckResponse(res); err != nil {
120710		return nil, err
120711	}
120712	ret := &Operation{
120713		ServerResponse: googleapi.ServerResponse{
120714			Header:         res.Header,
120715			HTTPStatusCode: res.StatusCode,
120716		},
120717	}
120718	target := &ret
120719	if err := gensupport.DecodeResponse(target, res); err != nil {
120720		return nil, err
120721	}
120722	return ret, nil
120723	// {
120724	//   "description": "Creates a TargetHttpProxy resource in the specified project and region using the data included in the request.",
120725	//   "httpMethod": "POST",
120726	//   "id": "compute.regionTargetHttpProxies.insert",
120727	//   "parameterOrder": [
120728	//     "project",
120729	//     "region"
120730	//   ],
120731	//   "parameters": {
120732	//     "project": {
120733	//       "description": "Project ID for this request.",
120734	//       "location": "path",
120735	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120736	//       "required": true,
120737	//       "type": "string"
120738	//     },
120739	//     "region": {
120740	//       "description": "Name of the region scoping this request.",
120741	//       "location": "path",
120742	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120743	//       "required": true,
120744	//       "type": "string"
120745	//     },
120746	//     "requestId": {
120747	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
120748	//       "location": "query",
120749	//       "type": "string"
120750	//     }
120751	//   },
120752	//   "path": "{project}/regions/{region}/targetHttpProxies",
120753	//   "request": {
120754	//     "$ref": "TargetHttpProxy"
120755	//   },
120756	//   "response": {
120757	//     "$ref": "Operation"
120758	//   },
120759	//   "scopes": [
120760	//     "https://www.googleapis.com/auth/cloud-platform",
120761	//     "https://www.googleapis.com/auth/compute"
120762	//   ]
120763	// }
120764
120765}
120766
120767// method id "compute.regionTargetHttpProxies.list":
120768
120769type RegionTargetHttpProxiesListCall struct {
120770	s            *Service
120771	project      string
120772	region       string
120773	urlParams_   gensupport.URLParams
120774	ifNoneMatch_ string
120775	ctx_         context.Context
120776	header_      http.Header
120777}
120778
120779// List: Retrieves the list of TargetHttpProxy resources available to
120780// the specified project in the specified region.
120781func (r *RegionTargetHttpProxiesService) List(project string, region string) *RegionTargetHttpProxiesListCall {
120782	c := &RegionTargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
120783	c.project = project
120784	c.region = region
120785	return c
120786}
120787
120788// Filter sets the optional parameter "filter": A filter expression that
120789// filters resources listed in the response. The expression must specify
120790// the field name, a comparison operator, and the value that you want to
120791// use for filtering. The value must be a string, a number, or a
120792// boolean. The comparison operator must be either =, !=, >, or <.
120793//
120794// For example, if you are filtering Compute Engine instances, you can
120795// exclude instances named example-instance by specifying name !=
120796// example-instance.
120797//
120798// You can also filter nested fields. For example, you could specify
120799// scheduling.automaticRestart = false to include instances only if they
120800// are not scheduled for automatic restarts. You can use filtering on
120801// nested fields to filter based on resource labels.
120802//
120803// To filter on multiple expressions, provide each separate expression
120804// within parentheses. For example, (scheduling.automaticRestart = true)
120805// (cpuPlatform = "Intel Skylake"). By default, each expression is an
120806// AND expression. However, you can include AND and OR expressions
120807// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
120808// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
120809// true).
120810func (c *RegionTargetHttpProxiesListCall) Filter(filter string) *RegionTargetHttpProxiesListCall {
120811	c.urlParams_.Set("filter", filter)
120812	return c
120813}
120814
120815// MaxResults sets the optional parameter "maxResults": The maximum
120816// number of results per page that should be returned. If the number of
120817// available results is larger than maxResults, Compute Engine returns a
120818// nextPageToken that can be used to get the next page of results in
120819// subsequent list requests. Acceptable values are 0 to 500, inclusive.
120820// (Default: 500)
120821func (c *RegionTargetHttpProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpProxiesListCall {
120822	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
120823	return c
120824}
120825
120826// OrderBy sets the optional parameter "orderBy": Sorts list results by
120827// a certain order. By default, results are returned in alphanumerical
120828// order based on the resource name.
120829//
120830// You can also sort results in descending order based on the creation
120831// timestamp using orderBy="creationTimestamp desc". This sorts results
120832// based on the creationTimestamp field in reverse chronological order
120833// (newest result first). Use this to sort resources like operations so
120834// that the newest operation is returned first.
120835//
120836// Currently, only sorting by name or creationTimestamp desc is
120837// supported.
120838func (c *RegionTargetHttpProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpProxiesListCall {
120839	c.urlParams_.Set("orderBy", orderBy)
120840	return c
120841}
120842
120843// PageToken sets the optional parameter "pageToken": Specifies a page
120844// token to use. Set pageToken to the nextPageToken returned by a
120845// previous list request to get the next page of results.
120846func (c *RegionTargetHttpProxiesListCall) PageToken(pageToken string) *RegionTargetHttpProxiesListCall {
120847	c.urlParams_.Set("pageToken", pageToken)
120848	return c
120849}
120850
120851// Fields allows partial responses to be retrieved. See
120852// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
120853// for more information.
120854func (c *RegionTargetHttpProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesListCall {
120855	c.urlParams_.Set("fields", googleapi.CombineFields(s))
120856	return c
120857}
120858
120859// IfNoneMatch sets the optional parameter which makes the operation
120860// fail if the object's ETag matches the given value. This is useful for
120861// getting updates only after the object has changed since the last
120862// request. Use googleapi.IsNotModified to check whether the response
120863// error from Do is the result of In-None-Match.
120864func (c *RegionTargetHttpProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpProxiesListCall {
120865	c.ifNoneMatch_ = entityTag
120866	return c
120867}
120868
120869// Context sets the context to be used in this call's Do method. Any
120870// pending HTTP request will be aborted if the provided context is
120871// canceled.
120872func (c *RegionTargetHttpProxiesListCall) Context(ctx context.Context) *RegionTargetHttpProxiesListCall {
120873	c.ctx_ = ctx
120874	return c
120875}
120876
120877// Header returns an http.Header that can be modified by the caller to
120878// add HTTP headers to the request.
120879func (c *RegionTargetHttpProxiesListCall) Header() http.Header {
120880	if c.header_ == nil {
120881		c.header_ = make(http.Header)
120882	}
120883	return c.header_
120884}
120885
120886func (c *RegionTargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
120887	reqHeaders := make(http.Header)
120888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
120889	for k, v := range c.header_ {
120890		reqHeaders[k] = v
120891	}
120892	reqHeaders.Set("User-Agent", c.s.userAgent())
120893	if c.ifNoneMatch_ != "" {
120894		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
120895	}
120896	var body io.Reader = nil
120897	c.urlParams_.Set("alt", alt)
120898	c.urlParams_.Set("prettyPrint", "false")
120899	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies")
120900	urls += "?" + c.urlParams_.Encode()
120901	req, err := http.NewRequest("GET", urls, body)
120902	if err != nil {
120903		return nil, err
120904	}
120905	req.Header = reqHeaders
120906	googleapi.Expand(req.URL, map[string]string{
120907		"project": c.project,
120908		"region":  c.region,
120909	})
120910	return gensupport.SendRequest(c.ctx_, c.s.client, req)
120911}
120912
120913// Do executes the "compute.regionTargetHttpProxies.list" call.
120914// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
120915// non-2xx status code is an error. Response headers are in either
120916// *TargetHttpProxyList.ServerResponse.Header or (if a response was
120917// returned at all) in error.(*googleapi.Error).Header. Use
120918// googleapi.IsNotModified to check whether the returned error was
120919// because http.StatusNotModified was returned.
120920func (c *RegionTargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
120921	gensupport.SetOptions(c.urlParams_, opts...)
120922	res, err := c.doRequest("json")
120923	if res != nil && res.StatusCode == http.StatusNotModified {
120924		if res.Body != nil {
120925			res.Body.Close()
120926		}
120927		return nil, &googleapi.Error{
120928			Code:   res.StatusCode,
120929			Header: res.Header,
120930		}
120931	}
120932	if err != nil {
120933		return nil, err
120934	}
120935	defer googleapi.CloseBody(res)
120936	if err := googleapi.CheckResponse(res); err != nil {
120937		return nil, err
120938	}
120939	ret := &TargetHttpProxyList{
120940		ServerResponse: googleapi.ServerResponse{
120941			Header:         res.Header,
120942			HTTPStatusCode: res.StatusCode,
120943		},
120944	}
120945	target := &ret
120946	if err := gensupport.DecodeResponse(target, res); err != nil {
120947		return nil, err
120948	}
120949	return ret, nil
120950	// {
120951	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project in the specified region.",
120952	//   "httpMethod": "GET",
120953	//   "id": "compute.regionTargetHttpProxies.list",
120954	//   "parameterOrder": [
120955	//     "project",
120956	//     "region"
120957	//   ],
120958	//   "parameters": {
120959	//     "filter": {
120960	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
120961	//       "location": "query",
120962	//       "type": "string"
120963	//     },
120964	//     "maxResults": {
120965	//       "default": "500",
120966	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
120967	//       "format": "uint32",
120968	//       "location": "query",
120969	//       "minimum": "0",
120970	//       "type": "integer"
120971	//     },
120972	//     "orderBy": {
120973	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
120974	//       "location": "query",
120975	//       "type": "string"
120976	//     },
120977	//     "pageToken": {
120978	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
120979	//       "location": "query",
120980	//       "type": "string"
120981	//     },
120982	//     "project": {
120983	//       "description": "Project ID for this request.",
120984	//       "location": "path",
120985	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
120986	//       "required": true,
120987	//       "type": "string"
120988	//     },
120989	//     "region": {
120990	//       "description": "Name of the region scoping this request.",
120991	//       "location": "path",
120992	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
120993	//       "required": true,
120994	//       "type": "string"
120995	//     }
120996	//   },
120997	//   "path": "{project}/regions/{region}/targetHttpProxies",
120998	//   "response": {
120999	//     "$ref": "TargetHttpProxyList"
121000	//   },
121001	//   "scopes": [
121002	//     "https://www.googleapis.com/auth/cloud-platform",
121003	//     "https://www.googleapis.com/auth/compute",
121004	//     "https://www.googleapis.com/auth/compute.readonly"
121005	//   ]
121006	// }
121007
121008}
121009
121010// Pages invokes f for each page of results.
121011// A non-nil error returned from f will halt the iteration.
121012// The provided context supersedes any context provided to the Context method.
121013func (c *RegionTargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
121014	c.ctx_ = ctx
121015	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121016	for {
121017		x, err := c.Do()
121018		if err != nil {
121019			return err
121020		}
121021		if err := f(x); err != nil {
121022			return err
121023		}
121024		if x.NextPageToken == "" {
121025			return nil
121026		}
121027		c.PageToken(x.NextPageToken)
121028	}
121029}
121030
121031// method id "compute.regionTargetHttpProxies.setUrlMap":
121032
121033type RegionTargetHttpProxiesSetUrlMapCall struct {
121034	s               *Service
121035	project         string
121036	region          string
121037	targetHttpProxy string
121038	urlmapreference *UrlMapReference
121039	urlParams_      gensupport.URLParams
121040	ctx_            context.Context
121041	header_         http.Header
121042}
121043
121044// SetUrlMap: Changes the URL map for TargetHttpProxy.
121045func (r *RegionTargetHttpProxiesService) SetUrlMap(project string, region string, targetHttpProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpProxiesSetUrlMapCall {
121046	c := &RegionTargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121047	c.project = project
121048	c.region = region
121049	c.targetHttpProxy = targetHttpProxy
121050	c.urlmapreference = urlmapreference
121051	return c
121052}
121053
121054// RequestId sets the optional parameter "requestId": An optional
121055// request ID to identify requests. Specify a unique request ID so that
121056// if you must retry your request, the server will know to ignore the
121057// request if it has already been completed.
121058//
121059// For example, consider a situation where you make an initial request
121060// and the request times out. If you make the request again with the
121061// same request ID, the server can check if original operation with the
121062// same request ID was received, and if so, will ignore the second
121063// request. This prevents clients from accidentally creating duplicate
121064// commitments.
121065//
121066// The request ID must be a valid UUID with the exception that zero UUID
121067// is not supported (00000000-0000-0000-0000-000000000000).
121068func (c *RegionTargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpProxiesSetUrlMapCall {
121069	c.urlParams_.Set("requestId", requestId)
121070	return c
121071}
121072
121073// Fields allows partial responses to be retrieved. See
121074// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121075// for more information.
121076func (c *RegionTargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpProxiesSetUrlMapCall {
121077	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121078	return c
121079}
121080
121081// Context sets the context to be used in this call's Do method. Any
121082// pending HTTP request will be aborted if the provided context is
121083// canceled.
121084func (c *RegionTargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpProxiesSetUrlMapCall {
121085	c.ctx_ = ctx
121086	return c
121087}
121088
121089// Header returns an http.Header that can be modified by the caller to
121090// add HTTP headers to the request.
121091func (c *RegionTargetHttpProxiesSetUrlMapCall) Header() http.Header {
121092	if c.header_ == nil {
121093		c.header_ = make(http.Header)
121094	}
121095	return c.header_
121096}
121097
121098func (c *RegionTargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
121099	reqHeaders := make(http.Header)
121100	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121101	for k, v := range c.header_ {
121102		reqHeaders[k] = v
121103	}
121104	reqHeaders.Set("User-Agent", c.s.userAgent())
121105	var body io.Reader = nil
121106	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
121107	if err != nil {
121108		return nil, err
121109	}
121110	reqHeaders.Set("Content-Type", "application/json")
121111	c.urlParams_.Set("alt", alt)
121112	c.urlParams_.Set("prettyPrint", "false")
121113	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
121114	urls += "?" + c.urlParams_.Encode()
121115	req, err := http.NewRequest("POST", urls, body)
121116	if err != nil {
121117		return nil, err
121118	}
121119	req.Header = reqHeaders
121120	googleapi.Expand(req.URL, map[string]string{
121121		"project":         c.project,
121122		"region":          c.region,
121123		"targetHttpProxy": c.targetHttpProxy,
121124	})
121125	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121126}
121127
121128// Do executes the "compute.regionTargetHttpProxies.setUrlMap" call.
121129// Exactly one of *Operation or error will be non-nil. Any non-2xx
121130// status code is an error. Response headers are in either
121131// *Operation.ServerResponse.Header or (if a response was returned at
121132// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121133// to check whether the returned error was because
121134// http.StatusNotModified was returned.
121135func (c *RegionTargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121136	gensupport.SetOptions(c.urlParams_, opts...)
121137	res, err := c.doRequest("json")
121138	if res != nil && res.StatusCode == http.StatusNotModified {
121139		if res.Body != nil {
121140			res.Body.Close()
121141		}
121142		return nil, &googleapi.Error{
121143			Code:   res.StatusCode,
121144			Header: res.Header,
121145		}
121146	}
121147	if err != nil {
121148		return nil, err
121149	}
121150	defer googleapi.CloseBody(res)
121151	if err := googleapi.CheckResponse(res); err != nil {
121152		return nil, err
121153	}
121154	ret := &Operation{
121155		ServerResponse: googleapi.ServerResponse{
121156			Header:         res.Header,
121157			HTTPStatusCode: res.StatusCode,
121158		},
121159	}
121160	target := &ret
121161	if err := gensupport.DecodeResponse(target, res); err != nil {
121162		return nil, err
121163	}
121164	return ret, nil
121165	// {
121166	//   "description": "Changes the URL map for TargetHttpProxy.",
121167	//   "httpMethod": "POST",
121168	//   "id": "compute.regionTargetHttpProxies.setUrlMap",
121169	//   "parameterOrder": [
121170	//     "project",
121171	//     "region",
121172	//     "targetHttpProxy"
121173	//   ],
121174	//   "parameters": {
121175	//     "project": {
121176	//       "description": "Project ID for this request.",
121177	//       "location": "path",
121178	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121179	//       "required": true,
121180	//       "type": "string"
121181	//     },
121182	//     "region": {
121183	//       "description": "Name of the region scoping this request.",
121184	//       "location": "path",
121185	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121186	//       "required": true,
121187	//       "type": "string"
121188	//     },
121189	//     "requestId": {
121190	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121191	//       "location": "query",
121192	//       "type": "string"
121193	//     },
121194	//     "targetHttpProxy": {
121195	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
121196	//       "location": "path",
121197	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121198	//       "required": true,
121199	//       "type": "string"
121200	//     }
121201	//   },
121202	//   "path": "{project}/regions/{region}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
121203	//   "request": {
121204	//     "$ref": "UrlMapReference"
121205	//   },
121206	//   "response": {
121207	//     "$ref": "Operation"
121208	//   },
121209	//   "scopes": [
121210	//     "https://www.googleapis.com/auth/cloud-platform",
121211	//     "https://www.googleapis.com/auth/compute"
121212	//   ]
121213	// }
121214
121215}
121216
121217// method id "compute.regionTargetHttpsProxies.delete":
121218
121219type RegionTargetHttpsProxiesDeleteCall struct {
121220	s                *Service
121221	project          string
121222	region           string
121223	targetHttpsProxy string
121224	urlParams_       gensupport.URLParams
121225	ctx_             context.Context
121226	header_          http.Header
121227}
121228
121229// Delete: Deletes the specified TargetHttpsProxy resource.
121230func (r *RegionTargetHttpsProxiesService) Delete(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesDeleteCall {
121231	c := &RegionTargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121232	c.project = project
121233	c.region = region
121234	c.targetHttpsProxy = targetHttpsProxy
121235	return c
121236}
121237
121238// RequestId sets the optional parameter "requestId": An optional
121239// request ID to identify requests. Specify a unique request ID so that
121240// if you must retry your request, the server will know to ignore the
121241// request if it has already been completed.
121242//
121243// For example, consider a situation where you make an initial request
121244// and the request times out. If you make the request again with the
121245// same request ID, the server can check if original operation with the
121246// same request ID was received, and if so, will ignore the second
121247// request. This prevents clients from accidentally creating duplicate
121248// commitments.
121249//
121250// The request ID must be a valid UUID with the exception that zero UUID
121251// is not supported (00000000-0000-0000-0000-000000000000).
121252func (c *RegionTargetHttpsProxiesDeleteCall) RequestId(requestId string) *RegionTargetHttpsProxiesDeleteCall {
121253	c.urlParams_.Set("requestId", requestId)
121254	return c
121255}
121256
121257// Fields allows partial responses to be retrieved. See
121258// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121259// for more information.
121260func (c *RegionTargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesDeleteCall {
121261	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121262	return c
121263}
121264
121265// Context sets the context to be used in this call's Do method. Any
121266// pending HTTP request will be aborted if the provided context is
121267// canceled.
121268func (c *RegionTargetHttpsProxiesDeleteCall) Context(ctx context.Context) *RegionTargetHttpsProxiesDeleteCall {
121269	c.ctx_ = ctx
121270	return c
121271}
121272
121273// Header returns an http.Header that can be modified by the caller to
121274// add HTTP headers to the request.
121275func (c *RegionTargetHttpsProxiesDeleteCall) Header() http.Header {
121276	if c.header_ == nil {
121277		c.header_ = make(http.Header)
121278	}
121279	return c.header_
121280}
121281
121282func (c *RegionTargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
121283	reqHeaders := make(http.Header)
121284	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121285	for k, v := range c.header_ {
121286		reqHeaders[k] = v
121287	}
121288	reqHeaders.Set("User-Agent", c.s.userAgent())
121289	var body io.Reader = nil
121290	c.urlParams_.Set("alt", alt)
121291	c.urlParams_.Set("prettyPrint", "false")
121292	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
121293	urls += "?" + c.urlParams_.Encode()
121294	req, err := http.NewRequest("DELETE", urls, body)
121295	if err != nil {
121296		return nil, err
121297	}
121298	req.Header = reqHeaders
121299	googleapi.Expand(req.URL, map[string]string{
121300		"project":          c.project,
121301		"region":           c.region,
121302		"targetHttpsProxy": c.targetHttpsProxy,
121303	})
121304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121305}
121306
121307// Do executes the "compute.regionTargetHttpsProxies.delete" call.
121308// Exactly one of *Operation or error will be non-nil. Any non-2xx
121309// status code is an error. Response headers are in either
121310// *Operation.ServerResponse.Header or (if a response was returned at
121311// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121312// to check whether the returned error was because
121313// http.StatusNotModified was returned.
121314func (c *RegionTargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121315	gensupport.SetOptions(c.urlParams_, opts...)
121316	res, err := c.doRequest("json")
121317	if res != nil && res.StatusCode == http.StatusNotModified {
121318		if res.Body != nil {
121319			res.Body.Close()
121320		}
121321		return nil, &googleapi.Error{
121322			Code:   res.StatusCode,
121323			Header: res.Header,
121324		}
121325	}
121326	if err != nil {
121327		return nil, err
121328	}
121329	defer googleapi.CloseBody(res)
121330	if err := googleapi.CheckResponse(res); err != nil {
121331		return nil, err
121332	}
121333	ret := &Operation{
121334		ServerResponse: googleapi.ServerResponse{
121335			Header:         res.Header,
121336			HTTPStatusCode: res.StatusCode,
121337		},
121338	}
121339	target := &ret
121340	if err := gensupport.DecodeResponse(target, res); err != nil {
121341		return nil, err
121342	}
121343	return ret, nil
121344	// {
121345	//   "description": "Deletes the specified TargetHttpsProxy resource.",
121346	//   "httpMethod": "DELETE",
121347	//   "id": "compute.regionTargetHttpsProxies.delete",
121348	//   "parameterOrder": [
121349	//     "project",
121350	//     "region",
121351	//     "targetHttpsProxy"
121352	//   ],
121353	//   "parameters": {
121354	//     "project": {
121355	//       "description": "Project ID for this request.",
121356	//       "location": "path",
121357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121358	//       "required": true,
121359	//       "type": "string"
121360	//     },
121361	//     "region": {
121362	//       "description": "Name of the region scoping this request.",
121363	//       "location": "path",
121364	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121365	//       "required": true,
121366	//       "type": "string"
121367	//     },
121368	//     "requestId": {
121369	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121370	//       "location": "query",
121371	//       "type": "string"
121372	//     },
121373	//     "targetHttpsProxy": {
121374	//       "description": "Name of the TargetHttpsProxy resource to delete.",
121375	//       "location": "path",
121376	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121377	//       "required": true,
121378	//       "type": "string"
121379	//     }
121380	//   },
121381	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
121382	//   "response": {
121383	//     "$ref": "Operation"
121384	//   },
121385	//   "scopes": [
121386	//     "https://www.googleapis.com/auth/cloud-platform",
121387	//     "https://www.googleapis.com/auth/compute"
121388	//   ]
121389	// }
121390
121391}
121392
121393// method id "compute.regionTargetHttpsProxies.get":
121394
121395type RegionTargetHttpsProxiesGetCall struct {
121396	s                *Service
121397	project          string
121398	region           string
121399	targetHttpsProxy string
121400	urlParams_       gensupport.URLParams
121401	ifNoneMatch_     string
121402	ctx_             context.Context
121403	header_          http.Header
121404}
121405
121406// Get: Returns the specified TargetHttpsProxy resource in the specified
121407// region. Gets a list of available target HTTP proxies by making a
121408// list() request.
121409func (r *RegionTargetHttpsProxiesService) Get(project string, region string, targetHttpsProxy string) *RegionTargetHttpsProxiesGetCall {
121410	c := &RegionTargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121411	c.project = project
121412	c.region = region
121413	c.targetHttpsProxy = targetHttpsProxy
121414	return c
121415}
121416
121417// Fields allows partial responses to be retrieved. See
121418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121419// for more information.
121420func (c *RegionTargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesGetCall {
121421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121422	return c
121423}
121424
121425// IfNoneMatch sets the optional parameter which makes the operation
121426// fail if the object's ETag matches the given value. This is useful for
121427// getting updates only after the object has changed since the last
121428// request. Use googleapi.IsNotModified to check whether the response
121429// error from Do is the result of In-None-Match.
121430func (c *RegionTargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesGetCall {
121431	c.ifNoneMatch_ = entityTag
121432	return c
121433}
121434
121435// Context sets the context to be used in this call's Do method. Any
121436// pending HTTP request will be aborted if the provided context is
121437// canceled.
121438func (c *RegionTargetHttpsProxiesGetCall) Context(ctx context.Context) *RegionTargetHttpsProxiesGetCall {
121439	c.ctx_ = ctx
121440	return c
121441}
121442
121443// Header returns an http.Header that can be modified by the caller to
121444// add HTTP headers to the request.
121445func (c *RegionTargetHttpsProxiesGetCall) Header() http.Header {
121446	if c.header_ == nil {
121447		c.header_ = make(http.Header)
121448	}
121449	return c.header_
121450}
121451
121452func (c *RegionTargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
121453	reqHeaders := make(http.Header)
121454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121455	for k, v := range c.header_ {
121456		reqHeaders[k] = v
121457	}
121458	reqHeaders.Set("User-Agent", c.s.userAgent())
121459	if c.ifNoneMatch_ != "" {
121460		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121461	}
121462	var body io.Reader = nil
121463	c.urlParams_.Set("alt", alt)
121464	c.urlParams_.Set("prettyPrint", "false")
121465	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}")
121466	urls += "?" + c.urlParams_.Encode()
121467	req, err := http.NewRequest("GET", urls, body)
121468	if err != nil {
121469		return nil, err
121470	}
121471	req.Header = reqHeaders
121472	googleapi.Expand(req.URL, map[string]string{
121473		"project":          c.project,
121474		"region":           c.region,
121475		"targetHttpsProxy": c.targetHttpsProxy,
121476	})
121477	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121478}
121479
121480// Do executes the "compute.regionTargetHttpsProxies.get" call.
121481// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
121482// non-2xx status code is an error. Response headers are in either
121483// *TargetHttpsProxy.ServerResponse.Header or (if a response was
121484// returned at all) in error.(*googleapi.Error).Header. Use
121485// googleapi.IsNotModified to check whether the returned error was
121486// because http.StatusNotModified was returned.
121487func (c *RegionTargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
121488	gensupport.SetOptions(c.urlParams_, opts...)
121489	res, err := c.doRequest("json")
121490	if res != nil && res.StatusCode == http.StatusNotModified {
121491		if res.Body != nil {
121492			res.Body.Close()
121493		}
121494		return nil, &googleapi.Error{
121495			Code:   res.StatusCode,
121496			Header: res.Header,
121497		}
121498	}
121499	if err != nil {
121500		return nil, err
121501	}
121502	defer googleapi.CloseBody(res)
121503	if err := googleapi.CheckResponse(res); err != nil {
121504		return nil, err
121505	}
121506	ret := &TargetHttpsProxy{
121507		ServerResponse: googleapi.ServerResponse{
121508			Header:         res.Header,
121509			HTTPStatusCode: res.StatusCode,
121510		},
121511	}
121512	target := &ret
121513	if err := gensupport.DecodeResponse(target, res); err != nil {
121514		return nil, err
121515	}
121516	return ret, nil
121517	// {
121518	//   "description": "Returns the specified TargetHttpsProxy resource in the specified region. Gets a list of available target HTTP proxies by making a list() request.",
121519	//   "httpMethod": "GET",
121520	//   "id": "compute.regionTargetHttpsProxies.get",
121521	//   "parameterOrder": [
121522	//     "project",
121523	//     "region",
121524	//     "targetHttpsProxy"
121525	//   ],
121526	//   "parameters": {
121527	//     "project": {
121528	//       "description": "Project ID for this request.",
121529	//       "location": "path",
121530	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121531	//       "required": true,
121532	//       "type": "string"
121533	//     },
121534	//     "region": {
121535	//       "description": "Name of the region scoping this request.",
121536	//       "location": "path",
121537	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121538	//       "required": true,
121539	//       "type": "string"
121540	//     },
121541	//     "targetHttpsProxy": {
121542	//       "description": "Name of the TargetHttpsProxy resource to return.",
121543	//       "location": "path",
121544	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
121545	//       "required": true,
121546	//       "type": "string"
121547	//     }
121548	//   },
121549	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}",
121550	//   "response": {
121551	//     "$ref": "TargetHttpsProxy"
121552	//   },
121553	//   "scopes": [
121554	//     "https://www.googleapis.com/auth/cloud-platform",
121555	//     "https://www.googleapis.com/auth/compute",
121556	//     "https://www.googleapis.com/auth/compute.readonly"
121557	//   ]
121558	// }
121559
121560}
121561
121562// method id "compute.regionTargetHttpsProxies.insert":
121563
121564type RegionTargetHttpsProxiesInsertCall struct {
121565	s                *Service
121566	project          string
121567	region           string
121568	targethttpsproxy *TargetHttpsProxy
121569	urlParams_       gensupport.URLParams
121570	ctx_             context.Context
121571	header_          http.Header
121572}
121573
121574// Insert: Creates a TargetHttpsProxy resource in the specified project
121575// and region using the data included in the request.
121576func (r *RegionTargetHttpsProxiesService) Insert(project string, region string, targethttpsproxy *TargetHttpsProxy) *RegionTargetHttpsProxiesInsertCall {
121577	c := &RegionTargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121578	c.project = project
121579	c.region = region
121580	c.targethttpsproxy = targethttpsproxy
121581	return c
121582}
121583
121584// RequestId sets the optional parameter "requestId": An optional
121585// request ID to identify requests. Specify a unique request ID so that
121586// if you must retry your request, the server will know to ignore the
121587// request if it has already been completed.
121588//
121589// For example, consider a situation where you make an initial request
121590// and the request times out. If you make the request again with the
121591// same request ID, the server can check if original operation with the
121592// same request ID was received, and if so, will ignore the second
121593// request. This prevents clients from accidentally creating duplicate
121594// commitments.
121595//
121596// The request ID must be a valid UUID with the exception that zero UUID
121597// is not supported (00000000-0000-0000-0000-000000000000).
121598func (c *RegionTargetHttpsProxiesInsertCall) RequestId(requestId string) *RegionTargetHttpsProxiesInsertCall {
121599	c.urlParams_.Set("requestId", requestId)
121600	return c
121601}
121602
121603// Fields allows partial responses to be retrieved. See
121604// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121605// for more information.
121606func (c *RegionTargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesInsertCall {
121607	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121608	return c
121609}
121610
121611// Context sets the context to be used in this call's Do method. Any
121612// pending HTTP request will be aborted if the provided context is
121613// canceled.
121614func (c *RegionTargetHttpsProxiesInsertCall) Context(ctx context.Context) *RegionTargetHttpsProxiesInsertCall {
121615	c.ctx_ = ctx
121616	return c
121617}
121618
121619// Header returns an http.Header that can be modified by the caller to
121620// add HTTP headers to the request.
121621func (c *RegionTargetHttpsProxiesInsertCall) Header() http.Header {
121622	if c.header_ == nil {
121623		c.header_ = make(http.Header)
121624	}
121625	return c.header_
121626}
121627
121628func (c *RegionTargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
121629	reqHeaders := make(http.Header)
121630	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121631	for k, v := range c.header_ {
121632		reqHeaders[k] = v
121633	}
121634	reqHeaders.Set("User-Agent", c.s.userAgent())
121635	var body io.Reader = nil
121636	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
121637	if err != nil {
121638		return nil, err
121639	}
121640	reqHeaders.Set("Content-Type", "application/json")
121641	c.urlParams_.Set("alt", alt)
121642	c.urlParams_.Set("prettyPrint", "false")
121643	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
121644	urls += "?" + c.urlParams_.Encode()
121645	req, err := http.NewRequest("POST", urls, body)
121646	if err != nil {
121647		return nil, err
121648	}
121649	req.Header = reqHeaders
121650	googleapi.Expand(req.URL, map[string]string{
121651		"project": c.project,
121652		"region":  c.region,
121653	})
121654	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121655}
121656
121657// Do executes the "compute.regionTargetHttpsProxies.insert" call.
121658// Exactly one of *Operation or error will be non-nil. Any non-2xx
121659// status code is an error. Response headers are in either
121660// *Operation.ServerResponse.Header or (if a response was returned at
121661// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
121662// to check whether the returned error was because
121663// http.StatusNotModified was returned.
121664func (c *RegionTargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
121665	gensupport.SetOptions(c.urlParams_, opts...)
121666	res, err := c.doRequest("json")
121667	if res != nil && res.StatusCode == http.StatusNotModified {
121668		if res.Body != nil {
121669			res.Body.Close()
121670		}
121671		return nil, &googleapi.Error{
121672			Code:   res.StatusCode,
121673			Header: res.Header,
121674		}
121675	}
121676	if err != nil {
121677		return nil, err
121678	}
121679	defer googleapi.CloseBody(res)
121680	if err := googleapi.CheckResponse(res); err != nil {
121681		return nil, err
121682	}
121683	ret := &Operation{
121684		ServerResponse: googleapi.ServerResponse{
121685			Header:         res.Header,
121686			HTTPStatusCode: res.StatusCode,
121687		},
121688	}
121689	target := &ret
121690	if err := gensupport.DecodeResponse(target, res); err != nil {
121691		return nil, err
121692	}
121693	return ret, nil
121694	// {
121695	//   "description": "Creates a TargetHttpsProxy resource in the specified project and region using the data included in the request.",
121696	//   "httpMethod": "POST",
121697	//   "id": "compute.regionTargetHttpsProxies.insert",
121698	//   "parameterOrder": [
121699	//     "project",
121700	//     "region"
121701	//   ],
121702	//   "parameters": {
121703	//     "project": {
121704	//       "description": "Project ID for this request.",
121705	//       "location": "path",
121706	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121707	//       "required": true,
121708	//       "type": "string"
121709	//     },
121710	//     "region": {
121711	//       "description": "Name of the region scoping this request.",
121712	//       "location": "path",
121713	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121714	//       "required": true,
121715	//       "type": "string"
121716	//     },
121717	//     "requestId": {
121718	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
121719	//       "location": "query",
121720	//       "type": "string"
121721	//     }
121722	//   },
121723	//   "path": "{project}/regions/{region}/targetHttpsProxies",
121724	//   "request": {
121725	//     "$ref": "TargetHttpsProxy"
121726	//   },
121727	//   "response": {
121728	//     "$ref": "Operation"
121729	//   },
121730	//   "scopes": [
121731	//     "https://www.googleapis.com/auth/cloud-platform",
121732	//     "https://www.googleapis.com/auth/compute"
121733	//   ]
121734	// }
121735
121736}
121737
121738// method id "compute.regionTargetHttpsProxies.list":
121739
121740type RegionTargetHttpsProxiesListCall struct {
121741	s            *Service
121742	project      string
121743	region       string
121744	urlParams_   gensupport.URLParams
121745	ifNoneMatch_ string
121746	ctx_         context.Context
121747	header_      http.Header
121748}
121749
121750// List: Retrieves the list of TargetHttpsProxy resources available to
121751// the specified project in the specified region.
121752func (r *RegionTargetHttpsProxiesService) List(project string, region string) *RegionTargetHttpsProxiesListCall {
121753	c := &RegionTargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
121754	c.project = project
121755	c.region = region
121756	return c
121757}
121758
121759// Filter sets the optional parameter "filter": A filter expression that
121760// filters resources listed in the response. The expression must specify
121761// the field name, a comparison operator, and the value that you want to
121762// use for filtering. The value must be a string, a number, or a
121763// boolean. The comparison operator must be either =, !=, >, or <.
121764//
121765// For example, if you are filtering Compute Engine instances, you can
121766// exclude instances named example-instance by specifying name !=
121767// example-instance.
121768//
121769// You can also filter nested fields. For example, you could specify
121770// scheduling.automaticRestart = false to include instances only if they
121771// are not scheduled for automatic restarts. You can use filtering on
121772// nested fields to filter based on resource labels.
121773//
121774// To filter on multiple expressions, provide each separate expression
121775// within parentheses. For example, (scheduling.automaticRestart = true)
121776// (cpuPlatform = "Intel Skylake"). By default, each expression is an
121777// AND expression. However, you can include AND and OR expressions
121778// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
121779// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
121780// true).
121781func (c *RegionTargetHttpsProxiesListCall) Filter(filter string) *RegionTargetHttpsProxiesListCall {
121782	c.urlParams_.Set("filter", filter)
121783	return c
121784}
121785
121786// MaxResults sets the optional parameter "maxResults": The maximum
121787// number of results per page that should be returned. If the number of
121788// available results is larger than maxResults, Compute Engine returns a
121789// nextPageToken that can be used to get the next page of results in
121790// subsequent list requests. Acceptable values are 0 to 500, inclusive.
121791// (Default: 500)
121792func (c *RegionTargetHttpsProxiesListCall) MaxResults(maxResults int64) *RegionTargetHttpsProxiesListCall {
121793	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
121794	return c
121795}
121796
121797// OrderBy sets the optional parameter "orderBy": Sorts list results by
121798// a certain order. By default, results are returned in alphanumerical
121799// order based on the resource name.
121800//
121801// You can also sort results in descending order based on the creation
121802// timestamp using orderBy="creationTimestamp desc". This sorts results
121803// based on the creationTimestamp field in reverse chronological order
121804// (newest result first). Use this to sort resources like operations so
121805// that the newest operation is returned first.
121806//
121807// Currently, only sorting by name or creationTimestamp desc is
121808// supported.
121809func (c *RegionTargetHttpsProxiesListCall) OrderBy(orderBy string) *RegionTargetHttpsProxiesListCall {
121810	c.urlParams_.Set("orderBy", orderBy)
121811	return c
121812}
121813
121814// PageToken sets the optional parameter "pageToken": Specifies a page
121815// token to use. Set pageToken to the nextPageToken returned by a
121816// previous list request to get the next page of results.
121817func (c *RegionTargetHttpsProxiesListCall) PageToken(pageToken string) *RegionTargetHttpsProxiesListCall {
121818	c.urlParams_.Set("pageToken", pageToken)
121819	return c
121820}
121821
121822// Fields allows partial responses to be retrieved. See
121823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
121824// for more information.
121825func (c *RegionTargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesListCall {
121826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
121827	return c
121828}
121829
121830// IfNoneMatch sets the optional parameter which makes the operation
121831// fail if the object's ETag matches the given value. This is useful for
121832// getting updates only after the object has changed since the last
121833// request. Use googleapi.IsNotModified to check whether the response
121834// error from Do is the result of In-None-Match.
121835func (c *RegionTargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *RegionTargetHttpsProxiesListCall {
121836	c.ifNoneMatch_ = entityTag
121837	return c
121838}
121839
121840// Context sets the context to be used in this call's Do method. Any
121841// pending HTTP request will be aborted if the provided context is
121842// canceled.
121843func (c *RegionTargetHttpsProxiesListCall) Context(ctx context.Context) *RegionTargetHttpsProxiesListCall {
121844	c.ctx_ = ctx
121845	return c
121846}
121847
121848// Header returns an http.Header that can be modified by the caller to
121849// add HTTP headers to the request.
121850func (c *RegionTargetHttpsProxiesListCall) Header() http.Header {
121851	if c.header_ == nil {
121852		c.header_ = make(http.Header)
121853	}
121854	return c.header_
121855}
121856
121857func (c *RegionTargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
121858	reqHeaders := make(http.Header)
121859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
121860	for k, v := range c.header_ {
121861		reqHeaders[k] = v
121862	}
121863	reqHeaders.Set("User-Agent", c.s.userAgent())
121864	if c.ifNoneMatch_ != "" {
121865		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
121866	}
121867	var body io.Reader = nil
121868	c.urlParams_.Set("alt", alt)
121869	c.urlParams_.Set("prettyPrint", "false")
121870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies")
121871	urls += "?" + c.urlParams_.Encode()
121872	req, err := http.NewRequest("GET", urls, body)
121873	if err != nil {
121874		return nil, err
121875	}
121876	req.Header = reqHeaders
121877	googleapi.Expand(req.URL, map[string]string{
121878		"project": c.project,
121879		"region":  c.region,
121880	})
121881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
121882}
121883
121884// Do executes the "compute.regionTargetHttpsProxies.list" call.
121885// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
121886// non-2xx status code is an error. Response headers are in either
121887// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
121888// returned at all) in error.(*googleapi.Error).Header. Use
121889// googleapi.IsNotModified to check whether the returned error was
121890// because http.StatusNotModified was returned.
121891func (c *RegionTargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
121892	gensupport.SetOptions(c.urlParams_, opts...)
121893	res, err := c.doRequest("json")
121894	if res != nil && res.StatusCode == http.StatusNotModified {
121895		if res.Body != nil {
121896			res.Body.Close()
121897		}
121898		return nil, &googleapi.Error{
121899			Code:   res.StatusCode,
121900			Header: res.Header,
121901		}
121902	}
121903	if err != nil {
121904		return nil, err
121905	}
121906	defer googleapi.CloseBody(res)
121907	if err := googleapi.CheckResponse(res); err != nil {
121908		return nil, err
121909	}
121910	ret := &TargetHttpsProxyList{
121911		ServerResponse: googleapi.ServerResponse{
121912			Header:         res.Header,
121913			HTTPStatusCode: res.StatusCode,
121914		},
121915	}
121916	target := &ret
121917	if err := gensupport.DecodeResponse(target, res); err != nil {
121918		return nil, err
121919	}
121920	return ret, nil
121921	// {
121922	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project in the specified region.",
121923	//   "httpMethod": "GET",
121924	//   "id": "compute.regionTargetHttpsProxies.list",
121925	//   "parameterOrder": [
121926	//     "project",
121927	//     "region"
121928	//   ],
121929	//   "parameters": {
121930	//     "filter": {
121931	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
121932	//       "location": "query",
121933	//       "type": "string"
121934	//     },
121935	//     "maxResults": {
121936	//       "default": "500",
121937	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
121938	//       "format": "uint32",
121939	//       "location": "query",
121940	//       "minimum": "0",
121941	//       "type": "integer"
121942	//     },
121943	//     "orderBy": {
121944	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
121945	//       "location": "query",
121946	//       "type": "string"
121947	//     },
121948	//     "pageToken": {
121949	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
121950	//       "location": "query",
121951	//       "type": "string"
121952	//     },
121953	//     "project": {
121954	//       "description": "Project ID for this request.",
121955	//       "location": "path",
121956	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
121957	//       "required": true,
121958	//       "type": "string"
121959	//     },
121960	//     "region": {
121961	//       "description": "Name of the region scoping this request.",
121962	//       "location": "path",
121963	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
121964	//       "required": true,
121965	//       "type": "string"
121966	//     }
121967	//   },
121968	//   "path": "{project}/regions/{region}/targetHttpsProxies",
121969	//   "response": {
121970	//     "$ref": "TargetHttpsProxyList"
121971	//   },
121972	//   "scopes": [
121973	//     "https://www.googleapis.com/auth/cloud-platform",
121974	//     "https://www.googleapis.com/auth/compute",
121975	//     "https://www.googleapis.com/auth/compute.readonly"
121976	//   ]
121977	// }
121978
121979}
121980
121981// Pages invokes f for each page of results.
121982// A non-nil error returned from f will halt the iteration.
121983// The provided context supersedes any context provided to the Context method.
121984func (c *RegionTargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
121985	c.ctx_ = ctx
121986	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
121987	for {
121988		x, err := c.Do()
121989		if err != nil {
121990			return err
121991		}
121992		if err := f(x); err != nil {
121993			return err
121994		}
121995		if x.NextPageToken == "" {
121996			return nil
121997		}
121998		c.PageToken(x.NextPageToken)
121999	}
122000}
122001
122002// method id "compute.regionTargetHttpsProxies.setSslCertificates":
122003
122004type RegionTargetHttpsProxiesSetSslCertificatesCall struct {
122005	s                                                 *Service
122006	project                                           string
122007	region                                            string
122008	targetHttpsProxy                                  string
122009	regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest
122010	urlParams_                                        gensupport.URLParams
122011	ctx_                                              context.Context
122012	header_                                           http.Header
122013}
122014
122015// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
122016func (r *RegionTargetHttpsProxiesService) SetSslCertificates(project string, region string, targetHttpsProxy string, regiontargethttpsproxiessetsslcertificatesrequest *RegionTargetHttpsProxiesSetSslCertificatesRequest) *RegionTargetHttpsProxiesSetSslCertificatesCall {
122017	c := &RegionTargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122018	c.project = project
122019	c.region = region
122020	c.targetHttpsProxy = targetHttpsProxy
122021	c.regiontargethttpsproxiessetsslcertificatesrequest = regiontargethttpsproxiessetsslcertificatesrequest
122022	return c
122023}
122024
122025// RequestId sets the optional parameter "requestId": An optional
122026// request ID to identify requests. Specify a unique request ID so that
122027// if you must retry your request, the server will know to ignore the
122028// request if it has already been completed.
122029//
122030// For example, consider a situation where you make an initial request
122031// and the request times out. If you make the request again with the
122032// same request ID, the server can check if original operation with the
122033// same request ID was received, and if so, will ignore the second
122034// request. This prevents clients from accidentally creating duplicate
122035// commitments.
122036//
122037// The request ID must be a valid UUID with the exception that zero UUID
122038// is not supported (00000000-0000-0000-0000-000000000000).
122039func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetSslCertificatesCall {
122040	c.urlParams_.Set("requestId", requestId)
122041	return c
122042}
122043
122044// Fields allows partial responses to be retrieved. See
122045// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122046// for more information.
122047func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetSslCertificatesCall {
122048	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122049	return c
122050}
122051
122052// Context sets the context to be used in this call's Do method. Any
122053// pending HTTP request will be aborted if the provided context is
122054// canceled.
122055func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetSslCertificatesCall {
122056	c.ctx_ = ctx
122057	return c
122058}
122059
122060// Header returns an http.Header that can be modified by the caller to
122061// add HTTP headers to the request.
122062func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
122063	if c.header_ == nil {
122064		c.header_ = make(http.Header)
122065	}
122066	return c.header_
122067}
122068
122069func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
122070	reqHeaders := make(http.Header)
122071	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122072	for k, v := range c.header_ {
122073		reqHeaders[k] = v
122074	}
122075	reqHeaders.Set("User-Agent", c.s.userAgent())
122076	var body io.Reader = nil
122077	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regiontargethttpsproxiessetsslcertificatesrequest)
122078	if err != nil {
122079		return nil, err
122080	}
122081	reqHeaders.Set("Content-Type", "application/json")
122082	c.urlParams_.Set("alt", alt)
122083	c.urlParams_.Set("prettyPrint", "false")
122084	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
122085	urls += "?" + c.urlParams_.Encode()
122086	req, err := http.NewRequest("POST", urls, body)
122087	if err != nil {
122088		return nil, err
122089	}
122090	req.Header = reqHeaders
122091	googleapi.Expand(req.URL, map[string]string{
122092		"project":          c.project,
122093		"region":           c.region,
122094		"targetHttpsProxy": c.targetHttpsProxy,
122095	})
122096	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122097}
122098
122099// Do executes the "compute.regionTargetHttpsProxies.setSslCertificates" call.
122100// Exactly one of *Operation or error will be non-nil. Any non-2xx
122101// status code is an error. Response headers are in either
122102// *Operation.ServerResponse.Header or (if a response was returned at
122103// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122104// to check whether the returned error was because
122105// http.StatusNotModified was returned.
122106func (c *RegionTargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122107	gensupport.SetOptions(c.urlParams_, opts...)
122108	res, err := c.doRequest("json")
122109	if res != nil && res.StatusCode == http.StatusNotModified {
122110		if res.Body != nil {
122111			res.Body.Close()
122112		}
122113		return nil, &googleapi.Error{
122114			Code:   res.StatusCode,
122115			Header: res.Header,
122116		}
122117	}
122118	if err != nil {
122119		return nil, err
122120	}
122121	defer googleapi.CloseBody(res)
122122	if err := googleapi.CheckResponse(res); err != nil {
122123		return nil, err
122124	}
122125	ret := &Operation{
122126		ServerResponse: googleapi.ServerResponse{
122127			Header:         res.Header,
122128			HTTPStatusCode: res.StatusCode,
122129		},
122130	}
122131	target := &ret
122132	if err := gensupport.DecodeResponse(target, res); err != nil {
122133		return nil, err
122134	}
122135	return ret, nil
122136	// {
122137	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
122138	//   "httpMethod": "POST",
122139	//   "id": "compute.regionTargetHttpsProxies.setSslCertificates",
122140	//   "parameterOrder": [
122141	//     "project",
122142	//     "region",
122143	//     "targetHttpsProxy"
122144	//   ],
122145	//   "parameters": {
122146	//     "project": {
122147	//       "description": "Project ID for this request.",
122148	//       "location": "path",
122149	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122150	//       "required": true,
122151	//       "type": "string"
122152	//     },
122153	//     "region": {
122154	//       "description": "Name of the region scoping this request.",
122155	//       "location": "path",
122156	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122157	//       "required": true,
122158	//       "type": "string"
122159	//     },
122160	//     "requestId": {
122161	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122162	//       "location": "query",
122163	//       "type": "string"
122164	//     },
122165	//     "targetHttpsProxy": {
122166	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
122167	//       "location": "path",
122168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122169	//       "required": true,
122170	//       "type": "string"
122171	//     }
122172	//   },
122173	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
122174	//   "request": {
122175	//     "$ref": "RegionTargetHttpsProxiesSetSslCertificatesRequest"
122176	//   },
122177	//   "response": {
122178	//     "$ref": "Operation"
122179	//   },
122180	//   "scopes": [
122181	//     "https://www.googleapis.com/auth/cloud-platform",
122182	//     "https://www.googleapis.com/auth/compute"
122183	//   ]
122184	// }
122185
122186}
122187
122188// method id "compute.regionTargetHttpsProxies.setUrlMap":
122189
122190type RegionTargetHttpsProxiesSetUrlMapCall struct {
122191	s                *Service
122192	project          string
122193	region           string
122194	targetHttpsProxy string
122195	urlmapreference  *UrlMapReference
122196	urlParams_       gensupport.URLParams
122197	ctx_             context.Context
122198	header_          http.Header
122199}
122200
122201// SetUrlMap: Changes the URL map for TargetHttpsProxy.
122202func (r *RegionTargetHttpsProxiesService) SetUrlMap(project string, region string, targetHttpsProxy string, urlmapreference *UrlMapReference) *RegionTargetHttpsProxiesSetUrlMapCall {
122203	c := &RegionTargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122204	c.project = project
122205	c.region = region
122206	c.targetHttpsProxy = targetHttpsProxy
122207	c.urlmapreference = urlmapreference
122208	return c
122209}
122210
122211// RequestId sets the optional parameter "requestId": An optional
122212// request ID to identify requests. Specify a unique request ID so that
122213// if you must retry your request, the server will know to ignore the
122214// request if it has already been completed.
122215//
122216// For example, consider a situation where you make an initial request
122217// and the request times out. If you make the request again with the
122218// same request ID, the server can check if original operation with the
122219// same request ID was received, and if so, will ignore the second
122220// request. This prevents clients from accidentally creating duplicate
122221// commitments.
122222//
122223// The request ID must be a valid UUID with the exception that zero UUID
122224// is not supported (00000000-0000-0000-0000-000000000000).
122225func (c *RegionTargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *RegionTargetHttpsProxiesSetUrlMapCall {
122226	c.urlParams_.Set("requestId", requestId)
122227	return c
122228}
122229
122230// Fields allows partial responses to be retrieved. See
122231// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122232// for more information.
122233func (c *RegionTargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *RegionTargetHttpsProxiesSetUrlMapCall {
122234	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122235	return c
122236}
122237
122238// Context sets the context to be used in this call's Do method. Any
122239// pending HTTP request will be aborted if the provided context is
122240// canceled.
122241func (c *RegionTargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *RegionTargetHttpsProxiesSetUrlMapCall {
122242	c.ctx_ = ctx
122243	return c
122244}
122245
122246// Header returns an http.Header that can be modified by the caller to
122247// add HTTP headers to the request.
122248func (c *RegionTargetHttpsProxiesSetUrlMapCall) Header() http.Header {
122249	if c.header_ == nil {
122250		c.header_ = make(http.Header)
122251	}
122252	return c.header_
122253}
122254
122255func (c *RegionTargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
122256	reqHeaders := make(http.Header)
122257	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122258	for k, v := range c.header_ {
122259		reqHeaders[k] = v
122260	}
122261	reqHeaders.Set("User-Agent", c.s.userAgent())
122262	var body io.Reader = nil
122263	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
122264	if err != nil {
122265		return nil, err
122266	}
122267	reqHeaders.Set("Content-Type", "application/json")
122268	c.urlParams_.Set("alt", alt)
122269	c.urlParams_.Set("prettyPrint", "false")
122270	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
122271	urls += "?" + c.urlParams_.Encode()
122272	req, err := http.NewRequest("POST", urls, body)
122273	if err != nil {
122274		return nil, err
122275	}
122276	req.Header = reqHeaders
122277	googleapi.Expand(req.URL, map[string]string{
122278		"project":          c.project,
122279		"region":           c.region,
122280		"targetHttpsProxy": c.targetHttpsProxy,
122281	})
122282	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122283}
122284
122285// Do executes the "compute.regionTargetHttpsProxies.setUrlMap" call.
122286// Exactly one of *Operation or error will be non-nil. Any non-2xx
122287// status code is an error. Response headers are in either
122288// *Operation.ServerResponse.Header or (if a response was returned at
122289// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122290// to check whether the returned error was because
122291// http.StatusNotModified was returned.
122292func (c *RegionTargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122293	gensupport.SetOptions(c.urlParams_, opts...)
122294	res, err := c.doRequest("json")
122295	if res != nil && res.StatusCode == http.StatusNotModified {
122296		if res.Body != nil {
122297			res.Body.Close()
122298		}
122299		return nil, &googleapi.Error{
122300			Code:   res.StatusCode,
122301			Header: res.Header,
122302		}
122303	}
122304	if err != nil {
122305		return nil, err
122306	}
122307	defer googleapi.CloseBody(res)
122308	if err := googleapi.CheckResponse(res); err != nil {
122309		return nil, err
122310	}
122311	ret := &Operation{
122312		ServerResponse: googleapi.ServerResponse{
122313			Header:         res.Header,
122314			HTTPStatusCode: res.StatusCode,
122315		},
122316	}
122317	target := &ret
122318	if err := gensupport.DecodeResponse(target, res); err != nil {
122319		return nil, err
122320	}
122321	return ret, nil
122322	// {
122323	//   "description": "Changes the URL map for TargetHttpsProxy.",
122324	//   "httpMethod": "POST",
122325	//   "id": "compute.regionTargetHttpsProxies.setUrlMap",
122326	//   "parameterOrder": [
122327	//     "project",
122328	//     "region",
122329	//     "targetHttpsProxy"
122330	//   ],
122331	//   "parameters": {
122332	//     "project": {
122333	//       "description": "Project ID for this request.",
122334	//       "location": "path",
122335	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122336	//       "required": true,
122337	//       "type": "string"
122338	//     },
122339	//     "region": {
122340	//       "description": "Name of the region scoping this request.",
122341	//       "location": "path",
122342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122343	//       "required": true,
122344	//       "type": "string"
122345	//     },
122346	//     "requestId": {
122347	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
122348	//       "location": "query",
122349	//       "type": "string"
122350	//     },
122351	//     "targetHttpsProxy": {
122352	//       "description": "Name of the TargetHttpsProxy to set a URL map for.",
122353	//       "location": "path",
122354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122355	//       "required": true,
122356	//       "type": "string"
122357	//     }
122358	//   },
122359	//   "path": "{project}/regions/{region}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
122360	//   "request": {
122361	//     "$ref": "UrlMapReference"
122362	//   },
122363	//   "response": {
122364	//     "$ref": "Operation"
122365	//   },
122366	//   "scopes": [
122367	//     "https://www.googleapis.com/auth/cloud-platform",
122368	//     "https://www.googleapis.com/auth/compute"
122369	//   ]
122370	// }
122371
122372}
122373
122374// method id "compute.regionUrlMaps.delete":
122375
122376type RegionUrlMapsDeleteCall struct {
122377	s          *Service
122378	project    string
122379	region     string
122380	urlMap     string
122381	urlParams_ gensupport.URLParams
122382	ctx_       context.Context
122383	header_    http.Header
122384}
122385
122386// Delete: Deletes the specified UrlMap resource.
122387func (r *RegionUrlMapsService) Delete(project string, region string, urlMap string) *RegionUrlMapsDeleteCall {
122388	c := &RegionUrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122389	c.project = project
122390	c.region = region
122391	c.urlMap = urlMap
122392	return c
122393}
122394
122395// RequestId sets the optional parameter "requestId": begin_interface:
122396// MixerMutationRequestBuilder Request ID to support idempotency.
122397func (c *RegionUrlMapsDeleteCall) RequestId(requestId string) *RegionUrlMapsDeleteCall {
122398	c.urlParams_.Set("requestId", requestId)
122399	return c
122400}
122401
122402// Fields allows partial responses to be retrieved. See
122403// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122404// for more information.
122405func (c *RegionUrlMapsDeleteCall) Fields(s ...googleapi.Field) *RegionUrlMapsDeleteCall {
122406	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122407	return c
122408}
122409
122410// Context sets the context to be used in this call's Do method. Any
122411// pending HTTP request will be aborted if the provided context is
122412// canceled.
122413func (c *RegionUrlMapsDeleteCall) Context(ctx context.Context) *RegionUrlMapsDeleteCall {
122414	c.ctx_ = ctx
122415	return c
122416}
122417
122418// Header returns an http.Header that can be modified by the caller to
122419// add HTTP headers to the request.
122420func (c *RegionUrlMapsDeleteCall) Header() http.Header {
122421	if c.header_ == nil {
122422		c.header_ = make(http.Header)
122423	}
122424	return c.header_
122425}
122426
122427func (c *RegionUrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
122428	reqHeaders := make(http.Header)
122429	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122430	for k, v := range c.header_ {
122431		reqHeaders[k] = v
122432	}
122433	reqHeaders.Set("User-Agent", c.s.userAgent())
122434	var body io.Reader = nil
122435	c.urlParams_.Set("alt", alt)
122436	c.urlParams_.Set("prettyPrint", "false")
122437	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
122438	urls += "?" + c.urlParams_.Encode()
122439	req, err := http.NewRequest("DELETE", urls, body)
122440	if err != nil {
122441		return nil, err
122442	}
122443	req.Header = reqHeaders
122444	googleapi.Expand(req.URL, map[string]string{
122445		"project": c.project,
122446		"region":  c.region,
122447		"urlMap":  c.urlMap,
122448	})
122449	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122450}
122451
122452// Do executes the "compute.regionUrlMaps.delete" call.
122453// Exactly one of *Operation or error will be non-nil. Any non-2xx
122454// status code is an error. Response headers are in either
122455// *Operation.ServerResponse.Header or (if a response was returned at
122456// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122457// to check whether the returned error was because
122458// http.StatusNotModified was returned.
122459func (c *RegionUrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122460	gensupport.SetOptions(c.urlParams_, opts...)
122461	res, err := c.doRequest("json")
122462	if res != nil && res.StatusCode == http.StatusNotModified {
122463		if res.Body != nil {
122464			res.Body.Close()
122465		}
122466		return nil, &googleapi.Error{
122467			Code:   res.StatusCode,
122468			Header: res.Header,
122469		}
122470	}
122471	if err != nil {
122472		return nil, err
122473	}
122474	defer googleapi.CloseBody(res)
122475	if err := googleapi.CheckResponse(res); err != nil {
122476		return nil, err
122477	}
122478	ret := &Operation{
122479		ServerResponse: googleapi.ServerResponse{
122480			Header:         res.Header,
122481			HTTPStatusCode: res.StatusCode,
122482		},
122483	}
122484	target := &ret
122485	if err := gensupport.DecodeResponse(target, res); err != nil {
122486		return nil, err
122487	}
122488	return ret, nil
122489	// {
122490	//   "description": "Deletes the specified UrlMap resource.",
122491	//   "httpMethod": "DELETE",
122492	//   "id": "compute.regionUrlMaps.delete",
122493	//   "parameterOrder": [
122494	//     "project",
122495	//     "region",
122496	//     "urlMap"
122497	//   ],
122498	//   "parameters": {
122499	//     "project": {
122500	//       "description": "Project ID for this request.",
122501	//       "location": "path",
122502	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122503	//       "required": true,
122504	//       "type": "string"
122505	//     },
122506	//     "region": {
122507	//       "description": "Name of the region scoping this request.",
122508	//       "location": "path",
122509	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122510	//       "required": true,
122511	//       "type": "string"
122512	//     },
122513	//     "requestId": {
122514	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
122515	//       "location": "query",
122516	//       "type": "string"
122517	//     },
122518	//     "urlMap": {
122519	//       "description": "Name of the UrlMap resource to delete.",
122520	//       "location": "path",
122521	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122522	//       "required": true,
122523	//       "type": "string"
122524	//     }
122525	//   },
122526	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
122527	//   "response": {
122528	//     "$ref": "Operation"
122529	//   },
122530	//   "scopes": [
122531	//     "https://www.googleapis.com/auth/cloud-platform",
122532	//     "https://www.googleapis.com/auth/compute"
122533	//   ]
122534	// }
122535
122536}
122537
122538// method id "compute.regionUrlMaps.get":
122539
122540type RegionUrlMapsGetCall struct {
122541	s            *Service
122542	project      string
122543	region       string
122544	urlMap       string
122545	urlParams_   gensupport.URLParams
122546	ifNoneMatch_ string
122547	ctx_         context.Context
122548	header_      http.Header
122549}
122550
122551// Get: Returns the specified UrlMap resource. Gets a list of available
122552// URL maps by making a list() request.
122553func (r *RegionUrlMapsService) Get(project string, region string, urlMap string) *RegionUrlMapsGetCall {
122554	c := &RegionUrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122555	c.project = project
122556	c.region = region
122557	c.urlMap = urlMap
122558	return c
122559}
122560
122561// Fields allows partial responses to be retrieved. See
122562// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122563// for more information.
122564func (c *RegionUrlMapsGetCall) Fields(s ...googleapi.Field) *RegionUrlMapsGetCall {
122565	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122566	return c
122567}
122568
122569// IfNoneMatch sets the optional parameter which makes the operation
122570// fail if the object's ETag matches the given value. This is useful for
122571// getting updates only after the object has changed since the last
122572// request. Use googleapi.IsNotModified to check whether the response
122573// error from Do is the result of In-None-Match.
122574func (c *RegionUrlMapsGetCall) IfNoneMatch(entityTag string) *RegionUrlMapsGetCall {
122575	c.ifNoneMatch_ = entityTag
122576	return c
122577}
122578
122579// Context sets the context to be used in this call's Do method. Any
122580// pending HTTP request will be aborted if the provided context is
122581// canceled.
122582func (c *RegionUrlMapsGetCall) Context(ctx context.Context) *RegionUrlMapsGetCall {
122583	c.ctx_ = ctx
122584	return c
122585}
122586
122587// Header returns an http.Header that can be modified by the caller to
122588// add HTTP headers to the request.
122589func (c *RegionUrlMapsGetCall) Header() http.Header {
122590	if c.header_ == nil {
122591		c.header_ = make(http.Header)
122592	}
122593	return c.header_
122594}
122595
122596func (c *RegionUrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
122597	reqHeaders := make(http.Header)
122598	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122599	for k, v := range c.header_ {
122600		reqHeaders[k] = v
122601	}
122602	reqHeaders.Set("User-Agent", c.s.userAgent())
122603	if c.ifNoneMatch_ != "" {
122604		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
122605	}
122606	var body io.Reader = nil
122607	c.urlParams_.Set("alt", alt)
122608	c.urlParams_.Set("prettyPrint", "false")
122609	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
122610	urls += "?" + c.urlParams_.Encode()
122611	req, err := http.NewRequest("GET", urls, body)
122612	if err != nil {
122613		return nil, err
122614	}
122615	req.Header = reqHeaders
122616	googleapi.Expand(req.URL, map[string]string{
122617		"project": c.project,
122618		"region":  c.region,
122619		"urlMap":  c.urlMap,
122620	})
122621	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122622}
122623
122624// Do executes the "compute.regionUrlMaps.get" call.
122625// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
122626// code is an error. Response headers are in either
122627// *UrlMap.ServerResponse.Header or (if a response was returned at all)
122628// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
122629// check whether the returned error was because http.StatusNotModified
122630// was returned.
122631func (c *RegionUrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
122632	gensupport.SetOptions(c.urlParams_, opts...)
122633	res, err := c.doRequest("json")
122634	if res != nil && res.StatusCode == http.StatusNotModified {
122635		if res.Body != nil {
122636			res.Body.Close()
122637		}
122638		return nil, &googleapi.Error{
122639			Code:   res.StatusCode,
122640			Header: res.Header,
122641		}
122642	}
122643	if err != nil {
122644		return nil, err
122645	}
122646	defer googleapi.CloseBody(res)
122647	if err := googleapi.CheckResponse(res); err != nil {
122648		return nil, err
122649	}
122650	ret := &UrlMap{
122651		ServerResponse: googleapi.ServerResponse{
122652			Header:         res.Header,
122653			HTTPStatusCode: res.StatusCode,
122654		},
122655	}
122656	target := &ret
122657	if err := gensupport.DecodeResponse(target, res); err != nil {
122658		return nil, err
122659	}
122660	return ret, nil
122661	// {
122662	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
122663	//   "httpMethod": "GET",
122664	//   "id": "compute.regionUrlMaps.get",
122665	//   "parameterOrder": [
122666	//     "project",
122667	//     "region",
122668	//     "urlMap"
122669	//   ],
122670	//   "parameters": {
122671	//     "project": {
122672	//       "description": "Project ID for this request.",
122673	//       "location": "path",
122674	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122675	//       "required": true,
122676	//       "type": "string"
122677	//     },
122678	//     "region": {
122679	//       "description": "Name of the region scoping this request.",
122680	//       "location": "path",
122681	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122682	//       "required": true,
122683	//       "type": "string"
122684	//     },
122685	//     "urlMap": {
122686	//       "description": "Name of the UrlMap resource to return.",
122687	//       "location": "path",
122688	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
122689	//       "required": true,
122690	//       "type": "string"
122691	//     }
122692	//   },
122693	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
122694	//   "response": {
122695	//     "$ref": "UrlMap"
122696	//   },
122697	//   "scopes": [
122698	//     "https://www.googleapis.com/auth/cloud-platform",
122699	//     "https://www.googleapis.com/auth/compute",
122700	//     "https://www.googleapis.com/auth/compute.readonly"
122701	//   ]
122702	// }
122703
122704}
122705
122706// method id "compute.regionUrlMaps.insert":
122707
122708type RegionUrlMapsInsertCall struct {
122709	s          *Service
122710	project    string
122711	region     string
122712	urlmap     *UrlMap
122713	urlParams_ gensupport.URLParams
122714	ctx_       context.Context
122715	header_    http.Header
122716}
122717
122718// Insert: Creates a UrlMap resource in the specified project using the
122719// data included in the request.
122720func (r *RegionUrlMapsService) Insert(project string, region string, urlmap *UrlMap) *RegionUrlMapsInsertCall {
122721	c := &RegionUrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122722	c.project = project
122723	c.region = region
122724	c.urlmap = urlmap
122725	return c
122726}
122727
122728// RequestId sets the optional parameter "requestId": begin_interface:
122729// MixerMutationRequestBuilder Request ID to support idempotency.
122730func (c *RegionUrlMapsInsertCall) RequestId(requestId string) *RegionUrlMapsInsertCall {
122731	c.urlParams_.Set("requestId", requestId)
122732	return c
122733}
122734
122735// Fields allows partial responses to be retrieved. See
122736// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122737// for more information.
122738func (c *RegionUrlMapsInsertCall) Fields(s ...googleapi.Field) *RegionUrlMapsInsertCall {
122739	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122740	return c
122741}
122742
122743// Context sets the context to be used in this call's Do method. Any
122744// pending HTTP request will be aborted if the provided context is
122745// canceled.
122746func (c *RegionUrlMapsInsertCall) Context(ctx context.Context) *RegionUrlMapsInsertCall {
122747	c.ctx_ = ctx
122748	return c
122749}
122750
122751// Header returns an http.Header that can be modified by the caller to
122752// add HTTP headers to the request.
122753func (c *RegionUrlMapsInsertCall) Header() http.Header {
122754	if c.header_ == nil {
122755		c.header_ = make(http.Header)
122756	}
122757	return c.header_
122758}
122759
122760func (c *RegionUrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
122761	reqHeaders := make(http.Header)
122762	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122763	for k, v := range c.header_ {
122764		reqHeaders[k] = v
122765	}
122766	reqHeaders.Set("User-Agent", c.s.userAgent())
122767	var body io.Reader = nil
122768	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
122769	if err != nil {
122770		return nil, err
122771	}
122772	reqHeaders.Set("Content-Type", "application/json")
122773	c.urlParams_.Set("alt", alt)
122774	c.urlParams_.Set("prettyPrint", "false")
122775	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
122776	urls += "?" + c.urlParams_.Encode()
122777	req, err := http.NewRequest("POST", urls, body)
122778	if err != nil {
122779		return nil, err
122780	}
122781	req.Header = reqHeaders
122782	googleapi.Expand(req.URL, map[string]string{
122783		"project": c.project,
122784		"region":  c.region,
122785	})
122786	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122787}
122788
122789// Do executes the "compute.regionUrlMaps.insert" call.
122790// Exactly one of *Operation or error will be non-nil. Any non-2xx
122791// status code is an error. Response headers are in either
122792// *Operation.ServerResponse.Header or (if a response was returned at
122793// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122794// to check whether the returned error was because
122795// http.StatusNotModified was returned.
122796func (c *RegionUrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122797	gensupport.SetOptions(c.urlParams_, opts...)
122798	res, err := c.doRequest("json")
122799	if res != nil && res.StatusCode == http.StatusNotModified {
122800		if res.Body != nil {
122801			res.Body.Close()
122802		}
122803		return nil, &googleapi.Error{
122804			Code:   res.StatusCode,
122805			Header: res.Header,
122806		}
122807	}
122808	if err != nil {
122809		return nil, err
122810	}
122811	defer googleapi.CloseBody(res)
122812	if err := googleapi.CheckResponse(res); err != nil {
122813		return nil, err
122814	}
122815	ret := &Operation{
122816		ServerResponse: googleapi.ServerResponse{
122817			Header:         res.Header,
122818			HTTPStatusCode: res.StatusCode,
122819		},
122820	}
122821	target := &ret
122822	if err := gensupport.DecodeResponse(target, res); err != nil {
122823		return nil, err
122824	}
122825	return ret, nil
122826	// {
122827	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
122828	//   "httpMethod": "POST",
122829	//   "id": "compute.regionUrlMaps.insert",
122830	//   "parameterOrder": [
122831	//     "project",
122832	//     "region"
122833	//   ],
122834	//   "parameters": {
122835	//     "project": {
122836	//       "description": "Project ID for this request.",
122837	//       "location": "path",
122838	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
122839	//       "required": true,
122840	//       "type": "string"
122841	//     },
122842	//     "region": {
122843	//       "description": "Name of the region scoping this request.",
122844	//       "location": "path",
122845	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
122846	//       "required": true,
122847	//       "type": "string"
122848	//     },
122849	//     "requestId": {
122850	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
122851	//       "location": "query",
122852	//       "type": "string"
122853	//     }
122854	//   },
122855	//   "path": "{project}/regions/{region}/urlMaps",
122856	//   "request": {
122857	//     "$ref": "UrlMap"
122858	//   },
122859	//   "response": {
122860	//     "$ref": "Operation"
122861	//   },
122862	//   "scopes": [
122863	//     "https://www.googleapis.com/auth/cloud-platform",
122864	//     "https://www.googleapis.com/auth/compute"
122865	//   ]
122866	// }
122867
122868}
122869
122870// method id "compute.regionUrlMaps.invalidateCache":
122871
122872type RegionUrlMapsInvalidateCacheCall struct {
122873	s                     *Service
122874	project               string
122875	region                string
122876	urlMap                string
122877	cacheinvalidationrule *CacheInvalidationRule
122878	urlParams_            gensupport.URLParams
122879	ctx_                  context.Context
122880	header_               http.Header
122881}
122882
122883// InvalidateCache: Initiates a cache invalidation operation,
122884// invalidating the specified path, scoped to the specified UrlMap.
122885func (r *RegionUrlMapsService) InvalidateCache(project string, region string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *RegionUrlMapsInvalidateCacheCall {
122886	c := &RegionUrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
122887	c.project = project
122888	c.region = region
122889	c.urlMap = urlMap
122890	c.cacheinvalidationrule = cacheinvalidationrule
122891	return c
122892}
122893
122894// RequestId sets the optional parameter "requestId": begin_interface:
122895// MixerMutationRequestBuilder Request ID to support idempotency.
122896func (c *RegionUrlMapsInvalidateCacheCall) RequestId(requestId string) *RegionUrlMapsInvalidateCacheCall {
122897	c.urlParams_.Set("requestId", requestId)
122898	return c
122899}
122900
122901// Fields allows partial responses to be retrieved. See
122902// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
122903// for more information.
122904func (c *RegionUrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *RegionUrlMapsInvalidateCacheCall {
122905	c.urlParams_.Set("fields", googleapi.CombineFields(s))
122906	return c
122907}
122908
122909// Context sets the context to be used in this call's Do method. Any
122910// pending HTTP request will be aborted if the provided context is
122911// canceled.
122912func (c *RegionUrlMapsInvalidateCacheCall) Context(ctx context.Context) *RegionUrlMapsInvalidateCacheCall {
122913	c.ctx_ = ctx
122914	return c
122915}
122916
122917// Header returns an http.Header that can be modified by the caller to
122918// add HTTP headers to the request.
122919func (c *RegionUrlMapsInvalidateCacheCall) Header() http.Header {
122920	if c.header_ == nil {
122921		c.header_ = make(http.Header)
122922	}
122923	return c.header_
122924}
122925
122926func (c *RegionUrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
122927	reqHeaders := make(http.Header)
122928	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
122929	for k, v := range c.header_ {
122930		reqHeaders[k] = v
122931	}
122932	reqHeaders.Set("User-Agent", c.s.userAgent())
122933	var body io.Reader = nil
122934	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
122935	if err != nil {
122936		return nil, err
122937	}
122938	reqHeaders.Set("Content-Type", "application/json")
122939	c.urlParams_.Set("alt", alt)
122940	c.urlParams_.Set("prettyPrint", "false")
122941	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache")
122942	urls += "?" + c.urlParams_.Encode()
122943	req, err := http.NewRequest("POST", urls, body)
122944	if err != nil {
122945		return nil, err
122946	}
122947	req.Header = reqHeaders
122948	googleapi.Expand(req.URL, map[string]string{
122949		"project": c.project,
122950		"region":  c.region,
122951		"urlMap":  c.urlMap,
122952	})
122953	return gensupport.SendRequest(c.ctx_, c.s.client, req)
122954}
122955
122956// Do executes the "compute.regionUrlMaps.invalidateCache" call.
122957// Exactly one of *Operation or error will be non-nil. Any non-2xx
122958// status code is an error. Response headers are in either
122959// *Operation.ServerResponse.Header or (if a response was returned at
122960// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
122961// to check whether the returned error was because
122962// http.StatusNotModified was returned.
122963func (c *RegionUrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
122964	gensupport.SetOptions(c.urlParams_, opts...)
122965	res, err := c.doRequest("json")
122966	if res != nil && res.StatusCode == http.StatusNotModified {
122967		if res.Body != nil {
122968			res.Body.Close()
122969		}
122970		return nil, &googleapi.Error{
122971			Code:   res.StatusCode,
122972			Header: res.Header,
122973		}
122974	}
122975	if err != nil {
122976		return nil, err
122977	}
122978	defer googleapi.CloseBody(res)
122979	if err := googleapi.CheckResponse(res); err != nil {
122980		return nil, err
122981	}
122982	ret := &Operation{
122983		ServerResponse: googleapi.ServerResponse{
122984			Header:         res.Header,
122985			HTTPStatusCode: res.StatusCode,
122986		},
122987	}
122988	target := &ret
122989	if err := gensupport.DecodeResponse(target, res); err != nil {
122990		return nil, err
122991	}
122992	return ret, nil
122993	// {
122994	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
122995	//   "httpMethod": "POST",
122996	//   "id": "compute.regionUrlMaps.invalidateCache",
122997	//   "parameterOrder": [
122998	//     "project",
122999	//     "region",
123000	//     "urlMap"
123001	//   ],
123002	//   "parameters": {
123003	//     "project": {
123004	//       "description": "Project ID for this request.",
123005	//       "location": "path",
123006	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123007	//       "required": true,
123008	//       "type": "string"
123009	//     },
123010	//     "region": {
123011	//       "description": "Name of the region scoping this request.",
123012	//       "location": "path",
123013	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123014	//       "required": true,
123015	//       "type": "string"
123016	//     },
123017	//     "requestId": {
123018	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
123019	//       "location": "query",
123020	//       "type": "string"
123021	//     },
123022	//     "urlMap": {
123023	//       "description": "Name of the UrlMap scoping this request.",
123024	//       "location": "path",
123025	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123026	//       "required": true,
123027	//       "type": "string"
123028	//     }
123029	//   },
123030	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/invalidateCache",
123031	//   "request": {
123032	//     "$ref": "CacheInvalidationRule"
123033	//   },
123034	//   "response": {
123035	//     "$ref": "Operation"
123036	//   },
123037	//   "scopes": [
123038	//     "https://www.googleapis.com/auth/cloud-platform",
123039	//     "https://www.googleapis.com/auth/compute"
123040	//   ]
123041	// }
123042
123043}
123044
123045// method id "compute.regionUrlMaps.list":
123046
123047type RegionUrlMapsListCall struct {
123048	s            *Service
123049	project      string
123050	region       string
123051	urlParams_   gensupport.URLParams
123052	ifNoneMatch_ string
123053	ctx_         context.Context
123054	header_      http.Header
123055}
123056
123057// List: Retrieves the list of UrlMap resources available to the
123058// specified project in the specified region.
123059func (r *RegionUrlMapsService) List(project string, region string) *RegionUrlMapsListCall {
123060	c := &RegionUrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123061	c.project = project
123062	c.region = region
123063	return c
123064}
123065
123066// Filter sets the optional parameter "filter": A filter expression that
123067// filters resources listed in the response. The expression must specify
123068// the field name, a comparison operator, and the value that you want to
123069// use for filtering. The value must be a string, a number, or a
123070// boolean. The comparison operator must be either =, !=, >, or <.
123071//
123072// For example, if you are filtering Compute Engine instances, you can
123073// exclude instances named example-instance by specifying name !=
123074// example-instance.
123075//
123076// You can also filter nested fields. For example, you could specify
123077// scheduling.automaticRestart = false to include instances only if they
123078// are not scheduled for automatic restarts. You can use filtering on
123079// nested fields to filter based on resource labels.
123080//
123081// To filter on multiple expressions, provide each separate expression
123082// within parentheses. For example, (scheduling.automaticRestart = true)
123083// (cpuPlatform = "Intel Skylake"). By default, each expression is an
123084// AND expression. However, you can include AND and OR expressions
123085// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
123086// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
123087// true).
123088func (c *RegionUrlMapsListCall) Filter(filter string) *RegionUrlMapsListCall {
123089	c.urlParams_.Set("filter", filter)
123090	return c
123091}
123092
123093// MaxResults sets the optional parameter "maxResults": The maximum
123094// number of results per page that should be returned. If the number of
123095// available results is larger than maxResults, Compute Engine returns a
123096// nextPageToken that can be used to get the next page of results in
123097// subsequent list requests. Acceptable values are 0 to 500, inclusive.
123098// (Default: 500)
123099func (c *RegionUrlMapsListCall) MaxResults(maxResults int64) *RegionUrlMapsListCall {
123100	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
123101	return c
123102}
123103
123104// OrderBy sets the optional parameter "orderBy": Sorts list results by
123105// a certain order. By default, results are returned in alphanumerical
123106// order based on the resource name.
123107//
123108// You can also sort results in descending order based on the creation
123109// timestamp using orderBy="creationTimestamp desc". This sorts results
123110// based on the creationTimestamp field in reverse chronological order
123111// (newest result first). Use this to sort resources like operations so
123112// that the newest operation is returned first.
123113//
123114// Currently, only sorting by name or creationTimestamp desc is
123115// supported.
123116func (c *RegionUrlMapsListCall) OrderBy(orderBy string) *RegionUrlMapsListCall {
123117	c.urlParams_.Set("orderBy", orderBy)
123118	return c
123119}
123120
123121// PageToken sets the optional parameter "pageToken": Specifies a page
123122// token to use. Set pageToken to the nextPageToken returned by a
123123// previous list request to get the next page of results.
123124func (c *RegionUrlMapsListCall) PageToken(pageToken string) *RegionUrlMapsListCall {
123125	c.urlParams_.Set("pageToken", pageToken)
123126	return c
123127}
123128
123129// Fields allows partial responses to be retrieved. See
123130// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123131// for more information.
123132func (c *RegionUrlMapsListCall) Fields(s ...googleapi.Field) *RegionUrlMapsListCall {
123133	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123134	return c
123135}
123136
123137// IfNoneMatch sets the optional parameter which makes the operation
123138// fail if the object's ETag matches the given value. This is useful for
123139// getting updates only after the object has changed since the last
123140// request. Use googleapi.IsNotModified to check whether the response
123141// error from Do is the result of In-None-Match.
123142func (c *RegionUrlMapsListCall) IfNoneMatch(entityTag string) *RegionUrlMapsListCall {
123143	c.ifNoneMatch_ = entityTag
123144	return c
123145}
123146
123147// Context sets the context to be used in this call's Do method. Any
123148// pending HTTP request will be aborted if the provided context is
123149// canceled.
123150func (c *RegionUrlMapsListCall) Context(ctx context.Context) *RegionUrlMapsListCall {
123151	c.ctx_ = ctx
123152	return c
123153}
123154
123155// Header returns an http.Header that can be modified by the caller to
123156// add HTTP headers to the request.
123157func (c *RegionUrlMapsListCall) Header() http.Header {
123158	if c.header_ == nil {
123159		c.header_ = make(http.Header)
123160	}
123161	return c.header_
123162}
123163
123164func (c *RegionUrlMapsListCall) doRequest(alt string) (*http.Response, error) {
123165	reqHeaders := make(http.Header)
123166	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123167	for k, v := range c.header_ {
123168		reqHeaders[k] = v
123169	}
123170	reqHeaders.Set("User-Agent", c.s.userAgent())
123171	if c.ifNoneMatch_ != "" {
123172		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123173	}
123174	var body io.Reader = nil
123175	c.urlParams_.Set("alt", alt)
123176	c.urlParams_.Set("prettyPrint", "false")
123177	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps")
123178	urls += "?" + c.urlParams_.Encode()
123179	req, err := http.NewRequest("GET", urls, body)
123180	if err != nil {
123181		return nil, err
123182	}
123183	req.Header = reqHeaders
123184	googleapi.Expand(req.URL, map[string]string{
123185		"project": c.project,
123186		"region":  c.region,
123187	})
123188	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123189}
123190
123191// Do executes the "compute.regionUrlMaps.list" call.
123192// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
123193// status code is an error. Response headers are in either
123194// *UrlMapList.ServerResponse.Header or (if a response was returned at
123195// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123196// to check whether the returned error was because
123197// http.StatusNotModified was returned.
123198func (c *RegionUrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
123199	gensupport.SetOptions(c.urlParams_, opts...)
123200	res, err := c.doRequest("json")
123201	if res != nil && res.StatusCode == http.StatusNotModified {
123202		if res.Body != nil {
123203			res.Body.Close()
123204		}
123205		return nil, &googleapi.Error{
123206			Code:   res.StatusCode,
123207			Header: res.Header,
123208		}
123209	}
123210	if err != nil {
123211		return nil, err
123212	}
123213	defer googleapi.CloseBody(res)
123214	if err := googleapi.CheckResponse(res); err != nil {
123215		return nil, err
123216	}
123217	ret := &UrlMapList{
123218		ServerResponse: googleapi.ServerResponse{
123219			Header:         res.Header,
123220			HTTPStatusCode: res.StatusCode,
123221		},
123222	}
123223	target := &ret
123224	if err := gensupport.DecodeResponse(target, res); err != nil {
123225		return nil, err
123226	}
123227	return ret, nil
123228	// {
123229	//   "description": "Retrieves the list of UrlMap resources available to the specified project in the specified region.",
123230	//   "httpMethod": "GET",
123231	//   "id": "compute.regionUrlMaps.list",
123232	//   "parameterOrder": [
123233	//     "project",
123234	//     "region"
123235	//   ],
123236	//   "parameters": {
123237	//     "filter": {
123238	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
123239	//       "location": "query",
123240	//       "type": "string"
123241	//     },
123242	//     "maxResults": {
123243	//       "default": "500",
123244	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
123245	//       "format": "uint32",
123246	//       "location": "query",
123247	//       "minimum": "0",
123248	//       "type": "integer"
123249	//     },
123250	//     "orderBy": {
123251	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
123252	//       "location": "query",
123253	//       "type": "string"
123254	//     },
123255	//     "pageToken": {
123256	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
123257	//       "location": "query",
123258	//       "type": "string"
123259	//     },
123260	//     "project": {
123261	//       "description": "Project ID for this request.",
123262	//       "location": "path",
123263	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123264	//       "required": true,
123265	//       "type": "string"
123266	//     },
123267	//     "region": {
123268	//       "description": "Name of the region scoping this request.",
123269	//       "location": "path",
123270	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123271	//       "required": true,
123272	//       "type": "string"
123273	//     }
123274	//   },
123275	//   "path": "{project}/regions/{region}/urlMaps",
123276	//   "response": {
123277	//     "$ref": "UrlMapList"
123278	//   },
123279	//   "scopes": [
123280	//     "https://www.googleapis.com/auth/cloud-platform",
123281	//     "https://www.googleapis.com/auth/compute",
123282	//     "https://www.googleapis.com/auth/compute.readonly"
123283	//   ]
123284	// }
123285
123286}
123287
123288// Pages invokes f for each page of results.
123289// A non-nil error returned from f will halt the iteration.
123290// The provided context supersedes any context provided to the Context method.
123291func (c *RegionUrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
123292	c.ctx_ = ctx
123293	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
123294	for {
123295		x, err := c.Do()
123296		if err != nil {
123297			return err
123298		}
123299		if err := f(x); err != nil {
123300			return err
123301		}
123302		if x.NextPageToken == "" {
123303			return nil
123304		}
123305		c.PageToken(x.NextPageToken)
123306	}
123307}
123308
123309// method id "compute.regionUrlMaps.patch":
123310
123311type RegionUrlMapsPatchCall struct {
123312	s          *Service
123313	project    string
123314	region     string
123315	urlMap     string
123316	urlmap     *UrlMap
123317	urlParams_ gensupport.URLParams
123318	ctx_       context.Context
123319	header_    http.Header
123320}
123321
123322// Patch: Patches the specified UrlMap resource with the data included
123323// in the request. This method supports PATCH semantics and uses JSON
123324// merge patch format and processing rules.
123325func (r *RegionUrlMapsService) Patch(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsPatchCall {
123326	c := &RegionUrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123327	c.project = project
123328	c.region = region
123329	c.urlMap = urlMap
123330	c.urlmap = urlmap
123331	return c
123332}
123333
123334// RequestId sets the optional parameter "requestId": begin_interface:
123335// MixerMutationRequestBuilder Request ID to support idempotency.
123336func (c *RegionUrlMapsPatchCall) RequestId(requestId string) *RegionUrlMapsPatchCall {
123337	c.urlParams_.Set("requestId", requestId)
123338	return c
123339}
123340
123341// Fields allows partial responses to be retrieved. See
123342// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123343// for more information.
123344func (c *RegionUrlMapsPatchCall) Fields(s ...googleapi.Field) *RegionUrlMapsPatchCall {
123345	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123346	return c
123347}
123348
123349// Context sets the context to be used in this call's Do method. Any
123350// pending HTTP request will be aborted if the provided context is
123351// canceled.
123352func (c *RegionUrlMapsPatchCall) Context(ctx context.Context) *RegionUrlMapsPatchCall {
123353	c.ctx_ = ctx
123354	return c
123355}
123356
123357// Header returns an http.Header that can be modified by the caller to
123358// add HTTP headers to the request.
123359func (c *RegionUrlMapsPatchCall) Header() http.Header {
123360	if c.header_ == nil {
123361		c.header_ = make(http.Header)
123362	}
123363	return c.header_
123364}
123365
123366func (c *RegionUrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
123367	reqHeaders := make(http.Header)
123368	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123369	for k, v := range c.header_ {
123370		reqHeaders[k] = v
123371	}
123372	reqHeaders.Set("User-Agent", c.s.userAgent())
123373	var body io.Reader = nil
123374	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
123375	if err != nil {
123376		return nil, err
123377	}
123378	reqHeaders.Set("Content-Type", "application/json")
123379	c.urlParams_.Set("alt", alt)
123380	c.urlParams_.Set("prettyPrint", "false")
123381	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
123382	urls += "?" + c.urlParams_.Encode()
123383	req, err := http.NewRequest("PATCH", urls, body)
123384	if err != nil {
123385		return nil, err
123386	}
123387	req.Header = reqHeaders
123388	googleapi.Expand(req.URL, map[string]string{
123389		"project": c.project,
123390		"region":  c.region,
123391		"urlMap":  c.urlMap,
123392	})
123393	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123394}
123395
123396// Do executes the "compute.regionUrlMaps.patch" call.
123397// Exactly one of *Operation or error will be non-nil. Any non-2xx
123398// status code is an error. Response headers are in either
123399// *Operation.ServerResponse.Header or (if a response was returned at
123400// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123401// to check whether the returned error was because
123402// http.StatusNotModified was returned.
123403func (c *RegionUrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123404	gensupport.SetOptions(c.urlParams_, opts...)
123405	res, err := c.doRequest("json")
123406	if res != nil && res.StatusCode == http.StatusNotModified {
123407		if res.Body != nil {
123408			res.Body.Close()
123409		}
123410		return nil, &googleapi.Error{
123411			Code:   res.StatusCode,
123412			Header: res.Header,
123413		}
123414	}
123415	if err != nil {
123416		return nil, err
123417	}
123418	defer googleapi.CloseBody(res)
123419	if err := googleapi.CheckResponse(res); err != nil {
123420		return nil, err
123421	}
123422	ret := &Operation{
123423		ServerResponse: googleapi.ServerResponse{
123424			Header:         res.Header,
123425			HTTPStatusCode: res.StatusCode,
123426		},
123427	}
123428	target := &ret
123429	if err := gensupport.DecodeResponse(target, res); err != nil {
123430		return nil, err
123431	}
123432	return ret, nil
123433	// {
123434	//   "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.",
123435	//   "httpMethod": "PATCH",
123436	//   "id": "compute.regionUrlMaps.patch",
123437	//   "parameterOrder": [
123438	//     "project",
123439	//     "region",
123440	//     "urlMap"
123441	//   ],
123442	//   "parameters": {
123443	//     "project": {
123444	//       "description": "Project ID for this request.",
123445	//       "location": "path",
123446	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123447	//       "required": true,
123448	//       "type": "string"
123449	//     },
123450	//     "region": {
123451	//       "description": "Name of the region scoping this request.",
123452	//       "location": "path",
123453	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123454	//       "required": true,
123455	//       "type": "string"
123456	//     },
123457	//     "requestId": {
123458	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
123459	//       "location": "query",
123460	//       "type": "string"
123461	//     },
123462	//     "urlMap": {
123463	//       "description": "Name of the UrlMap resource to patch.",
123464	//       "location": "path",
123465	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123466	//       "required": true,
123467	//       "type": "string"
123468	//     }
123469	//   },
123470	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
123471	//   "request": {
123472	//     "$ref": "UrlMap"
123473	//   },
123474	//   "response": {
123475	//     "$ref": "Operation"
123476	//   },
123477	//   "scopes": [
123478	//     "https://www.googleapis.com/auth/cloud-platform",
123479	//     "https://www.googleapis.com/auth/compute"
123480	//   ]
123481	// }
123482
123483}
123484
123485// method id "compute.regionUrlMaps.update":
123486
123487type RegionUrlMapsUpdateCall struct {
123488	s          *Service
123489	project    string
123490	region     string
123491	urlMap     string
123492	urlmap     *UrlMap
123493	urlParams_ gensupport.URLParams
123494	ctx_       context.Context
123495	header_    http.Header
123496}
123497
123498// Update: Updates the specified UrlMap resource with the data included
123499// in the request.
123500func (r *RegionUrlMapsService) Update(project string, region string, urlMap string, urlmap *UrlMap) *RegionUrlMapsUpdateCall {
123501	c := &RegionUrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123502	c.project = project
123503	c.region = region
123504	c.urlMap = urlMap
123505	c.urlmap = urlmap
123506	return c
123507}
123508
123509// RequestId sets the optional parameter "requestId": begin_interface:
123510// MixerMutationRequestBuilder Request ID to support idempotency.
123511func (c *RegionUrlMapsUpdateCall) RequestId(requestId string) *RegionUrlMapsUpdateCall {
123512	c.urlParams_.Set("requestId", requestId)
123513	return c
123514}
123515
123516// Fields allows partial responses to be retrieved. See
123517// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123518// for more information.
123519func (c *RegionUrlMapsUpdateCall) Fields(s ...googleapi.Field) *RegionUrlMapsUpdateCall {
123520	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123521	return c
123522}
123523
123524// Context sets the context to be used in this call's Do method. Any
123525// pending HTTP request will be aborted if the provided context is
123526// canceled.
123527func (c *RegionUrlMapsUpdateCall) Context(ctx context.Context) *RegionUrlMapsUpdateCall {
123528	c.ctx_ = ctx
123529	return c
123530}
123531
123532// Header returns an http.Header that can be modified by the caller to
123533// add HTTP headers to the request.
123534func (c *RegionUrlMapsUpdateCall) Header() http.Header {
123535	if c.header_ == nil {
123536		c.header_ = make(http.Header)
123537	}
123538	return c.header_
123539}
123540
123541func (c *RegionUrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
123542	reqHeaders := make(http.Header)
123543	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123544	for k, v := range c.header_ {
123545		reqHeaders[k] = v
123546	}
123547	reqHeaders.Set("User-Agent", c.s.userAgent())
123548	var body io.Reader = nil
123549	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
123550	if err != nil {
123551		return nil, err
123552	}
123553	reqHeaders.Set("Content-Type", "application/json")
123554	c.urlParams_.Set("alt", alt)
123555	c.urlParams_.Set("prettyPrint", "false")
123556	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}")
123557	urls += "?" + c.urlParams_.Encode()
123558	req, err := http.NewRequest("PUT", urls, body)
123559	if err != nil {
123560		return nil, err
123561	}
123562	req.Header = reqHeaders
123563	googleapi.Expand(req.URL, map[string]string{
123564		"project": c.project,
123565		"region":  c.region,
123566		"urlMap":  c.urlMap,
123567	})
123568	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123569}
123570
123571// Do executes the "compute.regionUrlMaps.update" call.
123572// Exactly one of *Operation or error will be non-nil. Any non-2xx
123573// status code is an error. Response headers are in either
123574// *Operation.ServerResponse.Header or (if a response was returned at
123575// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
123576// to check whether the returned error was because
123577// http.StatusNotModified was returned.
123578func (c *RegionUrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
123579	gensupport.SetOptions(c.urlParams_, opts...)
123580	res, err := c.doRequest("json")
123581	if res != nil && res.StatusCode == http.StatusNotModified {
123582		if res.Body != nil {
123583			res.Body.Close()
123584		}
123585		return nil, &googleapi.Error{
123586			Code:   res.StatusCode,
123587			Header: res.Header,
123588		}
123589	}
123590	if err != nil {
123591		return nil, err
123592	}
123593	defer googleapi.CloseBody(res)
123594	if err := googleapi.CheckResponse(res); err != nil {
123595		return nil, err
123596	}
123597	ret := &Operation{
123598		ServerResponse: googleapi.ServerResponse{
123599			Header:         res.Header,
123600			HTTPStatusCode: res.StatusCode,
123601		},
123602	}
123603	target := &ret
123604	if err := gensupport.DecodeResponse(target, res); err != nil {
123605		return nil, err
123606	}
123607	return ret, nil
123608	// {
123609	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
123610	//   "httpMethod": "PUT",
123611	//   "id": "compute.regionUrlMaps.update",
123612	//   "parameterOrder": [
123613	//     "project",
123614	//     "region",
123615	//     "urlMap"
123616	//   ],
123617	//   "parameters": {
123618	//     "project": {
123619	//       "description": "Project ID for this request.",
123620	//       "location": "path",
123621	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123622	//       "required": true,
123623	//       "type": "string"
123624	//     },
123625	//     "region": {
123626	//       "description": "Name of the region scoping this request.",
123627	//       "location": "path",
123628	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123629	//       "required": true,
123630	//       "type": "string"
123631	//     },
123632	//     "requestId": {
123633	//       "description": "begin_interface: MixerMutationRequestBuilder Request ID to support idempotency.",
123634	//       "location": "query",
123635	//       "type": "string"
123636	//     },
123637	//     "urlMap": {
123638	//       "description": "Name of the UrlMap resource to update.",
123639	//       "location": "path",
123640	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123641	//       "required": true,
123642	//       "type": "string"
123643	//     }
123644	//   },
123645	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}",
123646	//   "request": {
123647	//     "$ref": "UrlMap"
123648	//   },
123649	//   "response": {
123650	//     "$ref": "Operation"
123651	//   },
123652	//   "scopes": [
123653	//     "https://www.googleapis.com/auth/cloud-platform",
123654	//     "https://www.googleapis.com/auth/compute"
123655	//   ]
123656	// }
123657
123658}
123659
123660// method id "compute.regionUrlMaps.validate":
123661
123662type RegionUrlMapsValidateCall struct {
123663	s                            *Service
123664	project                      string
123665	region                       string
123666	urlMap                       string
123667	regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest
123668	urlParams_                   gensupport.URLParams
123669	ctx_                         context.Context
123670	header_                      http.Header
123671}
123672
123673// Validate: Runs static validation for the UrlMap. In particular, the
123674// tests of the provided UrlMap will be run. Calling this method does
123675// NOT create the UrlMap.
123676func (r *RegionUrlMapsService) Validate(project string, region string, urlMap string, regionurlmapsvalidaterequest *RegionUrlMapsValidateRequest) *RegionUrlMapsValidateCall {
123677	c := &RegionUrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123678	c.project = project
123679	c.region = region
123680	c.urlMap = urlMap
123681	c.regionurlmapsvalidaterequest = regionurlmapsvalidaterequest
123682	return c
123683}
123684
123685// Fields allows partial responses to be retrieved. See
123686// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123687// for more information.
123688func (c *RegionUrlMapsValidateCall) Fields(s ...googleapi.Field) *RegionUrlMapsValidateCall {
123689	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123690	return c
123691}
123692
123693// Context sets the context to be used in this call's Do method. Any
123694// pending HTTP request will be aborted if the provided context is
123695// canceled.
123696func (c *RegionUrlMapsValidateCall) Context(ctx context.Context) *RegionUrlMapsValidateCall {
123697	c.ctx_ = ctx
123698	return c
123699}
123700
123701// Header returns an http.Header that can be modified by the caller to
123702// add HTTP headers to the request.
123703func (c *RegionUrlMapsValidateCall) Header() http.Header {
123704	if c.header_ == nil {
123705		c.header_ = make(http.Header)
123706	}
123707	return c.header_
123708}
123709
123710func (c *RegionUrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
123711	reqHeaders := make(http.Header)
123712	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123713	for k, v := range c.header_ {
123714		reqHeaders[k] = v
123715	}
123716	reqHeaders.Set("User-Agent", c.s.userAgent())
123717	var body io.Reader = nil
123718	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionurlmapsvalidaterequest)
123719	if err != nil {
123720		return nil, err
123721	}
123722	reqHeaders.Set("Content-Type", "application/json")
123723	c.urlParams_.Set("alt", alt)
123724	c.urlParams_.Set("prettyPrint", "false")
123725	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/urlMaps/{urlMap}/validate")
123726	urls += "?" + c.urlParams_.Encode()
123727	req, err := http.NewRequest("POST", urls, body)
123728	if err != nil {
123729		return nil, err
123730	}
123731	req.Header = reqHeaders
123732	googleapi.Expand(req.URL, map[string]string{
123733		"project": c.project,
123734		"region":  c.region,
123735		"urlMap":  c.urlMap,
123736	})
123737	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123738}
123739
123740// Do executes the "compute.regionUrlMaps.validate" call.
123741// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
123742// non-2xx status code is an error. Response headers are in either
123743// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
123744// returned at all) in error.(*googleapi.Error).Header. Use
123745// googleapi.IsNotModified to check whether the returned error was
123746// because http.StatusNotModified was returned.
123747func (c *RegionUrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
123748	gensupport.SetOptions(c.urlParams_, opts...)
123749	res, err := c.doRequest("json")
123750	if res != nil && res.StatusCode == http.StatusNotModified {
123751		if res.Body != nil {
123752			res.Body.Close()
123753		}
123754		return nil, &googleapi.Error{
123755			Code:   res.StatusCode,
123756			Header: res.Header,
123757		}
123758	}
123759	if err != nil {
123760		return nil, err
123761	}
123762	defer googleapi.CloseBody(res)
123763	if err := googleapi.CheckResponse(res); err != nil {
123764		return nil, err
123765	}
123766	ret := &UrlMapsValidateResponse{
123767		ServerResponse: googleapi.ServerResponse{
123768			Header:         res.Header,
123769			HTTPStatusCode: res.StatusCode,
123770		},
123771	}
123772	target := &ret
123773	if err := gensupport.DecodeResponse(target, res); err != nil {
123774		return nil, err
123775	}
123776	return ret, nil
123777	// {
123778	//   "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.",
123779	//   "httpMethod": "POST",
123780	//   "id": "compute.regionUrlMaps.validate",
123781	//   "parameterOrder": [
123782	//     "project",
123783	//     "region",
123784	//     "urlMap"
123785	//   ],
123786	//   "parameters": {
123787	//     "project": {
123788	//       "description": "Project ID for this request.",
123789	//       "location": "path",
123790	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123791	//       "required": true,
123792	//       "type": "string"
123793	//     },
123794	//     "region": {
123795	//       "description": "Name of the region scoping this request.",
123796	//       "location": "path",
123797	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
123798	//       "required": true,
123799	//       "type": "string"
123800	//     },
123801	//     "urlMap": {
123802	//       "description": "Name of the UrlMap resource to be validated as.",
123803	//       "location": "path",
123804	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123805	//       "required": true,
123806	//       "type": "string"
123807	//     }
123808	//   },
123809	//   "path": "{project}/regions/{region}/urlMaps/{urlMap}/validate",
123810	//   "request": {
123811	//     "$ref": "RegionUrlMapsValidateRequest"
123812	//   },
123813	//   "response": {
123814	//     "$ref": "UrlMapsValidateResponse"
123815	//   },
123816	//   "scopes": [
123817	//     "https://www.googleapis.com/auth/cloud-platform",
123818	//     "https://www.googleapis.com/auth/compute"
123819	//   ]
123820	// }
123821
123822}
123823
123824// method id "compute.regions.get":
123825
123826type RegionsGetCall struct {
123827	s            *Service
123828	project      string
123829	region       string
123830	urlParams_   gensupport.URLParams
123831	ifNoneMatch_ string
123832	ctx_         context.Context
123833	header_      http.Header
123834}
123835
123836// Get: Returns the specified Region resource. Gets a list of available
123837// regions by making a list() request.
123838// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/get
123839func (r *RegionsService) Get(project string, region string) *RegionsGetCall {
123840	c := &RegionsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123841	c.project = project
123842	c.region = region
123843	return c
123844}
123845
123846// Fields allows partial responses to be retrieved. See
123847// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
123848// for more information.
123849func (c *RegionsGetCall) Fields(s ...googleapi.Field) *RegionsGetCall {
123850	c.urlParams_.Set("fields", googleapi.CombineFields(s))
123851	return c
123852}
123853
123854// IfNoneMatch sets the optional parameter which makes the operation
123855// fail if the object's ETag matches the given value. This is useful for
123856// getting updates only after the object has changed since the last
123857// request. Use googleapi.IsNotModified to check whether the response
123858// error from Do is the result of In-None-Match.
123859func (c *RegionsGetCall) IfNoneMatch(entityTag string) *RegionsGetCall {
123860	c.ifNoneMatch_ = entityTag
123861	return c
123862}
123863
123864// Context sets the context to be used in this call's Do method. Any
123865// pending HTTP request will be aborted if the provided context is
123866// canceled.
123867func (c *RegionsGetCall) Context(ctx context.Context) *RegionsGetCall {
123868	c.ctx_ = ctx
123869	return c
123870}
123871
123872// Header returns an http.Header that can be modified by the caller to
123873// add HTTP headers to the request.
123874func (c *RegionsGetCall) Header() http.Header {
123875	if c.header_ == nil {
123876		c.header_ = make(http.Header)
123877	}
123878	return c.header_
123879}
123880
123881func (c *RegionsGetCall) doRequest(alt string) (*http.Response, error) {
123882	reqHeaders := make(http.Header)
123883	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
123884	for k, v := range c.header_ {
123885		reqHeaders[k] = v
123886	}
123887	reqHeaders.Set("User-Agent", c.s.userAgent())
123888	if c.ifNoneMatch_ != "" {
123889		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
123890	}
123891	var body io.Reader = nil
123892	c.urlParams_.Set("alt", alt)
123893	c.urlParams_.Set("prettyPrint", "false")
123894	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}")
123895	urls += "?" + c.urlParams_.Encode()
123896	req, err := http.NewRequest("GET", urls, body)
123897	if err != nil {
123898		return nil, err
123899	}
123900	req.Header = reqHeaders
123901	googleapi.Expand(req.URL, map[string]string{
123902		"project": c.project,
123903		"region":  c.region,
123904	})
123905	return gensupport.SendRequest(c.ctx_, c.s.client, req)
123906}
123907
123908// Do executes the "compute.regions.get" call.
123909// Exactly one of *Region or error will be non-nil. Any non-2xx status
123910// code is an error. Response headers are in either
123911// *Region.ServerResponse.Header or (if a response was returned at all)
123912// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
123913// check whether the returned error was because http.StatusNotModified
123914// was returned.
123915func (c *RegionsGetCall) Do(opts ...googleapi.CallOption) (*Region, error) {
123916	gensupport.SetOptions(c.urlParams_, opts...)
123917	res, err := c.doRequest("json")
123918	if res != nil && res.StatusCode == http.StatusNotModified {
123919		if res.Body != nil {
123920			res.Body.Close()
123921		}
123922		return nil, &googleapi.Error{
123923			Code:   res.StatusCode,
123924			Header: res.Header,
123925		}
123926	}
123927	if err != nil {
123928		return nil, err
123929	}
123930	defer googleapi.CloseBody(res)
123931	if err := googleapi.CheckResponse(res); err != nil {
123932		return nil, err
123933	}
123934	ret := &Region{
123935		ServerResponse: googleapi.ServerResponse{
123936			Header:         res.Header,
123937			HTTPStatusCode: res.StatusCode,
123938		},
123939	}
123940	target := &ret
123941	if err := gensupport.DecodeResponse(target, res); err != nil {
123942		return nil, err
123943	}
123944	return ret, nil
123945	// {
123946	//   "description": "Returns the specified Region resource. Gets a list of available regions by making a list() request.",
123947	//   "httpMethod": "GET",
123948	//   "id": "compute.regions.get",
123949	//   "parameterOrder": [
123950	//     "project",
123951	//     "region"
123952	//   ],
123953	//   "parameters": {
123954	//     "project": {
123955	//       "description": "Project ID for this request.",
123956	//       "location": "path",
123957	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
123958	//       "required": true,
123959	//       "type": "string"
123960	//     },
123961	//     "region": {
123962	//       "description": "Name of the region resource to return.",
123963	//       "location": "path",
123964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
123965	//       "required": true,
123966	//       "type": "string"
123967	//     }
123968	//   },
123969	//   "path": "{project}/regions/{region}",
123970	//   "response": {
123971	//     "$ref": "Region"
123972	//   },
123973	//   "scopes": [
123974	//     "https://www.googleapis.com/auth/cloud-platform",
123975	//     "https://www.googleapis.com/auth/compute",
123976	//     "https://www.googleapis.com/auth/compute.readonly"
123977	//   ]
123978	// }
123979
123980}
123981
123982// method id "compute.regions.list":
123983
123984type RegionsListCall struct {
123985	s            *Service
123986	project      string
123987	urlParams_   gensupport.URLParams
123988	ifNoneMatch_ string
123989	ctx_         context.Context
123990	header_      http.Header
123991}
123992
123993// List: Retrieves the list of region resources available to the
123994// specified project.
123995// For details, see https://cloud.google.com/compute/docs/reference/latest/regions/list
123996func (r *RegionsService) List(project string) *RegionsListCall {
123997	c := &RegionsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
123998	c.project = project
123999	return c
124000}
124001
124002// Filter sets the optional parameter "filter": A filter expression that
124003// filters resources listed in the response. The expression must specify
124004// the field name, a comparison operator, and the value that you want to
124005// use for filtering. The value must be a string, a number, or a
124006// boolean. The comparison operator must be either =, !=, >, or <.
124007//
124008// For example, if you are filtering Compute Engine instances, you can
124009// exclude instances named example-instance by specifying name !=
124010// example-instance.
124011//
124012// You can also filter nested fields. For example, you could specify
124013// scheduling.automaticRestart = false to include instances only if they
124014// are not scheduled for automatic restarts. You can use filtering on
124015// nested fields to filter based on resource labels.
124016//
124017// To filter on multiple expressions, provide each separate expression
124018// within parentheses. For example, (scheduling.automaticRestart = true)
124019// (cpuPlatform = "Intel Skylake"). By default, each expression is an
124020// AND expression. However, you can include AND and OR expressions
124021// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
124022// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
124023// true).
124024func (c *RegionsListCall) Filter(filter string) *RegionsListCall {
124025	c.urlParams_.Set("filter", filter)
124026	return c
124027}
124028
124029// MaxResults sets the optional parameter "maxResults": The maximum
124030// number of results per page that should be returned. If the number of
124031// available results is larger than maxResults, Compute Engine returns a
124032// nextPageToken that can be used to get the next page of results in
124033// subsequent list requests. Acceptable values are 0 to 500, inclusive.
124034// (Default: 500)
124035func (c *RegionsListCall) MaxResults(maxResults int64) *RegionsListCall {
124036	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124037	return c
124038}
124039
124040// OrderBy sets the optional parameter "orderBy": Sorts list results by
124041// a certain order. By default, results are returned in alphanumerical
124042// order based on the resource name.
124043//
124044// You can also sort results in descending order based on the creation
124045// timestamp using orderBy="creationTimestamp desc". This sorts results
124046// based on the creationTimestamp field in reverse chronological order
124047// (newest result first). Use this to sort resources like operations so
124048// that the newest operation is returned first.
124049//
124050// Currently, only sorting by name or creationTimestamp desc is
124051// supported.
124052func (c *RegionsListCall) OrderBy(orderBy string) *RegionsListCall {
124053	c.urlParams_.Set("orderBy", orderBy)
124054	return c
124055}
124056
124057// PageToken sets the optional parameter "pageToken": Specifies a page
124058// token to use. Set pageToken to the nextPageToken returned by a
124059// previous list request to get the next page of results.
124060func (c *RegionsListCall) PageToken(pageToken string) *RegionsListCall {
124061	c.urlParams_.Set("pageToken", pageToken)
124062	return c
124063}
124064
124065// Fields allows partial responses to be retrieved. See
124066// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124067// for more information.
124068func (c *RegionsListCall) Fields(s ...googleapi.Field) *RegionsListCall {
124069	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124070	return c
124071}
124072
124073// IfNoneMatch sets the optional parameter which makes the operation
124074// fail if the object's ETag matches the given value. This is useful for
124075// getting updates only after the object has changed since the last
124076// request. Use googleapi.IsNotModified to check whether the response
124077// error from Do is the result of In-None-Match.
124078func (c *RegionsListCall) IfNoneMatch(entityTag string) *RegionsListCall {
124079	c.ifNoneMatch_ = entityTag
124080	return c
124081}
124082
124083// Context sets the context to be used in this call's Do method. Any
124084// pending HTTP request will be aborted if the provided context is
124085// canceled.
124086func (c *RegionsListCall) Context(ctx context.Context) *RegionsListCall {
124087	c.ctx_ = ctx
124088	return c
124089}
124090
124091// Header returns an http.Header that can be modified by the caller to
124092// add HTTP headers to the request.
124093func (c *RegionsListCall) Header() http.Header {
124094	if c.header_ == nil {
124095		c.header_ = make(http.Header)
124096	}
124097	return c.header_
124098}
124099
124100func (c *RegionsListCall) doRequest(alt string) (*http.Response, error) {
124101	reqHeaders := make(http.Header)
124102	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124103	for k, v := range c.header_ {
124104		reqHeaders[k] = v
124105	}
124106	reqHeaders.Set("User-Agent", c.s.userAgent())
124107	if c.ifNoneMatch_ != "" {
124108		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124109	}
124110	var body io.Reader = nil
124111	c.urlParams_.Set("alt", alt)
124112	c.urlParams_.Set("prettyPrint", "false")
124113	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions")
124114	urls += "?" + c.urlParams_.Encode()
124115	req, err := http.NewRequest("GET", urls, body)
124116	if err != nil {
124117		return nil, err
124118	}
124119	req.Header = reqHeaders
124120	googleapi.Expand(req.URL, map[string]string{
124121		"project": c.project,
124122	})
124123	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124124}
124125
124126// Do executes the "compute.regions.list" call.
124127// Exactly one of *RegionList or error will be non-nil. Any non-2xx
124128// status code is an error. Response headers are in either
124129// *RegionList.ServerResponse.Header or (if a response was returned at
124130// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124131// to check whether the returned error was because
124132// http.StatusNotModified was returned.
124133func (c *RegionsListCall) Do(opts ...googleapi.CallOption) (*RegionList, error) {
124134	gensupport.SetOptions(c.urlParams_, opts...)
124135	res, err := c.doRequest("json")
124136	if res != nil && res.StatusCode == http.StatusNotModified {
124137		if res.Body != nil {
124138			res.Body.Close()
124139		}
124140		return nil, &googleapi.Error{
124141			Code:   res.StatusCode,
124142			Header: res.Header,
124143		}
124144	}
124145	if err != nil {
124146		return nil, err
124147	}
124148	defer googleapi.CloseBody(res)
124149	if err := googleapi.CheckResponse(res); err != nil {
124150		return nil, err
124151	}
124152	ret := &RegionList{
124153		ServerResponse: googleapi.ServerResponse{
124154			Header:         res.Header,
124155			HTTPStatusCode: res.StatusCode,
124156		},
124157	}
124158	target := &ret
124159	if err := gensupport.DecodeResponse(target, res); err != nil {
124160		return nil, err
124161	}
124162	return ret, nil
124163	// {
124164	//   "description": "Retrieves the list of region resources available to the specified project.",
124165	//   "httpMethod": "GET",
124166	//   "id": "compute.regions.list",
124167	//   "parameterOrder": [
124168	//     "project"
124169	//   ],
124170	//   "parameters": {
124171	//     "filter": {
124172	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
124173	//       "location": "query",
124174	//       "type": "string"
124175	//     },
124176	//     "maxResults": {
124177	//       "default": "500",
124178	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
124179	//       "format": "uint32",
124180	//       "location": "query",
124181	//       "minimum": "0",
124182	//       "type": "integer"
124183	//     },
124184	//     "orderBy": {
124185	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
124186	//       "location": "query",
124187	//       "type": "string"
124188	//     },
124189	//     "pageToken": {
124190	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
124191	//       "location": "query",
124192	//       "type": "string"
124193	//     },
124194	//     "project": {
124195	//       "description": "Project ID for this request.",
124196	//       "location": "path",
124197	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124198	//       "required": true,
124199	//       "type": "string"
124200	//     }
124201	//   },
124202	//   "path": "{project}/regions",
124203	//   "response": {
124204	//     "$ref": "RegionList"
124205	//   },
124206	//   "scopes": [
124207	//     "https://www.googleapis.com/auth/cloud-platform",
124208	//     "https://www.googleapis.com/auth/compute",
124209	//     "https://www.googleapis.com/auth/compute.readonly"
124210	//   ]
124211	// }
124212
124213}
124214
124215// Pages invokes f for each page of results.
124216// A non-nil error returned from f will halt the iteration.
124217// The provided context supersedes any context provided to the Context method.
124218func (c *RegionsListCall) Pages(ctx context.Context, f func(*RegionList) error) error {
124219	c.ctx_ = ctx
124220	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124221	for {
124222		x, err := c.Do()
124223		if err != nil {
124224			return err
124225		}
124226		if err := f(x); err != nil {
124227			return err
124228		}
124229		if x.NextPageToken == "" {
124230			return nil
124231		}
124232		c.PageToken(x.NextPageToken)
124233	}
124234}
124235
124236// method id "compute.reservations.aggregatedList":
124237
124238type ReservationsAggregatedListCall struct {
124239	s            *Service
124240	project      string
124241	urlParams_   gensupport.URLParams
124242	ifNoneMatch_ string
124243	ctx_         context.Context
124244	header_      http.Header
124245}
124246
124247// AggregatedList: Retrieves an aggregated list of reservations.
124248func (r *ReservationsService) AggregatedList(project string) *ReservationsAggregatedListCall {
124249	c := &ReservationsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124250	c.project = project
124251	return c
124252}
124253
124254// Filter sets the optional parameter "filter": A filter expression that
124255// filters resources listed in the response. The expression must specify
124256// the field name, a comparison operator, and the value that you want to
124257// use for filtering. The value must be a string, a number, or a
124258// boolean. The comparison operator must be either =, !=, >, or <.
124259//
124260// For example, if you are filtering Compute Engine instances, you can
124261// exclude instances named example-instance by specifying name !=
124262// example-instance.
124263//
124264// You can also filter nested fields. For example, you could specify
124265// scheduling.automaticRestart = false to include instances only if they
124266// are not scheduled for automatic restarts. You can use filtering on
124267// nested fields to filter based on resource labels.
124268//
124269// To filter on multiple expressions, provide each separate expression
124270// within parentheses. For example, (scheduling.automaticRestart = true)
124271// (cpuPlatform = "Intel Skylake"). By default, each expression is an
124272// AND expression. However, you can include AND and OR expressions
124273// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
124274// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
124275// true).
124276func (c *ReservationsAggregatedListCall) Filter(filter string) *ReservationsAggregatedListCall {
124277	c.urlParams_.Set("filter", filter)
124278	return c
124279}
124280
124281// IncludeAllScopes sets the optional parameter "includeAllScopes":
124282// Indicates whether every visible scope for each scope type (zone,
124283// region, global) should be included in the response. For new resource
124284// types added after this field, the flag has no effect as new resource
124285// types will always include every visible scope for each scope type in
124286// response. For resource types which predate this field, if this flag
124287// is omitted or false, only scopes of the scope types where the
124288// resource type is expected to be found will be included.
124289func (c *ReservationsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ReservationsAggregatedListCall {
124290	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
124291	return c
124292}
124293
124294// MaxResults sets the optional parameter "maxResults": The maximum
124295// number of results per page that should be returned. If the number of
124296// available results is larger than maxResults, Compute Engine returns a
124297// nextPageToken that can be used to get the next page of results in
124298// subsequent list requests. Acceptable values are 0 to 500, inclusive.
124299// (Default: 500)
124300func (c *ReservationsAggregatedListCall) MaxResults(maxResults int64) *ReservationsAggregatedListCall {
124301	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
124302	return c
124303}
124304
124305// OrderBy sets the optional parameter "orderBy": Sorts list results by
124306// a certain order. By default, results are returned in alphanumerical
124307// order based on the resource name.
124308//
124309// You can also sort results in descending order based on the creation
124310// timestamp using orderBy="creationTimestamp desc". This sorts results
124311// based on the creationTimestamp field in reverse chronological order
124312// (newest result first). Use this to sort resources like operations so
124313// that the newest operation is returned first.
124314//
124315// Currently, only sorting by name or creationTimestamp desc is
124316// supported.
124317func (c *ReservationsAggregatedListCall) OrderBy(orderBy string) *ReservationsAggregatedListCall {
124318	c.urlParams_.Set("orderBy", orderBy)
124319	return c
124320}
124321
124322// PageToken sets the optional parameter "pageToken": Specifies a page
124323// token to use. Set pageToken to the nextPageToken returned by a
124324// previous list request to get the next page of results.
124325func (c *ReservationsAggregatedListCall) PageToken(pageToken string) *ReservationsAggregatedListCall {
124326	c.urlParams_.Set("pageToken", pageToken)
124327	return c
124328}
124329
124330// Fields allows partial responses to be retrieved. See
124331// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124332// for more information.
124333func (c *ReservationsAggregatedListCall) Fields(s ...googleapi.Field) *ReservationsAggregatedListCall {
124334	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124335	return c
124336}
124337
124338// IfNoneMatch sets the optional parameter which makes the operation
124339// fail if the object's ETag matches the given value. This is useful for
124340// getting updates only after the object has changed since the last
124341// request. Use googleapi.IsNotModified to check whether the response
124342// error from Do is the result of In-None-Match.
124343func (c *ReservationsAggregatedListCall) IfNoneMatch(entityTag string) *ReservationsAggregatedListCall {
124344	c.ifNoneMatch_ = entityTag
124345	return c
124346}
124347
124348// Context sets the context to be used in this call's Do method. Any
124349// pending HTTP request will be aborted if the provided context is
124350// canceled.
124351func (c *ReservationsAggregatedListCall) Context(ctx context.Context) *ReservationsAggregatedListCall {
124352	c.ctx_ = ctx
124353	return c
124354}
124355
124356// Header returns an http.Header that can be modified by the caller to
124357// add HTTP headers to the request.
124358func (c *ReservationsAggregatedListCall) Header() http.Header {
124359	if c.header_ == nil {
124360		c.header_ = make(http.Header)
124361	}
124362	return c.header_
124363}
124364
124365func (c *ReservationsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
124366	reqHeaders := make(http.Header)
124367	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124368	for k, v := range c.header_ {
124369		reqHeaders[k] = v
124370	}
124371	reqHeaders.Set("User-Agent", c.s.userAgent())
124372	if c.ifNoneMatch_ != "" {
124373		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124374	}
124375	var body io.Reader = nil
124376	c.urlParams_.Set("alt", alt)
124377	c.urlParams_.Set("prettyPrint", "false")
124378	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/reservations")
124379	urls += "?" + c.urlParams_.Encode()
124380	req, err := http.NewRequest("GET", urls, body)
124381	if err != nil {
124382		return nil, err
124383	}
124384	req.Header = reqHeaders
124385	googleapi.Expand(req.URL, map[string]string{
124386		"project": c.project,
124387	})
124388	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124389}
124390
124391// Do executes the "compute.reservations.aggregatedList" call.
124392// Exactly one of *ReservationAggregatedList or error will be non-nil.
124393// Any non-2xx status code is an error. Response headers are in either
124394// *ReservationAggregatedList.ServerResponse.Header or (if a response
124395// was returned at all) in error.(*googleapi.Error).Header. Use
124396// googleapi.IsNotModified to check whether the returned error was
124397// because http.StatusNotModified was returned.
124398func (c *ReservationsAggregatedListCall) Do(opts ...googleapi.CallOption) (*ReservationAggregatedList, error) {
124399	gensupport.SetOptions(c.urlParams_, opts...)
124400	res, err := c.doRequest("json")
124401	if res != nil && res.StatusCode == http.StatusNotModified {
124402		if res.Body != nil {
124403			res.Body.Close()
124404		}
124405		return nil, &googleapi.Error{
124406			Code:   res.StatusCode,
124407			Header: res.Header,
124408		}
124409	}
124410	if err != nil {
124411		return nil, err
124412	}
124413	defer googleapi.CloseBody(res)
124414	if err := googleapi.CheckResponse(res); err != nil {
124415		return nil, err
124416	}
124417	ret := &ReservationAggregatedList{
124418		ServerResponse: googleapi.ServerResponse{
124419			Header:         res.Header,
124420			HTTPStatusCode: res.StatusCode,
124421		},
124422	}
124423	target := &ret
124424	if err := gensupport.DecodeResponse(target, res); err != nil {
124425		return nil, err
124426	}
124427	return ret, nil
124428	// {
124429	//   "description": "Retrieves an aggregated list of reservations.",
124430	//   "httpMethod": "GET",
124431	//   "id": "compute.reservations.aggregatedList",
124432	//   "parameterOrder": [
124433	//     "project"
124434	//   ],
124435	//   "parameters": {
124436	//     "filter": {
124437	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
124438	//       "location": "query",
124439	//       "type": "string"
124440	//     },
124441	//     "includeAllScopes": {
124442	//       "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.",
124443	//       "location": "query",
124444	//       "type": "boolean"
124445	//     },
124446	//     "maxResults": {
124447	//       "default": "500",
124448	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
124449	//       "format": "uint32",
124450	//       "location": "query",
124451	//       "minimum": "0",
124452	//       "type": "integer"
124453	//     },
124454	//     "orderBy": {
124455	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
124456	//       "location": "query",
124457	//       "type": "string"
124458	//     },
124459	//     "pageToken": {
124460	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
124461	//       "location": "query",
124462	//       "type": "string"
124463	//     },
124464	//     "project": {
124465	//       "description": "Project ID for this request.",
124466	//       "location": "path",
124467	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124468	//       "required": true,
124469	//       "type": "string"
124470	//     }
124471	//   },
124472	//   "path": "{project}/aggregated/reservations",
124473	//   "response": {
124474	//     "$ref": "ReservationAggregatedList"
124475	//   },
124476	//   "scopes": [
124477	//     "https://www.googleapis.com/auth/cloud-platform",
124478	//     "https://www.googleapis.com/auth/compute",
124479	//     "https://www.googleapis.com/auth/compute.readonly"
124480	//   ]
124481	// }
124482
124483}
124484
124485// Pages invokes f for each page of results.
124486// A non-nil error returned from f will halt the iteration.
124487// The provided context supersedes any context provided to the Context method.
124488func (c *ReservationsAggregatedListCall) Pages(ctx context.Context, f func(*ReservationAggregatedList) error) error {
124489	c.ctx_ = ctx
124490	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
124491	for {
124492		x, err := c.Do()
124493		if err != nil {
124494			return err
124495		}
124496		if err := f(x); err != nil {
124497			return err
124498		}
124499		if x.NextPageToken == "" {
124500			return nil
124501		}
124502		c.PageToken(x.NextPageToken)
124503	}
124504}
124505
124506// method id "compute.reservations.delete":
124507
124508type ReservationsDeleteCall struct {
124509	s           *Service
124510	project     string
124511	zone        string
124512	reservation string
124513	urlParams_  gensupport.URLParams
124514	ctx_        context.Context
124515	header_     http.Header
124516}
124517
124518// Delete: Deletes the specified reservation.
124519func (r *ReservationsService) Delete(project string, zone string, reservation string) *ReservationsDeleteCall {
124520	c := &ReservationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124521	c.project = project
124522	c.zone = zone
124523	c.reservation = reservation
124524	return c
124525}
124526
124527// RequestId sets the optional parameter "requestId": An optional
124528// request ID to identify requests. Specify a unique request ID so that
124529// if you must retry your request, the server will know to ignore the
124530// request if it has already been completed.
124531//
124532// For example, consider a situation where you make an initial request
124533// and the request times out. If you make the request again with the
124534// same request ID, the server can check if original operation with the
124535// same request ID was received, and if so, will ignore the second
124536// request. This prevents clients from accidentally creating duplicate
124537// commitments.
124538//
124539// The request ID must be a valid UUID with the exception that zero UUID
124540// is not supported (00000000-0000-0000-0000-000000000000).
124541func (c *ReservationsDeleteCall) RequestId(requestId string) *ReservationsDeleteCall {
124542	c.urlParams_.Set("requestId", requestId)
124543	return c
124544}
124545
124546// Fields allows partial responses to be retrieved. See
124547// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124548// for more information.
124549func (c *ReservationsDeleteCall) Fields(s ...googleapi.Field) *ReservationsDeleteCall {
124550	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124551	return c
124552}
124553
124554// Context sets the context to be used in this call's Do method. Any
124555// pending HTTP request will be aborted if the provided context is
124556// canceled.
124557func (c *ReservationsDeleteCall) Context(ctx context.Context) *ReservationsDeleteCall {
124558	c.ctx_ = ctx
124559	return c
124560}
124561
124562// Header returns an http.Header that can be modified by the caller to
124563// add HTTP headers to the request.
124564func (c *ReservationsDeleteCall) Header() http.Header {
124565	if c.header_ == nil {
124566		c.header_ = make(http.Header)
124567	}
124568	return c.header_
124569}
124570
124571func (c *ReservationsDeleteCall) doRequest(alt string) (*http.Response, error) {
124572	reqHeaders := make(http.Header)
124573	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124574	for k, v := range c.header_ {
124575		reqHeaders[k] = v
124576	}
124577	reqHeaders.Set("User-Agent", c.s.userAgent())
124578	var body io.Reader = nil
124579	c.urlParams_.Set("alt", alt)
124580	c.urlParams_.Set("prettyPrint", "false")
124581	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
124582	urls += "?" + c.urlParams_.Encode()
124583	req, err := http.NewRequest("DELETE", urls, body)
124584	if err != nil {
124585		return nil, err
124586	}
124587	req.Header = reqHeaders
124588	googleapi.Expand(req.URL, map[string]string{
124589		"project":     c.project,
124590		"zone":        c.zone,
124591		"reservation": c.reservation,
124592	})
124593	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124594}
124595
124596// Do executes the "compute.reservations.delete" call.
124597// Exactly one of *Operation or error will be non-nil. Any non-2xx
124598// status code is an error. Response headers are in either
124599// *Operation.ServerResponse.Header or (if a response was returned at
124600// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124601// to check whether the returned error was because
124602// http.StatusNotModified was returned.
124603func (c *ReservationsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
124604	gensupport.SetOptions(c.urlParams_, opts...)
124605	res, err := c.doRequest("json")
124606	if res != nil && res.StatusCode == http.StatusNotModified {
124607		if res.Body != nil {
124608			res.Body.Close()
124609		}
124610		return nil, &googleapi.Error{
124611			Code:   res.StatusCode,
124612			Header: res.Header,
124613		}
124614	}
124615	if err != nil {
124616		return nil, err
124617	}
124618	defer googleapi.CloseBody(res)
124619	if err := googleapi.CheckResponse(res); err != nil {
124620		return nil, err
124621	}
124622	ret := &Operation{
124623		ServerResponse: googleapi.ServerResponse{
124624			Header:         res.Header,
124625			HTTPStatusCode: res.StatusCode,
124626		},
124627	}
124628	target := &ret
124629	if err := gensupport.DecodeResponse(target, res); err != nil {
124630		return nil, err
124631	}
124632	return ret, nil
124633	// {
124634	//   "description": "Deletes the specified reservation.",
124635	//   "httpMethod": "DELETE",
124636	//   "id": "compute.reservations.delete",
124637	//   "parameterOrder": [
124638	//     "project",
124639	//     "zone",
124640	//     "reservation"
124641	//   ],
124642	//   "parameters": {
124643	//     "project": {
124644	//       "description": "Project ID for this request.",
124645	//       "location": "path",
124646	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124647	//       "required": true,
124648	//       "type": "string"
124649	//     },
124650	//     "requestId": {
124651	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
124652	//       "location": "query",
124653	//       "type": "string"
124654	//     },
124655	//     "reservation": {
124656	//       "description": "Name of the reservation to delete.",
124657	//       "location": "path",
124658	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124659	//       "required": true,
124660	//       "type": "string"
124661	//     },
124662	//     "zone": {
124663	//       "description": "Name of the zone for this request.",
124664	//       "location": "path",
124665	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124666	//       "required": true,
124667	//       "type": "string"
124668	//     }
124669	//   },
124670	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
124671	//   "response": {
124672	//     "$ref": "Operation"
124673	//   },
124674	//   "scopes": [
124675	//     "https://www.googleapis.com/auth/cloud-platform",
124676	//     "https://www.googleapis.com/auth/compute"
124677	//   ]
124678	// }
124679
124680}
124681
124682// method id "compute.reservations.get":
124683
124684type ReservationsGetCall struct {
124685	s            *Service
124686	project      string
124687	zone         string
124688	reservation  string
124689	urlParams_   gensupport.URLParams
124690	ifNoneMatch_ string
124691	ctx_         context.Context
124692	header_      http.Header
124693}
124694
124695// Get: Retrieves information about the specified reservation.
124696func (r *ReservationsService) Get(project string, zone string, reservation string) *ReservationsGetCall {
124697	c := &ReservationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124698	c.project = project
124699	c.zone = zone
124700	c.reservation = reservation
124701	return c
124702}
124703
124704// Fields allows partial responses to be retrieved. See
124705// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124706// for more information.
124707func (c *ReservationsGetCall) Fields(s ...googleapi.Field) *ReservationsGetCall {
124708	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124709	return c
124710}
124711
124712// IfNoneMatch sets the optional parameter which makes the operation
124713// fail if the object's ETag matches the given value. This is useful for
124714// getting updates only after the object has changed since the last
124715// request. Use googleapi.IsNotModified to check whether the response
124716// error from Do is the result of In-None-Match.
124717func (c *ReservationsGetCall) IfNoneMatch(entityTag string) *ReservationsGetCall {
124718	c.ifNoneMatch_ = entityTag
124719	return c
124720}
124721
124722// Context sets the context to be used in this call's Do method. Any
124723// pending HTTP request will be aborted if the provided context is
124724// canceled.
124725func (c *ReservationsGetCall) Context(ctx context.Context) *ReservationsGetCall {
124726	c.ctx_ = ctx
124727	return c
124728}
124729
124730// Header returns an http.Header that can be modified by the caller to
124731// add HTTP headers to the request.
124732func (c *ReservationsGetCall) Header() http.Header {
124733	if c.header_ == nil {
124734		c.header_ = make(http.Header)
124735	}
124736	return c.header_
124737}
124738
124739func (c *ReservationsGetCall) doRequest(alt string) (*http.Response, error) {
124740	reqHeaders := make(http.Header)
124741	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124742	for k, v := range c.header_ {
124743		reqHeaders[k] = v
124744	}
124745	reqHeaders.Set("User-Agent", c.s.userAgent())
124746	if c.ifNoneMatch_ != "" {
124747		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124748	}
124749	var body io.Reader = nil
124750	c.urlParams_.Set("alt", alt)
124751	c.urlParams_.Set("prettyPrint", "false")
124752	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}")
124753	urls += "?" + c.urlParams_.Encode()
124754	req, err := http.NewRequest("GET", urls, body)
124755	if err != nil {
124756		return nil, err
124757	}
124758	req.Header = reqHeaders
124759	googleapi.Expand(req.URL, map[string]string{
124760		"project":     c.project,
124761		"zone":        c.zone,
124762		"reservation": c.reservation,
124763	})
124764	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124765}
124766
124767// Do executes the "compute.reservations.get" call.
124768// Exactly one of *Reservation or error will be non-nil. Any non-2xx
124769// status code is an error. Response headers are in either
124770// *Reservation.ServerResponse.Header or (if a response was returned at
124771// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
124772// to check whether the returned error was because
124773// http.StatusNotModified was returned.
124774func (c *ReservationsGetCall) Do(opts ...googleapi.CallOption) (*Reservation, error) {
124775	gensupport.SetOptions(c.urlParams_, opts...)
124776	res, err := c.doRequest("json")
124777	if res != nil && res.StatusCode == http.StatusNotModified {
124778		if res.Body != nil {
124779			res.Body.Close()
124780		}
124781		return nil, &googleapi.Error{
124782			Code:   res.StatusCode,
124783			Header: res.Header,
124784		}
124785	}
124786	if err != nil {
124787		return nil, err
124788	}
124789	defer googleapi.CloseBody(res)
124790	if err := googleapi.CheckResponse(res); err != nil {
124791		return nil, err
124792	}
124793	ret := &Reservation{
124794		ServerResponse: googleapi.ServerResponse{
124795			Header:         res.Header,
124796			HTTPStatusCode: res.StatusCode,
124797		},
124798	}
124799	target := &ret
124800	if err := gensupport.DecodeResponse(target, res); err != nil {
124801		return nil, err
124802	}
124803	return ret, nil
124804	// {
124805	//   "description": "Retrieves information about the specified reservation.",
124806	//   "httpMethod": "GET",
124807	//   "id": "compute.reservations.get",
124808	//   "parameterOrder": [
124809	//     "project",
124810	//     "zone",
124811	//     "reservation"
124812	//   ],
124813	//   "parameters": {
124814	//     "project": {
124815	//       "description": "Project ID for this request.",
124816	//       "location": "path",
124817	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124818	//       "required": true,
124819	//       "type": "string"
124820	//     },
124821	//     "reservation": {
124822	//       "description": "Name of the reservation to retrieve.",
124823	//       "location": "path",
124824	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
124825	//       "required": true,
124826	//       "type": "string"
124827	//     },
124828	//     "zone": {
124829	//       "description": "Name of the zone for this request.",
124830	//       "location": "path",
124831	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
124832	//       "required": true,
124833	//       "type": "string"
124834	//     }
124835	//   },
124836	//   "path": "{project}/zones/{zone}/reservations/{reservation}",
124837	//   "response": {
124838	//     "$ref": "Reservation"
124839	//   },
124840	//   "scopes": [
124841	//     "https://www.googleapis.com/auth/cloud-platform",
124842	//     "https://www.googleapis.com/auth/compute",
124843	//     "https://www.googleapis.com/auth/compute.readonly"
124844	//   ]
124845	// }
124846
124847}
124848
124849// method id "compute.reservations.getIamPolicy":
124850
124851type ReservationsGetIamPolicyCall struct {
124852	s            *Service
124853	project      string
124854	zone         string
124855	resource     string
124856	urlParams_   gensupport.URLParams
124857	ifNoneMatch_ string
124858	ctx_         context.Context
124859	header_      http.Header
124860}
124861
124862// GetIamPolicy: Gets the access control policy for a resource. May be
124863// empty if no such policy or resource exists.
124864func (r *ReservationsService) GetIamPolicy(project string, zone string, resource string) *ReservationsGetIamPolicyCall {
124865	c := &ReservationsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
124866	c.project = project
124867	c.zone = zone
124868	c.resource = resource
124869	return c
124870}
124871
124872// OptionsRequestedPolicyVersion sets the optional parameter
124873// "optionsRequestedPolicyVersion": Requested IAM Policy version.
124874func (c *ReservationsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ReservationsGetIamPolicyCall {
124875	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
124876	return c
124877}
124878
124879// Fields allows partial responses to be retrieved. See
124880// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
124881// for more information.
124882func (c *ReservationsGetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsGetIamPolicyCall {
124883	c.urlParams_.Set("fields", googleapi.CombineFields(s))
124884	return c
124885}
124886
124887// IfNoneMatch sets the optional parameter which makes the operation
124888// fail if the object's ETag matches the given value. This is useful for
124889// getting updates only after the object has changed since the last
124890// request. Use googleapi.IsNotModified to check whether the response
124891// error from Do is the result of In-None-Match.
124892func (c *ReservationsGetIamPolicyCall) IfNoneMatch(entityTag string) *ReservationsGetIamPolicyCall {
124893	c.ifNoneMatch_ = entityTag
124894	return c
124895}
124896
124897// Context sets the context to be used in this call's Do method. Any
124898// pending HTTP request will be aborted if the provided context is
124899// canceled.
124900func (c *ReservationsGetIamPolicyCall) Context(ctx context.Context) *ReservationsGetIamPolicyCall {
124901	c.ctx_ = ctx
124902	return c
124903}
124904
124905// Header returns an http.Header that can be modified by the caller to
124906// add HTTP headers to the request.
124907func (c *ReservationsGetIamPolicyCall) Header() http.Header {
124908	if c.header_ == nil {
124909		c.header_ = make(http.Header)
124910	}
124911	return c.header_
124912}
124913
124914func (c *ReservationsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
124915	reqHeaders := make(http.Header)
124916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
124917	for k, v := range c.header_ {
124918		reqHeaders[k] = v
124919	}
124920	reqHeaders.Set("User-Agent", c.s.userAgent())
124921	if c.ifNoneMatch_ != "" {
124922		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
124923	}
124924	var body io.Reader = nil
124925	c.urlParams_.Set("alt", alt)
124926	c.urlParams_.Set("prettyPrint", "false")
124927	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/getIamPolicy")
124928	urls += "?" + c.urlParams_.Encode()
124929	req, err := http.NewRequest("GET", urls, body)
124930	if err != nil {
124931		return nil, err
124932	}
124933	req.Header = reqHeaders
124934	googleapi.Expand(req.URL, map[string]string{
124935		"project":  c.project,
124936		"zone":     c.zone,
124937		"resource": c.resource,
124938	})
124939	return gensupport.SendRequest(c.ctx_, c.s.client, req)
124940}
124941
124942// Do executes the "compute.reservations.getIamPolicy" call.
124943// Exactly one of *Policy or error will be non-nil. Any non-2xx status
124944// code is an error. Response headers are in either
124945// *Policy.ServerResponse.Header or (if a response was returned at all)
124946// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
124947// check whether the returned error was because http.StatusNotModified
124948// was returned.
124949func (c *ReservationsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
124950	gensupport.SetOptions(c.urlParams_, opts...)
124951	res, err := c.doRequest("json")
124952	if res != nil && res.StatusCode == http.StatusNotModified {
124953		if res.Body != nil {
124954			res.Body.Close()
124955		}
124956		return nil, &googleapi.Error{
124957			Code:   res.StatusCode,
124958			Header: res.Header,
124959		}
124960	}
124961	if err != nil {
124962		return nil, err
124963	}
124964	defer googleapi.CloseBody(res)
124965	if err := googleapi.CheckResponse(res); err != nil {
124966		return nil, err
124967	}
124968	ret := &Policy{
124969		ServerResponse: googleapi.ServerResponse{
124970			Header:         res.Header,
124971			HTTPStatusCode: res.StatusCode,
124972		},
124973	}
124974	target := &ret
124975	if err := gensupport.DecodeResponse(target, res); err != nil {
124976		return nil, err
124977	}
124978	return ret, nil
124979	// {
124980	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
124981	//   "httpMethod": "GET",
124982	//   "id": "compute.reservations.getIamPolicy",
124983	//   "parameterOrder": [
124984	//     "project",
124985	//     "zone",
124986	//     "resource"
124987	//   ],
124988	//   "parameters": {
124989	//     "optionsRequestedPolicyVersion": {
124990	//       "description": "Requested IAM Policy version.",
124991	//       "format": "int32",
124992	//       "location": "query",
124993	//       "type": "integer"
124994	//     },
124995	//     "project": {
124996	//       "description": "Project ID for this request.",
124997	//       "location": "path",
124998	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
124999	//       "required": true,
125000	//       "type": "string"
125001	//     },
125002	//     "resource": {
125003	//       "description": "Name or id of the resource for this request.",
125004	//       "location": "path",
125005	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125006	//       "required": true,
125007	//       "type": "string"
125008	//     },
125009	//     "zone": {
125010	//       "description": "The name of the zone for this request.",
125011	//       "location": "path",
125012	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125013	//       "required": true,
125014	//       "type": "string"
125015	//     }
125016	//   },
125017	//   "path": "{project}/zones/{zone}/reservations/{resource}/getIamPolicy",
125018	//   "response": {
125019	//     "$ref": "Policy"
125020	//   },
125021	//   "scopes": [
125022	//     "https://www.googleapis.com/auth/cloud-platform",
125023	//     "https://www.googleapis.com/auth/compute",
125024	//     "https://www.googleapis.com/auth/compute.readonly"
125025	//   ]
125026	// }
125027
125028}
125029
125030// method id "compute.reservations.insert":
125031
125032type ReservationsInsertCall struct {
125033	s           *Service
125034	project     string
125035	zone        string
125036	reservation *Reservation
125037	urlParams_  gensupport.URLParams
125038	ctx_        context.Context
125039	header_     http.Header
125040}
125041
125042// Insert: Creates a new reservation. For more information, read
125043// Reserving zonal resources.
125044func (r *ReservationsService) Insert(project string, zone string, reservation *Reservation) *ReservationsInsertCall {
125045	c := &ReservationsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125046	c.project = project
125047	c.zone = zone
125048	c.reservation = reservation
125049	return c
125050}
125051
125052// RequestId sets the optional parameter "requestId": An optional
125053// request ID to identify requests. Specify a unique request ID so that
125054// if you must retry your request, the server will know to ignore the
125055// request if it has already been completed.
125056//
125057// For example, consider a situation where you make an initial request
125058// and the request times out. If you make the request again with the
125059// same request ID, the server can check if original operation with the
125060// same request ID was received, and if so, will ignore the second
125061// request. This prevents clients from accidentally creating duplicate
125062// commitments.
125063//
125064// The request ID must be a valid UUID with the exception that zero UUID
125065// is not supported (00000000-0000-0000-0000-000000000000).
125066func (c *ReservationsInsertCall) RequestId(requestId string) *ReservationsInsertCall {
125067	c.urlParams_.Set("requestId", requestId)
125068	return c
125069}
125070
125071// Fields allows partial responses to be retrieved. See
125072// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125073// for more information.
125074func (c *ReservationsInsertCall) Fields(s ...googleapi.Field) *ReservationsInsertCall {
125075	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125076	return c
125077}
125078
125079// Context sets the context to be used in this call's Do method. Any
125080// pending HTTP request will be aborted if the provided context is
125081// canceled.
125082func (c *ReservationsInsertCall) Context(ctx context.Context) *ReservationsInsertCall {
125083	c.ctx_ = ctx
125084	return c
125085}
125086
125087// Header returns an http.Header that can be modified by the caller to
125088// add HTTP headers to the request.
125089func (c *ReservationsInsertCall) Header() http.Header {
125090	if c.header_ == nil {
125091		c.header_ = make(http.Header)
125092	}
125093	return c.header_
125094}
125095
125096func (c *ReservationsInsertCall) doRequest(alt string) (*http.Response, error) {
125097	reqHeaders := make(http.Header)
125098	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125099	for k, v := range c.header_ {
125100		reqHeaders[k] = v
125101	}
125102	reqHeaders.Set("User-Agent", c.s.userAgent())
125103	var body io.Reader = nil
125104	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservation)
125105	if err != nil {
125106		return nil, err
125107	}
125108	reqHeaders.Set("Content-Type", "application/json")
125109	c.urlParams_.Set("alt", alt)
125110	c.urlParams_.Set("prettyPrint", "false")
125111	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
125112	urls += "?" + c.urlParams_.Encode()
125113	req, err := http.NewRequest("POST", urls, body)
125114	if err != nil {
125115		return nil, err
125116	}
125117	req.Header = reqHeaders
125118	googleapi.Expand(req.URL, map[string]string{
125119		"project": c.project,
125120		"zone":    c.zone,
125121	})
125122	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125123}
125124
125125// Do executes the "compute.reservations.insert" call.
125126// Exactly one of *Operation or error will be non-nil. Any non-2xx
125127// status code is an error. Response headers are in either
125128// *Operation.ServerResponse.Header or (if a response was returned at
125129// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125130// to check whether the returned error was because
125131// http.StatusNotModified was returned.
125132func (c *ReservationsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125133	gensupport.SetOptions(c.urlParams_, opts...)
125134	res, err := c.doRequest("json")
125135	if res != nil && res.StatusCode == http.StatusNotModified {
125136		if res.Body != nil {
125137			res.Body.Close()
125138		}
125139		return nil, &googleapi.Error{
125140			Code:   res.StatusCode,
125141			Header: res.Header,
125142		}
125143	}
125144	if err != nil {
125145		return nil, err
125146	}
125147	defer googleapi.CloseBody(res)
125148	if err := googleapi.CheckResponse(res); err != nil {
125149		return nil, err
125150	}
125151	ret := &Operation{
125152		ServerResponse: googleapi.ServerResponse{
125153			Header:         res.Header,
125154			HTTPStatusCode: res.StatusCode,
125155		},
125156	}
125157	target := &ret
125158	if err := gensupport.DecodeResponse(target, res); err != nil {
125159		return nil, err
125160	}
125161	return ret, nil
125162	// {
125163	//   "description": "Creates a new reservation. For more information, read Reserving zonal resources.",
125164	//   "httpMethod": "POST",
125165	//   "id": "compute.reservations.insert",
125166	//   "parameterOrder": [
125167	//     "project",
125168	//     "zone"
125169	//   ],
125170	//   "parameters": {
125171	//     "project": {
125172	//       "description": "Project ID for this request.",
125173	//       "location": "path",
125174	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125175	//       "required": true,
125176	//       "type": "string"
125177	//     },
125178	//     "requestId": {
125179	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125180	//       "location": "query",
125181	//       "type": "string"
125182	//     },
125183	//     "zone": {
125184	//       "description": "Name of the zone for this request.",
125185	//       "location": "path",
125186	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125187	//       "required": true,
125188	//       "type": "string"
125189	//     }
125190	//   },
125191	//   "path": "{project}/zones/{zone}/reservations",
125192	//   "request": {
125193	//     "$ref": "Reservation"
125194	//   },
125195	//   "response": {
125196	//     "$ref": "Operation"
125197	//   },
125198	//   "scopes": [
125199	//     "https://www.googleapis.com/auth/cloud-platform",
125200	//     "https://www.googleapis.com/auth/compute"
125201	//   ]
125202	// }
125203
125204}
125205
125206// method id "compute.reservations.list":
125207
125208type ReservationsListCall struct {
125209	s            *Service
125210	project      string
125211	zone         string
125212	urlParams_   gensupport.URLParams
125213	ifNoneMatch_ string
125214	ctx_         context.Context
125215	header_      http.Header
125216}
125217
125218// List: A list of all the reservations that have been configured for
125219// the specified project in specified zone.
125220func (r *ReservationsService) List(project string, zone string) *ReservationsListCall {
125221	c := &ReservationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125222	c.project = project
125223	c.zone = zone
125224	return c
125225}
125226
125227// Filter sets the optional parameter "filter": A filter expression that
125228// filters resources listed in the response. The expression must specify
125229// the field name, a comparison operator, and the value that you want to
125230// use for filtering. The value must be a string, a number, or a
125231// boolean. The comparison operator must be either =, !=, >, or <.
125232//
125233// For example, if you are filtering Compute Engine instances, you can
125234// exclude instances named example-instance by specifying name !=
125235// example-instance.
125236//
125237// You can also filter nested fields. For example, you could specify
125238// scheduling.automaticRestart = false to include instances only if they
125239// are not scheduled for automatic restarts. You can use filtering on
125240// nested fields to filter based on resource labels.
125241//
125242// To filter on multiple expressions, provide each separate expression
125243// within parentheses. For example, (scheduling.automaticRestart = true)
125244// (cpuPlatform = "Intel Skylake"). By default, each expression is an
125245// AND expression. However, you can include AND and OR expressions
125246// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
125247// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
125248// true).
125249func (c *ReservationsListCall) Filter(filter string) *ReservationsListCall {
125250	c.urlParams_.Set("filter", filter)
125251	return c
125252}
125253
125254// MaxResults sets the optional parameter "maxResults": The maximum
125255// number of results per page that should be returned. If the number of
125256// available results is larger than maxResults, Compute Engine returns a
125257// nextPageToken that can be used to get the next page of results in
125258// subsequent list requests. Acceptable values are 0 to 500, inclusive.
125259// (Default: 500)
125260func (c *ReservationsListCall) MaxResults(maxResults int64) *ReservationsListCall {
125261	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
125262	return c
125263}
125264
125265// OrderBy sets the optional parameter "orderBy": Sorts list results by
125266// a certain order. By default, results are returned in alphanumerical
125267// order based on the resource name.
125268//
125269// You can also sort results in descending order based on the creation
125270// timestamp using orderBy="creationTimestamp desc". This sorts results
125271// based on the creationTimestamp field in reverse chronological order
125272// (newest result first). Use this to sort resources like operations so
125273// that the newest operation is returned first.
125274//
125275// Currently, only sorting by name or creationTimestamp desc is
125276// supported.
125277func (c *ReservationsListCall) OrderBy(orderBy string) *ReservationsListCall {
125278	c.urlParams_.Set("orderBy", orderBy)
125279	return c
125280}
125281
125282// PageToken sets the optional parameter "pageToken": Specifies a page
125283// token to use. Set pageToken to the nextPageToken returned by a
125284// previous list request to get the next page of results.
125285func (c *ReservationsListCall) PageToken(pageToken string) *ReservationsListCall {
125286	c.urlParams_.Set("pageToken", pageToken)
125287	return c
125288}
125289
125290// Fields allows partial responses to be retrieved. See
125291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125292// for more information.
125293func (c *ReservationsListCall) Fields(s ...googleapi.Field) *ReservationsListCall {
125294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125295	return c
125296}
125297
125298// IfNoneMatch sets the optional parameter which makes the operation
125299// fail if the object's ETag matches the given value. This is useful for
125300// getting updates only after the object has changed since the last
125301// request. Use googleapi.IsNotModified to check whether the response
125302// error from Do is the result of In-None-Match.
125303func (c *ReservationsListCall) IfNoneMatch(entityTag string) *ReservationsListCall {
125304	c.ifNoneMatch_ = entityTag
125305	return c
125306}
125307
125308// Context sets the context to be used in this call's Do method. Any
125309// pending HTTP request will be aborted if the provided context is
125310// canceled.
125311func (c *ReservationsListCall) Context(ctx context.Context) *ReservationsListCall {
125312	c.ctx_ = ctx
125313	return c
125314}
125315
125316// Header returns an http.Header that can be modified by the caller to
125317// add HTTP headers to the request.
125318func (c *ReservationsListCall) Header() http.Header {
125319	if c.header_ == nil {
125320		c.header_ = make(http.Header)
125321	}
125322	return c.header_
125323}
125324
125325func (c *ReservationsListCall) doRequest(alt string) (*http.Response, error) {
125326	reqHeaders := make(http.Header)
125327	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125328	for k, v := range c.header_ {
125329		reqHeaders[k] = v
125330	}
125331	reqHeaders.Set("User-Agent", c.s.userAgent())
125332	if c.ifNoneMatch_ != "" {
125333		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
125334	}
125335	var body io.Reader = nil
125336	c.urlParams_.Set("alt", alt)
125337	c.urlParams_.Set("prettyPrint", "false")
125338	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations")
125339	urls += "?" + c.urlParams_.Encode()
125340	req, err := http.NewRequest("GET", urls, body)
125341	if err != nil {
125342		return nil, err
125343	}
125344	req.Header = reqHeaders
125345	googleapi.Expand(req.URL, map[string]string{
125346		"project": c.project,
125347		"zone":    c.zone,
125348	})
125349	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125350}
125351
125352// Do executes the "compute.reservations.list" call.
125353// Exactly one of *ReservationList or error will be non-nil. Any non-2xx
125354// status code is an error. Response headers are in either
125355// *ReservationList.ServerResponse.Header or (if a response was returned
125356// at all) in error.(*googleapi.Error).Header. Use
125357// googleapi.IsNotModified to check whether the returned error was
125358// because http.StatusNotModified was returned.
125359func (c *ReservationsListCall) Do(opts ...googleapi.CallOption) (*ReservationList, error) {
125360	gensupport.SetOptions(c.urlParams_, opts...)
125361	res, err := c.doRequest("json")
125362	if res != nil && res.StatusCode == http.StatusNotModified {
125363		if res.Body != nil {
125364			res.Body.Close()
125365		}
125366		return nil, &googleapi.Error{
125367			Code:   res.StatusCode,
125368			Header: res.Header,
125369		}
125370	}
125371	if err != nil {
125372		return nil, err
125373	}
125374	defer googleapi.CloseBody(res)
125375	if err := googleapi.CheckResponse(res); err != nil {
125376		return nil, err
125377	}
125378	ret := &ReservationList{
125379		ServerResponse: googleapi.ServerResponse{
125380			Header:         res.Header,
125381			HTTPStatusCode: res.StatusCode,
125382		},
125383	}
125384	target := &ret
125385	if err := gensupport.DecodeResponse(target, res); err != nil {
125386		return nil, err
125387	}
125388	return ret, nil
125389	// {
125390	//   "description": "A list of all the reservations that have been configured for the specified project in specified zone.",
125391	//   "httpMethod": "GET",
125392	//   "id": "compute.reservations.list",
125393	//   "parameterOrder": [
125394	//     "project",
125395	//     "zone"
125396	//   ],
125397	//   "parameters": {
125398	//     "filter": {
125399	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
125400	//       "location": "query",
125401	//       "type": "string"
125402	//     },
125403	//     "maxResults": {
125404	//       "default": "500",
125405	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
125406	//       "format": "uint32",
125407	//       "location": "query",
125408	//       "minimum": "0",
125409	//       "type": "integer"
125410	//     },
125411	//     "orderBy": {
125412	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
125413	//       "location": "query",
125414	//       "type": "string"
125415	//     },
125416	//     "pageToken": {
125417	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
125418	//       "location": "query",
125419	//       "type": "string"
125420	//     },
125421	//     "project": {
125422	//       "description": "Project ID for this request.",
125423	//       "location": "path",
125424	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125425	//       "required": true,
125426	//       "type": "string"
125427	//     },
125428	//     "zone": {
125429	//       "description": "Name of the zone for this request.",
125430	//       "location": "path",
125431	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125432	//       "required": true,
125433	//       "type": "string"
125434	//     }
125435	//   },
125436	//   "path": "{project}/zones/{zone}/reservations",
125437	//   "response": {
125438	//     "$ref": "ReservationList"
125439	//   },
125440	//   "scopes": [
125441	//     "https://www.googleapis.com/auth/cloud-platform",
125442	//     "https://www.googleapis.com/auth/compute",
125443	//     "https://www.googleapis.com/auth/compute.readonly"
125444	//   ]
125445	// }
125446
125447}
125448
125449// Pages invokes f for each page of results.
125450// A non-nil error returned from f will halt the iteration.
125451// The provided context supersedes any context provided to the Context method.
125452func (c *ReservationsListCall) Pages(ctx context.Context, f func(*ReservationList) error) error {
125453	c.ctx_ = ctx
125454	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
125455	for {
125456		x, err := c.Do()
125457		if err != nil {
125458			return err
125459		}
125460		if err := f(x); err != nil {
125461			return err
125462		}
125463		if x.NextPageToken == "" {
125464			return nil
125465		}
125466		c.PageToken(x.NextPageToken)
125467	}
125468}
125469
125470// method id "compute.reservations.resize":
125471
125472type ReservationsResizeCall struct {
125473	s                         *Service
125474	project                   string
125475	zone                      string
125476	reservation               string
125477	reservationsresizerequest *ReservationsResizeRequest
125478	urlParams_                gensupport.URLParams
125479	ctx_                      context.Context
125480	header_                   http.Header
125481}
125482
125483// Resize: Resizes the reservation (applicable to standalone
125484// reservations only). For more information, read Modifying
125485// reservations.
125486func (r *ReservationsService) Resize(project string, zone string, reservation string, reservationsresizerequest *ReservationsResizeRequest) *ReservationsResizeCall {
125487	c := &ReservationsResizeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125488	c.project = project
125489	c.zone = zone
125490	c.reservation = reservation
125491	c.reservationsresizerequest = reservationsresizerequest
125492	return c
125493}
125494
125495// RequestId sets the optional parameter "requestId": An optional
125496// request ID to identify requests. Specify a unique request ID so that
125497// if you must retry your request, the server will know to ignore the
125498// request if it has already been completed.
125499//
125500// For example, consider a situation where you make an initial request
125501// and the request times out. If you make the request again with the
125502// same request ID, the server can check if original operation with the
125503// same request ID was received, and if so, will ignore the second
125504// request. This prevents clients from accidentally creating duplicate
125505// commitments.
125506//
125507// The request ID must be a valid UUID with the exception that zero UUID
125508// is not supported (00000000-0000-0000-0000-000000000000).
125509func (c *ReservationsResizeCall) RequestId(requestId string) *ReservationsResizeCall {
125510	c.urlParams_.Set("requestId", requestId)
125511	return c
125512}
125513
125514// Fields allows partial responses to be retrieved. See
125515// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125516// for more information.
125517func (c *ReservationsResizeCall) Fields(s ...googleapi.Field) *ReservationsResizeCall {
125518	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125519	return c
125520}
125521
125522// Context sets the context to be used in this call's Do method. Any
125523// pending HTTP request will be aborted if the provided context is
125524// canceled.
125525func (c *ReservationsResizeCall) Context(ctx context.Context) *ReservationsResizeCall {
125526	c.ctx_ = ctx
125527	return c
125528}
125529
125530// Header returns an http.Header that can be modified by the caller to
125531// add HTTP headers to the request.
125532func (c *ReservationsResizeCall) Header() http.Header {
125533	if c.header_ == nil {
125534		c.header_ = make(http.Header)
125535	}
125536	return c.header_
125537}
125538
125539func (c *ReservationsResizeCall) doRequest(alt string) (*http.Response, error) {
125540	reqHeaders := make(http.Header)
125541	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125542	for k, v := range c.header_ {
125543		reqHeaders[k] = v
125544	}
125545	reqHeaders.Set("User-Agent", c.s.userAgent())
125546	var body io.Reader = nil
125547	body, err := googleapi.WithoutDataWrapper.JSONReader(c.reservationsresizerequest)
125548	if err != nil {
125549		return nil, err
125550	}
125551	reqHeaders.Set("Content-Type", "application/json")
125552	c.urlParams_.Set("alt", alt)
125553	c.urlParams_.Set("prettyPrint", "false")
125554	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{reservation}/resize")
125555	urls += "?" + c.urlParams_.Encode()
125556	req, err := http.NewRequest("POST", urls, body)
125557	if err != nil {
125558		return nil, err
125559	}
125560	req.Header = reqHeaders
125561	googleapi.Expand(req.URL, map[string]string{
125562		"project":     c.project,
125563		"zone":        c.zone,
125564		"reservation": c.reservation,
125565	})
125566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125567}
125568
125569// Do executes the "compute.reservations.resize" call.
125570// Exactly one of *Operation or error will be non-nil. Any non-2xx
125571// status code is an error. Response headers are in either
125572// *Operation.ServerResponse.Header or (if a response was returned at
125573// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
125574// to check whether the returned error was because
125575// http.StatusNotModified was returned.
125576func (c *ReservationsResizeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
125577	gensupport.SetOptions(c.urlParams_, opts...)
125578	res, err := c.doRequest("json")
125579	if res != nil && res.StatusCode == http.StatusNotModified {
125580		if res.Body != nil {
125581			res.Body.Close()
125582		}
125583		return nil, &googleapi.Error{
125584			Code:   res.StatusCode,
125585			Header: res.Header,
125586		}
125587	}
125588	if err != nil {
125589		return nil, err
125590	}
125591	defer googleapi.CloseBody(res)
125592	if err := googleapi.CheckResponse(res); err != nil {
125593		return nil, err
125594	}
125595	ret := &Operation{
125596		ServerResponse: googleapi.ServerResponse{
125597			Header:         res.Header,
125598			HTTPStatusCode: res.StatusCode,
125599		},
125600	}
125601	target := &ret
125602	if err := gensupport.DecodeResponse(target, res); err != nil {
125603		return nil, err
125604	}
125605	return ret, nil
125606	// {
125607	//   "description": "Resizes the reservation (applicable to standalone reservations only). For more information, read Modifying reservations.",
125608	//   "httpMethod": "POST",
125609	//   "id": "compute.reservations.resize",
125610	//   "parameterOrder": [
125611	//     "project",
125612	//     "zone",
125613	//     "reservation"
125614	//   ],
125615	//   "parameters": {
125616	//     "project": {
125617	//       "description": "Project ID for this request.",
125618	//       "location": "path",
125619	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125620	//       "required": true,
125621	//       "type": "string"
125622	//     },
125623	//     "requestId": {
125624	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
125625	//       "location": "query",
125626	//       "type": "string"
125627	//     },
125628	//     "reservation": {
125629	//       "description": "Name of the reservation to update.",
125630	//       "location": "path",
125631	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125632	//       "required": true,
125633	//       "type": "string"
125634	//     },
125635	//     "zone": {
125636	//       "description": "Name of the zone for this request.",
125637	//       "location": "path",
125638	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125639	//       "required": true,
125640	//       "type": "string"
125641	//     }
125642	//   },
125643	//   "path": "{project}/zones/{zone}/reservations/{reservation}/resize",
125644	//   "request": {
125645	//     "$ref": "ReservationsResizeRequest"
125646	//   },
125647	//   "response": {
125648	//     "$ref": "Operation"
125649	//   },
125650	//   "scopes": [
125651	//     "https://www.googleapis.com/auth/cloud-platform",
125652	//     "https://www.googleapis.com/auth/compute"
125653	//   ]
125654	// }
125655
125656}
125657
125658// method id "compute.reservations.setIamPolicy":
125659
125660type ReservationsSetIamPolicyCall struct {
125661	s                    *Service
125662	project              string
125663	zone                 string
125664	resource             string
125665	zonesetpolicyrequest *ZoneSetPolicyRequest
125666	urlParams_           gensupport.URLParams
125667	ctx_                 context.Context
125668	header_              http.Header
125669}
125670
125671// SetIamPolicy: Sets the access control policy on the specified
125672// resource. Replaces any existing policy.
125673func (r *ReservationsService) SetIamPolicy(project string, zone string, resource string, zonesetpolicyrequest *ZoneSetPolicyRequest) *ReservationsSetIamPolicyCall {
125674	c := &ReservationsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125675	c.project = project
125676	c.zone = zone
125677	c.resource = resource
125678	c.zonesetpolicyrequest = zonesetpolicyrequest
125679	return c
125680}
125681
125682// Fields allows partial responses to be retrieved. See
125683// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125684// for more information.
125685func (c *ReservationsSetIamPolicyCall) Fields(s ...googleapi.Field) *ReservationsSetIamPolicyCall {
125686	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125687	return c
125688}
125689
125690// Context sets the context to be used in this call's Do method. Any
125691// pending HTTP request will be aborted if the provided context is
125692// canceled.
125693func (c *ReservationsSetIamPolicyCall) Context(ctx context.Context) *ReservationsSetIamPolicyCall {
125694	c.ctx_ = ctx
125695	return c
125696}
125697
125698// Header returns an http.Header that can be modified by the caller to
125699// add HTTP headers to the request.
125700func (c *ReservationsSetIamPolicyCall) Header() http.Header {
125701	if c.header_ == nil {
125702		c.header_ = make(http.Header)
125703	}
125704	return c.header_
125705}
125706
125707func (c *ReservationsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
125708	reqHeaders := make(http.Header)
125709	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125710	for k, v := range c.header_ {
125711		reqHeaders[k] = v
125712	}
125713	reqHeaders.Set("User-Agent", c.s.userAgent())
125714	var body io.Reader = nil
125715	body, err := googleapi.WithoutDataWrapper.JSONReader(c.zonesetpolicyrequest)
125716	if err != nil {
125717		return nil, err
125718	}
125719	reqHeaders.Set("Content-Type", "application/json")
125720	c.urlParams_.Set("alt", alt)
125721	c.urlParams_.Set("prettyPrint", "false")
125722	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/setIamPolicy")
125723	urls += "?" + c.urlParams_.Encode()
125724	req, err := http.NewRequest("POST", urls, body)
125725	if err != nil {
125726		return nil, err
125727	}
125728	req.Header = reqHeaders
125729	googleapi.Expand(req.URL, map[string]string{
125730		"project":  c.project,
125731		"zone":     c.zone,
125732		"resource": c.resource,
125733	})
125734	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125735}
125736
125737// Do executes the "compute.reservations.setIamPolicy" call.
125738// Exactly one of *Policy or error will be non-nil. Any non-2xx status
125739// code is an error. Response headers are in either
125740// *Policy.ServerResponse.Header or (if a response was returned at all)
125741// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
125742// check whether the returned error was because http.StatusNotModified
125743// was returned.
125744func (c *ReservationsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
125745	gensupport.SetOptions(c.urlParams_, opts...)
125746	res, err := c.doRequest("json")
125747	if res != nil && res.StatusCode == http.StatusNotModified {
125748		if res.Body != nil {
125749			res.Body.Close()
125750		}
125751		return nil, &googleapi.Error{
125752			Code:   res.StatusCode,
125753			Header: res.Header,
125754		}
125755	}
125756	if err != nil {
125757		return nil, err
125758	}
125759	defer googleapi.CloseBody(res)
125760	if err := googleapi.CheckResponse(res); err != nil {
125761		return nil, err
125762	}
125763	ret := &Policy{
125764		ServerResponse: googleapi.ServerResponse{
125765			Header:         res.Header,
125766			HTTPStatusCode: res.StatusCode,
125767		},
125768	}
125769	target := &ret
125770	if err := gensupport.DecodeResponse(target, res); err != nil {
125771		return nil, err
125772	}
125773	return ret, nil
125774	// {
125775	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
125776	//   "httpMethod": "POST",
125777	//   "id": "compute.reservations.setIamPolicy",
125778	//   "parameterOrder": [
125779	//     "project",
125780	//     "zone",
125781	//     "resource"
125782	//   ],
125783	//   "parameters": {
125784	//     "project": {
125785	//       "description": "Project ID for this request.",
125786	//       "location": "path",
125787	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125788	//       "required": true,
125789	//       "type": "string"
125790	//     },
125791	//     "resource": {
125792	//       "description": "Name or id of the resource for this request.",
125793	//       "location": "path",
125794	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125795	//       "required": true,
125796	//       "type": "string"
125797	//     },
125798	//     "zone": {
125799	//       "description": "The name of the zone for this request.",
125800	//       "location": "path",
125801	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125802	//       "required": true,
125803	//       "type": "string"
125804	//     }
125805	//   },
125806	//   "path": "{project}/zones/{zone}/reservations/{resource}/setIamPolicy",
125807	//   "request": {
125808	//     "$ref": "ZoneSetPolicyRequest"
125809	//   },
125810	//   "response": {
125811	//     "$ref": "Policy"
125812	//   },
125813	//   "scopes": [
125814	//     "https://www.googleapis.com/auth/cloud-platform",
125815	//     "https://www.googleapis.com/auth/compute"
125816	//   ]
125817	// }
125818
125819}
125820
125821// method id "compute.reservations.testIamPermissions":
125822
125823type ReservationsTestIamPermissionsCall struct {
125824	s                      *Service
125825	project                string
125826	zone                   string
125827	resource               string
125828	testpermissionsrequest *TestPermissionsRequest
125829	urlParams_             gensupport.URLParams
125830	ctx_                   context.Context
125831	header_                http.Header
125832}
125833
125834// TestIamPermissions: Returns permissions that a caller has on the
125835// specified resource.
125836func (r *ReservationsService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *ReservationsTestIamPermissionsCall {
125837	c := &ReservationsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125838	c.project = project
125839	c.zone = zone
125840	c.resource = resource
125841	c.testpermissionsrequest = testpermissionsrequest
125842	return c
125843}
125844
125845// Fields allows partial responses to be retrieved. See
125846// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
125847// for more information.
125848func (c *ReservationsTestIamPermissionsCall) Fields(s ...googleapi.Field) *ReservationsTestIamPermissionsCall {
125849	c.urlParams_.Set("fields", googleapi.CombineFields(s))
125850	return c
125851}
125852
125853// Context sets the context to be used in this call's Do method. Any
125854// pending HTTP request will be aborted if the provided context is
125855// canceled.
125856func (c *ReservationsTestIamPermissionsCall) Context(ctx context.Context) *ReservationsTestIamPermissionsCall {
125857	c.ctx_ = ctx
125858	return c
125859}
125860
125861// Header returns an http.Header that can be modified by the caller to
125862// add HTTP headers to the request.
125863func (c *ReservationsTestIamPermissionsCall) Header() http.Header {
125864	if c.header_ == nil {
125865		c.header_ = make(http.Header)
125866	}
125867	return c.header_
125868}
125869
125870func (c *ReservationsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
125871	reqHeaders := make(http.Header)
125872	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
125873	for k, v := range c.header_ {
125874		reqHeaders[k] = v
125875	}
125876	reqHeaders.Set("User-Agent", c.s.userAgent())
125877	var body io.Reader = nil
125878	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
125879	if err != nil {
125880		return nil, err
125881	}
125882	reqHeaders.Set("Content-Type", "application/json")
125883	c.urlParams_.Set("alt", alt)
125884	c.urlParams_.Set("prettyPrint", "false")
125885	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/reservations/{resource}/testIamPermissions")
125886	urls += "?" + c.urlParams_.Encode()
125887	req, err := http.NewRequest("POST", urls, body)
125888	if err != nil {
125889		return nil, err
125890	}
125891	req.Header = reqHeaders
125892	googleapi.Expand(req.URL, map[string]string{
125893		"project":  c.project,
125894		"zone":     c.zone,
125895		"resource": c.resource,
125896	})
125897	return gensupport.SendRequest(c.ctx_, c.s.client, req)
125898}
125899
125900// Do executes the "compute.reservations.testIamPermissions" call.
125901// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
125902// non-2xx status code is an error. Response headers are in either
125903// *TestPermissionsResponse.ServerResponse.Header or (if a response was
125904// returned at all) in error.(*googleapi.Error).Header. Use
125905// googleapi.IsNotModified to check whether the returned error was
125906// because http.StatusNotModified was returned.
125907func (c *ReservationsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
125908	gensupport.SetOptions(c.urlParams_, opts...)
125909	res, err := c.doRequest("json")
125910	if res != nil && res.StatusCode == http.StatusNotModified {
125911		if res.Body != nil {
125912			res.Body.Close()
125913		}
125914		return nil, &googleapi.Error{
125915			Code:   res.StatusCode,
125916			Header: res.Header,
125917		}
125918	}
125919	if err != nil {
125920		return nil, err
125921	}
125922	defer googleapi.CloseBody(res)
125923	if err := googleapi.CheckResponse(res); err != nil {
125924		return nil, err
125925	}
125926	ret := &TestPermissionsResponse{
125927		ServerResponse: googleapi.ServerResponse{
125928			Header:         res.Header,
125929			HTTPStatusCode: res.StatusCode,
125930		},
125931	}
125932	target := &ret
125933	if err := gensupport.DecodeResponse(target, res); err != nil {
125934		return nil, err
125935	}
125936	return ret, nil
125937	// {
125938	//   "description": "Returns permissions that a caller has on the specified resource.",
125939	//   "httpMethod": "POST",
125940	//   "id": "compute.reservations.testIamPermissions",
125941	//   "parameterOrder": [
125942	//     "project",
125943	//     "zone",
125944	//     "resource"
125945	//   ],
125946	//   "parameters": {
125947	//     "project": {
125948	//       "description": "Project ID for this request.",
125949	//       "location": "path",
125950	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
125951	//       "required": true,
125952	//       "type": "string"
125953	//     },
125954	//     "resource": {
125955	//       "description": "Name or id of the resource for this request.",
125956	//       "location": "path",
125957	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
125958	//       "required": true,
125959	//       "type": "string"
125960	//     },
125961	//     "zone": {
125962	//       "description": "The name of the zone for this request.",
125963	//       "location": "path",
125964	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
125965	//       "required": true,
125966	//       "type": "string"
125967	//     }
125968	//   },
125969	//   "path": "{project}/zones/{zone}/reservations/{resource}/testIamPermissions",
125970	//   "request": {
125971	//     "$ref": "TestPermissionsRequest"
125972	//   },
125973	//   "response": {
125974	//     "$ref": "TestPermissionsResponse"
125975	//   },
125976	//   "scopes": [
125977	//     "https://www.googleapis.com/auth/cloud-platform",
125978	//     "https://www.googleapis.com/auth/compute",
125979	//     "https://www.googleapis.com/auth/compute.readonly"
125980	//   ]
125981	// }
125982
125983}
125984
125985// method id "compute.resourcePolicies.aggregatedList":
125986
125987type ResourcePoliciesAggregatedListCall struct {
125988	s            *Service
125989	project      string
125990	urlParams_   gensupport.URLParams
125991	ifNoneMatch_ string
125992	ctx_         context.Context
125993	header_      http.Header
125994}
125995
125996// AggregatedList: Retrieves an aggregated list of resource policies.
125997func (r *ResourcePoliciesService) AggregatedList(project string) *ResourcePoliciesAggregatedListCall {
125998	c := &ResourcePoliciesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
125999	c.project = project
126000	return c
126001}
126002
126003// Filter sets the optional parameter "filter": A filter expression that
126004// filters resources listed in the response. The expression must specify
126005// the field name, a comparison operator, and the value that you want to
126006// use for filtering. The value must be a string, a number, or a
126007// boolean. The comparison operator must be either =, !=, >, or <.
126008//
126009// For example, if you are filtering Compute Engine instances, you can
126010// exclude instances named example-instance by specifying name !=
126011// example-instance.
126012//
126013// You can also filter nested fields. For example, you could specify
126014// scheduling.automaticRestart = false to include instances only if they
126015// are not scheduled for automatic restarts. You can use filtering on
126016// nested fields to filter based on resource labels.
126017//
126018// To filter on multiple expressions, provide each separate expression
126019// within parentheses. For example, (scheduling.automaticRestart = true)
126020// (cpuPlatform = "Intel Skylake"). By default, each expression is an
126021// AND expression. However, you can include AND and OR expressions
126022// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
126023// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
126024// true).
126025func (c *ResourcePoliciesAggregatedListCall) Filter(filter string) *ResourcePoliciesAggregatedListCall {
126026	c.urlParams_.Set("filter", filter)
126027	return c
126028}
126029
126030// IncludeAllScopes sets the optional parameter "includeAllScopes":
126031// Indicates whether every visible scope for each scope type (zone,
126032// region, global) should be included in the response. For new resource
126033// types added after this field, the flag has no effect as new resource
126034// types will always include every visible scope for each scope type in
126035// response. For resource types which predate this field, if this flag
126036// is omitted or false, only scopes of the scope types where the
126037// resource type is expected to be found will be included.
126038func (c *ResourcePoliciesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *ResourcePoliciesAggregatedListCall {
126039	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
126040	return c
126041}
126042
126043// MaxResults sets the optional parameter "maxResults": The maximum
126044// number of results per page that should be returned. If the number of
126045// available results is larger than maxResults, Compute Engine returns a
126046// nextPageToken that can be used to get the next page of results in
126047// subsequent list requests. Acceptable values are 0 to 500, inclusive.
126048// (Default: 500)
126049func (c *ResourcePoliciesAggregatedListCall) MaxResults(maxResults int64) *ResourcePoliciesAggregatedListCall {
126050	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
126051	return c
126052}
126053
126054// OrderBy sets the optional parameter "orderBy": Sorts list results by
126055// a certain order. By default, results are returned in alphanumerical
126056// order based on the resource name.
126057//
126058// You can also sort results in descending order based on the creation
126059// timestamp using orderBy="creationTimestamp desc". This sorts results
126060// based on the creationTimestamp field in reverse chronological order
126061// (newest result first). Use this to sort resources like operations so
126062// that the newest operation is returned first.
126063//
126064// Currently, only sorting by name or creationTimestamp desc is
126065// supported.
126066func (c *ResourcePoliciesAggregatedListCall) OrderBy(orderBy string) *ResourcePoliciesAggregatedListCall {
126067	c.urlParams_.Set("orderBy", orderBy)
126068	return c
126069}
126070
126071// PageToken sets the optional parameter "pageToken": Specifies a page
126072// token to use. Set pageToken to the nextPageToken returned by a
126073// previous list request to get the next page of results.
126074func (c *ResourcePoliciesAggregatedListCall) PageToken(pageToken string) *ResourcePoliciesAggregatedListCall {
126075	c.urlParams_.Set("pageToken", pageToken)
126076	return c
126077}
126078
126079// Fields allows partial responses to be retrieved. See
126080// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126081// for more information.
126082func (c *ResourcePoliciesAggregatedListCall) Fields(s ...googleapi.Field) *ResourcePoliciesAggregatedListCall {
126083	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126084	return c
126085}
126086
126087// IfNoneMatch sets the optional parameter which makes the operation
126088// fail if the object's ETag matches the given value. This is useful for
126089// getting updates only after the object has changed since the last
126090// request. Use googleapi.IsNotModified to check whether the response
126091// error from Do is the result of In-None-Match.
126092func (c *ResourcePoliciesAggregatedListCall) IfNoneMatch(entityTag string) *ResourcePoliciesAggregatedListCall {
126093	c.ifNoneMatch_ = entityTag
126094	return c
126095}
126096
126097// Context sets the context to be used in this call's Do method. Any
126098// pending HTTP request will be aborted if the provided context is
126099// canceled.
126100func (c *ResourcePoliciesAggregatedListCall) Context(ctx context.Context) *ResourcePoliciesAggregatedListCall {
126101	c.ctx_ = ctx
126102	return c
126103}
126104
126105// Header returns an http.Header that can be modified by the caller to
126106// add HTTP headers to the request.
126107func (c *ResourcePoliciesAggregatedListCall) Header() http.Header {
126108	if c.header_ == nil {
126109		c.header_ = make(http.Header)
126110	}
126111	return c.header_
126112}
126113
126114func (c *ResourcePoliciesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
126115	reqHeaders := make(http.Header)
126116	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126117	for k, v := range c.header_ {
126118		reqHeaders[k] = v
126119	}
126120	reqHeaders.Set("User-Agent", c.s.userAgent())
126121	if c.ifNoneMatch_ != "" {
126122		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126123	}
126124	var body io.Reader = nil
126125	c.urlParams_.Set("alt", alt)
126126	c.urlParams_.Set("prettyPrint", "false")
126127	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/resourcePolicies")
126128	urls += "?" + c.urlParams_.Encode()
126129	req, err := http.NewRequest("GET", urls, body)
126130	if err != nil {
126131		return nil, err
126132	}
126133	req.Header = reqHeaders
126134	googleapi.Expand(req.URL, map[string]string{
126135		"project": c.project,
126136	})
126137	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126138}
126139
126140// Do executes the "compute.resourcePolicies.aggregatedList" call.
126141// Exactly one of *ResourcePolicyAggregatedList or error will be
126142// non-nil. Any non-2xx status code is an error. Response headers are in
126143// either *ResourcePolicyAggregatedList.ServerResponse.Header or (if a
126144// response was returned at all) in error.(*googleapi.Error).Header. Use
126145// googleapi.IsNotModified to check whether the returned error was
126146// because http.StatusNotModified was returned.
126147func (c *ResourcePoliciesAggregatedListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyAggregatedList, error) {
126148	gensupport.SetOptions(c.urlParams_, opts...)
126149	res, err := c.doRequest("json")
126150	if res != nil && res.StatusCode == http.StatusNotModified {
126151		if res.Body != nil {
126152			res.Body.Close()
126153		}
126154		return nil, &googleapi.Error{
126155			Code:   res.StatusCode,
126156			Header: res.Header,
126157		}
126158	}
126159	if err != nil {
126160		return nil, err
126161	}
126162	defer googleapi.CloseBody(res)
126163	if err := googleapi.CheckResponse(res); err != nil {
126164		return nil, err
126165	}
126166	ret := &ResourcePolicyAggregatedList{
126167		ServerResponse: googleapi.ServerResponse{
126168			Header:         res.Header,
126169			HTTPStatusCode: res.StatusCode,
126170		},
126171	}
126172	target := &ret
126173	if err := gensupport.DecodeResponse(target, res); err != nil {
126174		return nil, err
126175	}
126176	return ret, nil
126177	// {
126178	//   "description": "Retrieves an aggregated list of resource policies.",
126179	//   "httpMethod": "GET",
126180	//   "id": "compute.resourcePolicies.aggregatedList",
126181	//   "parameterOrder": [
126182	//     "project"
126183	//   ],
126184	//   "parameters": {
126185	//     "filter": {
126186	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
126187	//       "location": "query",
126188	//       "type": "string"
126189	//     },
126190	//     "includeAllScopes": {
126191	//       "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.",
126192	//       "location": "query",
126193	//       "type": "boolean"
126194	//     },
126195	//     "maxResults": {
126196	//       "default": "500",
126197	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
126198	//       "format": "uint32",
126199	//       "location": "query",
126200	//       "minimum": "0",
126201	//       "type": "integer"
126202	//     },
126203	//     "orderBy": {
126204	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
126205	//       "location": "query",
126206	//       "type": "string"
126207	//     },
126208	//     "pageToken": {
126209	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
126210	//       "location": "query",
126211	//       "type": "string"
126212	//     },
126213	//     "project": {
126214	//       "description": "Project ID for this request.",
126215	//       "location": "path",
126216	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126217	//       "required": true,
126218	//       "type": "string"
126219	//     }
126220	//   },
126221	//   "path": "{project}/aggregated/resourcePolicies",
126222	//   "response": {
126223	//     "$ref": "ResourcePolicyAggregatedList"
126224	//   },
126225	//   "scopes": [
126226	//     "https://www.googleapis.com/auth/cloud-platform",
126227	//     "https://www.googleapis.com/auth/compute",
126228	//     "https://www.googleapis.com/auth/compute.readonly"
126229	//   ]
126230	// }
126231
126232}
126233
126234// Pages invokes f for each page of results.
126235// A non-nil error returned from f will halt the iteration.
126236// The provided context supersedes any context provided to the Context method.
126237func (c *ResourcePoliciesAggregatedListCall) Pages(ctx context.Context, f func(*ResourcePolicyAggregatedList) error) error {
126238	c.ctx_ = ctx
126239	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
126240	for {
126241		x, err := c.Do()
126242		if err != nil {
126243			return err
126244		}
126245		if err := f(x); err != nil {
126246			return err
126247		}
126248		if x.NextPageToken == "" {
126249			return nil
126250		}
126251		c.PageToken(x.NextPageToken)
126252	}
126253}
126254
126255// method id "compute.resourcePolicies.delete":
126256
126257type ResourcePoliciesDeleteCall struct {
126258	s              *Service
126259	project        string
126260	region         string
126261	resourcePolicy string
126262	urlParams_     gensupport.URLParams
126263	ctx_           context.Context
126264	header_        http.Header
126265}
126266
126267// Delete: Deletes the specified resource policy.
126268func (r *ResourcePoliciesService) Delete(project string, region string, resourcePolicy string) *ResourcePoliciesDeleteCall {
126269	c := &ResourcePoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126270	c.project = project
126271	c.region = region
126272	c.resourcePolicy = resourcePolicy
126273	return c
126274}
126275
126276// RequestId sets the optional parameter "requestId": An optional
126277// request ID to identify requests. Specify a unique request ID so that
126278// if you must retry your request, the server will know to ignore the
126279// request if it has already been completed.
126280//
126281// For example, consider a situation where you make an initial request
126282// and the request times out. If you make the request again with the
126283// same request ID, the server can check if original operation with the
126284// same request ID was received, and if so, will ignore the second
126285// request. This prevents clients from accidentally creating duplicate
126286// commitments.
126287//
126288// The request ID must be a valid UUID with the exception that zero UUID
126289// is not supported (00000000-0000-0000-0000-000000000000).
126290func (c *ResourcePoliciesDeleteCall) RequestId(requestId string) *ResourcePoliciesDeleteCall {
126291	c.urlParams_.Set("requestId", requestId)
126292	return c
126293}
126294
126295// Fields allows partial responses to be retrieved. See
126296// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126297// for more information.
126298func (c *ResourcePoliciesDeleteCall) Fields(s ...googleapi.Field) *ResourcePoliciesDeleteCall {
126299	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126300	return c
126301}
126302
126303// Context sets the context to be used in this call's Do method. Any
126304// pending HTTP request will be aborted if the provided context is
126305// canceled.
126306func (c *ResourcePoliciesDeleteCall) Context(ctx context.Context) *ResourcePoliciesDeleteCall {
126307	c.ctx_ = ctx
126308	return c
126309}
126310
126311// Header returns an http.Header that can be modified by the caller to
126312// add HTTP headers to the request.
126313func (c *ResourcePoliciesDeleteCall) Header() http.Header {
126314	if c.header_ == nil {
126315		c.header_ = make(http.Header)
126316	}
126317	return c.header_
126318}
126319
126320func (c *ResourcePoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
126321	reqHeaders := make(http.Header)
126322	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126323	for k, v := range c.header_ {
126324		reqHeaders[k] = v
126325	}
126326	reqHeaders.Set("User-Agent", c.s.userAgent())
126327	var body io.Reader = nil
126328	c.urlParams_.Set("alt", alt)
126329	c.urlParams_.Set("prettyPrint", "false")
126330	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
126331	urls += "?" + c.urlParams_.Encode()
126332	req, err := http.NewRequest("DELETE", urls, body)
126333	if err != nil {
126334		return nil, err
126335	}
126336	req.Header = reqHeaders
126337	googleapi.Expand(req.URL, map[string]string{
126338		"project":        c.project,
126339		"region":         c.region,
126340		"resourcePolicy": c.resourcePolicy,
126341	})
126342	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126343}
126344
126345// Do executes the "compute.resourcePolicies.delete" call.
126346// Exactly one of *Operation or error will be non-nil. Any non-2xx
126347// status code is an error. Response headers are in either
126348// *Operation.ServerResponse.Header or (if a response was returned at
126349// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126350// to check whether the returned error was because
126351// http.StatusNotModified was returned.
126352func (c *ResourcePoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126353	gensupport.SetOptions(c.urlParams_, opts...)
126354	res, err := c.doRequest("json")
126355	if res != nil && res.StatusCode == http.StatusNotModified {
126356		if res.Body != nil {
126357			res.Body.Close()
126358		}
126359		return nil, &googleapi.Error{
126360			Code:   res.StatusCode,
126361			Header: res.Header,
126362		}
126363	}
126364	if err != nil {
126365		return nil, err
126366	}
126367	defer googleapi.CloseBody(res)
126368	if err := googleapi.CheckResponse(res); err != nil {
126369		return nil, err
126370	}
126371	ret := &Operation{
126372		ServerResponse: googleapi.ServerResponse{
126373			Header:         res.Header,
126374			HTTPStatusCode: res.StatusCode,
126375		},
126376	}
126377	target := &ret
126378	if err := gensupport.DecodeResponse(target, res); err != nil {
126379		return nil, err
126380	}
126381	return ret, nil
126382	// {
126383	//   "description": "Deletes the specified resource policy.",
126384	//   "httpMethod": "DELETE",
126385	//   "id": "compute.resourcePolicies.delete",
126386	//   "parameterOrder": [
126387	//     "project",
126388	//     "region",
126389	//     "resourcePolicy"
126390	//   ],
126391	//   "parameters": {
126392	//     "project": {
126393	//       "description": "Project ID for this request.",
126394	//       "location": "path",
126395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126396	//       "required": true,
126397	//       "type": "string"
126398	//     },
126399	//     "region": {
126400	//       "description": "Name of the region for this request.",
126401	//       "location": "path",
126402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126403	//       "required": true,
126404	//       "type": "string"
126405	//     },
126406	//     "requestId": {
126407	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126408	//       "location": "query",
126409	//       "type": "string"
126410	//     },
126411	//     "resourcePolicy": {
126412	//       "description": "Name of the resource policy to delete.",
126413	//       "location": "path",
126414	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126415	//       "required": true,
126416	//       "type": "string"
126417	//     }
126418	//   },
126419	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
126420	//   "response": {
126421	//     "$ref": "Operation"
126422	//   },
126423	//   "scopes": [
126424	//     "https://www.googleapis.com/auth/cloud-platform",
126425	//     "https://www.googleapis.com/auth/compute"
126426	//   ]
126427	// }
126428
126429}
126430
126431// method id "compute.resourcePolicies.get":
126432
126433type ResourcePoliciesGetCall struct {
126434	s              *Service
126435	project        string
126436	region         string
126437	resourcePolicy string
126438	urlParams_     gensupport.URLParams
126439	ifNoneMatch_   string
126440	ctx_           context.Context
126441	header_        http.Header
126442}
126443
126444// Get: Retrieves all information of the specified resource policy.
126445func (r *ResourcePoliciesService) Get(project string, region string, resourcePolicy string) *ResourcePoliciesGetCall {
126446	c := &ResourcePoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126447	c.project = project
126448	c.region = region
126449	c.resourcePolicy = resourcePolicy
126450	return c
126451}
126452
126453// Fields allows partial responses to be retrieved. See
126454// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126455// for more information.
126456func (c *ResourcePoliciesGetCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetCall {
126457	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126458	return c
126459}
126460
126461// IfNoneMatch sets the optional parameter which makes the operation
126462// fail if the object's ETag matches the given value. This is useful for
126463// getting updates only after the object has changed since the last
126464// request. Use googleapi.IsNotModified to check whether the response
126465// error from Do is the result of In-None-Match.
126466func (c *ResourcePoliciesGetCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetCall {
126467	c.ifNoneMatch_ = entityTag
126468	return c
126469}
126470
126471// Context sets the context to be used in this call's Do method. Any
126472// pending HTTP request will be aborted if the provided context is
126473// canceled.
126474func (c *ResourcePoliciesGetCall) Context(ctx context.Context) *ResourcePoliciesGetCall {
126475	c.ctx_ = ctx
126476	return c
126477}
126478
126479// Header returns an http.Header that can be modified by the caller to
126480// add HTTP headers to the request.
126481func (c *ResourcePoliciesGetCall) Header() http.Header {
126482	if c.header_ == nil {
126483		c.header_ = make(http.Header)
126484	}
126485	return c.header_
126486}
126487
126488func (c *ResourcePoliciesGetCall) doRequest(alt string) (*http.Response, error) {
126489	reqHeaders := make(http.Header)
126490	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126491	for k, v := range c.header_ {
126492		reqHeaders[k] = v
126493	}
126494	reqHeaders.Set("User-Agent", c.s.userAgent())
126495	if c.ifNoneMatch_ != "" {
126496		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126497	}
126498	var body io.Reader = nil
126499	c.urlParams_.Set("alt", alt)
126500	c.urlParams_.Set("prettyPrint", "false")
126501	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resourcePolicy}")
126502	urls += "?" + c.urlParams_.Encode()
126503	req, err := http.NewRequest("GET", urls, body)
126504	if err != nil {
126505		return nil, err
126506	}
126507	req.Header = reqHeaders
126508	googleapi.Expand(req.URL, map[string]string{
126509		"project":        c.project,
126510		"region":         c.region,
126511		"resourcePolicy": c.resourcePolicy,
126512	})
126513	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126514}
126515
126516// Do executes the "compute.resourcePolicies.get" call.
126517// Exactly one of *ResourcePolicy or error will be non-nil. Any non-2xx
126518// status code is an error. Response headers are in either
126519// *ResourcePolicy.ServerResponse.Header or (if a response was returned
126520// at all) in error.(*googleapi.Error).Header. Use
126521// googleapi.IsNotModified to check whether the returned error was
126522// because http.StatusNotModified was returned.
126523func (c *ResourcePoliciesGetCall) Do(opts ...googleapi.CallOption) (*ResourcePolicy, error) {
126524	gensupport.SetOptions(c.urlParams_, opts...)
126525	res, err := c.doRequest("json")
126526	if res != nil && res.StatusCode == http.StatusNotModified {
126527		if res.Body != nil {
126528			res.Body.Close()
126529		}
126530		return nil, &googleapi.Error{
126531			Code:   res.StatusCode,
126532			Header: res.Header,
126533		}
126534	}
126535	if err != nil {
126536		return nil, err
126537	}
126538	defer googleapi.CloseBody(res)
126539	if err := googleapi.CheckResponse(res); err != nil {
126540		return nil, err
126541	}
126542	ret := &ResourcePolicy{
126543		ServerResponse: googleapi.ServerResponse{
126544			Header:         res.Header,
126545			HTTPStatusCode: res.StatusCode,
126546		},
126547	}
126548	target := &ret
126549	if err := gensupport.DecodeResponse(target, res); err != nil {
126550		return nil, err
126551	}
126552	return ret, nil
126553	// {
126554	//   "description": "Retrieves all information of the specified resource policy.",
126555	//   "httpMethod": "GET",
126556	//   "id": "compute.resourcePolicies.get",
126557	//   "parameterOrder": [
126558	//     "project",
126559	//     "region",
126560	//     "resourcePolicy"
126561	//   ],
126562	//   "parameters": {
126563	//     "project": {
126564	//       "description": "Project ID for this request.",
126565	//       "location": "path",
126566	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126567	//       "required": true,
126568	//       "type": "string"
126569	//     },
126570	//     "region": {
126571	//       "description": "Name of the region for this request.",
126572	//       "location": "path",
126573	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126574	//       "required": true,
126575	//       "type": "string"
126576	//     },
126577	//     "resourcePolicy": {
126578	//       "description": "Name of the resource policy to retrieve.",
126579	//       "location": "path",
126580	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126581	//       "required": true,
126582	//       "type": "string"
126583	//     }
126584	//   },
126585	//   "path": "{project}/regions/{region}/resourcePolicies/{resourcePolicy}",
126586	//   "response": {
126587	//     "$ref": "ResourcePolicy"
126588	//   },
126589	//   "scopes": [
126590	//     "https://www.googleapis.com/auth/cloud-platform",
126591	//     "https://www.googleapis.com/auth/compute",
126592	//     "https://www.googleapis.com/auth/compute.readonly"
126593	//   ]
126594	// }
126595
126596}
126597
126598// method id "compute.resourcePolicies.getIamPolicy":
126599
126600type ResourcePoliciesGetIamPolicyCall struct {
126601	s            *Service
126602	project      string
126603	region       string
126604	resource     string
126605	urlParams_   gensupport.URLParams
126606	ifNoneMatch_ string
126607	ctx_         context.Context
126608	header_      http.Header
126609}
126610
126611// GetIamPolicy: Gets the access control policy for a resource. May be
126612// empty if no such policy or resource exists.
126613func (r *ResourcePoliciesService) GetIamPolicy(project string, region string, resource string) *ResourcePoliciesGetIamPolicyCall {
126614	c := &ResourcePoliciesGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126615	c.project = project
126616	c.region = region
126617	c.resource = resource
126618	return c
126619}
126620
126621// OptionsRequestedPolicyVersion sets the optional parameter
126622// "optionsRequestedPolicyVersion": Requested IAM Policy version.
126623func (c *ResourcePoliciesGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *ResourcePoliciesGetIamPolicyCall {
126624	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
126625	return c
126626}
126627
126628// Fields allows partial responses to be retrieved. See
126629// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126630// for more information.
126631func (c *ResourcePoliciesGetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesGetIamPolicyCall {
126632	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126633	return c
126634}
126635
126636// IfNoneMatch sets the optional parameter which makes the operation
126637// fail if the object's ETag matches the given value. This is useful for
126638// getting updates only after the object has changed since the last
126639// request. Use googleapi.IsNotModified to check whether the response
126640// error from Do is the result of In-None-Match.
126641func (c *ResourcePoliciesGetIamPolicyCall) IfNoneMatch(entityTag string) *ResourcePoliciesGetIamPolicyCall {
126642	c.ifNoneMatch_ = entityTag
126643	return c
126644}
126645
126646// Context sets the context to be used in this call's Do method. Any
126647// pending HTTP request will be aborted if the provided context is
126648// canceled.
126649func (c *ResourcePoliciesGetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesGetIamPolicyCall {
126650	c.ctx_ = ctx
126651	return c
126652}
126653
126654// Header returns an http.Header that can be modified by the caller to
126655// add HTTP headers to the request.
126656func (c *ResourcePoliciesGetIamPolicyCall) Header() http.Header {
126657	if c.header_ == nil {
126658		c.header_ = make(http.Header)
126659	}
126660	return c.header_
126661}
126662
126663func (c *ResourcePoliciesGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
126664	reqHeaders := make(http.Header)
126665	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126666	for k, v := range c.header_ {
126667		reqHeaders[k] = v
126668	}
126669	reqHeaders.Set("User-Agent", c.s.userAgent())
126670	if c.ifNoneMatch_ != "" {
126671		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
126672	}
126673	var body io.Reader = nil
126674	c.urlParams_.Set("alt", alt)
126675	c.urlParams_.Set("prettyPrint", "false")
126676	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy")
126677	urls += "?" + c.urlParams_.Encode()
126678	req, err := http.NewRequest("GET", urls, body)
126679	if err != nil {
126680		return nil, err
126681	}
126682	req.Header = reqHeaders
126683	googleapi.Expand(req.URL, map[string]string{
126684		"project":  c.project,
126685		"region":   c.region,
126686		"resource": c.resource,
126687	})
126688	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126689}
126690
126691// Do executes the "compute.resourcePolicies.getIamPolicy" call.
126692// Exactly one of *Policy or error will be non-nil. Any non-2xx status
126693// code is an error. Response headers are in either
126694// *Policy.ServerResponse.Header or (if a response was returned at all)
126695// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
126696// check whether the returned error was because http.StatusNotModified
126697// was returned.
126698func (c *ResourcePoliciesGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
126699	gensupport.SetOptions(c.urlParams_, opts...)
126700	res, err := c.doRequest("json")
126701	if res != nil && res.StatusCode == http.StatusNotModified {
126702		if res.Body != nil {
126703			res.Body.Close()
126704		}
126705		return nil, &googleapi.Error{
126706			Code:   res.StatusCode,
126707			Header: res.Header,
126708		}
126709	}
126710	if err != nil {
126711		return nil, err
126712	}
126713	defer googleapi.CloseBody(res)
126714	if err := googleapi.CheckResponse(res); err != nil {
126715		return nil, err
126716	}
126717	ret := &Policy{
126718		ServerResponse: googleapi.ServerResponse{
126719			Header:         res.Header,
126720			HTTPStatusCode: res.StatusCode,
126721		},
126722	}
126723	target := &ret
126724	if err := gensupport.DecodeResponse(target, res); err != nil {
126725		return nil, err
126726	}
126727	return ret, nil
126728	// {
126729	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
126730	//   "httpMethod": "GET",
126731	//   "id": "compute.resourcePolicies.getIamPolicy",
126732	//   "parameterOrder": [
126733	//     "project",
126734	//     "region",
126735	//     "resource"
126736	//   ],
126737	//   "parameters": {
126738	//     "optionsRequestedPolicyVersion": {
126739	//       "description": "Requested IAM Policy version.",
126740	//       "format": "int32",
126741	//       "location": "query",
126742	//       "type": "integer"
126743	//     },
126744	//     "project": {
126745	//       "description": "Project ID for this request.",
126746	//       "location": "path",
126747	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126748	//       "required": true,
126749	//       "type": "string"
126750	//     },
126751	//     "region": {
126752	//       "description": "The name of the region for this request.",
126753	//       "location": "path",
126754	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126755	//       "required": true,
126756	//       "type": "string"
126757	//     },
126758	//     "resource": {
126759	//       "description": "Name or id of the resource for this request.",
126760	//       "location": "path",
126761	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
126762	//       "required": true,
126763	//       "type": "string"
126764	//     }
126765	//   },
126766	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/getIamPolicy",
126767	//   "response": {
126768	//     "$ref": "Policy"
126769	//   },
126770	//   "scopes": [
126771	//     "https://www.googleapis.com/auth/cloud-platform",
126772	//     "https://www.googleapis.com/auth/compute",
126773	//     "https://www.googleapis.com/auth/compute.readonly"
126774	//   ]
126775	// }
126776
126777}
126778
126779// method id "compute.resourcePolicies.insert":
126780
126781type ResourcePoliciesInsertCall struct {
126782	s              *Service
126783	project        string
126784	region         string
126785	resourcepolicy *ResourcePolicy
126786	urlParams_     gensupport.URLParams
126787	ctx_           context.Context
126788	header_        http.Header
126789}
126790
126791// Insert: Creates a new resource policy.
126792func (r *ResourcePoliciesService) Insert(project string, region string, resourcepolicy *ResourcePolicy) *ResourcePoliciesInsertCall {
126793	c := &ResourcePoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126794	c.project = project
126795	c.region = region
126796	c.resourcepolicy = resourcepolicy
126797	return c
126798}
126799
126800// RequestId sets the optional parameter "requestId": An optional
126801// request ID to identify requests. Specify a unique request ID so that
126802// if you must retry your request, the server will know to ignore the
126803// request if it has already been completed.
126804//
126805// For example, consider a situation where you make an initial request
126806// and the request times out. If you make the request again with the
126807// same request ID, the server can check if original operation with the
126808// same request ID was received, and if so, will ignore the second
126809// request. This prevents clients from accidentally creating duplicate
126810// commitments.
126811//
126812// The request ID must be a valid UUID with the exception that zero UUID
126813// is not supported (00000000-0000-0000-0000-000000000000).
126814func (c *ResourcePoliciesInsertCall) RequestId(requestId string) *ResourcePoliciesInsertCall {
126815	c.urlParams_.Set("requestId", requestId)
126816	return c
126817}
126818
126819// Fields allows partial responses to be retrieved. See
126820// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
126821// for more information.
126822func (c *ResourcePoliciesInsertCall) Fields(s ...googleapi.Field) *ResourcePoliciesInsertCall {
126823	c.urlParams_.Set("fields", googleapi.CombineFields(s))
126824	return c
126825}
126826
126827// Context sets the context to be used in this call's Do method. Any
126828// pending HTTP request will be aborted if the provided context is
126829// canceled.
126830func (c *ResourcePoliciesInsertCall) Context(ctx context.Context) *ResourcePoliciesInsertCall {
126831	c.ctx_ = ctx
126832	return c
126833}
126834
126835// Header returns an http.Header that can be modified by the caller to
126836// add HTTP headers to the request.
126837func (c *ResourcePoliciesInsertCall) Header() http.Header {
126838	if c.header_ == nil {
126839		c.header_ = make(http.Header)
126840	}
126841	return c.header_
126842}
126843
126844func (c *ResourcePoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
126845	reqHeaders := make(http.Header)
126846	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
126847	for k, v := range c.header_ {
126848		reqHeaders[k] = v
126849	}
126850	reqHeaders.Set("User-Agent", c.s.userAgent())
126851	var body io.Reader = nil
126852	body, err := googleapi.WithoutDataWrapper.JSONReader(c.resourcepolicy)
126853	if err != nil {
126854		return nil, err
126855	}
126856	reqHeaders.Set("Content-Type", "application/json")
126857	c.urlParams_.Set("alt", alt)
126858	c.urlParams_.Set("prettyPrint", "false")
126859	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
126860	urls += "?" + c.urlParams_.Encode()
126861	req, err := http.NewRequest("POST", urls, body)
126862	if err != nil {
126863		return nil, err
126864	}
126865	req.Header = reqHeaders
126866	googleapi.Expand(req.URL, map[string]string{
126867		"project": c.project,
126868		"region":  c.region,
126869	})
126870	return gensupport.SendRequest(c.ctx_, c.s.client, req)
126871}
126872
126873// Do executes the "compute.resourcePolicies.insert" call.
126874// Exactly one of *Operation or error will be non-nil. Any non-2xx
126875// status code is an error. Response headers are in either
126876// *Operation.ServerResponse.Header or (if a response was returned at
126877// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
126878// to check whether the returned error was because
126879// http.StatusNotModified was returned.
126880func (c *ResourcePoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
126881	gensupport.SetOptions(c.urlParams_, opts...)
126882	res, err := c.doRequest("json")
126883	if res != nil && res.StatusCode == http.StatusNotModified {
126884		if res.Body != nil {
126885			res.Body.Close()
126886		}
126887		return nil, &googleapi.Error{
126888			Code:   res.StatusCode,
126889			Header: res.Header,
126890		}
126891	}
126892	if err != nil {
126893		return nil, err
126894	}
126895	defer googleapi.CloseBody(res)
126896	if err := googleapi.CheckResponse(res); err != nil {
126897		return nil, err
126898	}
126899	ret := &Operation{
126900		ServerResponse: googleapi.ServerResponse{
126901			Header:         res.Header,
126902			HTTPStatusCode: res.StatusCode,
126903		},
126904	}
126905	target := &ret
126906	if err := gensupport.DecodeResponse(target, res); err != nil {
126907		return nil, err
126908	}
126909	return ret, nil
126910	// {
126911	//   "description": "Creates a new resource policy.",
126912	//   "httpMethod": "POST",
126913	//   "id": "compute.resourcePolicies.insert",
126914	//   "parameterOrder": [
126915	//     "project",
126916	//     "region"
126917	//   ],
126918	//   "parameters": {
126919	//     "project": {
126920	//       "description": "Project ID for this request.",
126921	//       "location": "path",
126922	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
126923	//       "required": true,
126924	//       "type": "string"
126925	//     },
126926	//     "region": {
126927	//       "description": "Name of the region for this request.",
126928	//       "location": "path",
126929	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
126930	//       "required": true,
126931	//       "type": "string"
126932	//     },
126933	//     "requestId": {
126934	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
126935	//       "location": "query",
126936	//       "type": "string"
126937	//     }
126938	//   },
126939	//   "path": "{project}/regions/{region}/resourcePolicies",
126940	//   "request": {
126941	//     "$ref": "ResourcePolicy"
126942	//   },
126943	//   "response": {
126944	//     "$ref": "Operation"
126945	//   },
126946	//   "scopes": [
126947	//     "https://www.googleapis.com/auth/cloud-platform",
126948	//     "https://www.googleapis.com/auth/compute"
126949	//   ]
126950	// }
126951
126952}
126953
126954// method id "compute.resourcePolicies.list":
126955
126956type ResourcePoliciesListCall struct {
126957	s            *Service
126958	project      string
126959	region       string
126960	urlParams_   gensupport.URLParams
126961	ifNoneMatch_ string
126962	ctx_         context.Context
126963	header_      http.Header
126964}
126965
126966// List: A list all the resource policies that have been configured for
126967// the specified project in specified region.
126968func (r *ResourcePoliciesService) List(project string, region string) *ResourcePoliciesListCall {
126969	c := &ResourcePoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
126970	c.project = project
126971	c.region = region
126972	return c
126973}
126974
126975// Filter sets the optional parameter "filter": A filter expression that
126976// filters resources listed in the response. The expression must specify
126977// the field name, a comparison operator, and the value that you want to
126978// use for filtering. The value must be a string, a number, or a
126979// boolean. The comparison operator must be either =, !=, >, or <.
126980//
126981// For example, if you are filtering Compute Engine instances, you can
126982// exclude instances named example-instance by specifying name !=
126983// example-instance.
126984//
126985// You can also filter nested fields. For example, you could specify
126986// scheduling.automaticRestart = false to include instances only if they
126987// are not scheduled for automatic restarts. You can use filtering on
126988// nested fields to filter based on resource labels.
126989//
126990// To filter on multiple expressions, provide each separate expression
126991// within parentheses. For example, (scheduling.automaticRestart = true)
126992// (cpuPlatform = "Intel Skylake"). By default, each expression is an
126993// AND expression. However, you can include AND and OR expressions
126994// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
126995// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
126996// true).
126997func (c *ResourcePoliciesListCall) Filter(filter string) *ResourcePoliciesListCall {
126998	c.urlParams_.Set("filter", filter)
126999	return c
127000}
127001
127002// MaxResults sets the optional parameter "maxResults": The maximum
127003// number of results per page that should be returned. If the number of
127004// available results is larger than maxResults, Compute Engine returns a
127005// nextPageToken that can be used to get the next page of results in
127006// subsequent list requests. Acceptable values are 0 to 500, inclusive.
127007// (Default: 500)
127008func (c *ResourcePoliciesListCall) MaxResults(maxResults int64) *ResourcePoliciesListCall {
127009	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127010	return c
127011}
127012
127013// OrderBy sets the optional parameter "orderBy": Sorts list results by
127014// a certain order. By default, results are returned in alphanumerical
127015// order based on the resource name.
127016//
127017// You can also sort results in descending order based on the creation
127018// timestamp using orderBy="creationTimestamp desc". This sorts results
127019// based on the creationTimestamp field in reverse chronological order
127020// (newest result first). Use this to sort resources like operations so
127021// that the newest operation is returned first.
127022//
127023// Currently, only sorting by name or creationTimestamp desc is
127024// supported.
127025func (c *ResourcePoliciesListCall) OrderBy(orderBy string) *ResourcePoliciesListCall {
127026	c.urlParams_.Set("orderBy", orderBy)
127027	return c
127028}
127029
127030// PageToken sets the optional parameter "pageToken": Specifies a page
127031// token to use. Set pageToken to the nextPageToken returned by a
127032// previous list request to get the next page of results.
127033func (c *ResourcePoliciesListCall) PageToken(pageToken string) *ResourcePoliciesListCall {
127034	c.urlParams_.Set("pageToken", pageToken)
127035	return c
127036}
127037
127038// Fields allows partial responses to be retrieved. See
127039// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127040// for more information.
127041func (c *ResourcePoliciesListCall) Fields(s ...googleapi.Field) *ResourcePoliciesListCall {
127042	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127043	return c
127044}
127045
127046// IfNoneMatch sets the optional parameter which makes the operation
127047// fail if the object's ETag matches the given value. This is useful for
127048// getting updates only after the object has changed since the last
127049// request. Use googleapi.IsNotModified to check whether the response
127050// error from Do is the result of In-None-Match.
127051func (c *ResourcePoliciesListCall) IfNoneMatch(entityTag string) *ResourcePoliciesListCall {
127052	c.ifNoneMatch_ = entityTag
127053	return c
127054}
127055
127056// Context sets the context to be used in this call's Do method. Any
127057// pending HTTP request will be aborted if the provided context is
127058// canceled.
127059func (c *ResourcePoliciesListCall) Context(ctx context.Context) *ResourcePoliciesListCall {
127060	c.ctx_ = ctx
127061	return c
127062}
127063
127064// Header returns an http.Header that can be modified by the caller to
127065// add HTTP headers to the request.
127066func (c *ResourcePoliciesListCall) Header() http.Header {
127067	if c.header_ == nil {
127068		c.header_ = make(http.Header)
127069	}
127070	return c.header_
127071}
127072
127073func (c *ResourcePoliciesListCall) doRequest(alt string) (*http.Response, error) {
127074	reqHeaders := make(http.Header)
127075	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127076	for k, v := range c.header_ {
127077		reqHeaders[k] = v
127078	}
127079	reqHeaders.Set("User-Agent", c.s.userAgent())
127080	if c.ifNoneMatch_ != "" {
127081		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127082	}
127083	var body io.Reader = nil
127084	c.urlParams_.Set("alt", alt)
127085	c.urlParams_.Set("prettyPrint", "false")
127086	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies")
127087	urls += "?" + c.urlParams_.Encode()
127088	req, err := http.NewRequest("GET", urls, body)
127089	if err != nil {
127090		return nil, err
127091	}
127092	req.Header = reqHeaders
127093	googleapi.Expand(req.URL, map[string]string{
127094		"project": c.project,
127095		"region":  c.region,
127096	})
127097	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127098}
127099
127100// Do executes the "compute.resourcePolicies.list" call.
127101// Exactly one of *ResourcePolicyList or error will be non-nil. Any
127102// non-2xx status code is an error. Response headers are in either
127103// *ResourcePolicyList.ServerResponse.Header or (if a response was
127104// returned at all) in error.(*googleapi.Error).Header. Use
127105// googleapi.IsNotModified to check whether the returned error was
127106// because http.StatusNotModified was returned.
127107func (c *ResourcePoliciesListCall) Do(opts ...googleapi.CallOption) (*ResourcePolicyList, error) {
127108	gensupport.SetOptions(c.urlParams_, opts...)
127109	res, err := c.doRequest("json")
127110	if res != nil && res.StatusCode == http.StatusNotModified {
127111		if res.Body != nil {
127112			res.Body.Close()
127113		}
127114		return nil, &googleapi.Error{
127115			Code:   res.StatusCode,
127116			Header: res.Header,
127117		}
127118	}
127119	if err != nil {
127120		return nil, err
127121	}
127122	defer googleapi.CloseBody(res)
127123	if err := googleapi.CheckResponse(res); err != nil {
127124		return nil, err
127125	}
127126	ret := &ResourcePolicyList{
127127		ServerResponse: googleapi.ServerResponse{
127128			Header:         res.Header,
127129			HTTPStatusCode: res.StatusCode,
127130		},
127131	}
127132	target := &ret
127133	if err := gensupport.DecodeResponse(target, res); err != nil {
127134		return nil, err
127135	}
127136	return ret, nil
127137	// {
127138	//   "description": "A list all the resource policies that have been configured for the specified project in specified region.",
127139	//   "httpMethod": "GET",
127140	//   "id": "compute.resourcePolicies.list",
127141	//   "parameterOrder": [
127142	//     "project",
127143	//     "region"
127144	//   ],
127145	//   "parameters": {
127146	//     "filter": {
127147	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
127148	//       "location": "query",
127149	//       "type": "string"
127150	//     },
127151	//     "maxResults": {
127152	//       "default": "500",
127153	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
127154	//       "format": "uint32",
127155	//       "location": "query",
127156	//       "minimum": "0",
127157	//       "type": "integer"
127158	//     },
127159	//     "orderBy": {
127160	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
127161	//       "location": "query",
127162	//       "type": "string"
127163	//     },
127164	//     "pageToken": {
127165	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
127166	//       "location": "query",
127167	//       "type": "string"
127168	//     },
127169	//     "project": {
127170	//       "description": "Project ID for this request.",
127171	//       "location": "path",
127172	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127173	//       "required": true,
127174	//       "type": "string"
127175	//     },
127176	//     "region": {
127177	//       "description": "Name of the region for this request.",
127178	//       "location": "path",
127179	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127180	//       "required": true,
127181	//       "type": "string"
127182	//     }
127183	//   },
127184	//   "path": "{project}/regions/{region}/resourcePolicies",
127185	//   "response": {
127186	//     "$ref": "ResourcePolicyList"
127187	//   },
127188	//   "scopes": [
127189	//     "https://www.googleapis.com/auth/cloud-platform",
127190	//     "https://www.googleapis.com/auth/compute",
127191	//     "https://www.googleapis.com/auth/compute.readonly"
127192	//   ]
127193	// }
127194
127195}
127196
127197// Pages invokes f for each page of results.
127198// A non-nil error returned from f will halt the iteration.
127199// The provided context supersedes any context provided to the Context method.
127200func (c *ResourcePoliciesListCall) Pages(ctx context.Context, f func(*ResourcePolicyList) error) error {
127201	c.ctx_ = ctx
127202	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127203	for {
127204		x, err := c.Do()
127205		if err != nil {
127206			return err
127207		}
127208		if err := f(x); err != nil {
127209			return err
127210		}
127211		if x.NextPageToken == "" {
127212			return nil
127213		}
127214		c.PageToken(x.NextPageToken)
127215	}
127216}
127217
127218// method id "compute.resourcePolicies.setIamPolicy":
127219
127220type ResourcePoliciesSetIamPolicyCall struct {
127221	s                      *Service
127222	project                string
127223	region                 string
127224	resource               string
127225	regionsetpolicyrequest *RegionSetPolicyRequest
127226	urlParams_             gensupport.URLParams
127227	ctx_                   context.Context
127228	header_                http.Header
127229}
127230
127231// SetIamPolicy: Sets the access control policy on the specified
127232// resource. Replaces any existing policy.
127233func (r *ResourcePoliciesService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *ResourcePoliciesSetIamPolicyCall {
127234	c := &ResourcePoliciesSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127235	c.project = project
127236	c.region = region
127237	c.resource = resource
127238	c.regionsetpolicyrequest = regionsetpolicyrequest
127239	return c
127240}
127241
127242// Fields allows partial responses to be retrieved. See
127243// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127244// for more information.
127245func (c *ResourcePoliciesSetIamPolicyCall) Fields(s ...googleapi.Field) *ResourcePoliciesSetIamPolicyCall {
127246	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127247	return c
127248}
127249
127250// Context sets the context to be used in this call's Do method. Any
127251// pending HTTP request will be aborted if the provided context is
127252// canceled.
127253func (c *ResourcePoliciesSetIamPolicyCall) Context(ctx context.Context) *ResourcePoliciesSetIamPolicyCall {
127254	c.ctx_ = ctx
127255	return c
127256}
127257
127258// Header returns an http.Header that can be modified by the caller to
127259// add HTTP headers to the request.
127260func (c *ResourcePoliciesSetIamPolicyCall) Header() http.Header {
127261	if c.header_ == nil {
127262		c.header_ = make(http.Header)
127263	}
127264	return c.header_
127265}
127266
127267func (c *ResourcePoliciesSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
127268	reqHeaders := make(http.Header)
127269	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127270	for k, v := range c.header_ {
127271		reqHeaders[k] = v
127272	}
127273	reqHeaders.Set("User-Agent", c.s.userAgent())
127274	var body io.Reader = nil
127275	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
127276	if err != nil {
127277		return nil, err
127278	}
127279	reqHeaders.Set("Content-Type", "application/json")
127280	c.urlParams_.Set("alt", alt)
127281	c.urlParams_.Set("prettyPrint", "false")
127282	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy")
127283	urls += "?" + c.urlParams_.Encode()
127284	req, err := http.NewRequest("POST", urls, body)
127285	if err != nil {
127286		return nil, err
127287	}
127288	req.Header = reqHeaders
127289	googleapi.Expand(req.URL, map[string]string{
127290		"project":  c.project,
127291		"region":   c.region,
127292		"resource": c.resource,
127293	})
127294	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127295}
127296
127297// Do executes the "compute.resourcePolicies.setIamPolicy" call.
127298// Exactly one of *Policy or error will be non-nil. Any non-2xx status
127299// code is an error. Response headers are in either
127300// *Policy.ServerResponse.Header or (if a response was returned at all)
127301// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
127302// check whether the returned error was because http.StatusNotModified
127303// was returned.
127304func (c *ResourcePoliciesSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
127305	gensupport.SetOptions(c.urlParams_, opts...)
127306	res, err := c.doRequest("json")
127307	if res != nil && res.StatusCode == http.StatusNotModified {
127308		if res.Body != nil {
127309			res.Body.Close()
127310		}
127311		return nil, &googleapi.Error{
127312			Code:   res.StatusCode,
127313			Header: res.Header,
127314		}
127315	}
127316	if err != nil {
127317		return nil, err
127318	}
127319	defer googleapi.CloseBody(res)
127320	if err := googleapi.CheckResponse(res); err != nil {
127321		return nil, err
127322	}
127323	ret := &Policy{
127324		ServerResponse: googleapi.ServerResponse{
127325			Header:         res.Header,
127326			HTTPStatusCode: res.StatusCode,
127327		},
127328	}
127329	target := &ret
127330	if err := gensupport.DecodeResponse(target, res); err != nil {
127331		return nil, err
127332	}
127333	return ret, nil
127334	// {
127335	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
127336	//   "httpMethod": "POST",
127337	//   "id": "compute.resourcePolicies.setIamPolicy",
127338	//   "parameterOrder": [
127339	//     "project",
127340	//     "region",
127341	//     "resource"
127342	//   ],
127343	//   "parameters": {
127344	//     "project": {
127345	//       "description": "Project ID for this request.",
127346	//       "location": "path",
127347	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127348	//       "required": true,
127349	//       "type": "string"
127350	//     },
127351	//     "region": {
127352	//       "description": "The name of the region for this request.",
127353	//       "location": "path",
127354	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127355	//       "required": true,
127356	//       "type": "string"
127357	//     },
127358	//     "resource": {
127359	//       "description": "Name or id of the resource for this request.",
127360	//       "location": "path",
127361	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127362	//       "required": true,
127363	//       "type": "string"
127364	//     }
127365	//   },
127366	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/setIamPolicy",
127367	//   "request": {
127368	//     "$ref": "RegionSetPolicyRequest"
127369	//   },
127370	//   "response": {
127371	//     "$ref": "Policy"
127372	//   },
127373	//   "scopes": [
127374	//     "https://www.googleapis.com/auth/cloud-platform",
127375	//     "https://www.googleapis.com/auth/compute"
127376	//   ]
127377	// }
127378
127379}
127380
127381// method id "compute.resourcePolicies.testIamPermissions":
127382
127383type ResourcePoliciesTestIamPermissionsCall struct {
127384	s                      *Service
127385	project                string
127386	region                 string
127387	resource               string
127388	testpermissionsrequest *TestPermissionsRequest
127389	urlParams_             gensupport.URLParams
127390	ctx_                   context.Context
127391	header_                http.Header
127392}
127393
127394// TestIamPermissions: Returns permissions that a caller has on the
127395// specified resource.
127396func (r *ResourcePoliciesService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *ResourcePoliciesTestIamPermissionsCall {
127397	c := &ResourcePoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127398	c.project = project
127399	c.region = region
127400	c.resource = resource
127401	c.testpermissionsrequest = testpermissionsrequest
127402	return c
127403}
127404
127405// Fields allows partial responses to be retrieved. See
127406// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127407// for more information.
127408func (c *ResourcePoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *ResourcePoliciesTestIamPermissionsCall {
127409	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127410	return c
127411}
127412
127413// Context sets the context to be used in this call's Do method. Any
127414// pending HTTP request will be aborted if the provided context is
127415// canceled.
127416func (c *ResourcePoliciesTestIamPermissionsCall) Context(ctx context.Context) *ResourcePoliciesTestIamPermissionsCall {
127417	c.ctx_ = ctx
127418	return c
127419}
127420
127421// Header returns an http.Header that can be modified by the caller to
127422// add HTTP headers to the request.
127423func (c *ResourcePoliciesTestIamPermissionsCall) Header() http.Header {
127424	if c.header_ == nil {
127425		c.header_ = make(http.Header)
127426	}
127427	return c.header_
127428}
127429
127430func (c *ResourcePoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
127431	reqHeaders := make(http.Header)
127432	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127433	for k, v := range c.header_ {
127434		reqHeaders[k] = v
127435	}
127436	reqHeaders.Set("User-Agent", c.s.userAgent())
127437	var body io.Reader = nil
127438	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
127439	if err != nil {
127440		return nil, err
127441	}
127442	reqHeaders.Set("Content-Type", "application/json")
127443	c.urlParams_.Set("alt", alt)
127444	c.urlParams_.Set("prettyPrint", "false")
127445	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions")
127446	urls += "?" + c.urlParams_.Encode()
127447	req, err := http.NewRequest("POST", urls, body)
127448	if err != nil {
127449		return nil, err
127450	}
127451	req.Header = reqHeaders
127452	googleapi.Expand(req.URL, map[string]string{
127453		"project":  c.project,
127454		"region":   c.region,
127455		"resource": c.resource,
127456	})
127457	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127458}
127459
127460// Do executes the "compute.resourcePolicies.testIamPermissions" call.
127461// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
127462// non-2xx status code is an error. Response headers are in either
127463// *TestPermissionsResponse.ServerResponse.Header or (if a response was
127464// returned at all) in error.(*googleapi.Error).Header. Use
127465// googleapi.IsNotModified to check whether the returned error was
127466// because http.StatusNotModified was returned.
127467func (c *ResourcePoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
127468	gensupport.SetOptions(c.urlParams_, opts...)
127469	res, err := c.doRequest("json")
127470	if res != nil && res.StatusCode == http.StatusNotModified {
127471		if res.Body != nil {
127472			res.Body.Close()
127473		}
127474		return nil, &googleapi.Error{
127475			Code:   res.StatusCode,
127476			Header: res.Header,
127477		}
127478	}
127479	if err != nil {
127480		return nil, err
127481	}
127482	defer googleapi.CloseBody(res)
127483	if err := googleapi.CheckResponse(res); err != nil {
127484		return nil, err
127485	}
127486	ret := &TestPermissionsResponse{
127487		ServerResponse: googleapi.ServerResponse{
127488			Header:         res.Header,
127489			HTTPStatusCode: res.StatusCode,
127490		},
127491	}
127492	target := &ret
127493	if err := gensupport.DecodeResponse(target, res); err != nil {
127494		return nil, err
127495	}
127496	return ret, nil
127497	// {
127498	//   "description": "Returns permissions that a caller has on the specified resource.",
127499	//   "httpMethod": "POST",
127500	//   "id": "compute.resourcePolicies.testIamPermissions",
127501	//   "parameterOrder": [
127502	//     "project",
127503	//     "region",
127504	//     "resource"
127505	//   ],
127506	//   "parameters": {
127507	//     "project": {
127508	//       "description": "Project ID for this request.",
127509	//       "location": "path",
127510	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127511	//       "required": true,
127512	//       "type": "string"
127513	//     },
127514	//     "region": {
127515	//       "description": "The name of the region for this request.",
127516	//       "location": "path",
127517	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127518	//       "required": true,
127519	//       "type": "string"
127520	//     },
127521	//     "resource": {
127522	//       "description": "Name or id of the resource for this request.",
127523	//       "location": "path",
127524	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127525	//       "required": true,
127526	//       "type": "string"
127527	//     }
127528	//   },
127529	//   "path": "{project}/regions/{region}/resourcePolicies/{resource}/testIamPermissions",
127530	//   "request": {
127531	//     "$ref": "TestPermissionsRequest"
127532	//   },
127533	//   "response": {
127534	//     "$ref": "TestPermissionsResponse"
127535	//   },
127536	//   "scopes": [
127537	//     "https://www.googleapis.com/auth/cloud-platform",
127538	//     "https://www.googleapis.com/auth/compute",
127539	//     "https://www.googleapis.com/auth/compute.readonly"
127540	//   ]
127541	// }
127542
127543}
127544
127545// method id "compute.routers.aggregatedList":
127546
127547type RoutersAggregatedListCall struct {
127548	s            *Service
127549	project      string
127550	urlParams_   gensupport.URLParams
127551	ifNoneMatch_ string
127552	ctx_         context.Context
127553	header_      http.Header
127554}
127555
127556// AggregatedList: Retrieves an aggregated list of routers.
127557func (r *RoutersService) AggregatedList(project string) *RoutersAggregatedListCall {
127558	c := &RoutersAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127559	c.project = project
127560	return c
127561}
127562
127563// Filter sets the optional parameter "filter": A filter expression that
127564// filters resources listed in the response. The expression must specify
127565// the field name, a comparison operator, and the value that you want to
127566// use for filtering. The value must be a string, a number, or a
127567// boolean. The comparison operator must be either =, !=, >, or <.
127568//
127569// For example, if you are filtering Compute Engine instances, you can
127570// exclude instances named example-instance by specifying name !=
127571// example-instance.
127572//
127573// You can also filter nested fields. For example, you could specify
127574// scheduling.automaticRestart = false to include instances only if they
127575// are not scheduled for automatic restarts. You can use filtering on
127576// nested fields to filter based on resource labels.
127577//
127578// To filter on multiple expressions, provide each separate expression
127579// within parentheses. For example, (scheduling.automaticRestart = true)
127580// (cpuPlatform = "Intel Skylake"). By default, each expression is an
127581// AND expression. However, you can include AND and OR expressions
127582// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
127583// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
127584// true).
127585func (c *RoutersAggregatedListCall) Filter(filter string) *RoutersAggregatedListCall {
127586	c.urlParams_.Set("filter", filter)
127587	return c
127588}
127589
127590// IncludeAllScopes sets the optional parameter "includeAllScopes":
127591// Indicates whether every visible scope for each scope type (zone,
127592// region, global) should be included in the response. For new resource
127593// types added after this field, the flag has no effect as new resource
127594// types will always include every visible scope for each scope type in
127595// response. For resource types which predate this field, if this flag
127596// is omitted or false, only scopes of the scope types where the
127597// resource type is expected to be found will be included.
127598func (c *RoutersAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *RoutersAggregatedListCall {
127599	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
127600	return c
127601}
127602
127603// MaxResults sets the optional parameter "maxResults": The maximum
127604// number of results per page that should be returned. If the number of
127605// available results is larger than maxResults, Compute Engine returns a
127606// nextPageToken that can be used to get the next page of results in
127607// subsequent list requests. Acceptable values are 0 to 500, inclusive.
127608// (Default: 500)
127609func (c *RoutersAggregatedListCall) MaxResults(maxResults int64) *RoutersAggregatedListCall {
127610	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
127611	return c
127612}
127613
127614// OrderBy sets the optional parameter "orderBy": Sorts list results by
127615// a certain order. By default, results are returned in alphanumerical
127616// order based on the resource name.
127617//
127618// You can also sort results in descending order based on the creation
127619// timestamp using orderBy="creationTimestamp desc". This sorts results
127620// based on the creationTimestamp field in reverse chronological order
127621// (newest result first). Use this to sort resources like operations so
127622// that the newest operation is returned first.
127623//
127624// Currently, only sorting by name or creationTimestamp desc is
127625// supported.
127626func (c *RoutersAggregatedListCall) OrderBy(orderBy string) *RoutersAggregatedListCall {
127627	c.urlParams_.Set("orderBy", orderBy)
127628	return c
127629}
127630
127631// PageToken sets the optional parameter "pageToken": Specifies a page
127632// token to use. Set pageToken to the nextPageToken returned by a
127633// previous list request to get the next page of results.
127634func (c *RoutersAggregatedListCall) PageToken(pageToken string) *RoutersAggregatedListCall {
127635	c.urlParams_.Set("pageToken", pageToken)
127636	return c
127637}
127638
127639// Fields allows partial responses to be retrieved. See
127640// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127641// for more information.
127642func (c *RoutersAggregatedListCall) Fields(s ...googleapi.Field) *RoutersAggregatedListCall {
127643	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127644	return c
127645}
127646
127647// IfNoneMatch sets the optional parameter which makes the operation
127648// fail if the object's ETag matches the given value. This is useful for
127649// getting updates only after the object has changed since the last
127650// request. Use googleapi.IsNotModified to check whether the response
127651// error from Do is the result of In-None-Match.
127652func (c *RoutersAggregatedListCall) IfNoneMatch(entityTag string) *RoutersAggregatedListCall {
127653	c.ifNoneMatch_ = entityTag
127654	return c
127655}
127656
127657// Context sets the context to be used in this call's Do method. Any
127658// pending HTTP request will be aborted if the provided context is
127659// canceled.
127660func (c *RoutersAggregatedListCall) Context(ctx context.Context) *RoutersAggregatedListCall {
127661	c.ctx_ = ctx
127662	return c
127663}
127664
127665// Header returns an http.Header that can be modified by the caller to
127666// add HTTP headers to the request.
127667func (c *RoutersAggregatedListCall) Header() http.Header {
127668	if c.header_ == nil {
127669		c.header_ = make(http.Header)
127670	}
127671	return c.header_
127672}
127673
127674func (c *RoutersAggregatedListCall) doRequest(alt string) (*http.Response, error) {
127675	reqHeaders := make(http.Header)
127676	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127677	for k, v := range c.header_ {
127678		reqHeaders[k] = v
127679	}
127680	reqHeaders.Set("User-Agent", c.s.userAgent())
127681	if c.ifNoneMatch_ != "" {
127682		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
127683	}
127684	var body io.Reader = nil
127685	c.urlParams_.Set("alt", alt)
127686	c.urlParams_.Set("prettyPrint", "false")
127687	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/routers")
127688	urls += "?" + c.urlParams_.Encode()
127689	req, err := http.NewRequest("GET", urls, body)
127690	if err != nil {
127691		return nil, err
127692	}
127693	req.Header = reqHeaders
127694	googleapi.Expand(req.URL, map[string]string{
127695		"project": c.project,
127696	})
127697	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127698}
127699
127700// Do executes the "compute.routers.aggregatedList" call.
127701// Exactly one of *RouterAggregatedList or error will be non-nil. Any
127702// non-2xx status code is an error. Response headers are in either
127703// *RouterAggregatedList.ServerResponse.Header or (if a response was
127704// returned at all) in error.(*googleapi.Error).Header. Use
127705// googleapi.IsNotModified to check whether the returned error was
127706// because http.StatusNotModified was returned.
127707func (c *RoutersAggregatedListCall) Do(opts ...googleapi.CallOption) (*RouterAggregatedList, error) {
127708	gensupport.SetOptions(c.urlParams_, opts...)
127709	res, err := c.doRequest("json")
127710	if res != nil && res.StatusCode == http.StatusNotModified {
127711		if res.Body != nil {
127712			res.Body.Close()
127713		}
127714		return nil, &googleapi.Error{
127715			Code:   res.StatusCode,
127716			Header: res.Header,
127717		}
127718	}
127719	if err != nil {
127720		return nil, err
127721	}
127722	defer googleapi.CloseBody(res)
127723	if err := googleapi.CheckResponse(res); err != nil {
127724		return nil, err
127725	}
127726	ret := &RouterAggregatedList{
127727		ServerResponse: googleapi.ServerResponse{
127728			Header:         res.Header,
127729			HTTPStatusCode: res.StatusCode,
127730		},
127731	}
127732	target := &ret
127733	if err := gensupport.DecodeResponse(target, res); err != nil {
127734		return nil, err
127735	}
127736	return ret, nil
127737	// {
127738	//   "description": "Retrieves an aggregated list of routers.",
127739	//   "httpMethod": "GET",
127740	//   "id": "compute.routers.aggregatedList",
127741	//   "parameterOrder": [
127742	//     "project"
127743	//   ],
127744	//   "parameters": {
127745	//     "filter": {
127746	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
127747	//       "location": "query",
127748	//       "type": "string"
127749	//     },
127750	//     "includeAllScopes": {
127751	//       "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.",
127752	//       "location": "query",
127753	//       "type": "boolean"
127754	//     },
127755	//     "maxResults": {
127756	//       "default": "500",
127757	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
127758	//       "format": "uint32",
127759	//       "location": "query",
127760	//       "minimum": "0",
127761	//       "type": "integer"
127762	//     },
127763	//     "orderBy": {
127764	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
127765	//       "location": "query",
127766	//       "type": "string"
127767	//     },
127768	//     "pageToken": {
127769	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
127770	//       "location": "query",
127771	//       "type": "string"
127772	//     },
127773	//     "project": {
127774	//       "description": "Project ID for this request.",
127775	//       "location": "path",
127776	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127777	//       "required": true,
127778	//       "type": "string"
127779	//     }
127780	//   },
127781	//   "path": "{project}/aggregated/routers",
127782	//   "response": {
127783	//     "$ref": "RouterAggregatedList"
127784	//   },
127785	//   "scopes": [
127786	//     "https://www.googleapis.com/auth/cloud-platform",
127787	//     "https://www.googleapis.com/auth/compute",
127788	//     "https://www.googleapis.com/auth/compute.readonly"
127789	//   ]
127790	// }
127791
127792}
127793
127794// Pages invokes f for each page of results.
127795// A non-nil error returned from f will halt the iteration.
127796// The provided context supersedes any context provided to the Context method.
127797func (c *RoutersAggregatedListCall) Pages(ctx context.Context, f func(*RouterAggregatedList) error) error {
127798	c.ctx_ = ctx
127799	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
127800	for {
127801		x, err := c.Do()
127802		if err != nil {
127803			return err
127804		}
127805		if err := f(x); err != nil {
127806			return err
127807		}
127808		if x.NextPageToken == "" {
127809			return nil
127810		}
127811		c.PageToken(x.NextPageToken)
127812	}
127813}
127814
127815// method id "compute.routers.delete":
127816
127817type RoutersDeleteCall struct {
127818	s          *Service
127819	project    string
127820	region     string
127821	router     string
127822	urlParams_ gensupport.URLParams
127823	ctx_       context.Context
127824	header_    http.Header
127825}
127826
127827// Delete: Deletes the specified Router resource.
127828func (r *RoutersService) Delete(project string, region string, router string) *RoutersDeleteCall {
127829	c := &RoutersDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
127830	c.project = project
127831	c.region = region
127832	c.router = router
127833	return c
127834}
127835
127836// RequestId sets the optional parameter "requestId": An optional
127837// request ID to identify requests. Specify a unique request ID so that
127838// if you must retry your request, the server will know to ignore the
127839// request if it has already been completed.
127840//
127841// For example, consider a situation where you make an initial request
127842// and the request times out. If you make the request again with the
127843// same request ID, the server can check if original operation with the
127844// same request ID was received, and if so, will ignore the second
127845// request. This prevents clients from accidentally creating duplicate
127846// commitments.
127847//
127848// The request ID must be a valid UUID with the exception that zero UUID
127849// is not supported (00000000-0000-0000-0000-000000000000).
127850func (c *RoutersDeleteCall) RequestId(requestId string) *RoutersDeleteCall {
127851	c.urlParams_.Set("requestId", requestId)
127852	return c
127853}
127854
127855// Fields allows partial responses to be retrieved. See
127856// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
127857// for more information.
127858func (c *RoutersDeleteCall) Fields(s ...googleapi.Field) *RoutersDeleteCall {
127859	c.urlParams_.Set("fields", googleapi.CombineFields(s))
127860	return c
127861}
127862
127863// Context sets the context to be used in this call's Do method. Any
127864// pending HTTP request will be aborted if the provided context is
127865// canceled.
127866func (c *RoutersDeleteCall) Context(ctx context.Context) *RoutersDeleteCall {
127867	c.ctx_ = ctx
127868	return c
127869}
127870
127871// Header returns an http.Header that can be modified by the caller to
127872// add HTTP headers to the request.
127873func (c *RoutersDeleteCall) Header() http.Header {
127874	if c.header_ == nil {
127875		c.header_ = make(http.Header)
127876	}
127877	return c.header_
127878}
127879
127880func (c *RoutersDeleteCall) doRequest(alt string) (*http.Response, error) {
127881	reqHeaders := make(http.Header)
127882	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
127883	for k, v := range c.header_ {
127884		reqHeaders[k] = v
127885	}
127886	reqHeaders.Set("User-Agent", c.s.userAgent())
127887	var body io.Reader = nil
127888	c.urlParams_.Set("alt", alt)
127889	c.urlParams_.Set("prettyPrint", "false")
127890	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
127891	urls += "?" + c.urlParams_.Encode()
127892	req, err := http.NewRequest("DELETE", urls, body)
127893	if err != nil {
127894		return nil, err
127895	}
127896	req.Header = reqHeaders
127897	googleapi.Expand(req.URL, map[string]string{
127898		"project": c.project,
127899		"region":  c.region,
127900		"router":  c.router,
127901	})
127902	return gensupport.SendRequest(c.ctx_, c.s.client, req)
127903}
127904
127905// Do executes the "compute.routers.delete" call.
127906// Exactly one of *Operation or error will be non-nil. Any non-2xx
127907// status code is an error. Response headers are in either
127908// *Operation.ServerResponse.Header or (if a response was returned at
127909// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
127910// to check whether the returned error was because
127911// http.StatusNotModified was returned.
127912func (c *RoutersDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
127913	gensupport.SetOptions(c.urlParams_, opts...)
127914	res, err := c.doRequest("json")
127915	if res != nil && res.StatusCode == http.StatusNotModified {
127916		if res.Body != nil {
127917			res.Body.Close()
127918		}
127919		return nil, &googleapi.Error{
127920			Code:   res.StatusCode,
127921			Header: res.Header,
127922		}
127923	}
127924	if err != nil {
127925		return nil, err
127926	}
127927	defer googleapi.CloseBody(res)
127928	if err := googleapi.CheckResponse(res); err != nil {
127929		return nil, err
127930	}
127931	ret := &Operation{
127932		ServerResponse: googleapi.ServerResponse{
127933			Header:         res.Header,
127934			HTTPStatusCode: res.StatusCode,
127935		},
127936	}
127937	target := &ret
127938	if err := gensupport.DecodeResponse(target, res); err != nil {
127939		return nil, err
127940	}
127941	return ret, nil
127942	// {
127943	//   "description": "Deletes the specified Router resource.",
127944	//   "httpMethod": "DELETE",
127945	//   "id": "compute.routers.delete",
127946	//   "parameterOrder": [
127947	//     "project",
127948	//     "region",
127949	//     "router"
127950	//   ],
127951	//   "parameters": {
127952	//     "project": {
127953	//       "description": "Project ID for this request.",
127954	//       "location": "path",
127955	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
127956	//       "required": true,
127957	//       "type": "string"
127958	//     },
127959	//     "region": {
127960	//       "description": "Name of the region for this request.",
127961	//       "location": "path",
127962	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
127963	//       "required": true,
127964	//       "type": "string"
127965	//     },
127966	//     "requestId": {
127967	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
127968	//       "location": "query",
127969	//       "type": "string"
127970	//     },
127971	//     "router": {
127972	//       "description": "Name of the Router resource to delete.",
127973	//       "location": "path",
127974	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
127975	//       "required": true,
127976	//       "type": "string"
127977	//     }
127978	//   },
127979	//   "path": "{project}/regions/{region}/routers/{router}",
127980	//   "response": {
127981	//     "$ref": "Operation"
127982	//   },
127983	//   "scopes": [
127984	//     "https://www.googleapis.com/auth/cloud-platform",
127985	//     "https://www.googleapis.com/auth/compute"
127986	//   ]
127987	// }
127988
127989}
127990
127991// method id "compute.routers.get":
127992
127993type RoutersGetCall struct {
127994	s            *Service
127995	project      string
127996	region       string
127997	router       string
127998	urlParams_   gensupport.URLParams
127999	ifNoneMatch_ string
128000	ctx_         context.Context
128001	header_      http.Header
128002}
128003
128004// Get: Returns the specified Router resource. Gets a list of available
128005// routers by making a list() request.
128006func (r *RoutersService) Get(project string, region string, router string) *RoutersGetCall {
128007	c := &RoutersGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128008	c.project = project
128009	c.region = region
128010	c.router = router
128011	return c
128012}
128013
128014// Fields allows partial responses to be retrieved. See
128015// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128016// for more information.
128017func (c *RoutersGetCall) Fields(s ...googleapi.Field) *RoutersGetCall {
128018	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128019	return c
128020}
128021
128022// IfNoneMatch sets the optional parameter which makes the operation
128023// fail if the object's ETag matches the given value. This is useful for
128024// getting updates only after the object has changed since the last
128025// request. Use googleapi.IsNotModified to check whether the response
128026// error from Do is the result of In-None-Match.
128027func (c *RoutersGetCall) IfNoneMatch(entityTag string) *RoutersGetCall {
128028	c.ifNoneMatch_ = entityTag
128029	return c
128030}
128031
128032// Context sets the context to be used in this call's Do method. Any
128033// pending HTTP request will be aborted if the provided context is
128034// canceled.
128035func (c *RoutersGetCall) Context(ctx context.Context) *RoutersGetCall {
128036	c.ctx_ = ctx
128037	return c
128038}
128039
128040// Header returns an http.Header that can be modified by the caller to
128041// add HTTP headers to the request.
128042func (c *RoutersGetCall) Header() http.Header {
128043	if c.header_ == nil {
128044		c.header_ = make(http.Header)
128045	}
128046	return c.header_
128047}
128048
128049func (c *RoutersGetCall) doRequest(alt string) (*http.Response, error) {
128050	reqHeaders := make(http.Header)
128051	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128052	for k, v := range c.header_ {
128053		reqHeaders[k] = v
128054	}
128055	reqHeaders.Set("User-Agent", c.s.userAgent())
128056	if c.ifNoneMatch_ != "" {
128057		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128058	}
128059	var body io.Reader = nil
128060	c.urlParams_.Set("alt", alt)
128061	c.urlParams_.Set("prettyPrint", "false")
128062	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
128063	urls += "?" + c.urlParams_.Encode()
128064	req, err := http.NewRequest("GET", urls, body)
128065	if err != nil {
128066		return nil, err
128067	}
128068	req.Header = reqHeaders
128069	googleapi.Expand(req.URL, map[string]string{
128070		"project": c.project,
128071		"region":  c.region,
128072		"router":  c.router,
128073	})
128074	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128075}
128076
128077// Do executes the "compute.routers.get" call.
128078// Exactly one of *Router or error will be non-nil. Any non-2xx status
128079// code is an error. Response headers are in either
128080// *Router.ServerResponse.Header or (if a response was returned at all)
128081// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
128082// check whether the returned error was because http.StatusNotModified
128083// was returned.
128084func (c *RoutersGetCall) Do(opts ...googleapi.CallOption) (*Router, error) {
128085	gensupport.SetOptions(c.urlParams_, opts...)
128086	res, err := c.doRequest("json")
128087	if res != nil && res.StatusCode == http.StatusNotModified {
128088		if res.Body != nil {
128089			res.Body.Close()
128090		}
128091		return nil, &googleapi.Error{
128092			Code:   res.StatusCode,
128093			Header: res.Header,
128094		}
128095	}
128096	if err != nil {
128097		return nil, err
128098	}
128099	defer googleapi.CloseBody(res)
128100	if err := googleapi.CheckResponse(res); err != nil {
128101		return nil, err
128102	}
128103	ret := &Router{
128104		ServerResponse: googleapi.ServerResponse{
128105			Header:         res.Header,
128106			HTTPStatusCode: res.StatusCode,
128107		},
128108	}
128109	target := &ret
128110	if err := gensupport.DecodeResponse(target, res); err != nil {
128111		return nil, err
128112	}
128113	return ret, nil
128114	// {
128115	//   "description": "Returns the specified Router resource. Gets a list of available routers by making a list() request.",
128116	//   "httpMethod": "GET",
128117	//   "id": "compute.routers.get",
128118	//   "parameterOrder": [
128119	//     "project",
128120	//     "region",
128121	//     "router"
128122	//   ],
128123	//   "parameters": {
128124	//     "project": {
128125	//       "description": "Project ID for this request.",
128126	//       "location": "path",
128127	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128128	//       "required": true,
128129	//       "type": "string"
128130	//     },
128131	//     "region": {
128132	//       "description": "Name of the region for this request.",
128133	//       "location": "path",
128134	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128135	//       "required": true,
128136	//       "type": "string"
128137	//     },
128138	//     "router": {
128139	//       "description": "Name of the Router resource to return.",
128140	//       "location": "path",
128141	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128142	//       "required": true,
128143	//       "type": "string"
128144	//     }
128145	//   },
128146	//   "path": "{project}/regions/{region}/routers/{router}",
128147	//   "response": {
128148	//     "$ref": "Router"
128149	//   },
128150	//   "scopes": [
128151	//     "https://www.googleapis.com/auth/cloud-platform",
128152	//     "https://www.googleapis.com/auth/compute",
128153	//     "https://www.googleapis.com/auth/compute.readonly"
128154	//   ]
128155	// }
128156
128157}
128158
128159// method id "compute.routers.getNatMappingInfo":
128160
128161type RoutersGetNatMappingInfoCall struct {
128162	s            *Service
128163	project      string
128164	region       string
128165	router       string
128166	urlParams_   gensupport.URLParams
128167	ifNoneMatch_ string
128168	ctx_         context.Context
128169	header_      http.Header
128170}
128171
128172// GetNatMappingInfo: Retrieves runtime Nat mapping information of VM
128173// endpoints.
128174func (r *RoutersService) GetNatMappingInfo(project string, region string, router string) *RoutersGetNatMappingInfoCall {
128175	c := &RoutersGetNatMappingInfoCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128176	c.project = project
128177	c.region = region
128178	c.router = router
128179	return c
128180}
128181
128182// Filter sets the optional parameter "filter": A filter expression that
128183// filters resources listed in the response. The expression must specify
128184// the field name, a comparison operator, and the value that you want to
128185// use for filtering. The value must be a string, a number, or a
128186// boolean. The comparison operator must be either =, !=, >, or <.
128187//
128188// For example, if you are filtering Compute Engine instances, you can
128189// exclude instances named example-instance by specifying name !=
128190// example-instance.
128191//
128192// You can also filter nested fields. For example, you could specify
128193// scheduling.automaticRestart = false to include instances only if they
128194// are not scheduled for automatic restarts. You can use filtering on
128195// nested fields to filter based on resource labels.
128196//
128197// To filter on multiple expressions, provide each separate expression
128198// within parentheses. For example, (scheduling.automaticRestart = true)
128199// (cpuPlatform = "Intel Skylake"). By default, each expression is an
128200// AND expression. However, you can include AND and OR expressions
128201// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
128202// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
128203// true).
128204func (c *RoutersGetNatMappingInfoCall) Filter(filter string) *RoutersGetNatMappingInfoCall {
128205	c.urlParams_.Set("filter", filter)
128206	return c
128207}
128208
128209// MaxResults sets the optional parameter "maxResults": The maximum
128210// number of results per page that should be returned. If the number of
128211// available results is larger than maxResults, Compute Engine returns a
128212// nextPageToken that can be used to get the next page of results in
128213// subsequent list requests. Acceptable values are 0 to 500, inclusive.
128214// (Default: 500)
128215func (c *RoutersGetNatMappingInfoCall) MaxResults(maxResults int64) *RoutersGetNatMappingInfoCall {
128216	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128217	return c
128218}
128219
128220// NatName sets the optional parameter "natName": Name of the nat
128221// service to filter the Nat Mapping information. If it is omitted, all
128222// nats for this router will be returned. Name should conform to
128223// RFC1035.
128224func (c *RoutersGetNatMappingInfoCall) NatName(natName string) *RoutersGetNatMappingInfoCall {
128225	c.urlParams_.Set("natName", natName)
128226	return c
128227}
128228
128229// OrderBy sets the optional parameter "orderBy": Sorts list results by
128230// a certain order. By default, results are returned in alphanumerical
128231// order based on the resource name.
128232//
128233// You can also sort results in descending order based on the creation
128234// timestamp using orderBy="creationTimestamp desc". This sorts results
128235// based on the creationTimestamp field in reverse chronological order
128236// (newest result first). Use this to sort resources like operations so
128237// that the newest operation is returned first.
128238//
128239// Currently, only sorting by name or creationTimestamp desc is
128240// supported.
128241func (c *RoutersGetNatMappingInfoCall) OrderBy(orderBy string) *RoutersGetNatMappingInfoCall {
128242	c.urlParams_.Set("orderBy", orderBy)
128243	return c
128244}
128245
128246// PageToken sets the optional parameter "pageToken": Specifies a page
128247// token to use. Set pageToken to the nextPageToken returned by a
128248// previous list request to get the next page of results.
128249func (c *RoutersGetNatMappingInfoCall) PageToken(pageToken string) *RoutersGetNatMappingInfoCall {
128250	c.urlParams_.Set("pageToken", pageToken)
128251	return c
128252}
128253
128254// Fields allows partial responses to be retrieved. See
128255// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128256// for more information.
128257func (c *RoutersGetNatMappingInfoCall) Fields(s ...googleapi.Field) *RoutersGetNatMappingInfoCall {
128258	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128259	return c
128260}
128261
128262// IfNoneMatch sets the optional parameter which makes the operation
128263// fail if the object's ETag matches the given value. This is useful for
128264// getting updates only after the object has changed since the last
128265// request. Use googleapi.IsNotModified to check whether the response
128266// error from Do is the result of In-None-Match.
128267func (c *RoutersGetNatMappingInfoCall) IfNoneMatch(entityTag string) *RoutersGetNatMappingInfoCall {
128268	c.ifNoneMatch_ = entityTag
128269	return c
128270}
128271
128272// Context sets the context to be used in this call's Do method. Any
128273// pending HTTP request will be aborted if the provided context is
128274// canceled.
128275func (c *RoutersGetNatMappingInfoCall) Context(ctx context.Context) *RoutersGetNatMappingInfoCall {
128276	c.ctx_ = ctx
128277	return c
128278}
128279
128280// Header returns an http.Header that can be modified by the caller to
128281// add HTTP headers to the request.
128282func (c *RoutersGetNatMappingInfoCall) Header() http.Header {
128283	if c.header_ == nil {
128284		c.header_ = make(http.Header)
128285	}
128286	return c.header_
128287}
128288
128289func (c *RoutersGetNatMappingInfoCall) doRequest(alt string) (*http.Response, error) {
128290	reqHeaders := make(http.Header)
128291	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128292	for k, v := range c.header_ {
128293		reqHeaders[k] = v
128294	}
128295	reqHeaders.Set("User-Agent", c.s.userAgent())
128296	if c.ifNoneMatch_ != "" {
128297		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128298	}
128299	var body io.Reader = nil
128300	c.urlParams_.Set("alt", alt)
128301	c.urlParams_.Set("prettyPrint", "false")
128302	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getNatMappingInfo")
128303	urls += "?" + c.urlParams_.Encode()
128304	req, err := http.NewRequest("GET", urls, body)
128305	if err != nil {
128306		return nil, err
128307	}
128308	req.Header = reqHeaders
128309	googleapi.Expand(req.URL, map[string]string{
128310		"project": c.project,
128311		"region":  c.region,
128312		"router":  c.router,
128313	})
128314	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128315}
128316
128317// Do executes the "compute.routers.getNatMappingInfo" call.
128318// Exactly one of *VmEndpointNatMappingsList or error will be non-nil.
128319// Any non-2xx status code is an error. Response headers are in either
128320// *VmEndpointNatMappingsList.ServerResponse.Header or (if a response
128321// was returned at all) in error.(*googleapi.Error).Header. Use
128322// googleapi.IsNotModified to check whether the returned error was
128323// because http.StatusNotModified was returned.
128324func (c *RoutersGetNatMappingInfoCall) Do(opts ...googleapi.CallOption) (*VmEndpointNatMappingsList, error) {
128325	gensupport.SetOptions(c.urlParams_, opts...)
128326	res, err := c.doRequest("json")
128327	if res != nil && res.StatusCode == http.StatusNotModified {
128328		if res.Body != nil {
128329			res.Body.Close()
128330		}
128331		return nil, &googleapi.Error{
128332			Code:   res.StatusCode,
128333			Header: res.Header,
128334		}
128335	}
128336	if err != nil {
128337		return nil, err
128338	}
128339	defer googleapi.CloseBody(res)
128340	if err := googleapi.CheckResponse(res); err != nil {
128341		return nil, err
128342	}
128343	ret := &VmEndpointNatMappingsList{
128344		ServerResponse: googleapi.ServerResponse{
128345			Header:         res.Header,
128346			HTTPStatusCode: res.StatusCode,
128347		},
128348	}
128349	target := &ret
128350	if err := gensupport.DecodeResponse(target, res); err != nil {
128351		return nil, err
128352	}
128353	return ret, nil
128354	// {
128355	//   "description": "Retrieves runtime Nat mapping information of VM endpoints.",
128356	//   "httpMethod": "GET",
128357	//   "id": "compute.routers.getNatMappingInfo",
128358	//   "parameterOrder": [
128359	//     "project",
128360	//     "region",
128361	//     "router"
128362	//   ],
128363	//   "parameters": {
128364	//     "filter": {
128365	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
128366	//       "location": "query",
128367	//       "type": "string"
128368	//     },
128369	//     "maxResults": {
128370	//       "default": "500",
128371	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
128372	//       "format": "uint32",
128373	//       "location": "query",
128374	//       "minimum": "0",
128375	//       "type": "integer"
128376	//     },
128377	//     "natName": {
128378	//       "description": "Name of the nat service to filter the Nat Mapping information. If it is omitted, all nats for this router will be returned. Name should conform to RFC1035.",
128379	//       "location": "query",
128380	//       "type": "string"
128381	//     },
128382	//     "orderBy": {
128383	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
128384	//       "location": "query",
128385	//       "type": "string"
128386	//     },
128387	//     "pageToken": {
128388	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
128389	//       "location": "query",
128390	//       "type": "string"
128391	//     },
128392	//     "project": {
128393	//       "description": "Project ID for this request.",
128394	//       "location": "path",
128395	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128396	//       "required": true,
128397	//       "type": "string"
128398	//     },
128399	//     "region": {
128400	//       "description": "Name of the region for this request.",
128401	//       "location": "path",
128402	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128403	//       "required": true,
128404	//       "type": "string"
128405	//     },
128406	//     "router": {
128407	//       "description": "Name of the Router resource to query for Nat Mapping information of VM endpoints.",
128408	//       "location": "path",
128409	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128410	//       "required": true,
128411	//       "type": "string"
128412	//     }
128413	//   },
128414	//   "path": "{project}/regions/{region}/routers/{router}/getNatMappingInfo",
128415	//   "response": {
128416	//     "$ref": "VmEndpointNatMappingsList"
128417	//   },
128418	//   "scopes": [
128419	//     "https://www.googleapis.com/auth/cloud-platform",
128420	//     "https://www.googleapis.com/auth/compute",
128421	//     "https://www.googleapis.com/auth/compute.readonly"
128422	//   ]
128423	// }
128424
128425}
128426
128427// Pages invokes f for each page of results.
128428// A non-nil error returned from f will halt the iteration.
128429// The provided context supersedes any context provided to the Context method.
128430func (c *RoutersGetNatMappingInfoCall) Pages(ctx context.Context, f func(*VmEndpointNatMappingsList) error) error {
128431	c.ctx_ = ctx
128432	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
128433	for {
128434		x, err := c.Do()
128435		if err != nil {
128436			return err
128437		}
128438		if err := f(x); err != nil {
128439			return err
128440		}
128441		if x.NextPageToken == "" {
128442			return nil
128443		}
128444		c.PageToken(x.NextPageToken)
128445	}
128446}
128447
128448// method id "compute.routers.getRouterStatus":
128449
128450type RoutersGetRouterStatusCall struct {
128451	s            *Service
128452	project      string
128453	region       string
128454	router       string
128455	urlParams_   gensupport.URLParams
128456	ifNoneMatch_ string
128457	ctx_         context.Context
128458	header_      http.Header
128459}
128460
128461// GetRouterStatus: Retrieves runtime information of the specified
128462// router.
128463func (r *RoutersService) GetRouterStatus(project string, region string, router string) *RoutersGetRouterStatusCall {
128464	c := &RoutersGetRouterStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128465	c.project = project
128466	c.region = region
128467	c.router = router
128468	return c
128469}
128470
128471// Fields allows partial responses to be retrieved. See
128472// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128473// for more information.
128474func (c *RoutersGetRouterStatusCall) Fields(s ...googleapi.Field) *RoutersGetRouterStatusCall {
128475	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128476	return c
128477}
128478
128479// IfNoneMatch sets the optional parameter which makes the operation
128480// fail if the object's ETag matches the given value. This is useful for
128481// getting updates only after the object has changed since the last
128482// request. Use googleapi.IsNotModified to check whether the response
128483// error from Do is the result of In-None-Match.
128484func (c *RoutersGetRouterStatusCall) IfNoneMatch(entityTag string) *RoutersGetRouterStatusCall {
128485	c.ifNoneMatch_ = entityTag
128486	return c
128487}
128488
128489// Context sets the context to be used in this call's Do method. Any
128490// pending HTTP request will be aborted if the provided context is
128491// canceled.
128492func (c *RoutersGetRouterStatusCall) Context(ctx context.Context) *RoutersGetRouterStatusCall {
128493	c.ctx_ = ctx
128494	return c
128495}
128496
128497// Header returns an http.Header that can be modified by the caller to
128498// add HTTP headers to the request.
128499func (c *RoutersGetRouterStatusCall) Header() http.Header {
128500	if c.header_ == nil {
128501		c.header_ = make(http.Header)
128502	}
128503	return c.header_
128504}
128505
128506func (c *RoutersGetRouterStatusCall) doRequest(alt string) (*http.Response, error) {
128507	reqHeaders := make(http.Header)
128508	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128509	for k, v := range c.header_ {
128510		reqHeaders[k] = v
128511	}
128512	reqHeaders.Set("User-Agent", c.s.userAgent())
128513	if c.ifNoneMatch_ != "" {
128514		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128515	}
128516	var body io.Reader = nil
128517	c.urlParams_.Set("alt", alt)
128518	c.urlParams_.Set("prettyPrint", "false")
128519	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/getRouterStatus")
128520	urls += "?" + c.urlParams_.Encode()
128521	req, err := http.NewRequest("GET", urls, body)
128522	if err != nil {
128523		return nil, err
128524	}
128525	req.Header = reqHeaders
128526	googleapi.Expand(req.URL, map[string]string{
128527		"project": c.project,
128528		"region":  c.region,
128529		"router":  c.router,
128530	})
128531	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128532}
128533
128534// Do executes the "compute.routers.getRouterStatus" call.
128535// Exactly one of *RouterStatusResponse or error will be non-nil. Any
128536// non-2xx status code is an error. Response headers are in either
128537// *RouterStatusResponse.ServerResponse.Header or (if a response was
128538// returned at all) in error.(*googleapi.Error).Header. Use
128539// googleapi.IsNotModified to check whether the returned error was
128540// because http.StatusNotModified was returned.
128541func (c *RoutersGetRouterStatusCall) Do(opts ...googleapi.CallOption) (*RouterStatusResponse, error) {
128542	gensupport.SetOptions(c.urlParams_, opts...)
128543	res, err := c.doRequest("json")
128544	if res != nil && res.StatusCode == http.StatusNotModified {
128545		if res.Body != nil {
128546			res.Body.Close()
128547		}
128548		return nil, &googleapi.Error{
128549			Code:   res.StatusCode,
128550			Header: res.Header,
128551		}
128552	}
128553	if err != nil {
128554		return nil, err
128555	}
128556	defer googleapi.CloseBody(res)
128557	if err := googleapi.CheckResponse(res); err != nil {
128558		return nil, err
128559	}
128560	ret := &RouterStatusResponse{
128561		ServerResponse: googleapi.ServerResponse{
128562			Header:         res.Header,
128563			HTTPStatusCode: res.StatusCode,
128564		},
128565	}
128566	target := &ret
128567	if err := gensupport.DecodeResponse(target, res); err != nil {
128568		return nil, err
128569	}
128570	return ret, nil
128571	// {
128572	//   "description": "Retrieves runtime information of the specified router.",
128573	//   "httpMethod": "GET",
128574	//   "id": "compute.routers.getRouterStatus",
128575	//   "parameterOrder": [
128576	//     "project",
128577	//     "region",
128578	//     "router"
128579	//   ],
128580	//   "parameters": {
128581	//     "project": {
128582	//       "description": "Project ID for this request.",
128583	//       "location": "path",
128584	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128585	//       "required": true,
128586	//       "type": "string"
128587	//     },
128588	//     "region": {
128589	//       "description": "Name of the region for this request.",
128590	//       "location": "path",
128591	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128592	//       "required": true,
128593	//       "type": "string"
128594	//     },
128595	//     "router": {
128596	//       "description": "Name of the Router resource to query.",
128597	//       "location": "path",
128598	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
128599	//       "required": true,
128600	//       "type": "string"
128601	//     }
128602	//   },
128603	//   "path": "{project}/regions/{region}/routers/{router}/getRouterStatus",
128604	//   "response": {
128605	//     "$ref": "RouterStatusResponse"
128606	//   },
128607	//   "scopes": [
128608	//     "https://www.googleapis.com/auth/cloud-platform",
128609	//     "https://www.googleapis.com/auth/compute",
128610	//     "https://www.googleapis.com/auth/compute.readonly"
128611	//   ]
128612	// }
128613
128614}
128615
128616// method id "compute.routers.insert":
128617
128618type RoutersInsertCall struct {
128619	s          *Service
128620	project    string
128621	region     string
128622	router     *Router
128623	urlParams_ gensupport.URLParams
128624	ctx_       context.Context
128625	header_    http.Header
128626}
128627
128628// Insert: Creates a Router resource in the specified project and region
128629// using the data included in the request.
128630func (r *RoutersService) Insert(project string, region string, router *Router) *RoutersInsertCall {
128631	c := &RoutersInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128632	c.project = project
128633	c.region = region
128634	c.router = router
128635	return c
128636}
128637
128638// RequestId sets the optional parameter "requestId": An optional
128639// request ID to identify requests. Specify a unique request ID so that
128640// if you must retry your request, the server will know to ignore the
128641// request if it has already been completed.
128642//
128643// For example, consider a situation where you make an initial request
128644// and the request times out. If you make the request again with the
128645// same request ID, the server can check if original operation with the
128646// same request ID was received, and if so, will ignore the second
128647// request. This prevents clients from accidentally creating duplicate
128648// commitments.
128649//
128650// The request ID must be a valid UUID with the exception that zero UUID
128651// is not supported (00000000-0000-0000-0000-000000000000).
128652func (c *RoutersInsertCall) RequestId(requestId string) *RoutersInsertCall {
128653	c.urlParams_.Set("requestId", requestId)
128654	return c
128655}
128656
128657// Fields allows partial responses to be retrieved. See
128658// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128659// for more information.
128660func (c *RoutersInsertCall) Fields(s ...googleapi.Field) *RoutersInsertCall {
128661	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128662	return c
128663}
128664
128665// Context sets the context to be used in this call's Do method. Any
128666// pending HTTP request will be aborted if the provided context is
128667// canceled.
128668func (c *RoutersInsertCall) Context(ctx context.Context) *RoutersInsertCall {
128669	c.ctx_ = ctx
128670	return c
128671}
128672
128673// Header returns an http.Header that can be modified by the caller to
128674// add HTTP headers to the request.
128675func (c *RoutersInsertCall) Header() http.Header {
128676	if c.header_ == nil {
128677		c.header_ = make(http.Header)
128678	}
128679	return c.header_
128680}
128681
128682func (c *RoutersInsertCall) doRequest(alt string) (*http.Response, error) {
128683	reqHeaders := make(http.Header)
128684	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128685	for k, v := range c.header_ {
128686		reqHeaders[k] = v
128687	}
128688	reqHeaders.Set("User-Agent", c.s.userAgent())
128689	var body io.Reader = nil
128690	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router)
128691	if err != nil {
128692		return nil, err
128693	}
128694	reqHeaders.Set("Content-Type", "application/json")
128695	c.urlParams_.Set("alt", alt)
128696	c.urlParams_.Set("prettyPrint", "false")
128697	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
128698	urls += "?" + c.urlParams_.Encode()
128699	req, err := http.NewRequest("POST", urls, body)
128700	if err != nil {
128701		return nil, err
128702	}
128703	req.Header = reqHeaders
128704	googleapi.Expand(req.URL, map[string]string{
128705		"project": c.project,
128706		"region":  c.region,
128707	})
128708	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128709}
128710
128711// Do executes the "compute.routers.insert" call.
128712// Exactly one of *Operation or error will be non-nil. Any non-2xx
128713// status code is an error. Response headers are in either
128714// *Operation.ServerResponse.Header or (if a response was returned at
128715// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128716// to check whether the returned error was because
128717// http.StatusNotModified was returned.
128718func (c *RoutersInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
128719	gensupport.SetOptions(c.urlParams_, opts...)
128720	res, err := c.doRequest("json")
128721	if res != nil && res.StatusCode == http.StatusNotModified {
128722		if res.Body != nil {
128723			res.Body.Close()
128724		}
128725		return nil, &googleapi.Error{
128726			Code:   res.StatusCode,
128727			Header: res.Header,
128728		}
128729	}
128730	if err != nil {
128731		return nil, err
128732	}
128733	defer googleapi.CloseBody(res)
128734	if err := googleapi.CheckResponse(res); err != nil {
128735		return nil, err
128736	}
128737	ret := &Operation{
128738		ServerResponse: googleapi.ServerResponse{
128739			Header:         res.Header,
128740			HTTPStatusCode: res.StatusCode,
128741		},
128742	}
128743	target := &ret
128744	if err := gensupport.DecodeResponse(target, res); err != nil {
128745		return nil, err
128746	}
128747	return ret, nil
128748	// {
128749	//   "description": "Creates a Router resource in the specified project and region using the data included in the request.",
128750	//   "httpMethod": "POST",
128751	//   "id": "compute.routers.insert",
128752	//   "parameterOrder": [
128753	//     "project",
128754	//     "region"
128755	//   ],
128756	//   "parameters": {
128757	//     "project": {
128758	//       "description": "Project ID for this request.",
128759	//       "location": "path",
128760	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
128761	//       "required": true,
128762	//       "type": "string"
128763	//     },
128764	//     "region": {
128765	//       "description": "Name of the region for this request.",
128766	//       "location": "path",
128767	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
128768	//       "required": true,
128769	//       "type": "string"
128770	//     },
128771	//     "requestId": {
128772	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
128773	//       "location": "query",
128774	//       "type": "string"
128775	//     }
128776	//   },
128777	//   "path": "{project}/regions/{region}/routers",
128778	//   "request": {
128779	//     "$ref": "Router"
128780	//   },
128781	//   "response": {
128782	//     "$ref": "Operation"
128783	//   },
128784	//   "scopes": [
128785	//     "https://www.googleapis.com/auth/cloud-platform",
128786	//     "https://www.googleapis.com/auth/compute"
128787	//   ]
128788	// }
128789
128790}
128791
128792// method id "compute.routers.list":
128793
128794type RoutersListCall struct {
128795	s            *Service
128796	project      string
128797	region       string
128798	urlParams_   gensupport.URLParams
128799	ifNoneMatch_ string
128800	ctx_         context.Context
128801	header_      http.Header
128802}
128803
128804// List: Retrieves a list of Router resources available to the specified
128805// project.
128806func (r *RoutersService) List(project string, region string) *RoutersListCall {
128807	c := &RoutersListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
128808	c.project = project
128809	c.region = region
128810	return c
128811}
128812
128813// Filter sets the optional parameter "filter": A filter expression that
128814// filters resources listed in the response. The expression must specify
128815// the field name, a comparison operator, and the value that you want to
128816// use for filtering. The value must be a string, a number, or a
128817// boolean. The comparison operator must be either =, !=, >, or <.
128818//
128819// For example, if you are filtering Compute Engine instances, you can
128820// exclude instances named example-instance by specifying name !=
128821// example-instance.
128822//
128823// You can also filter nested fields. For example, you could specify
128824// scheduling.automaticRestart = false to include instances only if they
128825// are not scheduled for automatic restarts. You can use filtering on
128826// nested fields to filter based on resource labels.
128827//
128828// To filter on multiple expressions, provide each separate expression
128829// within parentheses. For example, (scheduling.automaticRestart = true)
128830// (cpuPlatform = "Intel Skylake"). By default, each expression is an
128831// AND expression. However, you can include AND and OR expressions
128832// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
128833// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
128834// true).
128835func (c *RoutersListCall) Filter(filter string) *RoutersListCall {
128836	c.urlParams_.Set("filter", filter)
128837	return c
128838}
128839
128840// MaxResults sets the optional parameter "maxResults": The maximum
128841// number of results per page that should be returned. If the number of
128842// available results is larger than maxResults, Compute Engine returns a
128843// nextPageToken that can be used to get the next page of results in
128844// subsequent list requests. Acceptable values are 0 to 500, inclusive.
128845// (Default: 500)
128846func (c *RoutersListCall) MaxResults(maxResults int64) *RoutersListCall {
128847	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
128848	return c
128849}
128850
128851// OrderBy sets the optional parameter "orderBy": Sorts list results by
128852// a certain order. By default, results are returned in alphanumerical
128853// order based on the resource name.
128854//
128855// You can also sort results in descending order based on the creation
128856// timestamp using orderBy="creationTimestamp desc". This sorts results
128857// based on the creationTimestamp field in reverse chronological order
128858// (newest result first). Use this to sort resources like operations so
128859// that the newest operation is returned first.
128860//
128861// Currently, only sorting by name or creationTimestamp desc is
128862// supported.
128863func (c *RoutersListCall) OrderBy(orderBy string) *RoutersListCall {
128864	c.urlParams_.Set("orderBy", orderBy)
128865	return c
128866}
128867
128868// PageToken sets the optional parameter "pageToken": Specifies a page
128869// token to use. Set pageToken to the nextPageToken returned by a
128870// previous list request to get the next page of results.
128871func (c *RoutersListCall) PageToken(pageToken string) *RoutersListCall {
128872	c.urlParams_.Set("pageToken", pageToken)
128873	return c
128874}
128875
128876// Fields allows partial responses to be retrieved. See
128877// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
128878// for more information.
128879func (c *RoutersListCall) Fields(s ...googleapi.Field) *RoutersListCall {
128880	c.urlParams_.Set("fields", googleapi.CombineFields(s))
128881	return c
128882}
128883
128884// IfNoneMatch sets the optional parameter which makes the operation
128885// fail if the object's ETag matches the given value. This is useful for
128886// getting updates only after the object has changed since the last
128887// request. Use googleapi.IsNotModified to check whether the response
128888// error from Do is the result of In-None-Match.
128889func (c *RoutersListCall) IfNoneMatch(entityTag string) *RoutersListCall {
128890	c.ifNoneMatch_ = entityTag
128891	return c
128892}
128893
128894// Context sets the context to be used in this call's Do method. Any
128895// pending HTTP request will be aborted if the provided context is
128896// canceled.
128897func (c *RoutersListCall) Context(ctx context.Context) *RoutersListCall {
128898	c.ctx_ = ctx
128899	return c
128900}
128901
128902// Header returns an http.Header that can be modified by the caller to
128903// add HTTP headers to the request.
128904func (c *RoutersListCall) Header() http.Header {
128905	if c.header_ == nil {
128906		c.header_ = make(http.Header)
128907	}
128908	return c.header_
128909}
128910
128911func (c *RoutersListCall) doRequest(alt string) (*http.Response, error) {
128912	reqHeaders := make(http.Header)
128913	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
128914	for k, v := range c.header_ {
128915		reqHeaders[k] = v
128916	}
128917	reqHeaders.Set("User-Agent", c.s.userAgent())
128918	if c.ifNoneMatch_ != "" {
128919		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
128920	}
128921	var body io.Reader = nil
128922	c.urlParams_.Set("alt", alt)
128923	c.urlParams_.Set("prettyPrint", "false")
128924	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers")
128925	urls += "?" + c.urlParams_.Encode()
128926	req, err := http.NewRequest("GET", urls, body)
128927	if err != nil {
128928		return nil, err
128929	}
128930	req.Header = reqHeaders
128931	googleapi.Expand(req.URL, map[string]string{
128932		"project": c.project,
128933		"region":  c.region,
128934	})
128935	return gensupport.SendRequest(c.ctx_, c.s.client, req)
128936}
128937
128938// Do executes the "compute.routers.list" call.
128939// Exactly one of *RouterList or error will be non-nil. Any non-2xx
128940// status code is an error. Response headers are in either
128941// *RouterList.ServerResponse.Header or (if a response was returned at
128942// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
128943// to check whether the returned error was because
128944// http.StatusNotModified was returned.
128945func (c *RoutersListCall) Do(opts ...googleapi.CallOption) (*RouterList, error) {
128946	gensupport.SetOptions(c.urlParams_, opts...)
128947	res, err := c.doRequest("json")
128948	if res != nil && res.StatusCode == http.StatusNotModified {
128949		if res.Body != nil {
128950			res.Body.Close()
128951		}
128952		return nil, &googleapi.Error{
128953			Code:   res.StatusCode,
128954			Header: res.Header,
128955		}
128956	}
128957	if err != nil {
128958		return nil, err
128959	}
128960	defer googleapi.CloseBody(res)
128961	if err := googleapi.CheckResponse(res); err != nil {
128962		return nil, err
128963	}
128964	ret := &RouterList{
128965		ServerResponse: googleapi.ServerResponse{
128966			Header:         res.Header,
128967			HTTPStatusCode: res.StatusCode,
128968		},
128969	}
128970	target := &ret
128971	if err := gensupport.DecodeResponse(target, res); err != nil {
128972		return nil, err
128973	}
128974	return ret, nil
128975	// {
128976	//   "description": "Retrieves a list of Router resources available to the specified project.",
128977	//   "httpMethod": "GET",
128978	//   "id": "compute.routers.list",
128979	//   "parameterOrder": [
128980	//     "project",
128981	//     "region"
128982	//   ],
128983	//   "parameters": {
128984	//     "filter": {
128985	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
128986	//       "location": "query",
128987	//       "type": "string"
128988	//     },
128989	//     "maxResults": {
128990	//       "default": "500",
128991	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
128992	//       "format": "uint32",
128993	//       "location": "query",
128994	//       "minimum": "0",
128995	//       "type": "integer"
128996	//     },
128997	//     "orderBy": {
128998	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
128999	//       "location": "query",
129000	//       "type": "string"
129001	//     },
129002	//     "pageToken": {
129003	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
129004	//       "location": "query",
129005	//       "type": "string"
129006	//     },
129007	//     "project": {
129008	//       "description": "Project ID for this request.",
129009	//       "location": "path",
129010	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129011	//       "required": true,
129012	//       "type": "string"
129013	//     },
129014	//     "region": {
129015	//       "description": "Name of the region for this request.",
129016	//       "location": "path",
129017	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129018	//       "required": true,
129019	//       "type": "string"
129020	//     }
129021	//   },
129022	//   "path": "{project}/regions/{region}/routers",
129023	//   "response": {
129024	//     "$ref": "RouterList"
129025	//   },
129026	//   "scopes": [
129027	//     "https://www.googleapis.com/auth/cloud-platform",
129028	//     "https://www.googleapis.com/auth/compute",
129029	//     "https://www.googleapis.com/auth/compute.readonly"
129030	//   ]
129031	// }
129032
129033}
129034
129035// Pages invokes f for each page of results.
129036// A non-nil error returned from f will halt the iteration.
129037// The provided context supersedes any context provided to the Context method.
129038func (c *RoutersListCall) Pages(ctx context.Context, f func(*RouterList) error) error {
129039	c.ctx_ = ctx
129040	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
129041	for {
129042		x, err := c.Do()
129043		if err != nil {
129044			return err
129045		}
129046		if err := f(x); err != nil {
129047			return err
129048		}
129049		if x.NextPageToken == "" {
129050			return nil
129051		}
129052		c.PageToken(x.NextPageToken)
129053	}
129054}
129055
129056// method id "compute.routers.patch":
129057
129058type RoutersPatchCall struct {
129059	s          *Service
129060	project    string
129061	region     string
129062	router     string
129063	router2    *Router
129064	urlParams_ gensupport.URLParams
129065	ctx_       context.Context
129066	header_    http.Header
129067}
129068
129069// Patch: Patches the specified Router resource with the data included
129070// in the request. This method supports PATCH semantics and uses JSON
129071// merge patch format and processing rules.
129072func (r *RoutersService) Patch(project string, region string, router string, router2 *Router) *RoutersPatchCall {
129073	c := &RoutersPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129074	c.project = project
129075	c.region = region
129076	c.router = router
129077	c.router2 = router2
129078	return c
129079}
129080
129081// RequestId sets the optional parameter "requestId": An optional
129082// request ID to identify requests. Specify a unique request ID so that
129083// if you must retry your request, the server will know to ignore the
129084// request if it has already been completed.
129085//
129086// For example, consider a situation where you make an initial request
129087// and the request times out. If you make the request again with the
129088// same request ID, the server can check if original operation with the
129089// same request ID was received, and if so, will ignore the second
129090// request. This prevents clients from accidentally creating duplicate
129091// commitments.
129092//
129093// The request ID must be a valid UUID with the exception that zero UUID
129094// is not supported (00000000-0000-0000-0000-000000000000).
129095func (c *RoutersPatchCall) RequestId(requestId string) *RoutersPatchCall {
129096	c.urlParams_.Set("requestId", requestId)
129097	return c
129098}
129099
129100// Fields allows partial responses to be retrieved. See
129101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129102// for more information.
129103func (c *RoutersPatchCall) Fields(s ...googleapi.Field) *RoutersPatchCall {
129104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129105	return c
129106}
129107
129108// Context sets the context to be used in this call's Do method. Any
129109// pending HTTP request will be aborted if the provided context is
129110// canceled.
129111func (c *RoutersPatchCall) Context(ctx context.Context) *RoutersPatchCall {
129112	c.ctx_ = ctx
129113	return c
129114}
129115
129116// Header returns an http.Header that can be modified by the caller to
129117// add HTTP headers to the request.
129118func (c *RoutersPatchCall) Header() http.Header {
129119	if c.header_ == nil {
129120		c.header_ = make(http.Header)
129121	}
129122	return c.header_
129123}
129124
129125func (c *RoutersPatchCall) doRequest(alt string) (*http.Response, error) {
129126	reqHeaders := make(http.Header)
129127	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129128	for k, v := range c.header_ {
129129		reqHeaders[k] = v
129130	}
129131	reqHeaders.Set("User-Agent", c.s.userAgent())
129132	var body io.Reader = nil
129133	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
129134	if err != nil {
129135		return nil, err
129136	}
129137	reqHeaders.Set("Content-Type", "application/json")
129138	c.urlParams_.Set("alt", alt)
129139	c.urlParams_.Set("prettyPrint", "false")
129140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
129141	urls += "?" + c.urlParams_.Encode()
129142	req, err := http.NewRequest("PATCH", urls, body)
129143	if err != nil {
129144		return nil, err
129145	}
129146	req.Header = reqHeaders
129147	googleapi.Expand(req.URL, map[string]string{
129148		"project": c.project,
129149		"region":  c.region,
129150		"router":  c.router,
129151	})
129152	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129153}
129154
129155// Do executes the "compute.routers.patch" call.
129156// Exactly one of *Operation or error will be non-nil. Any non-2xx
129157// status code is an error. Response headers are in either
129158// *Operation.ServerResponse.Header or (if a response was returned at
129159// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129160// to check whether the returned error was because
129161// http.StatusNotModified was returned.
129162func (c *RoutersPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129163	gensupport.SetOptions(c.urlParams_, opts...)
129164	res, err := c.doRequest("json")
129165	if res != nil && res.StatusCode == http.StatusNotModified {
129166		if res.Body != nil {
129167			res.Body.Close()
129168		}
129169		return nil, &googleapi.Error{
129170			Code:   res.StatusCode,
129171			Header: res.Header,
129172		}
129173	}
129174	if err != nil {
129175		return nil, err
129176	}
129177	defer googleapi.CloseBody(res)
129178	if err := googleapi.CheckResponse(res); err != nil {
129179		return nil, err
129180	}
129181	ret := &Operation{
129182		ServerResponse: googleapi.ServerResponse{
129183			Header:         res.Header,
129184			HTTPStatusCode: res.StatusCode,
129185		},
129186	}
129187	target := &ret
129188	if err := gensupport.DecodeResponse(target, res); err != nil {
129189		return nil, err
129190	}
129191	return ret, nil
129192	// {
129193	//   "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.",
129194	//   "httpMethod": "PATCH",
129195	//   "id": "compute.routers.patch",
129196	//   "parameterOrder": [
129197	//     "project",
129198	//     "region",
129199	//     "router"
129200	//   ],
129201	//   "parameters": {
129202	//     "project": {
129203	//       "description": "Project ID for this request.",
129204	//       "location": "path",
129205	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129206	//       "required": true,
129207	//       "type": "string"
129208	//     },
129209	//     "region": {
129210	//       "description": "Name of the region for this request.",
129211	//       "location": "path",
129212	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129213	//       "required": true,
129214	//       "type": "string"
129215	//     },
129216	//     "requestId": {
129217	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129218	//       "location": "query",
129219	//       "type": "string"
129220	//     },
129221	//     "router": {
129222	//       "description": "Name of the Router resource to patch.",
129223	//       "location": "path",
129224	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129225	//       "required": true,
129226	//       "type": "string"
129227	//     }
129228	//   },
129229	//   "path": "{project}/regions/{region}/routers/{router}",
129230	//   "request": {
129231	//     "$ref": "Router"
129232	//   },
129233	//   "response": {
129234	//     "$ref": "Operation"
129235	//   },
129236	//   "scopes": [
129237	//     "https://www.googleapis.com/auth/cloud-platform",
129238	//     "https://www.googleapis.com/auth/compute"
129239	//   ]
129240	// }
129241
129242}
129243
129244// method id "compute.routers.preview":
129245
129246type RoutersPreviewCall struct {
129247	s          *Service
129248	project    string
129249	region     string
129250	router     string
129251	router2    *Router
129252	urlParams_ gensupport.URLParams
129253	ctx_       context.Context
129254	header_    http.Header
129255}
129256
129257// Preview: Preview fields auto-generated during router create and
129258// update operations. Calling this method does NOT create or update the
129259// router.
129260func (r *RoutersService) Preview(project string, region string, router string, router2 *Router) *RoutersPreviewCall {
129261	c := &RoutersPreviewCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129262	c.project = project
129263	c.region = region
129264	c.router = router
129265	c.router2 = router2
129266	return c
129267}
129268
129269// Fields allows partial responses to be retrieved. See
129270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129271// for more information.
129272func (c *RoutersPreviewCall) Fields(s ...googleapi.Field) *RoutersPreviewCall {
129273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129274	return c
129275}
129276
129277// Context sets the context to be used in this call's Do method. Any
129278// pending HTTP request will be aborted if the provided context is
129279// canceled.
129280func (c *RoutersPreviewCall) Context(ctx context.Context) *RoutersPreviewCall {
129281	c.ctx_ = ctx
129282	return c
129283}
129284
129285// Header returns an http.Header that can be modified by the caller to
129286// add HTTP headers to the request.
129287func (c *RoutersPreviewCall) Header() http.Header {
129288	if c.header_ == nil {
129289		c.header_ = make(http.Header)
129290	}
129291	return c.header_
129292}
129293
129294func (c *RoutersPreviewCall) doRequest(alt string) (*http.Response, error) {
129295	reqHeaders := make(http.Header)
129296	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129297	for k, v := range c.header_ {
129298		reqHeaders[k] = v
129299	}
129300	reqHeaders.Set("User-Agent", c.s.userAgent())
129301	var body io.Reader = nil
129302	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
129303	if err != nil {
129304		return nil, err
129305	}
129306	reqHeaders.Set("Content-Type", "application/json")
129307	c.urlParams_.Set("alt", alt)
129308	c.urlParams_.Set("prettyPrint", "false")
129309	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}/preview")
129310	urls += "?" + c.urlParams_.Encode()
129311	req, err := http.NewRequest("POST", urls, body)
129312	if err != nil {
129313		return nil, err
129314	}
129315	req.Header = reqHeaders
129316	googleapi.Expand(req.URL, map[string]string{
129317		"project": c.project,
129318		"region":  c.region,
129319		"router":  c.router,
129320	})
129321	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129322}
129323
129324// Do executes the "compute.routers.preview" call.
129325// Exactly one of *RoutersPreviewResponse or error will be non-nil. Any
129326// non-2xx status code is an error. Response headers are in either
129327// *RoutersPreviewResponse.ServerResponse.Header or (if a response was
129328// returned at all) in error.(*googleapi.Error).Header. Use
129329// googleapi.IsNotModified to check whether the returned error was
129330// because http.StatusNotModified was returned.
129331func (c *RoutersPreviewCall) Do(opts ...googleapi.CallOption) (*RoutersPreviewResponse, error) {
129332	gensupport.SetOptions(c.urlParams_, opts...)
129333	res, err := c.doRequest("json")
129334	if res != nil && res.StatusCode == http.StatusNotModified {
129335		if res.Body != nil {
129336			res.Body.Close()
129337		}
129338		return nil, &googleapi.Error{
129339			Code:   res.StatusCode,
129340			Header: res.Header,
129341		}
129342	}
129343	if err != nil {
129344		return nil, err
129345	}
129346	defer googleapi.CloseBody(res)
129347	if err := googleapi.CheckResponse(res); err != nil {
129348		return nil, err
129349	}
129350	ret := &RoutersPreviewResponse{
129351		ServerResponse: googleapi.ServerResponse{
129352			Header:         res.Header,
129353			HTTPStatusCode: res.StatusCode,
129354		},
129355	}
129356	target := &ret
129357	if err := gensupport.DecodeResponse(target, res); err != nil {
129358		return nil, err
129359	}
129360	return ret, nil
129361	// {
129362	//   "description": "Preview fields auto-generated during router create and update operations. Calling this method does NOT create or update the router.",
129363	//   "httpMethod": "POST",
129364	//   "id": "compute.routers.preview",
129365	//   "parameterOrder": [
129366	//     "project",
129367	//     "region",
129368	//     "router"
129369	//   ],
129370	//   "parameters": {
129371	//     "project": {
129372	//       "description": "Project ID for this request.",
129373	//       "location": "path",
129374	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129375	//       "required": true,
129376	//       "type": "string"
129377	//     },
129378	//     "region": {
129379	//       "description": "Name of the region for this request.",
129380	//       "location": "path",
129381	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129382	//       "required": true,
129383	//       "type": "string"
129384	//     },
129385	//     "router": {
129386	//       "description": "Name of the Router resource to query.",
129387	//       "location": "path",
129388	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129389	//       "required": true,
129390	//       "type": "string"
129391	//     }
129392	//   },
129393	//   "path": "{project}/regions/{region}/routers/{router}/preview",
129394	//   "request": {
129395	//     "$ref": "Router"
129396	//   },
129397	//   "response": {
129398	//     "$ref": "RoutersPreviewResponse"
129399	//   },
129400	//   "scopes": [
129401	//     "https://www.googleapis.com/auth/cloud-platform",
129402	//     "https://www.googleapis.com/auth/compute",
129403	//     "https://www.googleapis.com/auth/compute.readonly"
129404	//   ]
129405	// }
129406
129407}
129408
129409// method id "compute.routers.testIamPermissions":
129410
129411type RoutersTestIamPermissionsCall struct {
129412	s                      *Service
129413	project                string
129414	region                 string
129415	resource               string
129416	testpermissionsrequest *TestPermissionsRequest
129417	urlParams_             gensupport.URLParams
129418	ctx_                   context.Context
129419	header_                http.Header
129420}
129421
129422// TestIamPermissions: Returns permissions that a caller has on the
129423// specified resource.
129424func (r *RoutersService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutersTestIamPermissionsCall {
129425	c := &RoutersTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129426	c.project = project
129427	c.region = region
129428	c.resource = resource
129429	c.testpermissionsrequest = testpermissionsrequest
129430	return c
129431}
129432
129433// Fields allows partial responses to be retrieved. See
129434// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129435// for more information.
129436func (c *RoutersTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutersTestIamPermissionsCall {
129437	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129438	return c
129439}
129440
129441// Context sets the context to be used in this call's Do method. Any
129442// pending HTTP request will be aborted if the provided context is
129443// canceled.
129444func (c *RoutersTestIamPermissionsCall) Context(ctx context.Context) *RoutersTestIamPermissionsCall {
129445	c.ctx_ = ctx
129446	return c
129447}
129448
129449// Header returns an http.Header that can be modified by the caller to
129450// add HTTP headers to the request.
129451func (c *RoutersTestIamPermissionsCall) Header() http.Header {
129452	if c.header_ == nil {
129453		c.header_ = make(http.Header)
129454	}
129455	return c.header_
129456}
129457
129458func (c *RoutersTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
129459	reqHeaders := make(http.Header)
129460	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129461	for k, v := range c.header_ {
129462		reqHeaders[k] = v
129463	}
129464	reqHeaders.Set("User-Agent", c.s.userAgent())
129465	var body io.Reader = nil
129466	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
129467	if err != nil {
129468		return nil, err
129469	}
129470	reqHeaders.Set("Content-Type", "application/json")
129471	c.urlParams_.Set("alt", alt)
129472	c.urlParams_.Set("prettyPrint", "false")
129473	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{resource}/testIamPermissions")
129474	urls += "?" + c.urlParams_.Encode()
129475	req, err := http.NewRequest("POST", urls, body)
129476	if err != nil {
129477		return nil, err
129478	}
129479	req.Header = reqHeaders
129480	googleapi.Expand(req.URL, map[string]string{
129481		"project":  c.project,
129482		"region":   c.region,
129483		"resource": c.resource,
129484	})
129485	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129486}
129487
129488// Do executes the "compute.routers.testIamPermissions" call.
129489// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
129490// non-2xx status code is an error. Response headers are in either
129491// *TestPermissionsResponse.ServerResponse.Header or (if a response was
129492// returned at all) in error.(*googleapi.Error).Header. Use
129493// googleapi.IsNotModified to check whether the returned error was
129494// because http.StatusNotModified was returned.
129495func (c *RoutersTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
129496	gensupport.SetOptions(c.urlParams_, opts...)
129497	res, err := c.doRequest("json")
129498	if res != nil && res.StatusCode == http.StatusNotModified {
129499		if res.Body != nil {
129500			res.Body.Close()
129501		}
129502		return nil, &googleapi.Error{
129503			Code:   res.StatusCode,
129504			Header: res.Header,
129505		}
129506	}
129507	if err != nil {
129508		return nil, err
129509	}
129510	defer googleapi.CloseBody(res)
129511	if err := googleapi.CheckResponse(res); err != nil {
129512		return nil, err
129513	}
129514	ret := &TestPermissionsResponse{
129515		ServerResponse: googleapi.ServerResponse{
129516			Header:         res.Header,
129517			HTTPStatusCode: res.StatusCode,
129518		},
129519	}
129520	target := &ret
129521	if err := gensupport.DecodeResponse(target, res); err != nil {
129522		return nil, err
129523	}
129524	return ret, nil
129525	// {
129526	//   "description": "Returns permissions that a caller has on the specified resource.",
129527	//   "httpMethod": "POST",
129528	//   "id": "compute.routers.testIamPermissions",
129529	//   "parameterOrder": [
129530	//     "project",
129531	//     "region",
129532	//     "resource"
129533	//   ],
129534	//   "parameters": {
129535	//     "project": {
129536	//       "description": "Project ID for this request.",
129537	//       "location": "path",
129538	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129539	//       "required": true,
129540	//       "type": "string"
129541	//     },
129542	//     "region": {
129543	//       "description": "The name of the region for this request.",
129544	//       "location": "path",
129545	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129546	//       "required": true,
129547	//       "type": "string"
129548	//     },
129549	//     "resource": {
129550	//       "description": "Name or id of the resource for this request.",
129551	//       "location": "path",
129552	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129553	//       "required": true,
129554	//       "type": "string"
129555	//     }
129556	//   },
129557	//   "path": "{project}/regions/{region}/routers/{resource}/testIamPermissions",
129558	//   "request": {
129559	//     "$ref": "TestPermissionsRequest"
129560	//   },
129561	//   "response": {
129562	//     "$ref": "TestPermissionsResponse"
129563	//   },
129564	//   "scopes": [
129565	//     "https://www.googleapis.com/auth/cloud-platform",
129566	//     "https://www.googleapis.com/auth/compute",
129567	//     "https://www.googleapis.com/auth/compute.readonly"
129568	//   ]
129569	// }
129570
129571}
129572
129573// method id "compute.routers.update":
129574
129575type RoutersUpdateCall struct {
129576	s          *Service
129577	project    string
129578	region     string
129579	router     string
129580	router2    *Router
129581	urlParams_ gensupport.URLParams
129582	ctx_       context.Context
129583	header_    http.Header
129584}
129585
129586// Update: Updates the specified Router resource with the data included
129587// in the request. This method conforms to PUT semantics, which requests
129588// that the state of the target resource be created or replaced with the
129589// state defined by the representation enclosed in the request message
129590// payload.
129591func (r *RoutersService) Update(project string, region string, router string, router2 *Router) *RoutersUpdateCall {
129592	c := &RoutersUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129593	c.project = project
129594	c.region = region
129595	c.router = router
129596	c.router2 = router2
129597	return c
129598}
129599
129600// RequestId sets the optional parameter "requestId": An optional
129601// request ID to identify requests. Specify a unique request ID so that
129602// if you must retry your request, the server will know to ignore the
129603// request if it has already been completed.
129604//
129605// For example, consider a situation where you make an initial request
129606// and the request times out. If you make the request again with the
129607// same request ID, the server can check if original operation with the
129608// same request ID was received, and if so, will ignore the second
129609// request. This prevents clients from accidentally creating duplicate
129610// commitments.
129611//
129612// The request ID must be a valid UUID with the exception that zero UUID
129613// is not supported (00000000-0000-0000-0000-000000000000).
129614func (c *RoutersUpdateCall) RequestId(requestId string) *RoutersUpdateCall {
129615	c.urlParams_.Set("requestId", requestId)
129616	return c
129617}
129618
129619// Fields allows partial responses to be retrieved. See
129620// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129621// for more information.
129622func (c *RoutersUpdateCall) Fields(s ...googleapi.Field) *RoutersUpdateCall {
129623	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129624	return c
129625}
129626
129627// Context sets the context to be used in this call's Do method. Any
129628// pending HTTP request will be aborted if the provided context is
129629// canceled.
129630func (c *RoutersUpdateCall) Context(ctx context.Context) *RoutersUpdateCall {
129631	c.ctx_ = ctx
129632	return c
129633}
129634
129635// Header returns an http.Header that can be modified by the caller to
129636// add HTTP headers to the request.
129637func (c *RoutersUpdateCall) Header() http.Header {
129638	if c.header_ == nil {
129639		c.header_ = make(http.Header)
129640	}
129641	return c.header_
129642}
129643
129644func (c *RoutersUpdateCall) doRequest(alt string) (*http.Response, error) {
129645	reqHeaders := make(http.Header)
129646	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129647	for k, v := range c.header_ {
129648		reqHeaders[k] = v
129649	}
129650	reqHeaders.Set("User-Agent", c.s.userAgent())
129651	var body io.Reader = nil
129652	body, err := googleapi.WithoutDataWrapper.JSONReader(c.router2)
129653	if err != nil {
129654		return nil, err
129655	}
129656	reqHeaders.Set("Content-Type", "application/json")
129657	c.urlParams_.Set("alt", alt)
129658	c.urlParams_.Set("prettyPrint", "false")
129659	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/routers/{router}")
129660	urls += "?" + c.urlParams_.Encode()
129661	req, err := http.NewRequest("PUT", urls, body)
129662	if err != nil {
129663		return nil, err
129664	}
129665	req.Header = reqHeaders
129666	googleapi.Expand(req.URL, map[string]string{
129667		"project": c.project,
129668		"region":  c.region,
129669		"router":  c.router,
129670	})
129671	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129672}
129673
129674// Do executes the "compute.routers.update" call.
129675// Exactly one of *Operation or error will be non-nil. Any non-2xx
129676// status code is an error. Response headers are in either
129677// *Operation.ServerResponse.Header or (if a response was returned at
129678// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129679// to check whether the returned error was because
129680// http.StatusNotModified was returned.
129681func (c *RoutersUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129682	gensupport.SetOptions(c.urlParams_, opts...)
129683	res, err := c.doRequest("json")
129684	if res != nil && res.StatusCode == http.StatusNotModified {
129685		if res.Body != nil {
129686			res.Body.Close()
129687		}
129688		return nil, &googleapi.Error{
129689			Code:   res.StatusCode,
129690			Header: res.Header,
129691		}
129692	}
129693	if err != nil {
129694		return nil, err
129695	}
129696	defer googleapi.CloseBody(res)
129697	if err := googleapi.CheckResponse(res); err != nil {
129698		return nil, err
129699	}
129700	ret := &Operation{
129701		ServerResponse: googleapi.ServerResponse{
129702			Header:         res.Header,
129703			HTTPStatusCode: res.StatusCode,
129704		},
129705	}
129706	target := &ret
129707	if err := gensupport.DecodeResponse(target, res); err != nil {
129708		return nil, err
129709	}
129710	return ret, nil
129711	// {
129712	//   "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.",
129713	//   "httpMethod": "PUT",
129714	//   "id": "compute.routers.update",
129715	//   "parameterOrder": [
129716	//     "project",
129717	//     "region",
129718	//     "router"
129719	//   ],
129720	//   "parameters": {
129721	//     "project": {
129722	//       "description": "Project ID for this request.",
129723	//       "location": "path",
129724	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129725	//       "required": true,
129726	//       "type": "string"
129727	//     },
129728	//     "region": {
129729	//       "description": "Name of the region for this request.",
129730	//       "location": "path",
129731	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
129732	//       "required": true,
129733	//       "type": "string"
129734	//     },
129735	//     "requestId": {
129736	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129737	//       "location": "query",
129738	//       "type": "string"
129739	//     },
129740	//     "router": {
129741	//       "description": "Name of the Router resource to update.",
129742	//       "location": "path",
129743	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129744	//       "required": true,
129745	//       "type": "string"
129746	//     }
129747	//   },
129748	//   "path": "{project}/regions/{region}/routers/{router}",
129749	//   "request": {
129750	//     "$ref": "Router"
129751	//   },
129752	//   "response": {
129753	//     "$ref": "Operation"
129754	//   },
129755	//   "scopes": [
129756	//     "https://www.googleapis.com/auth/cloud-platform",
129757	//     "https://www.googleapis.com/auth/compute"
129758	//   ]
129759	// }
129760
129761}
129762
129763// method id "compute.routes.delete":
129764
129765type RoutesDeleteCall struct {
129766	s          *Service
129767	project    string
129768	route      string
129769	urlParams_ gensupport.URLParams
129770	ctx_       context.Context
129771	header_    http.Header
129772}
129773
129774// Delete: Deletes the specified Route resource.
129775// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/delete
129776func (r *RoutesService) Delete(project string, route string) *RoutesDeleteCall {
129777	c := &RoutesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129778	c.project = project
129779	c.route = route
129780	return c
129781}
129782
129783// RequestId sets the optional parameter "requestId": An optional
129784// request ID to identify requests. Specify a unique request ID so that
129785// if you must retry your request, the server will know to ignore the
129786// request if it has already been completed.
129787//
129788// For example, consider a situation where you make an initial request
129789// and the request times out. If you make the request again with the
129790// same request ID, the server can check if original operation with the
129791// same request ID was received, and if so, will ignore the second
129792// request. This prevents clients from accidentally creating duplicate
129793// commitments.
129794//
129795// The request ID must be a valid UUID with the exception that zero UUID
129796// is not supported (00000000-0000-0000-0000-000000000000).
129797func (c *RoutesDeleteCall) RequestId(requestId string) *RoutesDeleteCall {
129798	c.urlParams_.Set("requestId", requestId)
129799	return c
129800}
129801
129802// Fields allows partial responses to be retrieved. See
129803// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129804// for more information.
129805func (c *RoutesDeleteCall) Fields(s ...googleapi.Field) *RoutesDeleteCall {
129806	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129807	return c
129808}
129809
129810// Context sets the context to be used in this call's Do method. Any
129811// pending HTTP request will be aborted if the provided context is
129812// canceled.
129813func (c *RoutesDeleteCall) Context(ctx context.Context) *RoutesDeleteCall {
129814	c.ctx_ = ctx
129815	return c
129816}
129817
129818// Header returns an http.Header that can be modified by the caller to
129819// add HTTP headers to the request.
129820func (c *RoutesDeleteCall) Header() http.Header {
129821	if c.header_ == nil {
129822		c.header_ = make(http.Header)
129823	}
129824	return c.header_
129825}
129826
129827func (c *RoutesDeleteCall) doRequest(alt string) (*http.Response, error) {
129828	reqHeaders := make(http.Header)
129829	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129830	for k, v := range c.header_ {
129831		reqHeaders[k] = v
129832	}
129833	reqHeaders.Set("User-Agent", c.s.userAgent())
129834	var body io.Reader = nil
129835	c.urlParams_.Set("alt", alt)
129836	c.urlParams_.Set("prettyPrint", "false")
129837	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
129838	urls += "?" + c.urlParams_.Encode()
129839	req, err := http.NewRequest("DELETE", urls, body)
129840	if err != nil {
129841		return nil, err
129842	}
129843	req.Header = reqHeaders
129844	googleapi.Expand(req.URL, map[string]string{
129845		"project": c.project,
129846		"route":   c.route,
129847	})
129848	return gensupport.SendRequest(c.ctx_, c.s.client, req)
129849}
129850
129851// Do executes the "compute.routes.delete" call.
129852// Exactly one of *Operation or error will be non-nil. Any non-2xx
129853// status code is an error. Response headers are in either
129854// *Operation.ServerResponse.Header or (if a response was returned at
129855// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
129856// to check whether the returned error was because
129857// http.StatusNotModified was returned.
129858func (c *RoutesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
129859	gensupport.SetOptions(c.urlParams_, opts...)
129860	res, err := c.doRequest("json")
129861	if res != nil && res.StatusCode == http.StatusNotModified {
129862		if res.Body != nil {
129863			res.Body.Close()
129864		}
129865		return nil, &googleapi.Error{
129866			Code:   res.StatusCode,
129867			Header: res.Header,
129868		}
129869	}
129870	if err != nil {
129871		return nil, err
129872	}
129873	defer googleapi.CloseBody(res)
129874	if err := googleapi.CheckResponse(res); err != nil {
129875		return nil, err
129876	}
129877	ret := &Operation{
129878		ServerResponse: googleapi.ServerResponse{
129879			Header:         res.Header,
129880			HTTPStatusCode: res.StatusCode,
129881		},
129882	}
129883	target := &ret
129884	if err := gensupport.DecodeResponse(target, res); err != nil {
129885		return nil, err
129886	}
129887	return ret, nil
129888	// {
129889	//   "description": "Deletes the specified Route resource.",
129890	//   "httpMethod": "DELETE",
129891	//   "id": "compute.routes.delete",
129892	//   "parameterOrder": [
129893	//     "project",
129894	//     "route"
129895	//   ],
129896	//   "parameters": {
129897	//     "project": {
129898	//       "description": "Project ID for this request.",
129899	//       "location": "path",
129900	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
129901	//       "required": true,
129902	//       "type": "string"
129903	//     },
129904	//     "requestId": {
129905	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
129906	//       "location": "query",
129907	//       "type": "string"
129908	//     },
129909	//     "route": {
129910	//       "description": "Name of the Route resource to delete.",
129911	//       "location": "path",
129912	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
129913	//       "required": true,
129914	//       "type": "string"
129915	//     }
129916	//   },
129917	//   "path": "{project}/global/routes/{route}",
129918	//   "response": {
129919	//     "$ref": "Operation"
129920	//   },
129921	//   "scopes": [
129922	//     "https://www.googleapis.com/auth/cloud-platform",
129923	//     "https://www.googleapis.com/auth/compute"
129924	//   ]
129925	// }
129926
129927}
129928
129929// method id "compute.routes.get":
129930
129931type RoutesGetCall struct {
129932	s            *Service
129933	project      string
129934	route        string
129935	urlParams_   gensupport.URLParams
129936	ifNoneMatch_ string
129937	ctx_         context.Context
129938	header_      http.Header
129939}
129940
129941// Get: Returns the specified Route resource. Gets a list of available
129942// routes by making a list() request.
129943// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/get
129944func (r *RoutesService) Get(project string, route string) *RoutesGetCall {
129945	c := &RoutesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
129946	c.project = project
129947	c.route = route
129948	return c
129949}
129950
129951// Fields allows partial responses to be retrieved. See
129952// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
129953// for more information.
129954func (c *RoutesGetCall) Fields(s ...googleapi.Field) *RoutesGetCall {
129955	c.urlParams_.Set("fields", googleapi.CombineFields(s))
129956	return c
129957}
129958
129959// IfNoneMatch sets the optional parameter which makes the operation
129960// fail if the object's ETag matches the given value. This is useful for
129961// getting updates only after the object has changed since the last
129962// request. Use googleapi.IsNotModified to check whether the response
129963// error from Do is the result of In-None-Match.
129964func (c *RoutesGetCall) IfNoneMatch(entityTag string) *RoutesGetCall {
129965	c.ifNoneMatch_ = entityTag
129966	return c
129967}
129968
129969// Context sets the context to be used in this call's Do method. Any
129970// pending HTTP request will be aborted if the provided context is
129971// canceled.
129972func (c *RoutesGetCall) Context(ctx context.Context) *RoutesGetCall {
129973	c.ctx_ = ctx
129974	return c
129975}
129976
129977// Header returns an http.Header that can be modified by the caller to
129978// add HTTP headers to the request.
129979func (c *RoutesGetCall) Header() http.Header {
129980	if c.header_ == nil {
129981		c.header_ = make(http.Header)
129982	}
129983	return c.header_
129984}
129985
129986func (c *RoutesGetCall) doRequest(alt string) (*http.Response, error) {
129987	reqHeaders := make(http.Header)
129988	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
129989	for k, v := range c.header_ {
129990		reqHeaders[k] = v
129991	}
129992	reqHeaders.Set("User-Agent", c.s.userAgent())
129993	if c.ifNoneMatch_ != "" {
129994		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
129995	}
129996	var body io.Reader = nil
129997	c.urlParams_.Set("alt", alt)
129998	c.urlParams_.Set("prettyPrint", "false")
129999	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{route}")
130000	urls += "?" + c.urlParams_.Encode()
130001	req, err := http.NewRequest("GET", urls, body)
130002	if err != nil {
130003		return nil, err
130004	}
130005	req.Header = reqHeaders
130006	googleapi.Expand(req.URL, map[string]string{
130007		"project": c.project,
130008		"route":   c.route,
130009	})
130010	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130011}
130012
130013// Do executes the "compute.routes.get" call.
130014// Exactly one of *Route or error will be non-nil. Any non-2xx status
130015// code is an error. Response headers are in either
130016// *Route.ServerResponse.Header or (if a response was returned at all)
130017// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
130018// check whether the returned error was because http.StatusNotModified
130019// was returned.
130020func (c *RoutesGetCall) Do(opts ...googleapi.CallOption) (*Route, error) {
130021	gensupport.SetOptions(c.urlParams_, opts...)
130022	res, err := c.doRequest("json")
130023	if res != nil && res.StatusCode == http.StatusNotModified {
130024		if res.Body != nil {
130025			res.Body.Close()
130026		}
130027		return nil, &googleapi.Error{
130028			Code:   res.StatusCode,
130029			Header: res.Header,
130030		}
130031	}
130032	if err != nil {
130033		return nil, err
130034	}
130035	defer googleapi.CloseBody(res)
130036	if err := googleapi.CheckResponse(res); err != nil {
130037		return nil, err
130038	}
130039	ret := &Route{
130040		ServerResponse: googleapi.ServerResponse{
130041			Header:         res.Header,
130042			HTTPStatusCode: res.StatusCode,
130043		},
130044	}
130045	target := &ret
130046	if err := gensupport.DecodeResponse(target, res); err != nil {
130047		return nil, err
130048	}
130049	return ret, nil
130050	// {
130051	//   "description": "Returns the specified Route resource. Gets a list of available routes by making a list() request.",
130052	//   "httpMethod": "GET",
130053	//   "id": "compute.routes.get",
130054	//   "parameterOrder": [
130055	//     "project",
130056	//     "route"
130057	//   ],
130058	//   "parameters": {
130059	//     "project": {
130060	//       "description": "Project ID for this request.",
130061	//       "location": "path",
130062	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130063	//       "required": true,
130064	//       "type": "string"
130065	//     },
130066	//     "route": {
130067	//       "description": "Name of the Route resource to return.",
130068	//       "location": "path",
130069	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130070	//       "required": true,
130071	//       "type": "string"
130072	//     }
130073	//   },
130074	//   "path": "{project}/global/routes/{route}",
130075	//   "response": {
130076	//     "$ref": "Route"
130077	//   },
130078	//   "scopes": [
130079	//     "https://www.googleapis.com/auth/cloud-platform",
130080	//     "https://www.googleapis.com/auth/compute",
130081	//     "https://www.googleapis.com/auth/compute.readonly"
130082	//   ]
130083	// }
130084
130085}
130086
130087// method id "compute.routes.insert":
130088
130089type RoutesInsertCall struct {
130090	s          *Service
130091	project    string
130092	route      *Route
130093	urlParams_ gensupport.URLParams
130094	ctx_       context.Context
130095	header_    http.Header
130096}
130097
130098// Insert: Creates a Route resource in the specified project using the
130099// data included in the request.
130100// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/insert
130101func (r *RoutesService) Insert(project string, route *Route) *RoutesInsertCall {
130102	c := &RoutesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130103	c.project = project
130104	c.route = route
130105	return c
130106}
130107
130108// RequestId sets the optional parameter "requestId": An optional
130109// request ID to identify requests. Specify a unique request ID so that
130110// if you must retry your request, the server will know to ignore the
130111// request if it has already been completed.
130112//
130113// For example, consider a situation where you make an initial request
130114// and the request times out. If you make the request again with the
130115// same request ID, the server can check if original operation with the
130116// same request ID was received, and if so, will ignore the second
130117// request. This prevents clients from accidentally creating duplicate
130118// commitments.
130119//
130120// The request ID must be a valid UUID with the exception that zero UUID
130121// is not supported (00000000-0000-0000-0000-000000000000).
130122func (c *RoutesInsertCall) RequestId(requestId string) *RoutesInsertCall {
130123	c.urlParams_.Set("requestId", requestId)
130124	return c
130125}
130126
130127// Fields allows partial responses to be retrieved. See
130128// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130129// for more information.
130130func (c *RoutesInsertCall) Fields(s ...googleapi.Field) *RoutesInsertCall {
130131	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130132	return c
130133}
130134
130135// Context sets the context to be used in this call's Do method. Any
130136// pending HTTP request will be aborted if the provided context is
130137// canceled.
130138func (c *RoutesInsertCall) Context(ctx context.Context) *RoutesInsertCall {
130139	c.ctx_ = ctx
130140	return c
130141}
130142
130143// Header returns an http.Header that can be modified by the caller to
130144// add HTTP headers to the request.
130145func (c *RoutesInsertCall) Header() http.Header {
130146	if c.header_ == nil {
130147		c.header_ = make(http.Header)
130148	}
130149	return c.header_
130150}
130151
130152func (c *RoutesInsertCall) doRequest(alt string) (*http.Response, error) {
130153	reqHeaders := make(http.Header)
130154	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130155	for k, v := range c.header_ {
130156		reqHeaders[k] = v
130157	}
130158	reqHeaders.Set("User-Agent", c.s.userAgent())
130159	var body io.Reader = nil
130160	body, err := googleapi.WithoutDataWrapper.JSONReader(c.route)
130161	if err != nil {
130162		return nil, err
130163	}
130164	reqHeaders.Set("Content-Type", "application/json")
130165	c.urlParams_.Set("alt", alt)
130166	c.urlParams_.Set("prettyPrint", "false")
130167	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
130168	urls += "?" + c.urlParams_.Encode()
130169	req, err := http.NewRequest("POST", urls, body)
130170	if err != nil {
130171		return nil, err
130172	}
130173	req.Header = reqHeaders
130174	googleapi.Expand(req.URL, map[string]string{
130175		"project": c.project,
130176	})
130177	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130178}
130179
130180// Do executes the "compute.routes.insert" call.
130181// Exactly one of *Operation or error will be non-nil. Any non-2xx
130182// status code is an error. Response headers are in either
130183// *Operation.ServerResponse.Header or (if a response was returned at
130184// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130185// to check whether the returned error was because
130186// http.StatusNotModified was returned.
130187func (c *RoutesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130188	gensupport.SetOptions(c.urlParams_, opts...)
130189	res, err := c.doRequest("json")
130190	if res != nil && res.StatusCode == http.StatusNotModified {
130191		if res.Body != nil {
130192			res.Body.Close()
130193		}
130194		return nil, &googleapi.Error{
130195			Code:   res.StatusCode,
130196			Header: res.Header,
130197		}
130198	}
130199	if err != nil {
130200		return nil, err
130201	}
130202	defer googleapi.CloseBody(res)
130203	if err := googleapi.CheckResponse(res); err != nil {
130204		return nil, err
130205	}
130206	ret := &Operation{
130207		ServerResponse: googleapi.ServerResponse{
130208			Header:         res.Header,
130209			HTTPStatusCode: res.StatusCode,
130210		},
130211	}
130212	target := &ret
130213	if err := gensupport.DecodeResponse(target, res); err != nil {
130214		return nil, err
130215	}
130216	return ret, nil
130217	// {
130218	//   "description": "Creates a Route resource in the specified project using the data included in the request.",
130219	//   "httpMethod": "POST",
130220	//   "id": "compute.routes.insert",
130221	//   "parameterOrder": [
130222	//     "project"
130223	//   ],
130224	//   "parameters": {
130225	//     "project": {
130226	//       "description": "Project ID for this request.",
130227	//       "location": "path",
130228	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130229	//       "required": true,
130230	//       "type": "string"
130231	//     },
130232	//     "requestId": {
130233	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130234	//       "location": "query",
130235	//       "type": "string"
130236	//     }
130237	//   },
130238	//   "path": "{project}/global/routes",
130239	//   "request": {
130240	//     "$ref": "Route"
130241	//   },
130242	//   "response": {
130243	//     "$ref": "Operation"
130244	//   },
130245	//   "scopes": [
130246	//     "https://www.googleapis.com/auth/cloud-platform",
130247	//     "https://www.googleapis.com/auth/compute"
130248	//   ]
130249	// }
130250
130251}
130252
130253// method id "compute.routes.list":
130254
130255type RoutesListCall struct {
130256	s            *Service
130257	project      string
130258	urlParams_   gensupport.URLParams
130259	ifNoneMatch_ string
130260	ctx_         context.Context
130261	header_      http.Header
130262}
130263
130264// List: Retrieves the list of Route resources available to the
130265// specified project.
130266// For details, see https://cloud.google.com/compute/docs/reference/latest/routes/list
130267func (r *RoutesService) List(project string) *RoutesListCall {
130268	c := &RoutesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130269	c.project = project
130270	return c
130271}
130272
130273// Filter sets the optional parameter "filter": A filter expression that
130274// filters resources listed in the response. The expression must specify
130275// the field name, a comparison operator, and the value that you want to
130276// use for filtering. The value must be a string, a number, or a
130277// boolean. The comparison operator must be either =, !=, >, or <.
130278//
130279// For example, if you are filtering Compute Engine instances, you can
130280// exclude instances named example-instance by specifying name !=
130281// example-instance.
130282//
130283// You can also filter nested fields. For example, you could specify
130284// scheduling.automaticRestart = false to include instances only if they
130285// are not scheduled for automatic restarts. You can use filtering on
130286// nested fields to filter based on resource labels.
130287//
130288// To filter on multiple expressions, provide each separate expression
130289// within parentheses. For example, (scheduling.automaticRestart = true)
130290// (cpuPlatform = "Intel Skylake"). By default, each expression is an
130291// AND expression. However, you can include AND and OR expressions
130292// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
130293// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
130294// true).
130295func (c *RoutesListCall) Filter(filter string) *RoutesListCall {
130296	c.urlParams_.Set("filter", filter)
130297	return c
130298}
130299
130300// MaxResults sets the optional parameter "maxResults": The maximum
130301// number of results per page that should be returned. If the number of
130302// available results is larger than maxResults, Compute Engine returns a
130303// nextPageToken that can be used to get the next page of results in
130304// subsequent list requests. Acceptable values are 0 to 500, inclusive.
130305// (Default: 500)
130306func (c *RoutesListCall) MaxResults(maxResults int64) *RoutesListCall {
130307	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
130308	return c
130309}
130310
130311// OrderBy sets the optional parameter "orderBy": Sorts list results by
130312// a certain order. By default, results are returned in alphanumerical
130313// order based on the resource name.
130314//
130315// You can also sort results in descending order based on the creation
130316// timestamp using orderBy="creationTimestamp desc". This sorts results
130317// based on the creationTimestamp field in reverse chronological order
130318// (newest result first). Use this to sort resources like operations so
130319// that the newest operation is returned first.
130320//
130321// Currently, only sorting by name or creationTimestamp desc is
130322// supported.
130323func (c *RoutesListCall) OrderBy(orderBy string) *RoutesListCall {
130324	c.urlParams_.Set("orderBy", orderBy)
130325	return c
130326}
130327
130328// PageToken sets the optional parameter "pageToken": Specifies a page
130329// token to use. Set pageToken to the nextPageToken returned by a
130330// previous list request to get the next page of results.
130331func (c *RoutesListCall) PageToken(pageToken string) *RoutesListCall {
130332	c.urlParams_.Set("pageToken", pageToken)
130333	return c
130334}
130335
130336// Fields allows partial responses to be retrieved. See
130337// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130338// for more information.
130339func (c *RoutesListCall) Fields(s ...googleapi.Field) *RoutesListCall {
130340	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130341	return c
130342}
130343
130344// IfNoneMatch sets the optional parameter which makes the operation
130345// fail if the object's ETag matches the given value. This is useful for
130346// getting updates only after the object has changed since the last
130347// request. Use googleapi.IsNotModified to check whether the response
130348// error from Do is the result of In-None-Match.
130349func (c *RoutesListCall) IfNoneMatch(entityTag string) *RoutesListCall {
130350	c.ifNoneMatch_ = entityTag
130351	return c
130352}
130353
130354// Context sets the context to be used in this call's Do method. Any
130355// pending HTTP request will be aborted if the provided context is
130356// canceled.
130357func (c *RoutesListCall) Context(ctx context.Context) *RoutesListCall {
130358	c.ctx_ = ctx
130359	return c
130360}
130361
130362// Header returns an http.Header that can be modified by the caller to
130363// add HTTP headers to the request.
130364func (c *RoutesListCall) Header() http.Header {
130365	if c.header_ == nil {
130366		c.header_ = make(http.Header)
130367	}
130368	return c.header_
130369}
130370
130371func (c *RoutesListCall) doRequest(alt string) (*http.Response, error) {
130372	reqHeaders := make(http.Header)
130373	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130374	for k, v := range c.header_ {
130375		reqHeaders[k] = v
130376	}
130377	reqHeaders.Set("User-Agent", c.s.userAgent())
130378	if c.ifNoneMatch_ != "" {
130379		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
130380	}
130381	var body io.Reader = nil
130382	c.urlParams_.Set("alt", alt)
130383	c.urlParams_.Set("prettyPrint", "false")
130384	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes")
130385	urls += "?" + c.urlParams_.Encode()
130386	req, err := http.NewRequest("GET", urls, body)
130387	if err != nil {
130388		return nil, err
130389	}
130390	req.Header = reqHeaders
130391	googleapi.Expand(req.URL, map[string]string{
130392		"project": c.project,
130393	})
130394	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130395}
130396
130397// Do executes the "compute.routes.list" call.
130398// Exactly one of *RouteList or error will be non-nil. Any non-2xx
130399// status code is an error. Response headers are in either
130400// *RouteList.ServerResponse.Header or (if a response was returned at
130401// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130402// to check whether the returned error was because
130403// http.StatusNotModified was returned.
130404func (c *RoutesListCall) Do(opts ...googleapi.CallOption) (*RouteList, error) {
130405	gensupport.SetOptions(c.urlParams_, opts...)
130406	res, err := c.doRequest("json")
130407	if res != nil && res.StatusCode == http.StatusNotModified {
130408		if res.Body != nil {
130409			res.Body.Close()
130410		}
130411		return nil, &googleapi.Error{
130412			Code:   res.StatusCode,
130413			Header: res.Header,
130414		}
130415	}
130416	if err != nil {
130417		return nil, err
130418	}
130419	defer googleapi.CloseBody(res)
130420	if err := googleapi.CheckResponse(res); err != nil {
130421		return nil, err
130422	}
130423	ret := &RouteList{
130424		ServerResponse: googleapi.ServerResponse{
130425			Header:         res.Header,
130426			HTTPStatusCode: res.StatusCode,
130427		},
130428	}
130429	target := &ret
130430	if err := gensupport.DecodeResponse(target, res); err != nil {
130431		return nil, err
130432	}
130433	return ret, nil
130434	// {
130435	//   "description": "Retrieves the list of Route resources available to the specified project.",
130436	//   "httpMethod": "GET",
130437	//   "id": "compute.routes.list",
130438	//   "parameterOrder": [
130439	//     "project"
130440	//   ],
130441	//   "parameters": {
130442	//     "filter": {
130443	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
130444	//       "location": "query",
130445	//       "type": "string"
130446	//     },
130447	//     "maxResults": {
130448	//       "default": "500",
130449	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
130450	//       "format": "uint32",
130451	//       "location": "query",
130452	//       "minimum": "0",
130453	//       "type": "integer"
130454	//     },
130455	//     "orderBy": {
130456	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
130457	//       "location": "query",
130458	//       "type": "string"
130459	//     },
130460	//     "pageToken": {
130461	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
130462	//       "location": "query",
130463	//       "type": "string"
130464	//     },
130465	//     "project": {
130466	//       "description": "Project ID for this request.",
130467	//       "location": "path",
130468	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130469	//       "required": true,
130470	//       "type": "string"
130471	//     }
130472	//   },
130473	//   "path": "{project}/global/routes",
130474	//   "response": {
130475	//     "$ref": "RouteList"
130476	//   },
130477	//   "scopes": [
130478	//     "https://www.googleapis.com/auth/cloud-platform",
130479	//     "https://www.googleapis.com/auth/compute",
130480	//     "https://www.googleapis.com/auth/compute.readonly"
130481	//   ]
130482	// }
130483
130484}
130485
130486// Pages invokes f for each page of results.
130487// A non-nil error returned from f will halt the iteration.
130488// The provided context supersedes any context provided to the Context method.
130489func (c *RoutesListCall) Pages(ctx context.Context, f func(*RouteList) error) error {
130490	c.ctx_ = ctx
130491	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
130492	for {
130493		x, err := c.Do()
130494		if err != nil {
130495			return err
130496		}
130497		if err := f(x); err != nil {
130498			return err
130499		}
130500		if x.NextPageToken == "" {
130501			return nil
130502		}
130503		c.PageToken(x.NextPageToken)
130504	}
130505}
130506
130507// method id "compute.routes.testIamPermissions":
130508
130509type RoutesTestIamPermissionsCall struct {
130510	s                      *Service
130511	project                string
130512	resource               string
130513	testpermissionsrequest *TestPermissionsRequest
130514	urlParams_             gensupport.URLParams
130515	ctx_                   context.Context
130516	header_                http.Header
130517}
130518
130519// TestIamPermissions: Returns permissions that a caller has on the
130520// specified resource.
130521func (r *RoutesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *RoutesTestIamPermissionsCall {
130522	c := &RoutesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130523	c.project = project
130524	c.resource = resource
130525	c.testpermissionsrequest = testpermissionsrequest
130526	return c
130527}
130528
130529// Fields allows partial responses to be retrieved. See
130530// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130531// for more information.
130532func (c *RoutesTestIamPermissionsCall) Fields(s ...googleapi.Field) *RoutesTestIamPermissionsCall {
130533	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130534	return c
130535}
130536
130537// Context sets the context to be used in this call's Do method. Any
130538// pending HTTP request will be aborted if the provided context is
130539// canceled.
130540func (c *RoutesTestIamPermissionsCall) Context(ctx context.Context) *RoutesTestIamPermissionsCall {
130541	c.ctx_ = ctx
130542	return c
130543}
130544
130545// Header returns an http.Header that can be modified by the caller to
130546// add HTTP headers to the request.
130547func (c *RoutesTestIamPermissionsCall) Header() http.Header {
130548	if c.header_ == nil {
130549		c.header_ = make(http.Header)
130550	}
130551	return c.header_
130552}
130553
130554func (c *RoutesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
130555	reqHeaders := make(http.Header)
130556	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130557	for k, v := range c.header_ {
130558		reqHeaders[k] = v
130559	}
130560	reqHeaders.Set("User-Agent", c.s.userAgent())
130561	var body io.Reader = nil
130562	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
130563	if err != nil {
130564		return nil, err
130565	}
130566	reqHeaders.Set("Content-Type", "application/json")
130567	c.urlParams_.Set("alt", alt)
130568	c.urlParams_.Set("prettyPrint", "false")
130569	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/routes/{resource}/testIamPermissions")
130570	urls += "?" + c.urlParams_.Encode()
130571	req, err := http.NewRequest("POST", urls, body)
130572	if err != nil {
130573		return nil, err
130574	}
130575	req.Header = reqHeaders
130576	googleapi.Expand(req.URL, map[string]string{
130577		"project":  c.project,
130578		"resource": c.resource,
130579	})
130580	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130581}
130582
130583// Do executes the "compute.routes.testIamPermissions" call.
130584// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
130585// non-2xx status code is an error. Response headers are in either
130586// *TestPermissionsResponse.ServerResponse.Header or (if a response was
130587// returned at all) in error.(*googleapi.Error).Header. Use
130588// googleapi.IsNotModified to check whether the returned error was
130589// because http.StatusNotModified was returned.
130590func (c *RoutesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
130591	gensupport.SetOptions(c.urlParams_, opts...)
130592	res, err := c.doRequest("json")
130593	if res != nil && res.StatusCode == http.StatusNotModified {
130594		if res.Body != nil {
130595			res.Body.Close()
130596		}
130597		return nil, &googleapi.Error{
130598			Code:   res.StatusCode,
130599			Header: res.Header,
130600		}
130601	}
130602	if err != nil {
130603		return nil, err
130604	}
130605	defer googleapi.CloseBody(res)
130606	if err := googleapi.CheckResponse(res); err != nil {
130607		return nil, err
130608	}
130609	ret := &TestPermissionsResponse{
130610		ServerResponse: googleapi.ServerResponse{
130611			Header:         res.Header,
130612			HTTPStatusCode: res.StatusCode,
130613		},
130614	}
130615	target := &ret
130616	if err := gensupport.DecodeResponse(target, res); err != nil {
130617		return nil, err
130618	}
130619	return ret, nil
130620	// {
130621	//   "description": "Returns permissions that a caller has on the specified resource.",
130622	//   "httpMethod": "POST",
130623	//   "id": "compute.routes.testIamPermissions",
130624	//   "parameterOrder": [
130625	//     "project",
130626	//     "resource"
130627	//   ],
130628	//   "parameters": {
130629	//     "project": {
130630	//       "description": "Project ID for this request.",
130631	//       "location": "path",
130632	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130633	//       "required": true,
130634	//       "type": "string"
130635	//     },
130636	//     "resource": {
130637	//       "description": "Name or id of the resource for this request.",
130638	//       "location": "path",
130639	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130640	//       "required": true,
130641	//       "type": "string"
130642	//     }
130643	//   },
130644	//   "path": "{project}/global/routes/{resource}/testIamPermissions",
130645	//   "request": {
130646	//     "$ref": "TestPermissionsRequest"
130647	//   },
130648	//   "response": {
130649	//     "$ref": "TestPermissionsResponse"
130650	//   },
130651	//   "scopes": [
130652	//     "https://www.googleapis.com/auth/cloud-platform",
130653	//     "https://www.googleapis.com/auth/compute",
130654	//     "https://www.googleapis.com/auth/compute.readonly"
130655	//   ]
130656	// }
130657
130658}
130659
130660// method id "compute.securityPolicies.addRule":
130661
130662type SecurityPoliciesAddRuleCall struct {
130663	s                  *Service
130664	project            string
130665	securityPolicy     string
130666	securitypolicyrule *SecurityPolicyRule
130667	urlParams_         gensupport.URLParams
130668	ctx_               context.Context
130669	header_            http.Header
130670}
130671
130672// AddRule: Inserts a rule into a security policy.
130673func (r *SecurityPoliciesService) AddRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesAddRuleCall {
130674	c := &SecurityPoliciesAddRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130675	c.project = project
130676	c.securityPolicy = securityPolicy
130677	c.securitypolicyrule = securitypolicyrule
130678	return c
130679}
130680
130681// ValidateOnly sets the optional parameter "validateOnly": If true, the
130682// request will not be committed.
130683func (c *SecurityPoliciesAddRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesAddRuleCall {
130684	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
130685	return c
130686}
130687
130688// Fields allows partial responses to be retrieved. See
130689// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130690// for more information.
130691func (c *SecurityPoliciesAddRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesAddRuleCall {
130692	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130693	return c
130694}
130695
130696// Context sets the context to be used in this call's Do method. Any
130697// pending HTTP request will be aborted if the provided context is
130698// canceled.
130699func (c *SecurityPoliciesAddRuleCall) Context(ctx context.Context) *SecurityPoliciesAddRuleCall {
130700	c.ctx_ = ctx
130701	return c
130702}
130703
130704// Header returns an http.Header that can be modified by the caller to
130705// add HTTP headers to the request.
130706func (c *SecurityPoliciesAddRuleCall) Header() http.Header {
130707	if c.header_ == nil {
130708		c.header_ = make(http.Header)
130709	}
130710	return c.header_
130711}
130712
130713func (c *SecurityPoliciesAddRuleCall) doRequest(alt string) (*http.Response, error) {
130714	reqHeaders := make(http.Header)
130715	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130716	for k, v := range c.header_ {
130717		reqHeaders[k] = v
130718	}
130719	reqHeaders.Set("User-Agent", c.s.userAgent())
130720	var body io.Reader = nil
130721	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
130722	if err != nil {
130723		return nil, err
130724	}
130725	reqHeaders.Set("Content-Type", "application/json")
130726	c.urlParams_.Set("alt", alt)
130727	c.urlParams_.Set("prettyPrint", "false")
130728	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/addRule")
130729	urls += "?" + c.urlParams_.Encode()
130730	req, err := http.NewRequest("POST", urls, body)
130731	if err != nil {
130732		return nil, err
130733	}
130734	req.Header = reqHeaders
130735	googleapi.Expand(req.URL, map[string]string{
130736		"project":        c.project,
130737		"securityPolicy": c.securityPolicy,
130738	})
130739	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130740}
130741
130742// Do executes the "compute.securityPolicies.addRule" call.
130743// Exactly one of *Operation or error will be non-nil. Any non-2xx
130744// status code is an error. Response headers are in either
130745// *Operation.ServerResponse.Header or (if a response was returned at
130746// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130747// to check whether the returned error was because
130748// http.StatusNotModified was returned.
130749func (c *SecurityPoliciesAddRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130750	gensupport.SetOptions(c.urlParams_, opts...)
130751	res, err := c.doRequest("json")
130752	if res != nil && res.StatusCode == http.StatusNotModified {
130753		if res.Body != nil {
130754			res.Body.Close()
130755		}
130756		return nil, &googleapi.Error{
130757			Code:   res.StatusCode,
130758			Header: res.Header,
130759		}
130760	}
130761	if err != nil {
130762		return nil, err
130763	}
130764	defer googleapi.CloseBody(res)
130765	if err := googleapi.CheckResponse(res); err != nil {
130766		return nil, err
130767	}
130768	ret := &Operation{
130769		ServerResponse: googleapi.ServerResponse{
130770			Header:         res.Header,
130771			HTTPStatusCode: res.StatusCode,
130772		},
130773	}
130774	target := &ret
130775	if err := gensupport.DecodeResponse(target, res); err != nil {
130776		return nil, err
130777	}
130778	return ret, nil
130779	// {
130780	//   "description": "Inserts a rule into a security policy.",
130781	//   "httpMethod": "POST",
130782	//   "id": "compute.securityPolicies.addRule",
130783	//   "parameterOrder": [
130784	//     "project",
130785	//     "securityPolicy"
130786	//   ],
130787	//   "parameters": {
130788	//     "project": {
130789	//       "description": "Project ID for this request.",
130790	//       "location": "path",
130791	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130792	//       "required": true,
130793	//       "type": "string"
130794	//     },
130795	//     "securityPolicy": {
130796	//       "description": "Name of the security policy to update.",
130797	//       "location": "path",
130798	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130799	//       "required": true,
130800	//       "type": "string"
130801	//     },
130802	//     "validateOnly": {
130803	//       "description": "If true, the request will not be committed.",
130804	//       "location": "query",
130805	//       "type": "boolean"
130806	//     }
130807	//   },
130808	//   "path": "{project}/global/securityPolicies/{securityPolicy}/addRule",
130809	//   "request": {
130810	//     "$ref": "SecurityPolicyRule"
130811	//   },
130812	//   "response": {
130813	//     "$ref": "Operation"
130814	//   },
130815	//   "scopes": [
130816	//     "https://www.googleapis.com/auth/cloud-platform",
130817	//     "https://www.googleapis.com/auth/compute"
130818	//   ]
130819	// }
130820
130821}
130822
130823// method id "compute.securityPolicies.delete":
130824
130825type SecurityPoliciesDeleteCall struct {
130826	s              *Service
130827	project        string
130828	securityPolicy string
130829	urlParams_     gensupport.URLParams
130830	ctx_           context.Context
130831	header_        http.Header
130832}
130833
130834// Delete: Deletes the specified policy.
130835func (r *SecurityPoliciesService) Delete(project string, securityPolicy string) *SecurityPoliciesDeleteCall {
130836	c := &SecurityPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
130837	c.project = project
130838	c.securityPolicy = securityPolicy
130839	return c
130840}
130841
130842// RequestId sets the optional parameter "requestId": An optional
130843// request ID to identify requests. Specify a unique request ID so that
130844// if you must retry your request, the server will know to ignore the
130845// request if it has already been completed.
130846//
130847// For example, consider a situation where you make an initial request
130848// and the request times out. If you make the request again with the
130849// same request ID, the server can check if original operation with the
130850// same request ID was received, and if so, will ignore the second
130851// request. This prevents clients from accidentally creating duplicate
130852// commitments.
130853//
130854// The request ID must be a valid UUID with the exception that zero UUID
130855// is not supported (00000000-0000-0000-0000-000000000000).
130856func (c *SecurityPoliciesDeleteCall) RequestId(requestId string) *SecurityPoliciesDeleteCall {
130857	c.urlParams_.Set("requestId", requestId)
130858	return c
130859}
130860
130861// Fields allows partial responses to be retrieved. See
130862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
130863// for more information.
130864func (c *SecurityPoliciesDeleteCall) Fields(s ...googleapi.Field) *SecurityPoliciesDeleteCall {
130865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
130866	return c
130867}
130868
130869// Context sets the context to be used in this call's Do method. Any
130870// pending HTTP request will be aborted if the provided context is
130871// canceled.
130872func (c *SecurityPoliciesDeleteCall) Context(ctx context.Context) *SecurityPoliciesDeleteCall {
130873	c.ctx_ = ctx
130874	return c
130875}
130876
130877// Header returns an http.Header that can be modified by the caller to
130878// add HTTP headers to the request.
130879func (c *SecurityPoliciesDeleteCall) Header() http.Header {
130880	if c.header_ == nil {
130881		c.header_ = make(http.Header)
130882	}
130883	return c.header_
130884}
130885
130886func (c *SecurityPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
130887	reqHeaders := make(http.Header)
130888	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
130889	for k, v := range c.header_ {
130890		reqHeaders[k] = v
130891	}
130892	reqHeaders.Set("User-Agent", c.s.userAgent())
130893	var body io.Reader = nil
130894	c.urlParams_.Set("alt", alt)
130895	c.urlParams_.Set("prettyPrint", "false")
130896	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
130897	urls += "?" + c.urlParams_.Encode()
130898	req, err := http.NewRequest("DELETE", urls, body)
130899	if err != nil {
130900		return nil, err
130901	}
130902	req.Header = reqHeaders
130903	googleapi.Expand(req.URL, map[string]string{
130904		"project":        c.project,
130905		"securityPolicy": c.securityPolicy,
130906	})
130907	return gensupport.SendRequest(c.ctx_, c.s.client, req)
130908}
130909
130910// Do executes the "compute.securityPolicies.delete" call.
130911// Exactly one of *Operation or error will be non-nil. Any non-2xx
130912// status code is an error. Response headers are in either
130913// *Operation.ServerResponse.Header or (if a response was returned at
130914// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
130915// to check whether the returned error was because
130916// http.StatusNotModified was returned.
130917func (c *SecurityPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
130918	gensupport.SetOptions(c.urlParams_, opts...)
130919	res, err := c.doRequest("json")
130920	if res != nil && res.StatusCode == http.StatusNotModified {
130921		if res.Body != nil {
130922			res.Body.Close()
130923		}
130924		return nil, &googleapi.Error{
130925			Code:   res.StatusCode,
130926			Header: res.Header,
130927		}
130928	}
130929	if err != nil {
130930		return nil, err
130931	}
130932	defer googleapi.CloseBody(res)
130933	if err := googleapi.CheckResponse(res); err != nil {
130934		return nil, err
130935	}
130936	ret := &Operation{
130937		ServerResponse: googleapi.ServerResponse{
130938			Header:         res.Header,
130939			HTTPStatusCode: res.StatusCode,
130940		},
130941	}
130942	target := &ret
130943	if err := gensupport.DecodeResponse(target, res); err != nil {
130944		return nil, err
130945	}
130946	return ret, nil
130947	// {
130948	//   "description": "Deletes the specified policy.",
130949	//   "httpMethod": "DELETE",
130950	//   "id": "compute.securityPolicies.delete",
130951	//   "parameterOrder": [
130952	//     "project",
130953	//     "securityPolicy"
130954	//   ],
130955	//   "parameters": {
130956	//     "project": {
130957	//       "description": "Project ID for this request.",
130958	//       "location": "path",
130959	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
130960	//       "required": true,
130961	//       "type": "string"
130962	//     },
130963	//     "requestId": {
130964	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
130965	//       "location": "query",
130966	//       "type": "string"
130967	//     },
130968	//     "securityPolicy": {
130969	//       "description": "Name of the security policy to delete.",
130970	//       "location": "path",
130971	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
130972	//       "required": true,
130973	//       "type": "string"
130974	//     }
130975	//   },
130976	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
130977	//   "response": {
130978	//     "$ref": "Operation"
130979	//   },
130980	//   "scopes": [
130981	//     "https://www.googleapis.com/auth/cloud-platform",
130982	//     "https://www.googleapis.com/auth/compute"
130983	//   ]
130984	// }
130985
130986}
130987
130988// method id "compute.securityPolicies.get":
130989
130990type SecurityPoliciesGetCall struct {
130991	s              *Service
130992	project        string
130993	securityPolicy string
130994	urlParams_     gensupport.URLParams
130995	ifNoneMatch_   string
130996	ctx_           context.Context
130997	header_        http.Header
130998}
130999
131000// Get: List all of the ordered rules present in a single specified
131001// policy.
131002func (r *SecurityPoliciesService) Get(project string, securityPolicy string) *SecurityPoliciesGetCall {
131003	c := &SecurityPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131004	c.project = project
131005	c.securityPolicy = securityPolicy
131006	return c
131007}
131008
131009// Fields allows partial responses to be retrieved. See
131010// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131011// for more information.
131012func (c *SecurityPoliciesGetCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetCall {
131013	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131014	return c
131015}
131016
131017// IfNoneMatch sets the optional parameter which makes the operation
131018// fail if the object's ETag matches the given value. This is useful for
131019// getting updates only after the object has changed since the last
131020// request. Use googleapi.IsNotModified to check whether the response
131021// error from Do is the result of In-None-Match.
131022func (c *SecurityPoliciesGetCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetCall {
131023	c.ifNoneMatch_ = entityTag
131024	return c
131025}
131026
131027// Context sets the context to be used in this call's Do method. Any
131028// pending HTTP request will be aborted if the provided context is
131029// canceled.
131030func (c *SecurityPoliciesGetCall) Context(ctx context.Context) *SecurityPoliciesGetCall {
131031	c.ctx_ = ctx
131032	return c
131033}
131034
131035// Header returns an http.Header that can be modified by the caller to
131036// add HTTP headers to the request.
131037func (c *SecurityPoliciesGetCall) Header() http.Header {
131038	if c.header_ == nil {
131039		c.header_ = make(http.Header)
131040	}
131041	return c.header_
131042}
131043
131044func (c *SecurityPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
131045	reqHeaders := make(http.Header)
131046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131047	for k, v := range c.header_ {
131048		reqHeaders[k] = v
131049	}
131050	reqHeaders.Set("User-Agent", c.s.userAgent())
131051	if c.ifNoneMatch_ != "" {
131052		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131053	}
131054	var body io.Reader = nil
131055	c.urlParams_.Set("alt", alt)
131056	c.urlParams_.Set("prettyPrint", "false")
131057	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
131058	urls += "?" + c.urlParams_.Encode()
131059	req, err := http.NewRequest("GET", urls, body)
131060	if err != nil {
131061		return nil, err
131062	}
131063	req.Header = reqHeaders
131064	googleapi.Expand(req.URL, map[string]string{
131065		"project":        c.project,
131066		"securityPolicy": c.securityPolicy,
131067	})
131068	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131069}
131070
131071// Do executes the "compute.securityPolicies.get" call.
131072// Exactly one of *SecurityPolicy or error will be non-nil. Any non-2xx
131073// status code is an error. Response headers are in either
131074// *SecurityPolicy.ServerResponse.Header or (if a response was returned
131075// at all) in error.(*googleapi.Error).Header. Use
131076// googleapi.IsNotModified to check whether the returned error was
131077// because http.StatusNotModified was returned.
131078func (c *SecurityPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SecurityPolicy, error) {
131079	gensupport.SetOptions(c.urlParams_, opts...)
131080	res, err := c.doRequest("json")
131081	if res != nil && res.StatusCode == http.StatusNotModified {
131082		if res.Body != nil {
131083			res.Body.Close()
131084		}
131085		return nil, &googleapi.Error{
131086			Code:   res.StatusCode,
131087			Header: res.Header,
131088		}
131089	}
131090	if err != nil {
131091		return nil, err
131092	}
131093	defer googleapi.CloseBody(res)
131094	if err := googleapi.CheckResponse(res); err != nil {
131095		return nil, err
131096	}
131097	ret := &SecurityPolicy{
131098		ServerResponse: googleapi.ServerResponse{
131099			Header:         res.Header,
131100			HTTPStatusCode: res.StatusCode,
131101		},
131102	}
131103	target := &ret
131104	if err := gensupport.DecodeResponse(target, res); err != nil {
131105		return nil, err
131106	}
131107	return ret, nil
131108	// {
131109	//   "description": "List all of the ordered rules present in a single specified policy.",
131110	//   "httpMethod": "GET",
131111	//   "id": "compute.securityPolicies.get",
131112	//   "parameterOrder": [
131113	//     "project",
131114	//     "securityPolicy"
131115	//   ],
131116	//   "parameters": {
131117	//     "project": {
131118	//       "description": "Project ID for this request.",
131119	//       "location": "path",
131120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131121	//       "required": true,
131122	//       "type": "string"
131123	//     },
131124	//     "securityPolicy": {
131125	//       "description": "Name of the security policy to get.",
131126	//       "location": "path",
131127	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131128	//       "required": true,
131129	//       "type": "string"
131130	//     }
131131	//   },
131132	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
131133	//   "response": {
131134	//     "$ref": "SecurityPolicy"
131135	//   },
131136	//   "scopes": [
131137	//     "https://www.googleapis.com/auth/cloud-platform",
131138	//     "https://www.googleapis.com/auth/compute",
131139	//     "https://www.googleapis.com/auth/compute.readonly"
131140	//   ]
131141	// }
131142
131143}
131144
131145// method id "compute.securityPolicies.getRule":
131146
131147type SecurityPoliciesGetRuleCall struct {
131148	s              *Service
131149	project        string
131150	securityPolicy string
131151	urlParams_     gensupport.URLParams
131152	ifNoneMatch_   string
131153	ctx_           context.Context
131154	header_        http.Header
131155}
131156
131157// GetRule: Gets a rule at the specified priority.
131158func (r *SecurityPoliciesService) GetRule(project string, securityPolicy string) *SecurityPoliciesGetRuleCall {
131159	c := &SecurityPoliciesGetRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131160	c.project = project
131161	c.securityPolicy = securityPolicy
131162	return c
131163}
131164
131165// Priority sets the optional parameter "priority": The priority of the
131166// rule to get from the security policy.
131167func (c *SecurityPoliciesGetRuleCall) Priority(priority int64) *SecurityPoliciesGetRuleCall {
131168	c.urlParams_.Set("priority", fmt.Sprint(priority))
131169	return c
131170}
131171
131172// Fields allows partial responses to be retrieved. See
131173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131174// for more information.
131175func (c *SecurityPoliciesGetRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesGetRuleCall {
131176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131177	return c
131178}
131179
131180// IfNoneMatch sets the optional parameter which makes the operation
131181// fail if the object's ETag matches the given value. This is useful for
131182// getting updates only after the object has changed since the last
131183// request. Use googleapi.IsNotModified to check whether the response
131184// error from Do is the result of In-None-Match.
131185func (c *SecurityPoliciesGetRuleCall) IfNoneMatch(entityTag string) *SecurityPoliciesGetRuleCall {
131186	c.ifNoneMatch_ = entityTag
131187	return c
131188}
131189
131190// Context sets the context to be used in this call's Do method. Any
131191// pending HTTP request will be aborted if the provided context is
131192// canceled.
131193func (c *SecurityPoliciesGetRuleCall) Context(ctx context.Context) *SecurityPoliciesGetRuleCall {
131194	c.ctx_ = ctx
131195	return c
131196}
131197
131198// Header returns an http.Header that can be modified by the caller to
131199// add HTTP headers to the request.
131200func (c *SecurityPoliciesGetRuleCall) Header() http.Header {
131201	if c.header_ == nil {
131202		c.header_ = make(http.Header)
131203	}
131204	return c.header_
131205}
131206
131207func (c *SecurityPoliciesGetRuleCall) doRequest(alt string) (*http.Response, error) {
131208	reqHeaders := make(http.Header)
131209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131210	for k, v := range c.header_ {
131211		reqHeaders[k] = v
131212	}
131213	reqHeaders.Set("User-Agent", c.s.userAgent())
131214	if c.ifNoneMatch_ != "" {
131215		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131216	}
131217	var body io.Reader = nil
131218	c.urlParams_.Set("alt", alt)
131219	c.urlParams_.Set("prettyPrint", "false")
131220	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/getRule")
131221	urls += "?" + c.urlParams_.Encode()
131222	req, err := http.NewRequest("GET", urls, body)
131223	if err != nil {
131224		return nil, err
131225	}
131226	req.Header = reqHeaders
131227	googleapi.Expand(req.URL, map[string]string{
131228		"project":        c.project,
131229		"securityPolicy": c.securityPolicy,
131230	})
131231	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131232}
131233
131234// Do executes the "compute.securityPolicies.getRule" call.
131235// Exactly one of *SecurityPolicyRule or error will be non-nil. Any
131236// non-2xx status code is an error. Response headers are in either
131237// *SecurityPolicyRule.ServerResponse.Header or (if a response was
131238// returned at all) in error.(*googleapi.Error).Header. Use
131239// googleapi.IsNotModified to check whether the returned error was
131240// because http.StatusNotModified was returned.
131241func (c *SecurityPoliciesGetRuleCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyRule, error) {
131242	gensupport.SetOptions(c.urlParams_, opts...)
131243	res, err := c.doRequest("json")
131244	if res != nil && res.StatusCode == http.StatusNotModified {
131245		if res.Body != nil {
131246			res.Body.Close()
131247		}
131248		return nil, &googleapi.Error{
131249			Code:   res.StatusCode,
131250			Header: res.Header,
131251		}
131252	}
131253	if err != nil {
131254		return nil, err
131255	}
131256	defer googleapi.CloseBody(res)
131257	if err := googleapi.CheckResponse(res); err != nil {
131258		return nil, err
131259	}
131260	ret := &SecurityPolicyRule{
131261		ServerResponse: googleapi.ServerResponse{
131262			Header:         res.Header,
131263			HTTPStatusCode: res.StatusCode,
131264		},
131265	}
131266	target := &ret
131267	if err := gensupport.DecodeResponse(target, res); err != nil {
131268		return nil, err
131269	}
131270	return ret, nil
131271	// {
131272	//   "description": "Gets a rule at the specified priority.",
131273	//   "httpMethod": "GET",
131274	//   "id": "compute.securityPolicies.getRule",
131275	//   "parameterOrder": [
131276	//     "project",
131277	//     "securityPolicy"
131278	//   ],
131279	//   "parameters": {
131280	//     "priority": {
131281	//       "description": "The priority of the rule to get from the security policy.",
131282	//       "format": "int32",
131283	//       "location": "query",
131284	//       "type": "integer"
131285	//     },
131286	//     "project": {
131287	//       "description": "Project ID for this request.",
131288	//       "location": "path",
131289	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131290	//       "required": true,
131291	//       "type": "string"
131292	//     },
131293	//     "securityPolicy": {
131294	//       "description": "Name of the security policy to which the queried rule belongs.",
131295	//       "location": "path",
131296	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
131297	//       "required": true,
131298	//       "type": "string"
131299	//     }
131300	//   },
131301	//   "path": "{project}/global/securityPolicies/{securityPolicy}/getRule",
131302	//   "response": {
131303	//     "$ref": "SecurityPolicyRule"
131304	//   },
131305	//   "scopes": [
131306	//     "https://www.googleapis.com/auth/cloud-platform",
131307	//     "https://www.googleapis.com/auth/compute",
131308	//     "https://www.googleapis.com/auth/compute.readonly"
131309	//   ]
131310	// }
131311
131312}
131313
131314// method id "compute.securityPolicies.insert":
131315
131316type SecurityPoliciesInsertCall struct {
131317	s              *Service
131318	project        string
131319	securitypolicy *SecurityPolicy
131320	urlParams_     gensupport.URLParams
131321	ctx_           context.Context
131322	header_        http.Header
131323}
131324
131325// Insert: Creates a new policy in the specified project using the data
131326// included in the request.
131327func (r *SecurityPoliciesService) Insert(project string, securitypolicy *SecurityPolicy) *SecurityPoliciesInsertCall {
131328	c := &SecurityPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131329	c.project = project
131330	c.securitypolicy = securitypolicy
131331	return c
131332}
131333
131334// RequestId sets the optional parameter "requestId": An optional
131335// request ID to identify requests. Specify a unique request ID so that
131336// if you must retry your request, the server will know to ignore the
131337// request if it has already been completed.
131338//
131339// For example, consider a situation where you make an initial request
131340// and the request times out. If you make the request again with the
131341// same request ID, the server can check if original operation with the
131342// same request ID was received, and if so, will ignore the second
131343// request. This prevents clients from accidentally creating duplicate
131344// commitments.
131345//
131346// The request ID must be a valid UUID with the exception that zero UUID
131347// is not supported (00000000-0000-0000-0000-000000000000).
131348func (c *SecurityPoliciesInsertCall) RequestId(requestId string) *SecurityPoliciesInsertCall {
131349	c.urlParams_.Set("requestId", requestId)
131350	return c
131351}
131352
131353// ValidateOnly sets the optional parameter "validateOnly": If true, the
131354// request will not be committed.
131355func (c *SecurityPoliciesInsertCall) ValidateOnly(validateOnly bool) *SecurityPoliciesInsertCall {
131356	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
131357	return c
131358}
131359
131360// Fields allows partial responses to be retrieved. See
131361// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131362// for more information.
131363func (c *SecurityPoliciesInsertCall) Fields(s ...googleapi.Field) *SecurityPoliciesInsertCall {
131364	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131365	return c
131366}
131367
131368// Context sets the context to be used in this call's Do method. Any
131369// pending HTTP request will be aborted if the provided context is
131370// canceled.
131371func (c *SecurityPoliciesInsertCall) Context(ctx context.Context) *SecurityPoliciesInsertCall {
131372	c.ctx_ = ctx
131373	return c
131374}
131375
131376// Header returns an http.Header that can be modified by the caller to
131377// add HTTP headers to the request.
131378func (c *SecurityPoliciesInsertCall) Header() http.Header {
131379	if c.header_ == nil {
131380		c.header_ = make(http.Header)
131381	}
131382	return c.header_
131383}
131384
131385func (c *SecurityPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
131386	reqHeaders := make(http.Header)
131387	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131388	for k, v := range c.header_ {
131389		reqHeaders[k] = v
131390	}
131391	reqHeaders.Set("User-Agent", c.s.userAgent())
131392	var body io.Reader = nil
131393	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
131394	if err != nil {
131395		return nil, err
131396	}
131397	reqHeaders.Set("Content-Type", "application/json")
131398	c.urlParams_.Set("alt", alt)
131399	c.urlParams_.Set("prettyPrint", "false")
131400	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
131401	urls += "?" + c.urlParams_.Encode()
131402	req, err := http.NewRequest("POST", urls, body)
131403	if err != nil {
131404		return nil, err
131405	}
131406	req.Header = reqHeaders
131407	googleapi.Expand(req.URL, map[string]string{
131408		"project": c.project,
131409	})
131410	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131411}
131412
131413// Do executes the "compute.securityPolicies.insert" call.
131414// Exactly one of *Operation or error will be non-nil. Any non-2xx
131415// status code is an error. Response headers are in either
131416// *Operation.ServerResponse.Header or (if a response was returned at
131417// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
131418// to check whether the returned error was because
131419// http.StatusNotModified was returned.
131420func (c *SecurityPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
131421	gensupport.SetOptions(c.urlParams_, opts...)
131422	res, err := c.doRequest("json")
131423	if res != nil && res.StatusCode == http.StatusNotModified {
131424		if res.Body != nil {
131425			res.Body.Close()
131426		}
131427		return nil, &googleapi.Error{
131428			Code:   res.StatusCode,
131429			Header: res.Header,
131430		}
131431	}
131432	if err != nil {
131433		return nil, err
131434	}
131435	defer googleapi.CloseBody(res)
131436	if err := googleapi.CheckResponse(res); err != nil {
131437		return nil, err
131438	}
131439	ret := &Operation{
131440		ServerResponse: googleapi.ServerResponse{
131441			Header:         res.Header,
131442			HTTPStatusCode: res.StatusCode,
131443		},
131444	}
131445	target := &ret
131446	if err := gensupport.DecodeResponse(target, res); err != nil {
131447		return nil, err
131448	}
131449	return ret, nil
131450	// {
131451	//   "description": "Creates a new policy in the specified project using the data included in the request.",
131452	//   "httpMethod": "POST",
131453	//   "id": "compute.securityPolicies.insert",
131454	//   "parameterOrder": [
131455	//     "project"
131456	//   ],
131457	//   "parameters": {
131458	//     "project": {
131459	//       "description": "Project ID for this request.",
131460	//       "location": "path",
131461	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131462	//       "required": true,
131463	//       "type": "string"
131464	//     },
131465	//     "requestId": {
131466	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
131467	//       "location": "query",
131468	//       "type": "string"
131469	//     },
131470	//     "validateOnly": {
131471	//       "description": "If true, the request will not be committed.",
131472	//       "location": "query",
131473	//       "type": "boolean"
131474	//     }
131475	//   },
131476	//   "path": "{project}/global/securityPolicies",
131477	//   "request": {
131478	//     "$ref": "SecurityPolicy"
131479	//   },
131480	//   "response": {
131481	//     "$ref": "Operation"
131482	//   },
131483	//   "scopes": [
131484	//     "https://www.googleapis.com/auth/cloud-platform",
131485	//     "https://www.googleapis.com/auth/compute"
131486	//   ]
131487	// }
131488
131489}
131490
131491// method id "compute.securityPolicies.list":
131492
131493type SecurityPoliciesListCall struct {
131494	s            *Service
131495	project      string
131496	urlParams_   gensupport.URLParams
131497	ifNoneMatch_ string
131498	ctx_         context.Context
131499	header_      http.Header
131500}
131501
131502// List: List all the policies that have been configured for the
131503// specified project.
131504func (r *SecurityPoliciesService) List(project string) *SecurityPoliciesListCall {
131505	c := &SecurityPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131506	c.project = project
131507	return c
131508}
131509
131510// Filter sets the optional parameter "filter": A filter expression that
131511// filters resources listed in the response. The expression must specify
131512// the field name, a comparison operator, and the value that you want to
131513// use for filtering. The value must be a string, a number, or a
131514// boolean. The comparison operator must be either =, !=, >, or <.
131515//
131516// For example, if you are filtering Compute Engine instances, you can
131517// exclude instances named example-instance by specifying name !=
131518// example-instance.
131519//
131520// You can also filter nested fields. For example, you could specify
131521// scheduling.automaticRestart = false to include instances only if they
131522// are not scheduled for automatic restarts. You can use filtering on
131523// nested fields to filter based on resource labels.
131524//
131525// To filter on multiple expressions, provide each separate expression
131526// within parentheses. For example, (scheduling.automaticRestart = true)
131527// (cpuPlatform = "Intel Skylake"). By default, each expression is an
131528// AND expression. However, you can include AND and OR expressions
131529// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
131530// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
131531// true).
131532func (c *SecurityPoliciesListCall) Filter(filter string) *SecurityPoliciesListCall {
131533	c.urlParams_.Set("filter", filter)
131534	return c
131535}
131536
131537// MaxResults sets the optional parameter "maxResults": The maximum
131538// number of results per page that should be returned. If the number of
131539// available results is larger than maxResults, Compute Engine returns a
131540// nextPageToken that can be used to get the next page of results in
131541// subsequent list requests. Acceptable values are 0 to 500, inclusive.
131542// (Default: 500)
131543func (c *SecurityPoliciesListCall) MaxResults(maxResults int64) *SecurityPoliciesListCall {
131544	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131545	return c
131546}
131547
131548// OrderBy sets the optional parameter "orderBy": Sorts list results by
131549// a certain order. By default, results are returned in alphanumerical
131550// order based on the resource name.
131551//
131552// You can also sort results in descending order based on the creation
131553// timestamp using orderBy="creationTimestamp desc". This sorts results
131554// based on the creationTimestamp field in reverse chronological order
131555// (newest result first). Use this to sort resources like operations so
131556// that the newest operation is returned first.
131557//
131558// Currently, only sorting by name or creationTimestamp desc is
131559// supported.
131560func (c *SecurityPoliciesListCall) OrderBy(orderBy string) *SecurityPoliciesListCall {
131561	c.urlParams_.Set("orderBy", orderBy)
131562	return c
131563}
131564
131565// PageToken sets the optional parameter "pageToken": Specifies a page
131566// token to use. Set pageToken to the nextPageToken returned by a
131567// previous list request to get the next page of results.
131568func (c *SecurityPoliciesListCall) PageToken(pageToken string) *SecurityPoliciesListCall {
131569	c.urlParams_.Set("pageToken", pageToken)
131570	return c
131571}
131572
131573// Fields allows partial responses to be retrieved. See
131574// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131575// for more information.
131576func (c *SecurityPoliciesListCall) Fields(s ...googleapi.Field) *SecurityPoliciesListCall {
131577	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131578	return c
131579}
131580
131581// IfNoneMatch sets the optional parameter which makes the operation
131582// fail if the object's ETag matches the given value. This is useful for
131583// getting updates only after the object has changed since the last
131584// request. Use googleapi.IsNotModified to check whether the response
131585// error from Do is the result of In-None-Match.
131586func (c *SecurityPoliciesListCall) IfNoneMatch(entityTag string) *SecurityPoliciesListCall {
131587	c.ifNoneMatch_ = entityTag
131588	return c
131589}
131590
131591// Context sets the context to be used in this call's Do method. Any
131592// pending HTTP request will be aborted if the provided context is
131593// canceled.
131594func (c *SecurityPoliciesListCall) Context(ctx context.Context) *SecurityPoliciesListCall {
131595	c.ctx_ = ctx
131596	return c
131597}
131598
131599// Header returns an http.Header that can be modified by the caller to
131600// add HTTP headers to the request.
131601func (c *SecurityPoliciesListCall) Header() http.Header {
131602	if c.header_ == nil {
131603		c.header_ = make(http.Header)
131604	}
131605	return c.header_
131606}
131607
131608func (c *SecurityPoliciesListCall) doRequest(alt string) (*http.Response, error) {
131609	reqHeaders := make(http.Header)
131610	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131611	for k, v := range c.header_ {
131612		reqHeaders[k] = v
131613	}
131614	reqHeaders.Set("User-Agent", c.s.userAgent())
131615	if c.ifNoneMatch_ != "" {
131616		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131617	}
131618	var body io.Reader = nil
131619	c.urlParams_.Set("alt", alt)
131620	c.urlParams_.Set("prettyPrint", "false")
131621	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies")
131622	urls += "?" + c.urlParams_.Encode()
131623	req, err := http.NewRequest("GET", urls, body)
131624	if err != nil {
131625		return nil, err
131626	}
131627	req.Header = reqHeaders
131628	googleapi.Expand(req.URL, map[string]string{
131629		"project": c.project,
131630	})
131631	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131632}
131633
131634// Do executes the "compute.securityPolicies.list" call.
131635// Exactly one of *SecurityPolicyList or error will be non-nil. Any
131636// non-2xx status code is an error. Response headers are in either
131637// *SecurityPolicyList.ServerResponse.Header or (if a response was
131638// returned at all) in error.(*googleapi.Error).Header. Use
131639// googleapi.IsNotModified to check whether the returned error was
131640// because http.StatusNotModified was returned.
131641func (c *SecurityPoliciesListCall) Do(opts ...googleapi.CallOption) (*SecurityPolicyList, error) {
131642	gensupport.SetOptions(c.urlParams_, opts...)
131643	res, err := c.doRequest("json")
131644	if res != nil && res.StatusCode == http.StatusNotModified {
131645		if res.Body != nil {
131646			res.Body.Close()
131647		}
131648		return nil, &googleapi.Error{
131649			Code:   res.StatusCode,
131650			Header: res.Header,
131651		}
131652	}
131653	if err != nil {
131654		return nil, err
131655	}
131656	defer googleapi.CloseBody(res)
131657	if err := googleapi.CheckResponse(res); err != nil {
131658		return nil, err
131659	}
131660	ret := &SecurityPolicyList{
131661		ServerResponse: googleapi.ServerResponse{
131662			Header:         res.Header,
131663			HTTPStatusCode: res.StatusCode,
131664		},
131665	}
131666	target := &ret
131667	if err := gensupport.DecodeResponse(target, res); err != nil {
131668		return nil, err
131669	}
131670	return ret, nil
131671	// {
131672	//   "description": "List all the policies that have been configured for the specified project.",
131673	//   "httpMethod": "GET",
131674	//   "id": "compute.securityPolicies.list",
131675	//   "parameterOrder": [
131676	//     "project"
131677	//   ],
131678	//   "parameters": {
131679	//     "filter": {
131680	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
131681	//       "location": "query",
131682	//       "type": "string"
131683	//     },
131684	//     "maxResults": {
131685	//       "default": "500",
131686	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
131687	//       "format": "uint32",
131688	//       "location": "query",
131689	//       "minimum": "0",
131690	//       "type": "integer"
131691	//     },
131692	//     "orderBy": {
131693	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
131694	//       "location": "query",
131695	//       "type": "string"
131696	//     },
131697	//     "pageToken": {
131698	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
131699	//       "location": "query",
131700	//       "type": "string"
131701	//     },
131702	//     "project": {
131703	//       "description": "Project ID for this request.",
131704	//       "location": "path",
131705	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131706	//       "required": true,
131707	//       "type": "string"
131708	//     }
131709	//   },
131710	//   "path": "{project}/global/securityPolicies",
131711	//   "response": {
131712	//     "$ref": "SecurityPolicyList"
131713	//   },
131714	//   "scopes": [
131715	//     "https://www.googleapis.com/auth/cloud-platform",
131716	//     "https://www.googleapis.com/auth/compute",
131717	//     "https://www.googleapis.com/auth/compute.readonly"
131718	//   ]
131719	// }
131720
131721}
131722
131723// Pages invokes f for each page of results.
131724// A non-nil error returned from f will halt the iteration.
131725// The provided context supersedes any context provided to the Context method.
131726func (c *SecurityPoliciesListCall) Pages(ctx context.Context, f func(*SecurityPolicyList) error) error {
131727	c.ctx_ = ctx
131728	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
131729	for {
131730		x, err := c.Do()
131731		if err != nil {
131732			return err
131733		}
131734		if err := f(x); err != nil {
131735			return err
131736		}
131737		if x.NextPageToken == "" {
131738			return nil
131739		}
131740		c.PageToken(x.NextPageToken)
131741	}
131742}
131743
131744// method id "compute.securityPolicies.listPreconfiguredExpressionSets":
131745
131746type SecurityPoliciesListPreconfiguredExpressionSetsCall struct {
131747	s            *Service
131748	project      string
131749	urlParams_   gensupport.URLParams
131750	ifNoneMatch_ string
131751	ctx_         context.Context
131752	header_      http.Header
131753}
131754
131755// ListPreconfiguredExpressionSets: Gets the current list of
131756// preconfigured Web Application Firewall (WAF) expressions.
131757func (r *SecurityPoliciesService) ListPreconfiguredExpressionSets(project string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
131758	c := &SecurityPoliciesListPreconfiguredExpressionSetsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131759	c.project = project
131760	return c
131761}
131762
131763// Filter sets the optional parameter "filter": A filter expression that
131764// filters resources listed in the response. The expression must specify
131765// the field name, a comparison operator, and the value that you want to
131766// use for filtering. The value must be a string, a number, or a
131767// boolean. The comparison operator must be either =, !=, >, or <.
131768//
131769// For example, if you are filtering Compute Engine instances, you can
131770// exclude instances named example-instance by specifying name !=
131771// example-instance.
131772//
131773// You can also filter nested fields. For example, you could specify
131774// scheduling.automaticRestart = false to include instances only if they
131775// are not scheduled for automatic restarts. You can use filtering on
131776// nested fields to filter based on resource labels.
131777//
131778// To filter on multiple expressions, provide each separate expression
131779// within parentheses. For example, (scheduling.automaticRestart = true)
131780// (cpuPlatform = "Intel Skylake"). By default, each expression is an
131781// AND expression. However, you can include AND and OR expressions
131782// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
131783// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
131784// true).
131785func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Filter(filter string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
131786	c.urlParams_.Set("filter", filter)
131787	return c
131788}
131789
131790// MaxResults sets the optional parameter "maxResults": The maximum
131791// number of results per page that should be returned. If the number of
131792// available results is larger than maxResults, Compute Engine returns a
131793// nextPageToken that can be used to get the next page of results in
131794// subsequent list requests. Acceptable values are 0 to 500, inclusive.
131795// (Default: 500)
131796func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) MaxResults(maxResults int64) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
131797	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
131798	return c
131799}
131800
131801// OrderBy sets the optional parameter "orderBy": Sorts list results by
131802// a certain order. By default, results are returned in alphanumerical
131803// order based on the resource name.
131804//
131805// You can also sort results in descending order based on the creation
131806// timestamp using orderBy="creationTimestamp desc". This sorts results
131807// based on the creationTimestamp field in reverse chronological order
131808// (newest result first). Use this to sort resources like operations so
131809// that the newest operation is returned first.
131810//
131811// Currently, only sorting by name or creationTimestamp desc is
131812// supported.
131813func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) OrderBy(orderBy string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
131814	c.urlParams_.Set("orderBy", orderBy)
131815	return c
131816}
131817
131818// PageToken sets the optional parameter "pageToken": Specifies a page
131819// token to use. Set pageToken to the nextPageToken returned by a
131820// previous list request to get the next page of results.
131821func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) PageToken(pageToken string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
131822	c.urlParams_.Set("pageToken", pageToken)
131823	return c
131824}
131825
131826// Fields allows partial responses to be retrieved. See
131827// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
131828// for more information.
131829func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Fields(s ...googleapi.Field) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
131830	c.urlParams_.Set("fields", googleapi.CombineFields(s))
131831	return c
131832}
131833
131834// IfNoneMatch sets the optional parameter which makes the operation
131835// fail if the object's ETag matches the given value. This is useful for
131836// getting updates only after the object has changed since the last
131837// request. Use googleapi.IsNotModified to check whether the response
131838// error from Do is the result of In-None-Match.
131839func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) IfNoneMatch(entityTag string) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
131840	c.ifNoneMatch_ = entityTag
131841	return c
131842}
131843
131844// Context sets the context to be used in this call's Do method. Any
131845// pending HTTP request will be aborted if the provided context is
131846// canceled.
131847func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Context(ctx context.Context) *SecurityPoliciesListPreconfiguredExpressionSetsCall {
131848	c.ctx_ = ctx
131849	return c
131850}
131851
131852// Header returns an http.Header that can be modified by the caller to
131853// add HTTP headers to the request.
131854func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Header() http.Header {
131855	if c.header_ == nil {
131856		c.header_ = make(http.Header)
131857	}
131858	return c.header_
131859}
131860
131861func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) doRequest(alt string) (*http.Response, error) {
131862	reqHeaders := make(http.Header)
131863	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
131864	for k, v := range c.header_ {
131865		reqHeaders[k] = v
131866	}
131867	reqHeaders.Set("User-Agent", c.s.userAgent())
131868	if c.ifNoneMatch_ != "" {
131869		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
131870	}
131871	var body io.Reader = nil
131872	c.urlParams_.Set("alt", alt)
131873	c.urlParams_.Set("prettyPrint", "false")
131874	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/listPreconfiguredExpressionSets")
131875	urls += "?" + c.urlParams_.Encode()
131876	req, err := http.NewRequest("GET", urls, body)
131877	if err != nil {
131878		return nil, err
131879	}
131880	req.Header = reqHeaders
131881	googleapi.Expand(req.URL, map[string]string{
131882		"project": c.project,
131883	})
131884	return gensupport.SendRequest(c.ctx_, c.s.client, req)
131885}
131886
131887// Do executes the "compute.securityPolicies.listPreconfiguredExpressionSets" call.
131888// Exactly one of
131889// *SecurityPoliciesListPreconfiguredExpressionSetsResponse or error
131890// will be non-nil. Any non-2xx status code is an error. Response
131891// headers are in either
131892// *SecurityPoliciesListPreconfiguredExpressionSetsResponse.ServerRespons
131893// e.Header or (if a response was returned at all) in
131894// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
131895// whether the returned error was because http.StatusNotModified was
131896// returned.
131897func (c *SecurityPoliciesListPreconfiguredExpressionSetsCall) Do(opts ...googleapi.CallOption) (*SecurityPoliciesListPreconfiguredExpressionSetsResponse, error) {
131898	gensupport.SetOptions(c.urlParams_, opts...)
131899	res, err := c.doRequest("json")
131900	if res != nil && res.StatusCode == http.StatusNotModified {
131901		if res.Body != nil {
131902			res.Body.Close()
131903		}
131904		return nil, &googleapi.Error{
131905			Code:   res.StatusCode,
131906			Header: res.Header,
131907		}
131908	}
131909	if err != nil {
131910		return nil, err
131911	}
131912	defer googleapi.CloseBody(res)
131913	if err := googleapi.CheckResponse(res); err != nil {
131914		return nil, err
131915	}
131916	ret := &SecurityPoliciesListPreconfiguredExpressionSetsResponse{
131917		ServerResponse: googleapi.ServerResponse{
131918			Header:         res.Header,
131919			HTTPStatusCode: res.StatusCode,
131920		},
131921	}
131922	target := &ret
131923	if err := gensupport.DecodeResponse(target, res); err != nil {
131924		return nil, err
131925	}
131926	return ret, nil
131927	// {
131928	//   "description": "Gets the current list of preconfigured Web Application Firewall (WAF) expressions.",
131929	//   "httpMethod": "GET",
131930	//   "id": "compute.securityPolicies.listPreconfiguredExpressionSets",
131931	//   "parameterOrder": [
131932	//     "project"
131933	//   ],
131934	//   "parameters": {
131935	//     "filter": {
131936	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
131937	//       "location": "query",
131938	//       "type": "string"
131939	//     },
131940	//     "maxResults": {
131941	//       "default": "500",
131942	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
131943	//       "format": "uint32",
131944	//       "location": "query",
131945	//       "minimum": "0",
131946	//       "type": "integer"
131947	//     },
131948	//     "orderBy": {
131949	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
131950	//       "location": "query",
131951	//       "type": "string"
131952	//     },
131953	//     "pageToken": {
131954	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
131955	//       "location": "query",
131956	//       "type": "string"
131957	//     },
131958	//     "project": {
131959	//       "description": "Project ID for this request.",
131960	//       "location": "path",
131961	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
131962	//       "required": true,
131963	//       "type": "string"
131964	//     }
131965	//   },
131966	//   "path": "{project}/global/securityPolicies/listPreconfiguredExpressionSets",
131967	//   "response": {
131968	//     "$ref": "SecurityPoliciesListPreconfiguredExpressionSetsResponse"
131969	//   },
131970	//   "scopes": [
131971	//     "https://www.googleapis.com/auth/cloud-platform",
131972	//     "https://www.googleapis.com/auth/compute"
131973	//   ]
131974	// }
131975
131976}
131977
131978// method id "compute.securityPolicies.patch":
131979
131980type SecurityPoliciesPatchCall struct {
131981	s              *Service
131982	project        string
131983	securityPolicy string
131984	securitypolicy *SecurityPolicy
131985	urlParams_     gensupport.URLParams
131986	ctx_           context.Context
131987	header_        http.Header
131988}
131989
131990// Patch: Patches the specified policy with the data included in the
131991// request.
131992func (r *SecurityPoliciesService) Patch(project string, securityPolicy string, securitypolicy *SecurityPolicy) *SecurityPoliciesPatchCall {
131993	c := &SecurityPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
131994	c.project = project
131995	c.securityPolicy = securityPolicy
131996	c.securitypolicy = securitypolicy
131997	return c
131998}
131999
132000// RequestId sets the optional parameter "requestId": An optional
132001// request ID to identify requests. Specify a unique request ID so that
132002// if you must retry your request, the server will know to ignore the
132003// request if it has already been completed.
132004//
132005// For example, consider a situation where you make an initial request
132006// and the request times out. If you make the request again with the
132007// same request ID, the server can check if original operation with the
132008// same request ID was received, and if so, will ignore the second
132009// request. This prevents clients from accidentally creating duplicate
132010// commitments.
132011//
132012// The request ID must be a valid UUID with the exception that zero UUID
132013// is not supported (00000000-0000-0000-0000-000000000000).
132014func (c *SecurityPoliciesPatchCall) RequestId(requestId string) *SecurityPoliciesPatchCall {
132015	c.urlParams_.Set("requestId", requestId)
132016	return c
132017}
132018
132019// Fields allows partial responses to be retrieved. See
132020// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132021// for more information.
132022func (c *SecurityPoliciesPatchCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchCall {
132023	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132024	return c
132025}
132026
132027// Context sets the context to be used in this call's Do method. Any
132028// pending HTTP request will be aborted if the provided context is
132029// canceled.
132030func (c *SecurityPoliciesPatchCall) Context(ctx context.Context) *SecurityPoliciesPatchCall {
132031	c.ctx_ = ctx
132032	return c
132033}
132034
132035// Header returns an http.Header that can be modified by the caller to
132036// add HTTP headers to the request.
132037func (c *SecurityPoliciesPatchCall) Header() http.Header {
132038	if c.header_ == nil {
132039		c.header_ = make(http.Header)
132040	}
132041	return c.header_
132042}
132043
132044func (c *SecurityPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
132045	reqHeaders := make(http.Header)
132046	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132047	for k, v := range c.header_ {
132048		reqHeaders[k] = v
132049	}
132050	reqHeaders.Set("User-Agent", c.s.userAgent())
132051	var body io.Reader = nil
132052	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicy)
132053	if err != nil {
132054		return nil, err
132055	}
132056	reqHeaders.Set("Content-Type", "application/json")
132057	c.urlParams_.Set("alt", alt)
132058	c.urlParams_.Set("prettyPrint", "false")
132059	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}")
132060	urls += "?" + c.urlParams_.Encode()
132061	req, err := http.NewRequest("PATCH", urls, body)
132062	if err != nil {
132063		return nil, err
132064	}
132065	req.Header = reqHeaders
132066	googleapi.Expand(req.URL, map[string]string{
132067		"project":        c.project,
132068		"securityPolicy": c.securityPolicy,
132069	})
132070	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132071}
132072
132073// Do executes the "compute.securityPolicies.patch" call.
132074// Exactly one of *Operation or error will be non-nil. Any non-2xx
132075// status code is an error. Response headers are in either
132076// *Operation.ServerResponse.Header or (if a response was returned at
132077// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132078// to check whether the returned error was because
132079// http.StatusNotModified was returned.
132080func (c *SecurityPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132081	gensupport.SetOptions(c.urlParams_, opts...)
132082	res, err := c.doRequest("json")
132083	if res != nil && res.StatusCode == http.StatusNotModified {
132084		if res.Body != nil {
132085			res.Body.Close()
132086		}
132087		return nil, &googleapi.Error{
132088			Code:   res.StatusCode,
132089			Header: res.Header,
132090		}
132091	}
132092	if err != nil {
132093		return nil, err
132094	}
132095	defer googleapi.CloseBody(res)
132096	if err := googleapi.CheckResponse(res); err != nil {
132097		return nil, err
132098	}
132099	ret := &Operation{
132100		ServerResponse: googleapi.ServerResponse{
132101			Header:         res.Header,
132102			HTTPStatusCode: res.StatusCode,
132103		},
132104	}
132105	target := &ret
132106	if err := gensupport.DecodeResponse(target, res); err != nil {
132107		return nil, err
132108	}
132109	return ret, nil
132110	// {
132111	//   "description": "Patches the specified policy with the data included in the request.",
132112	//   "httpMethod": "PATCH",
132113	//   "id": "compute.securityPolicies.patch",
132114	//   "parameterOrder": [
132115	//     "project",
132116	//     "securityPolicy"
132117	//   ],
132118	//   "parameters": {
132119	//     "project": {
132120	//       "description": "Project ID for this request.",
132121	//       "location": "path",
132122	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132123	//       "required": true,
132124	//       "type": "string"
132125	//     },
132126	//     "requestId": {
132127	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132128	//       "location": "query",
132129	//       "type": "string"
132130	//     },
132131	//     "securityPolicy": {
132132	//       "description": "Name of the security policy to update.",
132133	//       "location": "path",
132134	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132135	//       "required": true,
132136	//       "type": "string"
132137	//     }
132138	//   },
132139	//   "path": "{project}/global/securityPolicies/{securityPolicy}",
132140	//   "request": {
132141	//     "$ref": "SecurityPolicy"
132142	//   },
132143	//   "response": {
132144	//     "$ref": "Operation"
132145	//   },
132146	//   "scopes": [
132147	//     "https://www.googleapis.com/auth/cloud-platform",
132148	//     "https://www.googleapis.com/auth/compute"
132149	//   ]
132150	// }
132151
132152}
132153
132154// method id "compute.securityPolicies.patchRule":
132155
132156type SecurityPoliciesPatchRuleCall struct {
132157	s                  *Service
132158	project            string
132159	securityPolicy     string
132160	securitypolicyrule *SecurityPolicyRule
132161	urlParams_         gensupport.URLParams
132162	ctx_               context.Context
132163	header_            http.Header
132164}
132165
132166// PatchRule: Patches a rule at the specified priority.
132167func (r *SecurityPoliciesService) PatchRule(project string, securityPolicy string, securitypolicyrule *SecurityPolicyRule) *SecurityPoliciesPatchRuleCall {
132168	c := &SecurityPoliciesPatchRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132169	c.project = project
132170	c.securityPolicy = securityPolicy
132171	c.securitypolicyrule = securitypolicyrule
132172	return c
132173}
132174
132175// Priority sets the optional parameter "priority": The priority of the
132176// rule to patch.
132177func (c *SecurityPoliciesPatchRuleCall) Priority(priority int64) *SecurityPoliciesPatchRuleCall {
132178	c.urlParams_.Set("priority", fmt.Sprint(priority))
132179	return c
132180}
132181
132182// ValidateOnly sets the optional parameter "validateOnly": If true, the
132183// request will not be committed.
132184func (c *SecurityPoliciesPatchRuleCall) ValidateOnly(validateOnly bool) *SecurityPoliciesPatchRuleCall {
132185	c.urlParams_.Set("validateOnly", fmt.Sprint(validateOnly))
132186	return c
132187}
132188
132189// Fields allows partial responses to be retrieved. See
132190// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132191// for more information.
132192func (c *SecurityPoliciesPatchRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesPatchRuleCall {
132193	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132194	return c
132195}
132196
132197// Context sets the context to be used in this call's Do method. Any
132198// pending HTTP request will be aborted if the provided context is
132199// canceled.
132200func (c *SecurityPoliciesPatchRuleCall) Context(ctx context.Context) *SecurityPoliciesPatchRuleCall {
132201	c.ctx_ = ctx
132202	return c
132203}
132204
132205// Header returns an http.Header that can be modified by the caller to
132206// add HTTP headers to the request.
132207func (c *SecurityPoliciesPatchRuleCall) Header() http.Header {
132208	if c.header_ == nil {
132209		c.header_ = make(http.Header)
132210	}
132211	return c.header_
132212}
132213
132214func (c *SecurityPoliciesPatchRuleCall) doRequest(alt string) (*http.Response, error) {
132215	reqHeaders := make(http.Header)
132216	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132217	for k, v := range c.header_ {
132218		reqHeaders[k] = v
132219	}
132220	reqHeaders.Set("User-Agent", c.s.userAgent())
132221	var body io.Reader = nil
132222	body, err := googleapi.WithoutDataWrapper.JSONReader(c.securitypolicyrule)
132223	if err != nil {
132224		return nil, err
132225	}
132226	reqHeaders.Set("Content-Type", "application/json")
132227	c.urlParams_.Set("alt", alt)
132228	c.urlParams_.Set("prettyPrint", "false")
132229	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/patchRule")
132230	urls += "?" + c.urlParams_.Encode()
132231	req, err := http.NewRequest("POST", urls, body)
132232	if err != nil {
132233		return nil, err
132234	}
132235	req.Header = reqHeaders
132236	googleapi.Expand(req.URL, map[string]string{
132237		"project":        c.project,
132238		"securityPolicy": c.securityPolicy,
132239	})
132240	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132241}
132242
132243// Do executes the "compute.securityPolicies.patchRule" call.
132244// Exactly one of *Operation or error will be non-nil. Any non-2xx
132245// status code is an error. Response headers are in either
132246// *Operation.ServerResponse.Header or (if a response was returned at
132247// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132248// to check whether the returned error was because
132249// http.StatusNotModified was returned.
132250func (c *SecurityPoliciesPatchRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132251	gensupport.SetOptions(c.urlParams_, opts...)
132252	res, err := c.doRequest("json")
132253	if res != nil && res.StatusCode == http.StatusNotModified {
132254		if res.Body != nil {
132255			res.Body.Close()
132256		}
132257		return nil, &googleapi.Error{
132258			Code:   res.StatusCode,
132259			Header: res.Header,
132260		}
132261	}
132262	if err != nil {
132263		return nil, err
132264	}
132265	defer googleapi.CloseBody(res)
132266	if err := googleapi.CheckResponse(res); err != nil {
132267		return nil, err
132268	}
132269	ret := &Operation{
132270		ServerResponse: googleapi.ServerResponse{
132271			Header:         res.Header,
132272			HTTPStatusCode: res.StatusCode,
132273		},
132274	}
132275	target := &ret
132276	if err := gensupport.DecodeResponse(target, res); err != nil {
132277		return nil, err
132278	}
132279	return ret, nil
132280	// {
132281	//   "description": "Patches a rule at the specified priority.",
132282	//   "httpMethod": "POST",
132283	//   "id": "compute.securityPolicies.patchRule",
132284	//   "parameterOrder": [
132285	//     "project",
132286	//     "securityPolicy"
132287	//   ],
132288	//   "parameters": {
132289	//     "priority": {
132290	//       "description": "The priority of the rule to patch.",
132291	//       "format": "int32",
132292	//       "location": "query",
132293	//       "type": "integer"
132294	//     },
132295	//     "project": {
132296	//       "description": "Project ID for this request.",
132297	//       "location": "path",
132298	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132299	//       "required": true,
132300	//       "type": "string"
132301	//     },
132302	//     "securityPolicy": {
132303	//       "description": "Name of the security policy to update.",
132304	//       "location": "path",
132305	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132306	//       "required": true,
132307	//       "type": "string"
132308	//     },
132309	//     "validateOnly": {
132310	//       "description": "If true, the request will not be committed.",
132311	//       "location": "query",
132312	//       "type": "boolean"
132313	//     }
132314	//   },
132315	//   "path": "{project}/global/securityPolicies/{securityPolicy}/patchRule",
132316	//   "request": {
132317	//     "$ref": "SecurityPolicyRule"
132318	//   },
132319	//   "response": {
132320	//     "$ref": "Operation"
132321	//   },
132322	//   "scopes": [
132323	//     "https://www.googleapis.com/auth/cloud-platform",
132324	//     "https://www.googleapis.com/auth/compute"
132325	//   ]
132326	// }
132327
132328}
132329
132330// method id "compute.securityPolicies.removeRule":
132331
132332type SecurityPoliciesRemoveRuleCall struct {
132333	s              *Service
132334	project        string
132335	securityPolicy string
132336	urlParams_     gensupport.URLParams
132337	ctx_           context.Context
132338	header_        http.Header
132339}
132340
132341// RemoveRule: Deletes a rule at the specified priority.
132342func (r *SecurityPoliciesService) RemoveRule(project string, securityPolicy string) *SecurityPoliciesRemoveRuleCall {
132343	c := &SecurityPoliciesRemoveRuleCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132344	c.project = project
132345	c.securityPolicy = securityPolicy
132346	return c
132347}
132348
132349// Priority sets the optional parameter "priority": The priority of the
132350// rule to remove from the security policy.
132351func (c *SecurityPoliciesRemoveRuleCall) Priority(priority int64) *SecurityPoliciesRemoveRuleCall {
132352	c.urlParams_.Set("priority", fmt.Sprint(priority))
132353	return c
132354}
132355
132356// Fields allows partial responses to be retrieved. See
132357// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132358// for more information.
132359func (c *SecurityPoliciesRemoveRuleCall) Fields(s ...googleapi.Field) *SecurityPoliciesRemoveRuleCall {
132360	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132361	return c
132362}
132363
132364// Context sets the context to be used in this call's Do method. Any
132365// pending HTTP request will be aborted if the provided context is
132366// canceled.
132367func (c *SecurityPoliciesRemoveRuleCall) Context(ctx context.Context) *SecurityPoliciesRemoveRuleCall {
132368	c.ctx_ = ctx
132369	return c
132370}
132371
132372// Header returns an http.Header that can be modified by the caller to
132373// add HTTP headers to the request.
132374func (c *SecurityPoliciesRemoveRuleCall) Header() http.Header {
132375	if c.header_ == nil {
132376		c.header_ = make(http.Header)
132377	}
132378	return c.header_
132379}
132380
132381func (c *SecurityPoliciesRemoveRuleCall) doRequest(alt string) (*http.Response, error) {
132382	reqHeaders := make(http.Header)
132383	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132384	for k, v := range c.header_ {
132385		reqHeaders[k] = v
132386	}
132387	reqHeaders.Set("User-Agent", c.s.userAgent())
132388	var body io.Reader = nil
132389	c.urlParams_.Set("alt", alt)
132390	c.urlParams_.Set("prettyPrint", "false")
132391	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{securityPolicy}/removeRule")
132392	urls += "?" + c.urlParams_.Encode()
132393	req, err := http.NewRequest("POST", urls, body)
132394	if err != nil {
132395		return nil, err
132396	}
132397	req.Header = reqHeaders
132398	googleapi.Expand(req.URL, map[string]string{
132399		"project":        c.project,
132400		"securityPolicy": c.securityPolicy,
132401	})
132402	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132403}
132404
132405// Do executes the "compute.securityPolicies.removeRule" call.
132406// Exactly one of *Operation or error will be non-nil. Any non-2xx
132407// status code is an error. Response headers are in either
132408// *Operation.ServerResponse.Header or (if a response was returned at
132409// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132410// to check whether the returned error was because
132411// http.StatusNotModified was returned.
132412func (c *SecurityPoliciesRemoveRuleCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132413	gensupport.SetOptions(c.urlParams_, opts...)
132414	res, err := c.doRequest("json")
132415	if res != nil && res.StatusCode == http.StatusNotModified {
132416		if res.Body != nil {
132417			res.Body.Close()
132418		}
132419		return nil, &googleapi.Error{
132420			Code:   res.StatusCode,
132421			Header: res.Header,
132422		}
132423	}
132424	if err != nil {
132425		return nil, err
132426	}
132427	defer googleapi.CloseBody(res)
132428	if err := googleapi.CheckResponse(res); err != nil {
132429		return nil, err
132430	}
132431	ret := &Operation{
132432		ServerResponse: googleapi.ServerResponse{
132433			Header:         res.Header,
132434			HTTPStatusCode: res.StatusCode,
132435		},
132436	}
132437	target := &ret
132438	if err := gensupport.DecodeResponse(target, res); err != nil {
132439		return nil, err
132440	}
132441	return ret, nil
132442	// {
132443	//   "description": "Deletes a rule at the specified priority.",
132444	//   "httpMethod": "POST",
132445	//   "id": "compute.securityPolicies.removeRule",
132446	//   "parameterOrder": [
132447	//     "project",
132448	//     "securityPolicy"
132449	//   ],
132450	//   "parameters": {
132451	//     "priority": {
132452	//       "description": "The priority of the rule to remove from the security policy.",
132453	//       "format": "int32",
132454	//       "location": "query",
132455	//       "type": "integer"
132456	//     },
132457	//     "project": {
132458	//       "description": "Project ID for this request.",
132459	//       "location": "path",
132460	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132461	//       "required": true,
132462	//       "type": "string"
132463	//     },
132464	//     "securityPolicy": {
132465	//       "description": "Name of the security policy to update.",
132466	//       "location": "path",
132467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132468	//       "required": true,
132469	//       "type": "string"
132470	//     }
132471	//   },
132472	//   "path": "{project}/global/securityPolicies/{securityPolicy}/removeRule",
132473	//   "response": {
132474	//     "$ref": "Operation"
132475	//   },
132476	//   "scopes": [
132477	//     "https://www.googleapis.com/auth/cloud-platform",
132478	//     "https://www.googleapis.com/auth/compute"
132479	//   ]
132480	// }
132481
132482}
132483
132484// method id "compute.securityPolicies.setLabels":
132485
132486type SecurityPoliciesSetLabelsCall struct {
132487	s                      *Service
132488	project                string
132489	resource               string
132490	globalsetlabelsrequest *GlobalSetLabelsRequest
132491	urlParams_             gensupport.URLParams
132492	ctx_                   context.Context
132493	header_                http.Header
132494}
132495
132496// SetLabels: Sets the labels on a security policy. To learn more about
132497// labels, read the Labeling Resources documentation.
132498func (r *SecurityPoliciesService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SecurityPoliciesSetLabelsCall {
132499	c := &SecurityPoliciesSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132500	c.project = project
132501	c.resource = resource
132502	c.globalsetlabelsrequest = globalsetlabelsrequest
132503	return c
132504}
132505
132506// Fields allows partial responses to be retrieved. See
132507// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132508// for more information.
132509func (c *SecurityPoliciesSetLabelsCall) Fields(s ...googleapi.Field) *SecurityPoliciesSetLabelsCall {
132510	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132511	return c
132512}
132513
132514// Context sets the context to be used in this call's Do method. Any
132515// pending HTTP request will be aborted if the provided context is
132516// canceled.
132517func (c *SecurityPoliciesSetLabelsCall) Context(ctx context.Context) *SecurityPoliciesSetLabelsCall {
132518	c.ctx_ = ctx
132519	return c
132520}
132521
132522// Header returns an http.Header that can be modified by the caller to
132523// add HTTP headers to the request.
132524func (c *SecurityPoliciesSetLabelsCall) Header() http.Header {
132525	if c.header_ == nil {
132526		c.header_ = make(http.Header)
132527	}
132528	return c.header_
132529}
132530
132531func (c *SecurityPoliciesSetLabelsCall) doRequest(alt string) (*http.Response, error) {
132532	reqHeaders := make(http.Header)
132533	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132534	for k, v := range c.header_ {
132535		reqHeaders[k] = v
132536	}
132537	reqHeaders.Set("User-Agent", c.s.userAgent())
132538	var body io.Reader = nil
132539	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
132540	if err != nil {
132541		return nil, err
132542	}
132543	reqHeaders.Set("Content-Type", "application/json")
132544	c.urlParams_.Set("alt", alt)
132545	c.urlParams_.Set("prettyPrint", "false")
132546	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/setLabels")
132547	urls += "?" + c.urlParams_.Encode()
132548	req, err := http.NewRequest("POST", urls, body)
132549	if err != nil {
132550		return nil, err
132551	}
132552	req.Header = reqHeaders
132553	googleapi.Expand(req.URL, map[string]string{
132554		"project":  c.project,
132555		"resource": c.resource,
132556	})
132557	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132558}
132559
132560// Do executes the "compute.securityPolicies.setLabels" call.
132561// Exactly one of *Operation or error will be non-nil. Any non-2xx
132562// status code is an error. Response headers are in either
132563// *Operation.ServerResponse.Header or (if a response was returned at
132564// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132565// to check whether the returned error was because
132566// http.StatusNotModified was returned.
132567func (c *SecurityPoliciesSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132568	gensupport.SetOptions(c.urlParams_, opts...)
132569	res, err := c.doRequest("json")
132570	if res != nil && res.StatusCode == http.StatusNotModified {
132571		if res.Body != nil {
132572			res.Body.Close()
132573		}
132574		return nil, &googleapi.Error{
132575			Code:   res.StatusCode,
132576			Header: res.Header,
132577		}
132578	}
132579	if err != nil {
132580		return nil, err
132581	}
132582	defer googleapi.CloseBody(res)
132583	if err := googleapi.CheckResponse(res); err != nil {
132584		return nil, err
132585	}
132586	ret := &Operation{
132587		ServerResponse: googleapi.ServerResponse{
132588			Header:         res.Header,
132589			HTTPStatusCode: res.StatusCode,
132590		},
132591	}
132592	target := &ret
132593	if err := gensupport.DecodeResponse(target, res); err != nil {
132594		return nil, err
132595	}
132596	return ret, nil
132597	// {
132598	//   "description": "Sets the labels on a security policy. To learn more about labels, read the Labeling Resources documentation.",
132599	//   "httpMethod": "POST",
132600	//   "id": "compute.securityPolicies.setLabels",
132601	//   "parameterOrder": [
132602	//     "project",
132603	//     "resource"
132604	//   ],
132605	//   "parameters": {
132606	//     "project": {
132607	//       "description": "Project ID for this request.",
132608	//       "location": "path",
132609	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132610	//       "required": true,
132611	//       "type": "string"
132612	//     },
132613	//     "resource": {
132614	//       "description": "Name or id of the resource for this request.",
132615	//       "location": "path",
132616	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132617	//       "required": true,
132618	//       "type": "string"
132619	//     }
132620	//   },
132621	//   "path": "{project}/global/securityPolicies/{resource}/setLabels",
132622	//   "request": {
132623	//     "$ref": "GlobalSetLabelsRequest"
132624	//   },
132625	//   "response": {
132626	//     "$ref": "Operation"
132627	//   },
132628	//   "scopes": [
132629	//     "https://www.googleapis.com/auth/cloud-platform",
132630	//     "https://www.googleapis.com/auth/compute"
132631	//   ]
132632	// }
132633
132634}
132635
132636// method id "compute.securityPolicies.testIamPermissions":
132637
132638type SecurityPoliciesTestIamPermissionsCall struct {
132639	s                      *Service
132640	project                string
132641	resource               string
132642	testpermissionsrequest *TestPermissionsRequest
132643	urlParams_             gensupport.URLParams
132644	ctx_                   context.Context
132645	header_                http.Header
132646}
132647
132648// TestIamPermissions: Returns permissions that a caller has on the
132649// specified resource.
132650func (r *SecurityPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SecurityPoliciesTestIamPermissionsCall {
132651	c := &SecurityPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132652	c.project = project
132653	c.resource = resource
132654	c.testpermissionsrequest = testpermissionsrequest
132655	return c
132656}
132657
132658// Fields allows partial responses to be retrieved. See
132659// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132660// for more information.
132661func (c *SecurityPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SecurityPoliciesTestIamPermissionsCall {
132662	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132663	return c
132664}
132665
132666// Context sets the context to be used in this call's Do method. Any
132667// pending HTTP request will be aborted if the provided context is
132668// canceled.
132669func (c *SecurityPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SecurityPoliciesTestIamPermissionsCall {
132670	c.ctx_ = ctx
132671	return c
132672}
132673
132674// Header returns an http.Header that can be modified by the caller to
132675// add HTTP headers to the request.
132676func (c *SecurityPoliciesTestIamPermissionsCall) Header() http.Header {
132677	if c.header_ == nil {
132678		c.header_ = make(http.Header)
132679	}
132680	return c.header_
132681}
132682
132683func (c *SecurityPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
132684	reqHeaders := make(http.Header)
132685	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132686	for k, v := range c.header_ {
132687		reqHeaders[k] = v
132688	}
132689	reqHeaders.Set("User-Agent", c.s.userAgent())
132690	var body io.Reader = nil
132691	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
132692	if err != nil {
132693		return nil, err
132694	}
132695	reqHeaders.Set("Content-Type", "application/json")
132696	c.urlParams_.Set("alt", alt)
132697	c.urlParams_.Set("prettyPrint", "false")
132698	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/securityPolicies/{resource}/testIamPermissions")
132699	urls += "?" + c.urlParams_.Encode()
132700	req, err := http.NewRequest("POST", urls, body)
132701	if err != nil {
132702		return nil, err
132703	}
132704	req.Header = reqHeaders
132705	googleapi.Expand(req.URL, map[string]string{
132706		"project":  c.project,
132707		"resource": c.resource,
132708	})
132709	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132710}
132711
132712// Do executes the "compute.securityPolicies.testIamPermissions" call.
132713// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
132714// non-2xx status code is an error. Response headers are in either
132715// *TestPermissionsResponse.ServerResponse.Header or (if a response was
132716// returned at all) in error.(*googleapi.Error).Header. Use
132717// googleapi.IsNotModified to check whether the returned error was
132718// because http.StatusNotModified was returned.
132719func (c *SecurityPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
132720	gensupport.SetOptions(c.urlParams_, opts...)
132721	res, err := c.doRequest("json")
132722	if res != nil && res.StatusCode == http.StatusNotModified {
132723		if res.Body != nil {
132724			res.Body.Close()
132725		}
132726		return nil, &googleapi.Error{
132727			Code:   res.StatusCode,
132728			Header: res.Header,
132729		}
132730	}
132731	if err != nil {
132732		return nil, err
132733	}
132734	defer googleapi.CloseBody(res)
132735	if err := googleapi.CheckResponse(res); err != nil {
132736		return nil, err
132737	}
132738	ret := &TestPermissionsResponse{
132739		ServerResponse: googleapi.ServerResponse{
132740			Header:         res.Header,
132741			HTTPStatusCode: res.StatusCode,
132742		},
132743	}
132744	target := &ret
132745	if err := gensupport.DecodeResponse(target, res); err != nil {
132746		return nil, err
132747	}
132748	return ret, nil
132749	// {
132750	//   "description": "Returns permissions that a caller has on the specified resource.",
132751	//   "httpMethod": "POST",
132752	//   "id": "compute.securityPolicies.testIamPermissions",
132753	//   "parameterOrder": [
132754	//     "project",
132755	//     "resource"
132756	//   ],
132757	//   "parameters": {
132758	//     "project": {
132759	//       "description": "Project ID for this request.",
132760	//       "location": "path",
132761	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132762	//       "required": true,
132763	//       "type": "string"
132764	//     },
132765	//     "resource": {
132766	//       "description": "Name or id of the resource for this request.",
132767	//       "location": "path",
132768	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132769	//       "required": true,
132770	//       "type": "string"
132771	//     }
132772	//   },
132773	//   "path": "{project}/global/securityPolicies/{resource}/testIamPermissions",
132774	//   "request": {
132775	//     "$ref": "TestPermissionsRequest"
132776	//   },
132777	//   "response": {
132778	//     "$ref": "TestPermissionsResponse"
132779	//   },
132780	//   "scopes": [
132781	//     "https://www.googleapis.com/auth/cloud-platform",
132782	//     "https://www.googleapis.com/auth/compute",
132783	//     "https://www.googleapis.com/auth/compute.readonly"
132784	//   ]
132785	// }
132786
132787}
132788
132789// method id "compute.snapshots.delete":
132790
132791type SnapshotsDeleteCall struct {
132792	s          *Service
132793	project    string
132794	snapshot   string
132795	urlParams_ gensupport.URLParams
132796	ctx_       context.Context
132797	header_    http.Header
132798}
132799
132800// Delete: Deletes the specified Snapshot resource. Keep in mind that
132801// deleting a single snapshot might not necessarily delete all the data
132802// on that snapshot. If any data on the snapshot that is marked for
132803// deletion is needed for subsequent snapshots, the data will be moved
132804// to the next corresponding snapshot.
132805//
132806// For more information, see Deleting snapshots.
132807// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/delete
132808func (r *SnapshotsService) Delete(project string, snapshot string) *SnapshotsDeleteCall {
132809	c := &SnapshotsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132810	c.project = project
132811	c.snapshot = snapshot
132812	return c
132813}
132814
132815// RequestId sets the optional parameter "requestId": An optional
132816// request ID to identify requests. Specify a unique request ID so that
132817// if you must retry your request, the server will know to ignore the
132818// request if it has already been completed.
132819//
132820// For example, consider a situation where you make an initial request
132821// and the request times out. If you make the request again with the
132822// same request ID, the server can check if original operation with the
132823// same request ID was received, and if so, will ignore the second
132824// request. This prevents clients from accidentally creating duplicate
132825// commitments.
132826//
132827// The request ID must be a valid UUID with the exception that zero UUID
132828// is not supported (00000000-0000-0000-0000-000000000000).
132829func (c *SnapshotsDeleteCall) RequestId(requestId string) *SnapshotsDeleteCall {
132830	c.urlParams_.Set("requestId", requestId)
132831	return c
132832}
132833
132834// Fields allows partial responses to be retrieved. See
132835// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132836// for more information.
132837func (c *SnapshotsDeleteCall) Fields(s ...googleapi.Field) *SnapshotsDeleteCall {
132838	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132839	return c
132840}
132841
132842// Context sets the context to be used in this call's Do method. Any
132843// pending HTTP request will be aborted if the provided context is
132844// canceled.
132845func (c *SnapshotsDeleteCall) Context(ctx context.Context) *SnapshotsDeleteCall {
132846	c.ctx_ = ctx
132847	return c
132848}
132849
132850// Header returns an http.Header that can be modified by the caller to
132851// add HTTP headers to the request.
132852func (c *SnapshotsDeleteCall) Header() http.Header {
132853	if c.header_ == nil {
132854		c.header_ = make(http.Header)
132855	}
132856	return c.header_
132857}
132858
132859func (c *SnapshotsDeleteCall) doRequest(alt string) (*http.Response, error) {
132860	reqHeaders := make(http.Header)
132861	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
132862	for k, v := range c.header_ {
132863		reqHeaders[k] = v
132864	}
132865	reqHeaders.Set("User-Agent", c.s.userAgent())
132866	var body io.Reader = nil
132867	c.urlParams_.Set("alt", alt)
132868	c.urlParams_.Set("prettyPrint", "false")
132869	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
132870	urls += "?" + c.urlParams_.Encode()
132871	req, err := http.NewRequest("DELETE", urls, body)
132872	if err != nil {
132873		return nil, err
132874	}
132875	req.Header = reqHeaders
132876	googleapi.Expand(req.URL, map[string]string{
132877		"project":  c.project,
132878		"snapshot": c.snapshot,
132879	})
132880	return gensupport.SendRequest(c.ctx_, c.s.client, req)
132881}
132882
132883// Do executes the "compute.snapshots.delete" call.
132884// Exactly one of *Operation or error will be non-nil. Any non-2xx
132885// status code is an error. Response headers are in either
132886// *Operation.ServerResponse.Header or (if a response was returned at
132887// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
132888// to check whether the returned error was because
132889// http.StatusNotModified was returned.
132890func (c *SnapshotsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
132891	gensupport.SetOptions(c.urlParams_, opts...)
132892	res, err := c.doRequest("json")
132893	if res != nil && res.StatusCode == http.StatusNotModified {
132894		if res.Body != nil {
132895			res.Body.Close()
132896		}
132897		return nil, &googleapi.Error{
132898			Code:   res.StatusCode,
132899			Header: res.Header,
132900		}
132901	}
132902	if err != nil {
132903		return nil, err
132904	}
132905	defer googleapi.CloseBody(res)
132906	if err := googleapi.CheckResponse(res); err != nil {
132907		return nil, err
132908	}
132909	ret := &Operation{
132910		ServerResponse: googleapi.ServerResponse{
132911			Header:         res.Header,
132912			HTTPStatusCode: res.StatusCode,
132913		},
132914	}
132915	target := &ret
132916	if err := gensupport.DecodeResponse(target, res); err != nil {
132917		return nil, err
132918	}
132919	return ret, nil
132920	// {
132921	//   "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.",
132922	//   "httpMethod": "DELETE",
132923	//   "id": "compute.snapshots.delete",
132924	//   "parameterOrder": [
132925	//     "project",
132926	//     "snapshot"
132927	//   ],
132928	//   "parameters": {
132929	//     "project": {
132930	//       "description": "Project ID for this request.",
132931	//       "location": "path",
132932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
132933	//       "required": true,
132934	//       "type": "string"
132935	//     },
132936	//     "requestId": {
132937	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
132938	//       "location": "query",
132939	//       "type": "string"
132940	//     },
132941	//     "snapshot": {
132942	//       "description": "Name of the Snapshot resource to delete.",
132943	//       "location": "path",
132944	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
132945	//       "required": true,
132946	//       "type": "string"
132947	//     }
132948	//   },
132949	//   "path": "{project}/global/snapshots/{snapshot}",
132950	//   "response": {
132951	//     "$ref": "Operation"
132952	//   },
132953	//   "scopes": [
132954	//     "https://www.googleapis.com/auth/cloud-platform",
132955	//     "https://www.googleapis.com/auth/compute"
132956	//   ]
132957	// }
132958
132959}
132960
132961// method id "compute.snapshots.get":
132962
132963type SnapshotsGetCall struct {
132964	s            *Service
132965	project      string
132966	snapshot     string
132967	urlParams_   gensupport.URLParams
132968	ifNoneMatch_ string
132969	ctx_         context.Context
132970	header_      http.Header
132971}
132972
132973// Get: Returns the specified Snapshot resource. Gets a list of
132974// available snapshots by making a list() request.
132975// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/get
132976func (r *SnapshotsService) Get(project string, snapshot string) *SnapshotsGetCall {
132977	c := &SnapshotsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
132978	c.project = project
132979	c.snapshot = snapshot
132980	return c
132981}
132982
132983// Fields allows partial responses to be retrieved. See
132984// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
132985// for more information.
132986func (c *SnapshotsGetCall) Fields(s ...googleapi.Field) *SnapshotsGetCall {
132987	c.urlParams_.Set("fields", googleapi.CombineFields(s))
132988	return c
132989}
132990
132991// IfNoneMatch sets the optional parameter which makes the operation
132992// fail if the object's ETag matches the given value. This is useful for
132993// getting updates only after the object has changed since the last
132994// request. Use googleapi.IsNotModified to check whether the response
132995// error from Do is the result of In-None-Match.
132996func (c *SnapshotsGetCall) IfNoneMatch(entityTag string) *SnapshotsGetCall {
132997	c.ifNoneMatch_ = entityTag
132998	return c
132999}
133000
133001// Context sets the context to be used in this call's Do method. Any
133002// pending HTTP request will be aborted if the provided context is
133003// canceled.
133004func (c *SnapshotsGetCall) Context(ctx context.Context) *SnapshotsGetCall {
133005	c.ctx_ = ctx
133006	return c
133007}
133008
133009// Header returns an http.Header that can be modified by the caller to
133010// add HTTP headers to the request.
133011func (c *SnapshotsGetCall) Header() http.Header {
133012	if c.header_ == nil {
133013		c.header_ = make(http.Header)
133014	}
133015	return c.header_
133016}
133017
133018func (c *SnapshotsGetCall) doRequest(alt string) (*http.Response, error) {
133019	reqHeaders := make(http.Header)
133020	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133021	for k, v := range c.header_ {
133022		reqHeaders[k] = v
133023	}
133024	reqHeaders.Set("User-Agent", c.s.userAgent())
133025	if c.ifNoneMatch_ != "" {
133026		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133027	}
133028	var body io.Reader = nil
133029	c.urlParams_.Set("alt", alt)
133030	c.urlParams_.Set("prettyPrint", "false")
133031	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{snapshot}")
133032	urls += "?" + c.urlParams_.Encode()
133033	req, err := http.NewRequest("GET", urls, body)
133034	if err != nil {
133035		return nil, err
133036	}
133037	req.Header = reqHeaders
133038	googleapi.Expand(req.URL, map[string]string{
133039		"project":  c.project,
133040		"snapshot": c.snapshot,
133041	})
133042	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133043}
133044
133045// Do executes the "compute.snapshots.get" call.
133046// Exactly one of *Snapshot or error will be non-nil. Any non-2xx status
133047// code is an error. Response headers are in either
133048// *Snapshot.ServerResponse.Header or (if a response was returned at
133049// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133050// to check whether the returned error was because
133051// http.StatusNotModified was returned.
133052func (c *SnapshotsGetCall) Do(opts ...googleapi.CallOption) (*Snapshot, error) {
133053	gensupport.SetOptions(c.urlParams_, opts...)
133054	res, err := c.doRequest("json")
133055	if res != nil && res.StatusCode == http.StatusNotModified {
133056		if res.Body != nil {
133057			res.Body.Close()
133058		}
133059		return nil, &googleapi.Error{
133060			Code:   res.StatusCode,
133061			Header: res.Header,
133062		}
133063	}
133064	if err != nil {
133065		return nil, err
133066	}
133067	defer googleapi.CloseBody(res)
133068	if err := googleapi.CheckResponse(res); err != nil {
133069		return nil, err
133070	}
133071	ret := &Snapshot{
133072		ServerResponse: googleapi.ServerResponse{
133073			Header:         res.Header,
133074			HTTPStatusCode: res.StatusCode,
133075		},
133076	}
133077	target := &ret
133078	if err := gensupport.DecodeResponse(target, res); err != nil {
133079		return nil, err
133080	}
133081	return ret, nil
133082	// {
133083	//   "description": "Returns the specified Snapshot resource. Gets a list of available snapshots by making a list() request.",
133084	//   "httpMethod": "GET",
133085	//   "id": "compute.snapshots.get",
133086	//   "parameterOrder": [
133087	//     "project",
133088	//     "snapshot"
133089	//   ],
133090	//   "parameters": {
133091	//     "project": {
133092	//       "description": "Project ID for this request.",
133093	//       "location": "path",
133094	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133095	//       "required": true,
133096	//       "type": "string"
133097	//     },
133098	//     "snapshot": {
133099	//       "description": "Name of the Snapshot resource to return.",
133100	//       "location": "path",
133101	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133102	//       "required": true,
133103	//       "type": "string"
133104	//     }
133105	//   },
133106	//   "path": "{project}/global/snapshots/{snapshot}",
133107	//   "response": {
133108	//     "$ref": "Snapshot"
133109	//   },
133110	//   "scopes": [
133111	//     "https://www.googleapis.com/auth/cloud-platform",
133112	//     "https://www.googleapis.com/auth/compute",
133113	//     "https://www.googleapis.com/auth/compute.readonly"
133114	//   ]
133115	// }
133116
133117}
133118
133119// method id "compute.snapshots.getIamPolicy":
133120
133121type SnapshotsGetIamPolicyCall struct {
133122	s            *Service
133123	project      string
133124	resource     string
133125	urlParams_   gensupport.URLParams
133126	ifNoneMatch_ string
133127	ctx_         context.Context
133128	header_      http.Header
133129}
133130
133131// GetIamPolicy: Gets the access control policy for a resource. May be
133132// empty if no such policy or resource exists.
133133func (r *SnapshotsService) GetIamPolicy(project string, resource string) *SnapshotsGetIamPolicyCall {
133134	c := &SnapshotsGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133135	c.project = project
133136	c.resource = resource
133137	return c
133138}
133139
133140// OptionsRequestedPolicyVersion sets the optional parameter
133141// "optionsRequestedPolicyVersion": Requested IAM Policy version.
133142func (c *SnapshotsGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SnapshotsGetIamPolicyCall {
133143	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
133144	return c
133145}
133146
133147// Fields allows partial responses to be retrieved. See
133148// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133149// for more information.
133150func (c *SnapshotsGetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsGetIamPolicyCall {
133151	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133152	return c
133153}
133154
133155// IfNoneMatch sets the optional parameter which makes the operation
133156// fail if the object's ETag matches the given value. This is useful for
133157// getting updates only after the object has changed since the last
133158// request. Use googleapi.IsNotModified to check whether the response
133159// error from Do is the result of In-None-Match.
133160func (c *SnapshotsGetIamPolicyCall) IfNoneMatch(entityTag string) *SnapshotsGetIamPolicyCall {
133161	c.ifNoneMatch_ = entityTag
133162	return c
133163}
133164
133165// Context sets the context to be used in this call's Do method. Any
133166// pending HTTP request will be aborted if the provided context is
133167// canceled.
133168func (c *SnapshotsGetIamPolicyCall) Context(ctx context.Context) *SnapshotsGetIamPolicyCall {
133169	c.ctx_ = ctx
133170	return c
133171}
133172
133173// Header returns an http.Header that can be modified by the caller to
133174// add HTTP headers to the request.
133175func (c *SnapshotsGetIamPolicyCall) Header() http.Header {
133176	if c.header_ == nil {
133177		c.header_ = make(http.Header)
133178	}
133179	return c.header_
133180}
133181
133182func (c *SnapshotsGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
133183	reqHeaders := make(http.Header)
133184	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133185	for k, v := range c.header_ {
133186		reqHeaders[k] = v
133187	}
133188	reqHeaders.Set("User-Agent", c.s.userAgent())
133189	if c.ifNoneMatch_ != "" {
133190		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133191	}
133192	var body io.Reader = nil
133193	c.urlParams_.Set("alt", alt)
133194	c.urlParams_.Set("prettyPrint", "false")
133195	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/getIamPolicy")
133196	urls += "?" + c.urlParams_.Encode()
133197	req, err := http.NewRequest("GET", urls, body)
133198	if err != nil {
133199		return nil, err
133200	}
133201	req.Header = reqHeaders
133202	googleapi.Expand(req.URL, map[string]string{
133203		"project":  c.project,
133204		"resource": c.resource,
133205	})
133206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133207}
133208
133209// Do executes the "compute.snapshots.getIamPolicy" call.
133210// Exactly one of *Policy or error will be non-nil. Any non-2xx status
133211// code is an error. Response headers are in either
133212// *Policy.ServerResponse.Header or (if a response was returned at all)
133213// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
133214// check whether the returned error was because http.StatusNotModified
133215// was returned.
133216func (c *SnapshotsGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
133217	gensupport.SetOptions(c.urlParams_, opts...)
133218	res, err := c.doRequest("json")
133219	if res != nil && res.StatusCode == http.StatusNotModified {
133220		if res.Body != nil {
133221			res.Body.Close()
133222		}
133223		return nil, &googleapi.Error{
133224			Code:   res.StatusCode,
133225			Header: res.Header,
133226		}
133227	}
133228	if err != nil {
133229		return nil, err
133230	}
133231	defer googleapi.CloseBody(res)
133232	if err := googleapi.CheckResponse(res); err != nil {
133233		return nil, err
133234	}
133235	ret := &Policy{
133236		ServerResponse: googleapi.ServerResponse{
133237			Header:         res.Header,
133238			HTTPStatusCode: res.StatusCode,
133239		},
133240	}
133241	target := &ret
133242	if err := gensupport.DecodeResponse(target, res); err != nil {
133243		return nil, err
133244	}
133245	return ret, nil
133246	// {
133247	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
133248	//   "httpMethod": "GET",
133249	//   "id": "compute.snapshots.getIamPolicy",
133250	//   "parameterOrder": [
133251	//     "project",
133252	//     "resource"
133253	//   ],
133254	//   "parameters": {
133255	//     "optionsRequestedPolicyVersion": {
133256	//       "description": "Requested IAM Policy version.",
133257	//       "format": "int32",
133258	//       "location": "query",
133259	//       "type": "integer"
133260	//     },
133261	//     "project": {
133262	//       "description": "Project ID for this request.",
133263	//       "location": "path",
133264	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133265	//       "required": true,
133266	//       "type": "string"
133267	//     },
133268	//     "resource": {
133269	//       "description": "Name or id of the resource for this request.",
133270	//       "location": "path",
133271	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133272	//       "required": true,
133273	//       "type": "string"
133274	//     }
133275	//   },
133276	//   "path": "{project}/global/snapshots/{resource}/getIamPolicy",
133277	//   "response": {
133278	//     "$ref": "Policy"
133279	//   },
133280	//   "scopes": [
133281	//     "https://www.googleapis.com/auth/cloud-platform",
133282	//     "https://www.googleapis.com/auth/compute",
133283	//     "https://www.googleapis.com/auth/compute.readonly"
133284	//   ]
133285	// }
133286
133287}
133288
133289// method id "compute.snapshots.list":
133290
133291type SnapshotsListCall struct {
133292	s            *Service
133293	project      string
133294	urlParams_   gensupport.URLParams
133295	ifNoneMatch_ string
133296	ctx_         context.Context
133297	header_      http.Header
133298}
133299
133300// List: Retrieves the list of Snapshot resources contained within the
133301// specified project.
133302// For details, see https://cloud.google.com/compute/docs/reference/latest/snapshots/list
133303func (r *SnapshotsService) List(project string) *SnapshotsListCall {
133304	c := &SnapshotsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133305	c.project = project
133306	return c
133307}
133308
133309// Filter sets the optional parameter "filter": A filter expression that
133310// filters resources listed in the response. The expression must specify
133311// the field name, a comparison operator, and the value that you want to
133312// use for filtering. The value must be a string, a number, or a
133313// boolean. The comparison operator must be either =, !=, >, or <.
133314//
133315// For example, if you are filtering Compute Engine instances, you can
133316// exclude instances named example-instance by specifying name !=
133317// example-instance.
133318//
133319// You can also filter nested fields. For example, you could specify
133320// scheduling.automaticRestart = false to include instances only if they
133321// are not scheduled for automatic restarts. You can use filtering on
133322// nested fields to filter based on resource labels.
133323//
133324// To filter on multiple expressions, provide each separate expression
133325// within parentheses. For example, (scheduling.automaticRestart = true)
133326// (cpuPlatform = "Intel Skylake"). By default, each expression is an
133327// AND expression. However, you can include AND and OR expressions
133328// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
133329// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
133330// true).
133331func (c *SnapshotsListCall) Filter(filter string) *SnapshotsListCall {
133332	c.urlParams_.Set("filter", filter)
133333	return c
133334}
133335
133336// MaxResults sets the optional parameter "maxResults": The maximum
133337// number of results per page that should be returned. If the number of
133338// available results is larger than maxResults, Compute Engine returns a
133339// nextPageToken that can be used to get the next page of results in
133340// subsequent list requests. Acceptable values are 0 to 500, inclusive.
133341// (Default: 500)
133342func (c *SnapshotsListCall) MaxResults(maxResults int64) *SnapshotsListCall {
133343	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
133344	return c
133345}
133346
133347// OrderBy sets the optional parameter "orderBy": Sorts list results by
133348// a certain order. By default, results are returned in alphanumerical
133349// order based on the resource name.
133350//
133351// You can also sort results in descending order based on the creation
133352// timestamp using orderBy="creationTimestamp desc". This sorts results
133353// based on the creationTimestamp field in reverse chronological order
133354// (newest result first). Use this to sort resources like operations so
133355// that the newest operation is returned first.
133356//
133357// Currently, only sorting by name or creationTimestamp desc is
133358// supported.
133359func (c *SnapshotsListCall) OrderBy(orderBy string) *SnapshotsListCall {
133360	c.urlParams_.Set("orderBy", orderBy)
133361	return c
133362}
133363
133364// PageToken sets the optional parameter "pageToken": Specifies a page
133365// token to use. Set pageToken to the nextPageToken returned by a
133366// previous list request to get the next page of results.
133367func (c *SnapshotsListCall) PageToken(pageToken string) *SnapshotsListCall {
133368	c.urlParams_.Set("pageToken", pageToken)
133369	return c
133370}
133371
133372// Fields allows partial responses to be retrieved. See
133373// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133374// for more information.
133375func (c *SnapshotsListCall) Fields(s ...googleapi.Field) *SnapshotsListCall {
133376	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133377	return c
133378}
133379
133380// IfNoneMatch sets the optional parameter which makes the operation
133381// fail if the object's ETag matches the given value. This is useful for
133382// getting updates only after the object has changed since the last
133383// request. Use googleapi.IsNotModified to check whether the response
133384// error from Do is the result of In-None-Match.
133385func (c *SnapshotsListCall) IfNoneMatch(entityTag string) *SnapshotsListCall {
133386	c.ifNoneMatch_ = entityTag
133387	return c
133388}
133389
133390// Context sets the context to be used in this call's Do method. Any
133391// pending HTTP request will be aborted if the provided context is
133392// canceled.
133393func (c *SnapshotsListCall) Context(ctx context.Context) *SnapshotsListCall {
133394	c.ctx_ = ctx
133395	return c
133396}
133397
133398// Header returns an http.Header that can be modified by the caller to
133399// add HTTP headers to the request.
133400func (c *SnapshotsListCall) Header() http.Header {
133401	if c.header_ == nil {
133402		c.header_ = make(http.Header)
133403	}
133404	return c.header_
133405}
133406
133407func (c *SnapshotsListCall) doRequest(alt string) (*http.Response, error) {
133408	reqHeaders := make(http.Header)
133409	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133410	for k, v := range c.header_ {
133411		reqHeaders[k] = v
133412	}
133413	reqHeaders.Set("User-Agent", c.s.userAgent())
133414	if c.ifNoneMatch_ != "" {
133415		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
133416	}
133417	var body io.Reader = nil
133418	c.urlParams_.Set("alt", alt)
133419	c.urlParams_.Set("prettyPrint", "false")
133420	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots")
133421	urls += "?" + c.urlParams_.Encode()
133422	req, err := http.NewRequest("GET", urls, body)
133423	if err != nil {
133424		return nil, err
133425	}
133426	req.Header = reqHeaders
133427	googleapi.Expand(req.URL, map[string]string{
133428		"project": c.project,
133429	})
133430	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133431}
133432
133433// Do executes the "compute.snapshots.list" call.
133434// Exactly one of *SnapshotList or error will be non-nil. Any non-2xx
133435// status code is an error. Response headers are in either
133436// *SnapshotList.ServerResponse.Header or (if a response was returned at
133437// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133438// to check whether the returned error was because
133439// http.StatusNotModified was returned.
133440func (c *SnapshotsListCall) Do(opts ...googleapi.CallOption) (*SnapshotList, error) {
133441	gensupport.SetOptions(c.urlParams_, opts...)
133442	res, err := c.doRequest("json")
133443	if res != nil && res.StatusCode == http.StatusNotModified {
133444		if res.Body != nil {
133445			res.Body.Close()
133446		}
133447		return nil, &googleapi.Error{
133448			Code:   res.StatusCode,
133449			Header: res.Header,
133450		}
133451	}
133452	if err != nil {
133453		return nil, err
133454	}
133455	defer googleapi.CloseBody(res)
133456	if err := googleapi.CheckResponse(res); err != nil {
133457		return nil, err
133458	}
133459	ret := &SnapshotList{
133460		ServerResponse: googleapi.ServerResponse{
133461			Header:         res.Header,
133462			HTTPStatusCode: res.StatusCode,
133463		},
133464	}
133465	target := &ret
133466	if err := gensupport.DecodeResponse(target, res); err != nil {
133467		return nil, err
133468	}
133469	return ret, nil
133470	// {
133471	//   "description": "Retrieves the list of Snapshot resources contained within the specified project.",
133472	//   "httpMethod": "GET",
133473	//   "id": "compute.snapshots.list",
133474	//   "parameterOrder": [
133475	//     "project"
133476	//   ],
133477	//   "parameters": {
133478	//     "filter": {
133479	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
133480	//       "location": "query",
133481	//       "type": "string"
133482	//     },
133483	//     "maxResults": {
133484	//       "default": "500",
133485	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
133486	//       "format": "uint32",
133487	//       "location": "query",
133488	//       "minimum": "0",
133489	//       "type": "integer"
133490	//     },
133491	//     "orderBy": {
133492	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
133493	//       "location": "query",
133494	//       "type": "string"
133495	//     },
133496	//     "pageToken": {
133497	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
133498	//       "location": "query",
133499	//       "type": "string"
133500	//     },
133501	//     "project": {
133502	//       "description": "Project ID for this request.",
133503	//       "location": "path",
133504	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133505	//       "required": true,
133506	//       "type": "string"
133507	//     }
133508	//   },
133509	//   "path": "{project}/global/snapshots",
133510	//   "response": {
133511	//     "$ref": "SnapshotList"
133512	//   },
133513	//   "scopes": [
133514	//     "https://www.googleapis.com/auth/cloud-platform",
133515	//     "https://www.googleapis.com/auth/compute",
133516	//     "https://www.googleapis.com/auth/compute.readonly"
133517	//   ]
133518	// }
133519
133520}
133521
133522// Pages invokes f for each page of results.
133523// A non-nil error returned from f will halt the iteration.
133524// The provided context supersedes any context provided to the Context method.
133525func (c *SnapshotsListCall) Pages(ctx context.Context, f func(*SnapshotList) error) error {
133526	c.ctx_ = ctx
133527	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
133528	for {
133529		x, err := c.Do()
133530		if err != nil {
133531			return err
133532		}
133533		if err := f(x); err != nil {
133534			return err
133535		}
133536		if x.NextPageToken == "" {
133537			return nil
133538		}
133539		c.PageToken(x.NextPageToken)
133540	}
133541}
133542
133543// method id "compute.snapshots.setIamPolicy":
133544
133545type SnapshotsSetIamPolicyCall struct {
133546	s                      *Service
133547	project                string
133548	resource               string
133549	globalsetpolicyrequest *GlobalSetPolicyRequest
133550	urlParams_             gensupport.URLParams
133551	ctx_                   context.Context
133552	header_                http.Header
133553}
133554
133555// SetIamPolicy: Sets the access control policy on the specified
133556// resource. Replaces any existing policy.
133557func (r *SnapshotsService) SetIamPolicy(project string, resource string, globalsetpolicyrequest *GlobalSetPolicyRequest) *SnapshotsSetIamPolicyCall {
133558	c := &SnapshotsSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133559	c.project = project
133560	c.resource = resource
133561	c.globalsetpolicyrequest = globalsetpolicyrequest
133562	return c
133563}
133564
133565// Fields allows partial responses to be retrieved. See
133566// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133567// for more information.
133568func (c *SnapshotsSetIamPolicyCall) Fields(s ...googleapi.Field) *SnapshotsSetIamPolicyCall {
133569	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133570	return c
133571}
133572
133573// Context sets the context to be used in this call's Do method. Any
133574// pending HTTP request will be aborted if the provided context is
133575// canceled.
133576func (c *SnapshotsSetIamPolicyCall) Context(ctx context.Context) *SnapshotsSetIamPolicyCall {
133577	c.ctx_ = ctx
133578	return c
133579}
133580
133581// Header returns an http.Header that can be modified by the caller to
133582// add HTTP headers to the request.
133583func (c *SnapshotsSetIamPolicyCall) Header() http.Header {
133584	if c.header_ == nil {
133585		c.header_ = make(http.Header)
133586	}
133587	return c.header_
133588}
133589
133590func (c *SnapshotsSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
133591	reqHeaders := make(http.Header)
133592	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133593	for k, v := range c.header_ {
133594		reqHeaders[k] = v
133595	}
133596	reqHeaders.Set("User-Agent", c.s.userAgent())
133597	var body io.Reader = nil
133598	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetpolicyrequest)
133599	if err != nil {
133600		return nil, err
133601	}
133602	reqHeaders.Set("Content-Type", "application/json")
133603	c.urlParams_.Set("alt", alt)
133604	c.urlParams_.Set("prettyPrint", "false")
133605	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setIamPolicy")
133606	urls += "?" + c.urlParams_.Encode()
133607	req, err := http.NewRequest("POST", urls, body)
133608	if err != nil {
133609		return nil, err
133610	}
133611	req.Header = reqHeaders
133612	googleapi.Expand(req.URL, map[string]string{
133613		"project":  c.project,
133614		"resource": c.resource,
133615	})
133616	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133617}
133618
133619// Do executes the "compute.snapshots.setIamPolicy" call.
133620// Exactly one of *Policy or error will be non-nil. Any non-2xx status
133621// code is an error. Response headers are in either
133622// *Policy.ServerResponse.Header or (if a response was returned at all)
133623// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
133624// check whether the returned error was because http.StatusNotModified
133625// was returned.
133626func (c *SnapshotsSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
133627	gensupport.SetOptions(c.urlParams_, opts...)
133628	res, err := c.doRequest("json")
133629	if res != nil && res.StatusCode == http.StatusNotModified {
133630		if res.Body != nil {
133631			res.Body.Close()
133632		}
133633		return nil, &googleapi.Error{
133634			Code:   res.StatusCode,
133635			Header: res.Header,
133636		}
133637	}
133638	if err != nil {
133639		return nil, err
133640	}
133641	defer googleapi.CloseBody(res)
133642	if err := googleapi.CheckResponse(res); err != nil {
133643		return nil, err
133644	}
133645	ret := &Policy{
133646		ServerResponse: googleapi.ServerResponse{
133647			Header:         res.Header,
133648			HTTPStatusCode: res.StatusCode,
133649		},
133650	}
133651	target := &ret
133652	if err := gensupport.DecodeResponse(target, res); err != nil {
133653		return nil, err
133654	}
133655	return ret, nil
133656	// {
133657	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
133658	//   "httpMethod": "POST",
133659	//   "id": "compute.snapshots.setIamPolicy",
133660	//   "parameterOrder": [
133661	//     "project",
133662	//     "resource"
133663	//   ],
133664	//   "parameters": {
133665	//     "project": {
133666	//       "description": "Project ID for this request.",
133667	//       "location": "path",
133668	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133669	//       "required": true,
133670	//       "type": "string"
133671	//     },
133672	//     "resource": {
133673	//       "description": "Name or id of the resource for this request.",
133674	//       "location": "path",
133675	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133676	//       "required": true,
133677	//       "type": "string"
133678	//     }
133679	//   },
133680	//   "path": "{project}/global/snapshots/{resource}/setIamPolicy",
133681	//   "request": {
133682	//     "$ref": "GlobalSetPolicyRequest"
133683	//   },
133684	//   "response": {
133685	//     "$ref": "Policy"
133686	//   },
133687	//   "scopes": [
133688	//     "https://www.googleapis.com/auth/cloud-platform",
133689	//     "https://www.googleapis.com/auth/compute"
133690	//   ]
133691	// }
133692
133693}
133694
133695// method id "compute.snapshots.setLabels":
133696
133697type SnapshotsSetLabelsCall struct {
133698	s                      *Service
133699	project                string
133700	resource               string
133701	globalsetlabelsrequest *GlobalSetLabelsRequest
133702	urlParams_             gensupport.URLParams
133703	ctx_                   context.Context
133704	header_                http.Header
133705}
133706
133707// SetLabels: Sets the labels on a snapshot. To learn more about labels,
133708// read the Labeling Resources documentation.
133709func (r *SnapshotsService) SetLabels(project string, resource string, globalsetlabelsrequest *GlobalSetLabelsRequest) *SnapshotsSetLabelsCall {
133710	c := &SnapshotsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133711	c.project = project
133712	c.resource = resource
133713	c.globalsetlabelsrequest = globalsetlabelsrequest
133714	return c
133715}
133716
133717// Fields allows partial responses to be retrieved. See
133718// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133719// for more information.
133720func (c *SnapshotsSetLabelsCall) Fields(s ...googleapi.Field) *SnapshotsSetLabelsCall {
133721	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133722	return c
133723}
133724
133725// Context sets the context to be used in this call's Do method. Any
133726// pending HTTP request will be aborted if the provided context is
133727// canceled.
133728func (c *SnapshotsSetLabelsCall) Context(ctx context.Context) *SnapshotsSetLabelsCall {
133729	c.ctx_ = ctx
133730	return c
133731}
133732
133733// Header returns an http.Header that can be modified by the caller to
133734// add HTTP headers to the request.
133735func (c *SnapshotsSetLabelsCall) Header() http.Header {
133736	if c.header_ == nil {
133737		c.header_ = make(http.Header)
133738	}
133739	return c.header_
133740}
133741
133742func (c *SnapshotsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
133743	reqHeaders := make(http.Header)
133744	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133745	for k, v := range c.header_ {
133746		reqHeaders[k] = v
133747	}
133748	reqHeaders.Set("User-Agent", c.s.userAgent())
133749	var body io.Reader = nil
133750	body, err := googleapi.WithoutDataWrapper.JSONReader(c.globalsetlabelsrequest)
133751	if err != nil {
133752		return nil, err
133753	}
133754	reqHeaders.Set("Content-Type", "application/json")
133755	c.urlParams_.Set("alt", alt)
133756	c.urlParams_.Set("prettyPrint", "false")
133757	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/setLabels")
133758	urls += "?" + c.urlParams_.Encode()
133759	req, err := http.NewRequest("POST", urls, body)
133760	if err != nil {
133761		return nil, err
133762	}
133763	req.Header = reqHeaders
133764	googleapi.Expand(req.URL, map[string]string{
133765		"project":  c.project,
133766		"resource": c.resource,
133767	})
133768	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133769}
133770
133771// Do executes the "compute.snapshots.setLabels" call.
133772// Exactly one of *Operation or error will be non-nil. Any non-2xx
133773// status code is an error. Response headers are in either
133774// *Operation.ServerResponse.Header or (if a response was returned at
133775// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
133776// to check whether the returned error was because
133777// http.StatusNotModified was returned.
133778func (c *SnapshotsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
133779	gensupport.SetOptions(c.urlParams_, opts...)
133780	res, err := c.doRequest("json")
133781	if res != nil && res.StatusCode == http.StatusNotModified {
133782		if res.Body != nil {
133783			res.Body.Close()
133784		}
133785		return nil, &googleapi.Error{
133786			Code:   res.StatusCode,
133787			Header: res.Header,
133788		}
133789	}
133790	if err != nil {
133791		return nil, err
133792	}
133793	defer googleapi.CloseBody(res)
133794	if err := googleapi.CheckResponse(res); err != nil {
133795		return nil, err
133796	}
133797	ret := &Operation{
133798		ServerResponse: googleapi.ServerResponse{
133799			Header:         res.Header,
133800			HTTPStatusCode: res.StatusCode,
133801		},
133802	}
133803	target := &ret
133804	if err := gensupport.DecodeResponse(target, res); err != nil {
133805		return nil, err
133806	}
133807	return ret, nil
133808	// {
133809	//   "description": "Sets the labels on a snapshot. To learn more about labels, read the Labeling Resources documentation.",
133810	//   "httpMethod": "POST",
133811	//   "id": "compute.snapshots.setLabels",
133812	//   "parameterOrder": [
133813	//     "project",
133814	//     "resource"
133815	//   ],
133816	//   "parameters": {
133817	//     "project": {
133818	//       "description": "Project ID for this request.",
133819	//       "location": "path",
133820	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133821	//       "required": true,
133822	//       "type": "string"
133823	//     },
133824	//     "resource": {
133825	//       "description": "Name or id of the resource for this request.",
133826	//       "location": "path",
133827	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133828	//       "required": true,
133829	//       "type": "string"
133830	//     }
133831	//   },
133832	//   "path": "{project}/global/snapshots/{resource}/setLabels",
133833	//   "request": {
133834	//     "$ref": "GlobalSetLabelsRequest"
133835	//   },
133836	//   "response": {
133837	//     "$ref": "Operation"
133838	//   },
133839	//   "scopes": [
133840	//     "https://www.googleapis.com/auth/cloud-platform",
133841	//     "https://www.googleapis.com/auth/compute"
133842	//   ]
133843	// }
133844
133845}
133846
133847// method id "compute.snapshots.testIamPermissions":
133848
133849type SnapshotsTestIamPermissionsCall struct {
133850	s                      *Service
133851	project                string
133852	resource               string
133853	testpermissionsrequest *TestPermissionsRequest
133854	urlParams_             gensupport.URLParams
133855	ctx_                   context.Context
133856	header_                http.Header
133857}
133858
133859// TestIamPermissions: Returns permissions that a caller has on the
133860// specified resource.
133861func (r *SnapshotsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SnapshotsTestIamPermissionsCall {
133862	c := &SnapshotsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
133863	c.project = project
133864	c.resource = resource
133865	c.testpermissionsrequest = testpermissionsrequest
133866	return c
133867}
133868
133869// Fields allows partial responses to be retrieved. See
133870// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
133871// for more information.
133872func (c *SnapshotsTestIamPermissionsCall) Fields(s ...googleapi.Field) *SnapshotsTestIamPermissionsCall {
133873	c.urlParams_.Set("fields", googleapi.CombineFields(s))
133874	return c
133875}
133876
133877// Context sets the context to be used in this call's Do method. Any
133878// pending HTTP request will be aborted if the provided context is
133879// canceled.
133880func (c *SnapshotsTestIamPermissionsCall) Context(ctx context.Context) *SnapshotsTestIamPermissionsCall {
133881	c.ctx_ = ctx
133882	return c
133883}
133884
133885// Header returns an http.Header that can be modified by the caller to
133886// add HTTP headers to the request.
133887func (c *SnapshotsTestIamPermissionsCall) Header() http.Header {
133888	if c.header_ == nil {
133889		c.header_ = make(http.Header)
133890	}
133891	return c.header_
133892}
133893
133894func (c *SnapshotsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
133895	reqHeaders := make(http.Header)
133896	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
133897	for k, v := range c.header_ {
133898		reqHeaders[k] = v
133899	}
133900	reqHeaders.Set("User-Agent", c.s.userAgent())
133901	var body io.Reader = nil
133902	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
133903	if err != nil {
133904		return nil, err
133905	}
133906	reqHeaders.Set("Content-Type", "application/json")
133907	c.urlParams_.Set("alt", alt)
133908	c.urlParams_.Set("prettyPrint", "false")
133909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/snapshots/{resource}/testIamPermissions")
133910	urls += "?" + c.urlParams_.Encode()
133911	req, err := http.NewRequest("POST", urls, body)
133912	if err != nil {
133913		return nil, err
133914	}
133915	req.Header = reqHeaders
133916	googleapi.Expand(req.URL, map[string]string{
133917		"project":  c.project,
133918		"resource": c.resource,
133919	})
133920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
133921}
133922
133923// Do executes the "compute.snapshots.testIamPermissions" call.
133924// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
133925// non-2xx status code is an error. Response headers are in either
133926// *TestPermissionsResponse.ServerResponse.Header or (if a response was
133927// returned at all) in error.(*googleapi.Error).Header. Use
133928// googleapi.IsNotModified to check whether the returned error was
133929// because http.StatusNotModified was returned.
133930func (c *SnapshotsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
133931	gensupport.SetOptions(c.urlParams_, opts...)
133932	res, err := c.doRequest("json")
133933	if res != nil && res.StatusCode == http.StatusNotModified {
133934		if res.Body != nil {
133935			res.Body.Close()
133936		}
133937		return nil, &googleapi.Error{
133938			Code:   res.StatusCode,
133939			Header: res.Header,
133940		}
133941	}
133942	if err != nil {
133943		return nil, err
133944	}
133945	defer googleapi.CloseBody(res)
133946	if err := googleapi.CheckResponse(res); err != nil {
133947		return nil, err
133948	}
133949	ret := &TestPermissionsResponse{
133950		ServerResponse: googleapi.ServerResponse{
133951			Header:         res.Header,
133952			HTTPStatusCode: res.StatusCode,
133953		},
133954	}
133955	target := &ret
133956	if err := gensupport.DecodeResponse(target, res); err != nil {
133957		return nil, err
133958	}
133959	return ret, nil
133960	// {
133961	//   "description": "Returns permissions that a caller has on the specified resource.",
133962	//   "httpMethod": "POST",
133963	//   "id": "compute.snapshots.testIamPermissions",
133964	//   "parameterOrder": [
133965	//     "project",
133966	//     "resource"
133967	//   ],
133968	//   "parameters": {
133969	//     "project": {
133970	//       "description": "Project ID for this request.",
133971	//       "location": "path",
133972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
133973	//       "required": true,
133974	//       "type": "string"
133975	//     },
133976	//     "resource": {
133977	//       "description": "Name or id of the resource for this request.",
133978	//       "location": "path",
133979	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
133980	//       "required": true,
133981	//       "type": "string"
133982	//     }
133983	//   },
133984	//   "path": "{project}/global/snapshots/{resource}/testIamPermissions",
133985	//   "request": {
133986	//     "$ref": "TestPermissionsRequest"
133987	//   },
133988	//   "response": {
133989	//     "$ref": "TestPermissionsResponse"
133990	//   },
133991	//   "scopes": [
133992	//     "https://www.googleapis.com/auth/cloud-platform",
133993	//     "https://www.googleapis.com/auth/compute",
133994	//     "https://www.googleapis.com/auth/compute.readonly"
133995	//   ]
133996	// }
133997
133998}
133999
134000// method id "compute.sslCertificates.aggregatedList":
134001
134002type SslCertificatesAggregatedListCall struct {
134003	s            *Service
134004	project      string
134005	urlParams_   gensupport.URLParams
134006	ifNoneMatch_ string
134007	ctx_         context.Context
134008	header_      http.Header
134009}
134010
134011// AggregatedList: Retrieves the list of all SslCertificate resources,
134012// regional and global, available to the specified project.
134013func (r *SslCertificatesService) AggregatedList(project string) *SslCertificatesAggregatedListCall {
134014	c := &SslCertificatesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134015	c.project = project
134016	return c
134017}
134018
134019// Filter sets the optional parameter "filter": A filter expression that
134020// filters resources listed in the response. The expression must specify
134021// the field name, a comparison operator, and the value that you want to
134022// use for filtering. The value must be a string, a number, or a
134023// boolean. The comparison operator must be either =, !=, >, or <.
134024//
134025// For example, if you are filtering Compute Engine instances, you can
134026// exclude instances named example-instance by specifying name !=
134027// example-instance.
134028//
134029// You can also filter nested fields. For example, you could specify
134030// scheduling.automaticRestart = false to include instances only if they
134031// are not scheduled for automatic restarts. You can use filtering on
134032// nested fields to filter based on resource labels.
134033//
134034// To filter on multiple expressions, provide each separate expression
134035// within parentheses. For example, (scheduling.automaticRestart = true)
134036// (cpuPlatform = "Intel Skylake"). By default, each expression is an
134037// AND expression. However, you can include AND and OR expressions
134038// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
134039// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
134040// true).
134041func (c *SslCertificatesAggregatedListCall) Filter(filter string) *SslCertificatesAggregatedListCall {
134042	c.urlParams_.Set("filter", filter)
134043	return c
134044}
134045
134046// IncludeAllScopes sets the optional parameter "includeAllScopes":
134047// Indicates whether every visible scope for each scope type (zone,
134048// region, global) should be included in the response. For new resource
134049// types added after this field, the flag has no effect as new resource
134050// types will always include every visible scope for each scope type in
134051// response. For resource types which predate this field, if this flag
134052// is omitted or false, only scopes of the scope types where the
134053// resource type is expected to be found will be included.
134054func (c *SslCertificatesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SslCertificatesAggregatedListCall {
134055	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
134056	return c
134057}
134058
134059// MaxResults sets the optional parameter "maxResults": The maximum
134060// number of results per page that should be returned. If the number of
134061// available results is larger than maxResults, Compute Engine returns a
134062// nextPageToken that can be used to get the next page of results in
134063// subsequent list requests. Acceptable values are 0 to 500, inclusive.
134064// (Default: 500)
134065func (c *SslCertificatesAggregatedListCall) MaxResults(maxResults int64) *SslCertificatesAggregatedListCall {
134066	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134067	return c
134068}
134069
134070// OrderBy sets the optional parameter "orderBy": Sorts list results by
134071// a certain order. By default, results are returned in alphanumerical
134072// order based on the resource name.
134073//
134074// You can also sort results in descending order based on the creation
134075// timestamp using orderBy="creationTimestamp desc". This sorts results
134076// based on the creationTimestamp field in reverse chronological order
134077// (newest result first). Use this to sort resources like operations so
134078// that the newest operation is returned first.
134079//
134080// Currently, only sorting by name or creationTimestamp desc is
134081// supported.
134082func (c *SslCertificatesAggregatedListCall) OrderBy(orderBy string) *SslCertificatesAggregatedListCall {
134083	c.urlParams_.Set("orderBy", orderBy)
134084	return c
134085}
134086
134087// PageToken sets the optional parameter "pageToken": Specifies a page
134088// token to use. Set pageToken to the nextPageToken returned by a
134089// previous list request to get the next page of results.
134090func (c *SslCertificatesAggregatedListCall) PageToken(pageToken string) *SslCertificatesAggregatedListCall {
134091	c.urlParams_.Set("pageToken", pageToken)
134092	return c
134093}
134094
134095// Fields allows partial responses to be retrieved. See
134096// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134097// for more information.
134098func (c *SslCertificatesAggregatedListCall) Fields(s ...googleapi.Field) *SslCertificatesAggregatedListCall {
134099	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134100	return c
134101}
134102
134103// IfNoneMatch sets the optional parameter which makes the operation
134104// fail if the object's ETag matches the given value. This is useful for
134105// getting updates only after the object has changed since the last
134106// request. Use googleapi.IsNotModified to check whether the response
134107// error from Do is the result of In-None-Match.
134108func (c *SslCertificatesAggregatedListCall) IfNoneMatch(entityTag string) *SslCertificatesAggregatedListCall {
134109	c.ifNoneMatch_ = entityTag
134110	return c
134111}
134112
134113// Context sets the context to be used in this call's Do method. Any
134114// pending HTTP request will be aborted if the provided context is
134115// canceled.
134116func (c *SslCertificatesAggregatedListCall) Context(ctx context.Context) *SslCertificatesAggregatedListCall {
134117	c.ctx_ = ctx
134118	return c
134119}
134120
134121// Header returns an http.Header that can be modified by the caller to
134122// add HTTP headers to the request.
134123func (c *SslCertificatesAggregatedListCall) Header() http.Header {
134124	if c.header_ == nil {
134125		c.header_ = make(http.Header)
134126	}
134127	return c.header_
134128}
134129
134130func (c *SslCertificatesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
134131	reqHeaders := make(http.Header)
134132	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134133	for k, v := range c.header_ {
134134		reqHeaders[k] = v
134135	}
134136	reqHeaders.Set("User-Agent", c.s.userAgent())
134137	if c.ifNoneMatch_ != "" {
134138		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134139	}
134140	var body io.Reader = nil
134141	c.urlParams_.Set("alt", alt)
134142	c.urlParams_.Set("prettyPrint", "false")
134143	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/sslCertificates")
134144	urls += "?" + c.urlParams_.Encode()
134145	req, err := http.NewRequest("GET", urls, body)
134146	if err != nil {
134147		return nil, err
134148	}
134149	req.Header = reqHeaders
134150	googleapi.Expand(req.URL, map[string]string{
134151		"project": c.project,
134152	})
134153	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134154}
134155
134156// Do executes the "compute.sslCertificates.aggregatedList" call.
134157// Exactly one of *SslCertificateAggregatedList or error will be
134158// non-nil. Any non-2xx status code is an error. Response headers are in
134159// either *SslCertificateAggregatedList.ServerResponse.Header or (if a
134160// response was returned at all) in error.(*googleapi.Error).Header. Use
134161// googleapi.IsNotModified to check whether the returned error was
134162// because http.StatusNotModified was returned.
134163func (c *SslCertificatesAggregatedListCall) Do(opts ...googleapi.CallOption) (*SslCertificateAggregatedList, error) {
134164	gensupport.SetOptions(c.urlParams_, opts...)
134165	res, err := c.doRequest("json")
134166	if res != nil && res.StatusCode == http.StatusNotModified {
134167		if res.Body != nil {
134168			res.Body.Close()
134169		}
134170		return nil, &googleapi.Error{
134171			Code:   res.StatusCode,
134172			Header: res.Header,
134173		}
134174	}
134175	if err != nil {
134176		return nil, err
134177	}
134178	defer googleapi.CloseBody(res)
134179	if err := googleapi.CheckResponse(res); err != nil {
134180		return nil, err
134181	}
134182	ret := &SslCertificateAggregatedList{
134183		ServerResponse: googleapi.ServerResponse{
134184			Header:         res.Header,
134185			HTTPStatusCode: res.StatusCode,
134186		},
134187	}
134188	target := &ret
134189	if err := gensupport.DecodeResponse(target, res); err != nil {
134190		return nil, err
134191	}
134192	return ret, nil
134193	// {
134194	//   "description": "Retrieves the list of all SslCertificate resources, regional and global, available to the specified project.",
134195	//   "httpMethod": "GET",
134196	//   "id": "compute.sslCertificates.aggregatedList",
134197	//   "parameterOrder": [
134198	//     "project"
134199	//   ],
134200	//   "parameters": {
134201	//     "filter": {
134202	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
134203	//       "location": "query",
134204	//       "type": "string"
134205	//     },
134206	//     "includeAllScopes": {
134207	//       "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.",
134208	//       "location": "query",
134209	//       "type": "boolean"
134210	//     },
134211	//     "maxResults": {
134212	//       "default": "500",
134213	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
134214	//       "format": "uint32",
134215	//       "location": "query",
134216	//       "minimum": "0",
134217	//       "type": "integer"
134218	//     },
134219	//     "orderBy": {
134220	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
134221	//       "location": "query",
134222	//       "type": "string"
134223	//     },
134224	//     "pageToken": {
134225	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
134226	//       "location": "query",
134227	//       "type": "string"
134228	//     },
134229	//     "project": {
134230	//       "description": "Name of the project scoping this request.",
134231	//       "location": "path",
134232	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134233	//       "required": true,
134234	//       "type": "string"
134235	//     }
134236	//   },
134237	//   "path": "{project}/aggregated/sslCertificates",
134238	//   "response": {
134239	//     "$ref": "SslCertificateAggregatedList"
134240	//   },
134241	//   "scopes": [
134242	//     "https://www.googleapis.com/auth/cloud-platform",
134243	//     "https://www.googleapis.com/auth/compute",
134244	//     "https://www.googleapis.com/auth/compute.readonly"
134245	//   ]
134246	// }
134247
134248}
134249
134250// Pages invokes f for each page of results.
134251// A non-nil error returned from f will halt the iteration.
134252// The provided context supersedes any context provided to the Context method.
134253func (c *SslCertificatesAggregatedListCall) Pages(ctx context.Context, f func(*SslCertificateAggregatedList) error) error {
134254	c.ctx_ = ctx
134255	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134256	for {
134257		x, err := c.Do()
134258		if err != nil {
134259			return err
134260		}
134261		if err := f(x); err != nil {
134262			return err
134263		}
134264		if x.NextPageToken == "" {
134265			return nil
134266		}
134267		c.PageToken(x.NextPageToken)
134268	}
134269}
134270
134271// method id "compute.sslCertificates.delete":
134272
134273type SslCertificatesDeleteCall struct {
134274	s              *Service
134275	project        string
134276	sslCertificate string
134277	urlParams_     gensupport.URLParams
134278	ctx_           context.Context
134279	header_        http.Header
134280}
134281
134282// Delete: Deletes the specified SslCertificate resource.
134283func (r *SslCertificatesService) Delete(project string, sslCertificate string) *SslCertificatesDeleteCall {
134284	c := &SslCertificatesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134285	c.project = project
134286	c.sslCertificate = sslCertificate
134287	return c
134288}
134289
134290// RequestId sets the optional parameter "requestId": An optional
134291// request ID to identify requests. Specify a unique request ID so that
134292// if you must retry your request, the server will know to ignore the
134293// request if it has already been completed.
134294//
134295// For example, consider a situation where you make an initial request
134296// and the request times out. If you make the request again with the
134297// same request ID, the server can check if original operation with the
134298// same request ID was received, and if so, will ignore the second
134299// request. This prevents clients from accidentally creating duplicate
134300// commitments.
134301//
134302// The request ID must be a valid UUID with the exception that zero UUID
134303// is not supported (00000000-0000-0000-0000-000000000000).
134304func (c *SslCertificatesDeleteCall) RequestId(requestId string) *SslCertificatesDeleteCall {
134305	c.urlParams_.Set("requestId", requestId)
134306	return c
134307}
134308
134309// Fields allows partial responses to be retrieved. See
134310// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134311// for more information.
134312func (c *SslCertificatesDeleteCall) Fields(s ...googleapi.Field) *SslCertificatesDeleteCall {
134313	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134314	return c
134315}
134316
134317// Context sets the context to be used in this call's Do method. Any
134318// pending HTTP request will be aborted if the provided context is
134319// canceled.
134320func (c *SslCertificatesDeleteCall) Context(ctx context.Context) *SslCertificatesDeleteCall {
134321	c.ctx_ = ctx
134322	return c
134323}
134324
134325// Header returns an http.Header that can be modified by the caller to
134326// add HTTP headers to the request.
134327func (c *SslCertificatesDeleteCall) Header() http.Header {
134328	if c.header_ == nil {
134329		c.header_ = make(http.Header)
134330	}
134331	return c.header_
134332}
134333
134334func (c *SslCertificatesDeleteCall) doRequest(alt string) (*http.Response, error) {
134335	reqHeaders := make(http.Header)
134336	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134337	for k, v := range c.header_ {
134338		reqHeaders[k] = v
134339	}
134340	reqHeaders.Set("User-Agent", c.s.userAgent())
134341	var body io.Reader = nil
134342	c.urlParams_.Set("alt", alt)
134343	c.urlParams_.Set("prettyPrint", "false")
134344	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
134345	urls += "?" + c.urlParams_.Encode()
134346	req, err := http.NewRequest("DELETE", urls, body)
134347	if err != nil {
134348		return nil, err
134349	}
134350	req.Header = reqHeaders
134351	googleapi.Expand(req.URL, map[string]string{
134352		"project":        c.project,
134353		"sslCertificate": c.sslCertificate,
134354	})
134355	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134356}
134357
134358// Do executes the "compute.sslCertificates.delete" call.
134359// Exactly one of *Operation or error will be non-nil. Any non-2xx
134360// status code is an error. Response headers are in either
134361// *Operation.ServerResponse.Header or (if a response was returned at
134362// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134363// to check whether the returned error was because
134364// http.StatusNotModified was returned.
134365func (c *SslCertificatesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134366	gensupport.SetOptions(c.urlParams_, opts...)
134367	res, err := c.doRequest("json")
134368	if res != nil && res.StatusCode == http.StatusNotModified {
134369		if res.Body != nil {
134370			res.Body.Close()
134371		}
134372		return nil, &googleapi.Error{
134373			Code:   res.StatusCode,
134374			Header: res.Header,
134375		}
134376	}
134377	if err != nil {
134378		return nil, err
134379	}
134380	defer googleapi.CloseBody(res)
134381	if err := googleapi.CheckResponse(res); err != nil {
134382		return nil, err
134383	}
134384	ret := &Operation{
134385		ServerResponse: googleapi.ServerResponse{
134386			Header:         res.Header,
134387			HTTPStatusCode: res.StatusCode,
134388		},
134389	}
134390	target := &ret
134391	if err := gensupport.DecodeResponse(target, res); err != nil {
134392		return nil, err
134393	}
134394	return ret, nil
134395	// {
134396	//   "description": "Deletes the specified SslCertificate resource.",
134397	//   "httpMethod": "DELETE",
134398	//   "id": "compute.sslCertificates.delete",
134399	//   "parameterOrder": [
134400	//     "project",
134401	//     "sslCertificate"
134402	//   ],
134403	//   "parameters": {
134404	//     "project": {
134405	//       "description": "Project ID for this request.",
134406	//       "location": "path",
134407	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134408	//       "required": true,
134409	//       "type": "string"
134410	//     },
134411	//     "requestId": {
134412	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134413	//       "location": "query",
134414	//       "type": "string"
134415	//     },
134416	//     "sslCertificate": {
134417	//       "description": "Name of the SslCertificate resource to delete.",
134418	//       "location": "path",
134419	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134420	//       "required": true,
134421	//       "type": "string"
134422	//     }
134423	//   },
134424	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
134425	//   "response": {
134426	//     "$ref": "Operation"
134427	//   },
134428	//   "scopes": [
134429	//     "https://www.googleapis.com/auth/cloud-platform",
134430	//     "https://www.googleapis.com/auth/compute"
134431	//   ]
134432	// }
134433
134434}
134435
134436// method id "compute.sslCertificates.get":
134437
134438type SslCertificatesGetCall struct {
134439	s              *Service
134440	project        string
134441	sslCertificate string
134442	urlParams_     gensupport.URLParams
134443	ifNoneMatch_   string
134444	ctx_           context.Context
134445	header_        http.Header
134446}
134447
134448// Get: Returns the specified SslCertificate resource. Gets a list of
134449// available SSL certificates by making a list() request.
134450func (r *SslCertificatesService) Get(project string, sslCertificate string) *SslCertificatesGetCall {
134451	c := &SslCertificatesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134452	c.project = project
134453	c.sslCertificate = sslCertificate
134454	return c
134455}
134456
134457// Fields allows partial responses to be retrieved. See
134458// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134459// for more information.
134460func (c *SslCertificatesGetCall) Fields(s ...googleapi.Field) *SslCertificatesGetCall {
134461	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134462	return c
134463}
134464
134465// IfNoneMatch sets the optional parameter which makes the operation
134466// fail if the object's ETag matches the given value. This is useful for
134467// getting updates only after the object has changed since the last
134468// request. Use googleapi.IsNotModified to check whether the response
134469// error from Do is the result of In-None-Match.
134470func (c *SslCertificatesGetCall) IfNoneMatch(entityTag string) *SslCertificatesGetCall {
134471	c.ifNoneMatch_ = entityTag
134472	return c
134473}
134474
134475// Context sets the context to be used in this call's Do method. Any
134476// pending HTTP request will be aborted if the provided context is
134477// canceled.
134478func (c *SslCertificatesGetCall) Context(ctx context.Context) *SslCertificatesGetCall {
134479	c.ctx_ = ctx
134480	return c
134481}
134482
134483// Header returns an http.Header that can be modified by the caller to
134484// add HTTP headers to the request.
134485func (c *SslCertificatesGetCall) Header() http.Header {
134486	if c.header_ == nil {
134487		c.header_ = make(http.Header)
134488	}
134489	return c.header_
134490}
134491
134492func (c *SslCertificatesGetCall) doRequest(alt string) (*http.Response, error) {
134493	reqHeaders := make(http.Header)
134494	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134495	for k, v := range c.header_ {
134496		reqHeaders[k] = v
134497	}
134498	reqHeaders.Set("User-Agent", c.s.userAgent())
134499	if c.ifNoneMatch_ != "" {
134500		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134501	}
134502	var body io.Reader = nil
134503	c.urlParams_.Set("alt", alt)
134504	c.urlParams_.Set("prettyPrint", "false")
134505	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{sslCertificate}")
134506	urls += "?" + c.urlParams_.Encode()
134507	req, err := http.NewRequest("GET", urls, body)
134508	if err != nil {
134509		return nil, err
134510	}
134511	req.Header = reqHeaders
134512	googleapi.Expand(req.URL, map[string]string{
134513		"project":        c.project,
134514		"sslCertificate": c.sslCertificate,
134515	})
134516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134517}
134518
134519// Do executes the "compute.sslCertificates.get" call.
134520// Exactly one of *SslCertificate or error will be non-nil. Any non-2xx
134521// status code is an error. Response headers are in either
134522// *SslCertificate.ServerResponse.Header or (if a response was returned
134523// at all) in error.(*googleapi.Error).Header. Use
134524// googleapi.IsNotModified to check whether the returned error was
134525// because http.StatusNotModified was returned.
134526func (c *SslCertificatesGetCall) Do(opts ...googleapi.CallOption) (*SslCertificate, error) {
134527	gensupport.SetOptions(c.urlParams_, opts...)
134528	res, err := c.doRequest("json")
134529	if res != nil && res.StatusCode == http.StatusNotModified {
134530		if res.Body != nil {
134531			res.Body.Close()
134532		}
134533		return nil, &googleapi.Error{
134534			Code:   res.StatusCode,
134535			Header: res.Header,
134536		}
134537	}
134538	if err != nil {
134539		return nil, err
134540	}
134541	defer googleapi.CloseBody(res)
134542	if err := googleapi.CheckResponse(res); err != nil {
134543		return nil, err
134544	}
134545	ret := &SslCertificate{
134546		ServerResponse: googleapi.ServerResponse{
134547			Header:         res.Header,
134548			HTTPStatusCode: res.StatusCode,
134549		},
134550	}
134551	target := &ret
134552	if err := gensupport.DecodeResponse(target, res); err != nil {
134553		return nil, err
134554	}
134555	return ret, nil
134556	// {
134557	//   "description": "Returns the specified SslCertificate resource. Gets a list of available SSL certificates by making a list() request.",
134558	//   "httpMethod": "GET",
134559	//   "id": "compute.sslCertificates.get",
134560	//   "parameterOrder": [
134561	//     "project",
134562	//     "sslCertificate"
134563	//   ],
134564	//   "parameters": {
134565	//     "project": {
134566	//       "description": "Project ID for this request.",
134567	//       "location": "path",
134568	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134569	//       "required": true,
134570	//       "type": "string"
134571	//     },
134572	//     "sslCertificate": {
134573	//       "description": "Name of the SslCertificate resource to return.",
134574	//       "location": "path",
134575	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
134576	//       "required": true,
134577	//       "type": "string"
134578	//     }
134579	//   },
134580	//   "path": "{project}/global/sslCertificates/{sslCertificate}",
134581	//   "response": {
134582	//     "$ref": "SslCertificate"
134583	//   },
134584	//   "scopes": [
134585	//     "https://www.googleapis.com/auth/cloud-platform",
134586	//     "https://www.googleapis.com/auth/compute",
134587	//     "https://www.googleapis.com/auth/compute.readonly"
134588	//   ]
134589	// }
134590
134591}
134592
134593// method id "compute.sslCertificates.insert":
134594
134595type SslCertificatesInsertCall struct {
134596	s              *Service
134597	project        string
134598	sslcertificate *SslCertificate
134599	urlParams_     gensupport.URLParams
134600	ctx_           context.Context
134601	header_        http.Header
134602}
134603
134604// Insert: Creates a SslCertificate resource in the specified project
134605// using the data included in the request.
134606func (r *SslCertificatesService) Insert(project string, sslcertificate *SslCertificate) *SslCertificatesInsertCall {
134607	c := &SslCertificatesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134608	c.project = project
134609	c.sslcertificate = sslcertificate
134610	return c
134611}
134612
134613// RequestId sets the optional parameter "requestId": An optional
134614// request ID to identify requests. Specify a unique request ID so that
134615// if you must retry your request, the server will know to ignore the
134616// request if it has already been completed.
134617//
134618// For example, consider a situation where you make an initial request
134619// and the request times out. If you make the request again with the
134620// same request ID, the server can check if original operation with the
134621// same request ID was received, and if so, will ignore the second
134622// request. This prevents clients from accidentally creating duplicate
134623// commitments.
134624//
134625// The request ID must be a valid UUID with the exception that zero UUID
134626// is not supported (00000000-0000-0000-0000-000000000000).
134627func (c *SslCertificatesInsertCall) RequestId(requestId string) *SslCertificatesInsertCall {
134628	c.urlParams_.Set("requestId", requestId)
134629	return c
134630}
134631
134632// Fields allows partial responses to be retrieved. See
134633// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134634// for more information.
134635func (c *SslCertificatesInsertCall) Fields(s ...googleapi.Field) *SslCertificatesInsertCall {
134636	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134637	return c
134638}
134639
134640// Context sets the context to be used in this call's Do method. Any
134641// pending HTTP request will be aborted if the provided context is
134642// canceled.
134643func (c *SslCertificatesInsertCall) Context(ctx context.Context) *SslCertificatesInsertCall {
134644	c.ctx_ = ctx
134645	return c
134646}
134647
134648// Header returns an http.Header that can be modified by the caller to
134649// add HTTP headers to the request.
134650func (c *SslCertificatesInsertCall) Header() http.Header {
134651	if c.header_ == nil {
134652		c.header_ = make(http.Header)
134653	}
134654	return c.header_
134655}
134656
134657func (c *SslCertificatesInsertCall) doRequest(alt string) (*http.Response, error) {
134658	reqHeaders := make(http.Header)
134659	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134660	for k, v := range c.header_ {
134661		reqHeaders[k] = v
134662	}
134663	reqHeaders.Set("User-Agent", c.s.userAgent())
134664	var body io.Reader = nil
134665	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslcertificate)
134666	if err != nil {
134667		return nil, err
134668	}
134669	reqHeaders.Set("Content-Type", "application/json")
134670	c.urlParams_.Set("alt", alt)
134671	c.urlParams_.Set("prettyPrint", "false")
134672	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
134673	urls += "?" + c.urlParams_.Encode()
134674	req, err := http.NewRequest("POST", urls, body)
134675	if err != nil {
134676		return nil, err
134677	}
134678	req.Header = reqHeaders
134679	googleapi.Expand(req.URL, map[string]string{
134680		"project": c.project,
134681	})
134682	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134683}
134684
134685// Do executes the "compute.sslCertificates.insert" call.
134686// Exactly one of *Operation or error will be non-nil. Any non-2xx
134687// status code is an error. Response headers are in either
134688// *Operation.ServerResponse.Header or (if a response was returned at
134689// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
134690// to check whether the returned error was because
134691// http.StatusNotModified was returned.
134692func (c *SslCertificatesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
134693	gensupport.SetOptions(c.urlParams_, opts...)
134694	res, err := c.doRequest("json")
134695	if res != nil && res.StatusCode == http.StatusNotModified {
134696		if res.Body != nil {
134697			res.Body.Close()
134698		}
134699		return nil, &googleapi.Error{
134700			Code:   res.StatusCode,
134701			Header: res.Header,
134702		}
134703	}
134704	if err != nil {
134705		return nil, err
134706	}
134707	defer googleapi.CloseBody(res)
134708	if err := googleapi.CheckResponse(res); err != nil {
134709		return nil, err
134710	}
134711	ret := &Operation{
134712		ServerResponse: googleapi.ServerResponse{
134713			Header:         res.Header,
134714			HTTPStatusCode: res.StatusCode,
134715		},
134716	}
134717	target := &ret
134718	if err := gensupport.DecodeResponse(target, res); err != nil {
134719		return nil, err
134720	}
134721	return ret, nil
134722	// {
134723	//   "description": "Creates a SslCertificate resource in the specified project using the data included in the request.",
134724	//   "httpMethod": "POST",
134725	//   "id": "compute.sslCertificates.insert",
134726	//   "parameterOrder": [
134727	//     "project"
134728	//   ],
134729	//   "parameters": {
134730	//     "project": {
134731	//       "description": "Project ID for this request.",
134732	//       "location": "path",
134733	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134734	//       "required": true,
134735	//       "type": "string"
134736	//     },
134737	//     "requestId": {
134738	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
134739	//       "location": "query",
134740	//       "type": "string"
134741	//     }
134742	//   },
134743	//   "path": "{project}/global/sslCertificates",
134744	//   "request": {
134745	//     "$ref": "SslCertificate"
134746	//   },
134747	//   "response": {
134748	//     "$ref": "Operation"
134749	//   },
134750	//   "scopes": [
134751	//     "https://www.googleapis.com/auth/cloud-platform",
134752	//     "https://www.googleapis.com/auth/compute"
134753	//   ]
134754	// }
134755
134756}
134757
134758// method id "compute.sslCertificates.list":
134759
134760type SslCertificatesListCall struct {
134761	s            *Service
134762	project      string
134763	urlParams_   gensupport.URLParams
134764	ifNoneMatch_ string
134765	ctx_         context.Context
134766	header_      http.Header
134767}
134768
134769// List: Retrieves the list of SslCertificate resources available to the
134770// specified project.
134771func (r *SslCertificatesService) List(project string) *SslCertificatesListCall {
134772	c := &SslCertificatesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
134773	c.project = project
134774	return c
134775}
134776
134777// Filter sets the optional parameter "filter": A filter expression that
134778// filters resources listed in the response. The expression must specify
134779// the field name, a comparison operator, and the value that you want to
134780// use for filtering. The value must be a string, a number, or a
134781// boolean. The comparison operator must be either =, !=, >, or <.
134782//
134783// For example, if you are filtering Compute Engine instances, you can
134784// exclude instances named example-instance by specifying name !=
134785// example-instance.
134786//
134787// You can also filter nested fields. For example, you could specify
134788// scheduling.automaticRestart = false to include instances only if they
134789// are not scheduled for automatic restarts. You can use filtering on
134790// nested fields to filter based on resource labels.
134791//
134792// To filter on multiple expressions, provide each separate expression
134793// within parentheses. For example, (scheduling.automaticRestart = true)
134794// (cpuPlatform = "Intel Skylake"). By default, each expression is an
134795// AND expression. However, you can include AND and OR expressions
134796// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
134797// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
134798// true).
134799func (c *SslCertificatesListCall) Filter(filter string) *SslCertificatesListCall {
134800	c.urlParams_.Set("filter", filter)
134801	return c
134802}
134803
134804// MaxResults sets the optional parameter "maxResults": The maximum
134805// number of results per page that should be returned. If the number of
134806// available results is larger than maxResults, Compute Engine returns a
134807// nextPageToken that can be used to get the next page of results in
134808// subsequent list requests. Acceptable values are 0 to 500, inclusive.
134809// (Default: 500)
134810func (c *SslCertificatesListCall) MaxResults(maxResults int64) *SslCertificatesListCall {
134811	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
134812	return c
134813}
134814
134815// OrderBy sets the optional parameter "orderBy": Sorts list results by
134816// a certain order. By default, results are returned in alphanumerical
134817// order based on the resource name.
134818//
134819// You can also sort results in descending order based on the creation
134820// timestamp using orderBy="creationTimestamp desc". This sorts results
134821// based on the creationTimestamp field in reverse chronological order
134822// (newest result first). Use this to sort resources like operations so
134823// that the newest operation is returned first.
134824//
134825// Currently, only sorting by name or creationTimestamp desc is
134826// supported.
134827func (c *SslCertificatesListCall) OrderBy(orderBy string) *SslCertificatesListCall {
134828	c.urlParams_.Set("orderBy", orderBy)
134829	return c
134830}
134831
134832// PageToken sets the optional parameter "pageToken": Specifies a page
134833// token to use. Set pageToken to the nextPageToken returned by a
134834// previous list request to get the next page of results.
134835func (c *SslCertificatesListCall) PageToken(pageToken string) *SslCertificatesListCall {
134836	c.urlParams_.Set("pageToken", pageToken)
134837	return c
134838}
134839
134840// Fields allows partial responses to be retrieved. See
134841// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
134842// for more information.
134843func (c *SslCertificatesListCall) Fields(s ...googleapi.Field) *SslCertificatesListCall {
134844	c.urlParams_.Set("fields", googleapi.CombineFields(s))
134845	return c
134846}
134847
134848// IfNoneMatch sets the optional parameter which makes the operation
134849// fail if the object's ETag matches the given value. This is useful for
134850// getting updates only after the object has changed since the last
134851// request. Use googleapi.IsNotModified to check whether the response
134852// error from Do is the result of In-None-Match.
134853func (c *SslCertificatesListCall) IfNoneMatch(entityTag string) *SslCertificatesListCall {
134854	c.ifNoneMatch_ = entityTag
134855	return c
134856}
134857
134858// Context sets the context to be used in this call's Do method. Any
134859// pending HTTP request will be aborted if the provided context is
134860// canceled.
134861func (c *SslCertificatesListCall) Context(ctx context.Context) *SslCertificatesListCall {
134862	c.ctx_ = ctx
134863	return c
134864}
134865
134866// Header returns an http.Header that can be modified by the caller to
134867// add HTTP headers to the request.
134868func (c *SslCertificatesListCall) Header() http.Header {
134869	if c.header_ == nil {
134870		c.header_ = make(http.Header)
134871	}
134872	return c.header_
134873}
134874
134875func (c *SslCertificatesListCall) doRequest(alt string) (*http.Response, error) {
134876	reqHeaders := make(http.Header)
134877	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
134878	for k, v := range c.header_ {
134879		reqHeaders[k] = v
134880	}
134881	reqHeaders.Set("User-Agent", c.s.userAgent())
134882	if c.ifNoneMatch_ != "" {
134883		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
134884	}
134885	var body io.Reader = nil
134886	c.urlParams_.Set("alt", alt)
134887	c.urlParams_.Set("prettyPrint", "false")
134888	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates")
134889	urls += "?" + c.urlParams_.Encode()
134890	req, err := http.NewRequest("GET", urls, body)
134891	if err != nil {
134892		return nil, err
134893	}
134894	req.Header = reqHeaders
134895	googleapi.Expand(req.URL, map[string]string{
134896		"project": c.project,
134897	})
134898	return gensupport.SendRequest(c.ctx_, c.s.client, req)
134899}
134900
134901// Do executes the "compute.sslCertificates.list" call.
134902// Exactly one of *SslCertificateList or error will be non-nil. Any
134903// non-2xx status code is an error. Response headers are in either
134904// *SslCertificateList.ServerResponse.Header or (if a response was
134905// returned at all) in error.(*googleapi.Error).Header. Use
134906// googleapi.IsNotModified to check whether the returned error was
134907// because http.StatusNotModified was returned.
134908func (c *SslCertificatesListCall) Do(opts ...googleapi.CallOption) (*SslCertificateList, error) {
134909	gensupport.SetOptions(c.urlParams_, opts...)
134910	res, err := c.doRequest("json")
134911	if res != nil && res.StatusCode == http.StatusNotModified {
134912		if res.Body != nil {
134913			res.Body.Close()
134914		}
134915		return nil, &googleapi.Error{
134916			Code:   res.StatusCode,
134917			Header: res.Header,
134918		}
134919	}
134920	if err != nil {
134921		return nil, err
134922	}
134923	defer googleapi.CloseBody(res)
134924	if err := googleapi.CheckResponse(res); err != nil {
134925		return nil, err
134926	}
134927	ret := &SslCertificateList{
134928		ServerResponse: googleapi.ServerResponse{
134929			Header:         res.Header,
134930			HTTPStatusCode: res.StatusCode,
134931		},
134932	}
134933	target := &ret
134934	if err := gensupport.DecodeResponse(target, res); err != nil {
134935		return nil, err
134936	}
134937	return ret, nil
134938	// {
134939	//   "description": "Retrieves the list of SslCertificate resources available to the specified project.",
134940	//   "httpMethod": "GET",
134941	//   "id": "compute.sslCertificates.list",
134942	//   "parameterOrder": [
134943	//     "project"
134944	//   ],
134945	//   "parameters": {
134946	//     "filter": {
134947	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
134948	//       "location": "query",
134949	//       "type": "string"
134950	//     },
134951	//     "maxResults": {
134952	//       "default": "500",
134953	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
134954	//       "format": "uint32",
134955	//       "location": "query",
134956	//       "minimum": "0",
134957	//       "type": "integer"
134958	//     },
134959	//     "orderBy": {
134960	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
134961	//       "location": "query",
134962	//       "type": "string"
134963	//     },
134964	//     "pageToken": {
134965	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
134966	//       "location": "query",
134967	//       "type": "string"
134968	//     },
134969	//     "project": {
134970	//       "description": "Project ID for this request.",
134971	//       "location": "path",
134972	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
134973	//       "required": true,
134974	//       "type": "string"
134975	//     }
134976	//   },
134977	//   "path": "{project}/global/sslCertificates",
134978	//   "response": {
134979	//     "$ref": "SslCertificateList"
134980	//   },
134981	//   "scopes": [
134982	//     "https://www.googleapis.com/auth/cloud-platform",
134983	//     "https://www.googleapis.com/auth/compute",
134984	//     "https://www.googleapis.com/auth/compute.readonly"
134985	//   ]
134986	// }
134987
134988}
134989
134990// Pages invokes f for each page of results.
134991// A non-nil error returned from f will halt the iteration.
134992// The provided context supersedes any context provided to the Context method.
134993func (c *SslCertificatesListCall) Pages(ctx context.Context, f func(*SslCertificateList) error) error {
134994	c.ctx_ = ctx
134995	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
134996	for {
134997		x, err := c.Do()
134998		if err != nil {
134999			return err
135000		}
135001		if err := f(x); err != nil {
135002			return err
135003		}
135004		if x.NextPageToken == "" {
135005			return nil
135006		}
135007		c.PageToken(x.NextPageToken)
135008	}
135009}
135010
135011// method id "compute.sslCertificates.testIamPermissions":
135012
135013type SslCertificatesTestIamPermissionsCall struct {
135014	s                      *Service
135015	project                string
135016	resource               string
135017	testpermissionsrequest *TestPermissionsRequest
135018	urlParams_             gensupport.URLParams
135019	ctx_                   context.Context
135020	header_                http.Header
135021}
135022
135023// TestIamPermissions: Returns permissions that a caller has on the
135024// specified resource.
135025func (r *SslCertificatesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslCertificatesTestIamPermissionsCall {
135026	c := &SslCertificatesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135027	c.project = project
135028	c.resource = resource
135029	c.testpermissionsrequest = testpermissionsrequest
135030	return c
135031}
135032
135033// Fields allows partial responses to be retrieved. See
135034// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135035// for more information.
135036func (c *SslCertificatesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslCertificatesTestIamPermissionsCall {
135037	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135038	return c
135039}
135040
135041// Context sets the context to be used in this call's Do method. Any
135042// pending HTTP request will be aborted if the provided context is
135043// canceled.
135044func (c *SslCertificatesTestIamPermissionsCall) Context(ctx context.Context) *SslCertificatesTestIamPermissionsCall {
135045	c.ctx_ = ctx
135046	return c
135047}
135048
135049// Header returns an http.Header that can be modified by the caller to
135050// add HTTP headers to the request.
135051func (c *SslCertificatesTestIamPermissionsCall) Header() http.Header {
135052	if c.header_ == nil {
135053		c.header_ = make(http.Header)
135054	}
135055	return c.header_
135056}
135057
135058func (c *SslCertificatesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
135059	reqHeaders := make(http.Header)
135060	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135061	for k, v := range c.header_ {
135062		reqHeaders[k] = v
135063	}
135064	reqHeaders.Set("User-Agent", c.s.userAgent())
135065	var body io.Reader = nil
135066	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
135067	if err != nil {
135068		return nil, err
135069	}
135070	reqHeaders.Set("Content-Type", "application/json")
135071	c.urlParams_.Set("alt", alt)
135072	c.urlParams_.Set("prettyPrint", "false")
135073	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslCertificates/{resource}/testIamPermissions")
135074	urls += "?" + c.urlParams_.Encode()
135075	req, err := http.NewRequest("POST", urls, body)
135076	if err != nil {
135077		return nil, err
135078	}
135079	req.Header = reqHeaders
135080	googleapi.Expand(req.URL, map[string]string{
135081		"project":  c.project,
135082		"resource": c.resource,
135083	})
135084	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135085}
135086
135087// Do executes the "compute.sslCertificates.testIamPermissions" call.
135088// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
135089// non-2xx status code is an error. Response headers are in either
135090// *TestPermissionsResponse.ServerResponse.Header or (if a response was
135091// returned at all) in error.(*googleapi.Error).Header. Use
135092// googleapi.IsNotModified to check whether the returned error was
135093// because http.StatusNotModified was returned.
135094func (c *SslCertificatesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
135095	gensupport.SetOptions(c.urlParams_, opts...)
135096	res, err := c.doRequest("json")
135097	if res != nil && res.StatusCode == http.StatusNotModified {
135098		if res.Body != nil {
135099			res.Body.Close()
135100		}
135101		return nil, &googleapi.Error{
135102			Code:   res.StatusCode,
135103			Header: res.Header,
135104		}
135105	}
135106	if err != nil {
135107		return nil, err
135108	}
135109	defer googleapi.CloseBody(res)
135110	if err := googleapi.CheckResponse(res); err != nil {
135111		return nil, err
135112	}
135113	ret := &TestPermissionsResponse{
135114		ServerResponse: googleapi.ServerResponse{
135115			Header:         res.Header,
135116			HTTPStatusCode: res.StatusCode,
135117		},
135118	}
135119	target := &ret
135120	if err := gensupport.DecodeResponse(target, res); err != nil {
135121		return nil, err
135122	}
135123	return ret, nil
135124	// {
135125	//   "description": "Returns permissions that a caller has on the specified resource.",
135126	//   "httpMethod": "POST",
135127	//   "id": "compute.sslCertificates.testIamPermissions",
135128	//   "parameterOrder": [
135129	//     "project",
135130	//     "resource"
135131	//   ],
135132	//   "parameters": {
135133	//     "project": {
135134	//       "description": "Project ID for this request.",
135135	//       "location": "path",
135136	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135137	//       "required": true,
135138	//       "type": "string"
135139	//     },
135140	//     "resource": {
135141	//       "description": "Name or id of the resource for this request.",
135142	//       "location": "path",
135143	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
135144	//       "required": true,
135145	//       "type": "string"
135146	//     }
135147	//   },
135148	//   "path": "{project}/global/sslCertificates/{resource}/testIamPermissions",
135149	//   "request": {
135150	//     "$ref": "TestPermissionsRequest"
135151	//   },
135152	//   "response": {
135153	//     "$ref": "TestPermissionsResponse"
135154	//   },
135155	//   "scopes": [
135156	//     "https://www.googleapis.com/auth/cloud-platform",
135157	//     "https://www.googleapis.com/auth/compute",
135158	//     "https://www.googleapis.com/auth/compute.readonly"
135159	//   ]
135160	// }
135161
135162}
135163
135164// method id "compute.sslPolicies.delete":
135165
135166type SslPoliciesDeleteCall struct {
135167	s          *Service
135168	project    string
135169	sslPolicy  string
135170	urlParams_ gensupport.URLParams
135171	ctx_       context.Context
135172	header_    http.Header
135173}
135174
135175// Delete: Deletes the specified SSL policy. The SSL policy resource can
135176// be deleted only if it is not in use by any TargetHttpsProxy or
135177// TargetSslProxy resources.
135178func (r *SslPoliciesService) Delete(project string, sslPolicy string) *SslPoliciesDeleteCall {
135179	c := &SslPoliciesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135180	c.project = project
135181	c.sslPolicy = sslPolicy
135182	return c
135183}
135184
135185// RequestId sets the optional parameter "requestId": An optional
135186// request ID to identify requests. Specify a unique request ID so that
135187// if you must retry your request, the server will know to ignore the
135188// request if it has already been completed.
135189//
135190// For example, consider a situation where you make an initial request
135191// and the request times out. If you make the request again with the
135192// same request ID, the server can check if original operation with the
135193// same request ID was received, and if so, will ignore the second
135194// request. This prevents clients from accidentally creating duplicate
135195// commitments.
135196//
135197// The request ID must be a valid UUID with the exception that zero UUID
135198// is not supported (00000000-0000-0000-0000-000000000000).
135199func (c *SslPoliciesDeleteCall) RequestId(requestId string) *SslPoliciesDeleteCall {
135200	c.urlParams_.Set("requestId", requestId)
135201	return c
135202}
135203
135204// Fields allows partial responses to be retrieved. See
135205// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135206// for more information.
135207func (c *SslPoliciesDeleteCall) Fields(s ...googleapi.Field) *SslPoliciesDeleteCall {
135208	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135209	return c
135210}
135211
135212// Context sets the context to be used in this call's Do method. Any
135213// pending HTTP request will be aborted if the provided context is
135214// canceled.
135215func (c *SslPoliciesDeleteCall) Context(ctx context.Context) *SslPoliciesDeleteCall {
135216	c.ctx_ = ctx
135217	return c
135218}
135219
135220// Header returns an http.Header that can be modified by the caller to
135221// add HTTP headers to the request.
135222func (c *SslPoliciesDeleteCall) Header() http.Header {
135223	if c.header_ == nil {
135224		c.header_ = make(http.Header)
135225	}
135226	return c.header_
135227}
135228
135229func (c *SslPoliciesDeleteCall) doRequest(alt string) (*http.Response, error) {
135230	reqHeaders := make(http.Header)
135231	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135232	for k, v := range c.header_ {
135233		reqHeaders[k] = v
135234	}
135235	reqHeaders.Set("User-Agent", c.s.userAgent())
135236	var body io.Reader = nil
135237	c.urlParams_.Set("alt", alt)
135238	c.urlParams_.Set("prettyPrint", "false")
135239	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
135240	urls += "?" + c.urlParams_.Encode()
135241	req, err := http.NewRequest("DELETE", urls, body)
135242	if err != nil {
135243		return nil, err
135244	}
135245	req.Header = reqHeaders
135246	googleapi.Expand(req.URL, map[string]string{
135247		"project":   c.project,
135248		"sslPolicy": c.sslPolicy,
135249	})
135250	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135251}
135252
135253// Do executes the "compute.sslPolicies.delete" call.
135254// Exactly one of *Operation or error will be non-nil. Any non-2xx
135255// status code is an error. Response headers are in either
135256// *Operation.ServerResponse.Header or (if a response was returned at
135257// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135258// to check whether the returned error was because
135259// http.StatusNotModified was returned.
135260func (c *SslPoliciesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135261	gensupport.SetOptions(c.urlParams_, opts...)
135262	res, err := c.doRequest("json")
135263	if res != nil && res.StatusCode == http.StatusNotModified {
135264		if res.Body != nil {
135265			res.Body.Close()
135266		}
135267		return nil, &googleapi.Error{
135268			Code:   res.StatusCode,
135269			Header: res.Header,
135270		}
135271	}
135272	if err != nil {
135273		return nil, err
135274	}
135275	defer googleapi.CloseBody(res)
135276	if err := googleapi.CheckResponse(res); err != nil {
135277		return nil, err
135278	}
135279	ret := &Operation{
135280		ServerResponse: googleapi.ServerResponse{
135281			Header:         res.Header,
135282			HTTPStatusCode: res.StatusCode,
135283		},
135284	}
135285	target := &ret
135286	if err := gensupport.DecodeResponse(target, res); err != nil {
135287		return nil, err
135288	}
135289	return ret, nil
135290	// {
135291	//   "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.",
135292	//   "httpMethod": "DELETE",
135293	//   "id": "compute.sslPolicies.delete",
135294	//   "parameterOrder": [
135295	//     "project",
135296	//     "sslPolicy"
135297	//   ],
135298	//   "parameters": {
135299	//     "project": {
135300	//       "description": "Project ID for this request.",
135301	//       "location": "path",
135302	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135303	//       "required": true,
135304	//       "type": "string"
135305	//     },
135306	//     "requestId": {
135307	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135308	//       "location": "query",
135309	//       "type": "string"
135310	//     },
135311	//     "sslPolicy": {
135312	//       "description": "Name of the SSL policy to delete. The name must be 1-63 characters long, and comply with RFC1035.",
135313	//       "location": "path",
135314	//       "required": true,
135315	//       "type": "string"
135316	//     }
135317	//   },
135318	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
135319	//   "response": {
135320	//     "$ref": "Operation"
135321	//   },
135322	//   "scopes": [
135323	//     "https://www.googleapis.com/auth/cloud-platform",
135324	//     "https://www.googleapis.com/auth/compute"
135325	//   ]
135326	// }
135327
135328}
135329
135330// method id "compute.sslPolicies.get":
135331
135332type SslPoliciesGetCall struct {
135333	s            *Service
135334	project      string
135335	sslPolicy    string
135336	urlParams_   gensupport.URLParams
135337	ifNoneMatch_ string
135338	ctx_         context.Context
135339	header_      http.Header
135340}
135341
135342// Get: Lists all of the ordered rules present in a single specified
135343// policy.
135344func (r *SslPoliciesService) Get(project string, sslPolicy string) *SslPoliciesGetCall {
135345	c := &SslPoliciesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135346	c.project = project
135347	c.sslPolicy = sslPolicy
135348	return c
135349}
135350
135351// Fields allows partial responses to be retrieved. See
135352// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135353// for more information.
135354func (c *SslPoliciesGetCall) Fields(s ...googleapi.Field) *SslPoliciesGetCall {
135355	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135356	return c
135357}
135358
135359// IfNoneMatch sets the optional parameter which makes the operation
135360// fail if the object's ETag matches the given value. This is useful for
135361// getting updates only after the object has changed since the last
135362// request. Use googleapi.IsNotModified to check whether the response
135363// error from Do is the result of In-None-Match.
135364func (c *SslPoliciesGetCall) IfNoneMatch(entityTag string) *SslPoliciesGetCall {
135365	c.ifNoneMatch_ = entityTag
135366	return c
135367}
135368
135369// Context sets the context to be used in this call's Do method. Any
135370// pending HTTP request will be aborted if the provided context is
135371// canceled.
135372func (c *SslPoliciesGetCall) Context(ctx context.Context) *SslPoliciesGetCall {
135373	c.ctx_ = ctx
135374	return c
135375}
135376
135377// Header returns an http.Header that can be modified by the caller to
135378// add HTTP headers to the request.
135379func (c *SslPoliciesGetCall) Header() http.Header {
135380	if c.header_ == nil {
135381		c.header_ = make(http.Header)
135382	}
135383	return c.header_
135384}
135385
135386func (c *SslPoliciesGetCall) doRequest(alt string) (*http.Response, error) {
135387	reqHeaders := make(http.Header)
135388	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135389	for k, v := range c.header_ {
135390		reqHeaders[k] = v
135391	}
135392	reqHeaders.Set("User-Agent", c.s.userAgent())
135393	if c.ifNoneMatch_ != "" {
135394		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135395	}
135396	var body io.Reader = nil
135397	c.urlParams_.Set("alt", alt)
135398	c.urlParams_.Set("prettyPrint", "false")
135399	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
135400	urls += "?" + c.urlParams_.Encode()
135401	req, err := http.NewRequest("GET", urls, body)
135402	if err != nil {
135403		return nil, err
135404	}
135405	req.Header = reqHeaders
135406	googleapi.Expand(req.URL, map[string]string{
135407		"project":   c.project,
135408		"sslPolicy": c.sslPolicy,
135409	})
135410	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135411}
135412
135413// Do executes the "compute.sslPolicies.get" call.
135414// Exactly one of *SslPolicy or error will be non-nil. Any non-2xx
135415// status code is an error. Response headers are in either
135416// *SslPolicy.ServerResponse.Header or (if a response was returned at
135417// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135418// to check whether the returned error was because
135419// http.StatusNotModified was returned.
135420func (c *SslPoliciesGetCall) Do(opts ...googleapi.CallOption) (*SslPolicy, error) {
135421	gensupport.SetOptions(c.urlParams_, opts...)
135422	res, err := c.doRequest("json")
135423	if res != nil && res.StatusCode == http.StatusNotModified {
135424		if res.Body != nil {
135425			res.Body.Close()
135426		}
135427		return nil, &googleapi.Error{
135428			Code:   res.StatusCode,
135429			Header: res.Header,
135430		}
135431	}
135432	if err != nil {
135433		return nil, err
135434	}
135435	defer googleapi.CloseBody(res)
135436	if err := googleapi.CheckResponse(res); err != nil {
135437		return nil, err
135438	}
135439	ret := &SslPolicy{
135440		ServerResponse: googleapi.ServerResponse{
135441			Header:         res.Header,
135442			HTTPStatusCode: res.StatusCode,
135443		},
135444	}
135445	target := &ret
135446	if err := gensupport.DecodeResponse(target, res); err != nil {
135447		return nil, err
135448	}
135449	return ret, nil
135450	// {
135451	//   "description": "Lists all of the ordered rules present in a single specified policy.",
135452	//   "httpMethod": "GET",
135453	//   "id": "compute.sslPolicies.get",
135454	//   "parameterOrder": [
135455	//     "project",
135456	//     "sslPolicy"
135457	//   ],
135458	//   "parameters": {
135459	//     "project": {
135460	//       "description": "Project ID for this request.",
135461	//       "location": "path",
135462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135463	//       "required": true,
135464	//       "type": "string"
135465	//     },
135466	//     "sslPolicy": {
135467	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
135468	//       "location": "path",
135469	//       "required": true,
135470	//       "type": "string"
135471	//     }
135472	//   },
135473	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
135474	//   "response": {
135475	//     "$ref": "SslPolicy"
135476	//   },
135477	//   "scopes": [
135478	//     "https://www.googleapis.com/auth/cloud-platform",
135479	//     "https://www.googleapis.com/auth/compute",
135480	//     "https://www.googleapis.com/auth/compute.readonly"
135481	//   ]
135482	// }
135483
135484}
135485
135486// method id "compute.sslPolicies.insert":
135487
135488type SslPoliciesInsertCall struct {
135489	s          *Service
135490	project    string
135491	sslpolicy  *SslPolicy
135492	urlParams_ gensupport.URLParams
135493	ctx_       context.Context
135494	header_    http.Header
135495}
135496
135497// Insert: Returns the specified SSL policy resource. Gets a list of
135498// available SSL policies by making a list() request.
135499func (r *SslPoliciesService) Insert(project string, sslpolicy *SslPolicy) *SslPoliciesInsertCall {
135500	c := &SslPoliciesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135501	c.project = project
135502	c.sslpolicy = sslpolicy
135503	return c
135504}
135505
135506// RequestId sets the optional parameter "requestId": An optional
135507// request ID to identify requests. Specify a unique request ID so that
135508// if you must retry your request, the server will know to ignore the
135509// request if it has already been completed.
135510//
135511// For example, consider a situation where you make an initial request
135512// and the request times out. If you make the request again with the
135513// same request ID, the server can check if original operation with the
135514// same request ID was received, and if so, will ignore the second
135515// request. This prevents clients from accidentally creating duplicate
135516// commitments.
135517//
135518// The request ID must be a valid UUID with the exception that zero UUID
135519// is not supported (00000000-0000-0000-0000-000000000000).
135520func (c *SslPoliciesInsertCall) RequestId(requestId string) *SslPoliciesInsertCall {
135521	c.urlParams_.Set("requestId", requestId)
135522	return c
135523}
135524
135525// Fields allows partial responses to be retrieved. See
135526// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135527// for more information.
135528func (c *SslPoliciesInsertCall) Fields(s ...googleapi.Field) *SslPoliciesInsertCall {
135529	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135530	return c
135531}
135532
135533// Context sets the context to be used in this call's Do method. Any
135534// pending HTTP request will be aborted if the provided context is
135535// canceled.
135536func (c *SslPoliciesInsertCall) Context(ctx context.Context) *SslPoliciesInsertCall {
135537	c.ctx_ = ctx
135538	return c
135539}
135540
135541// Header returns an http.Header that can be modified by the caller to
135542// add HTTP headers to the request.
135543func (c *SslPoliciesInsertCall) Header() http.Header {
135544	if c.header_ == nil {
135545		c.header_ = make(http.Header)
135546	}
135547	return c.header_
135548}
135549
135550func (c *SslPoliciesInsertCall) doRequest(alt string) (*http.Response, error) {
135551	reqHeaders := make(http.Header)
135552	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135553	for k, v := range c.header_ {
135554		reqHeaders[k] = v
135555	}
135556	reqHeaders.Set("User-Agent", c.s.userAgent())
135557	var body io.Reader = nil
135558	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
135559	if err != nil {
135560		return nil, err
135561	}
135562	reqHeaders.Set("Content-Type", "application/json")
135563	c.urlParams_.Set("alt", alt)
135564	c.urlParams_.Set("prettyPrint", "false")
135565	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
135566	urls += "?" + c.urlParams_.Encode()
135567	req, err := http.NewRequest("POST", urls, body)
135568	if err != nil {
135569		return nil, err
135570	}
135571	req.Header = reqHeaders
135572	googleapi.Expand(req.URL, map[string]string{
135573		"project": c.project,
135574	})
135575	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135576}
135577
135578// Do executes the "compute.sslPolicies.insert" call.
135579// Exactly one of *Operation or error will be non-nil. Any non-2xx
135580// status code is an error. Response headers are in either
135581// *Operation.ServerResponse.Header or (if a response was returned at
135582// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
135583// to check whether the returned error was because
135584// http.StatusNotModified was returned.
135585func (c *SslPoliciesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
135586	gensupport.SetOptions(c.urlParams_, opts...)
135587	res, err := c.doRequest("json")
135588	if res != nil && res.StatusCode == http.StatusNotModified {
135589		if res.Body != nil {
135590			res.Body.Close()
135591		}
135592		return nil, &googleapi.Error{
135593			Code:   res.StatusCode,
135594			Header: res.Header,
135595		}
135596	}
135597	if err != nil {
135598		return nil, err
135599	}
135600	defer googleapi.CloseBody(res)
135601	if err := googleapi.CheckResponse(res); err != nil {
135602		return nil, err
135603	}
135604	ret := &Operation{
135605		ServerResponse: googleapi.ServerResponse{
135606			Header:         res.Header,
135607			HTTPStatusCode: res.StatusCode,
135608		},
135609	}
135610	target := &ret
135611	if err := gensupport.DecodeResponse(target, res); err != nil {
135612		return nil, err
135613	}
135614	return ret, nil
135615	// {
135616	//   "description": "Returns the specified SSL policy resource. Gets a list of available SSL policies by making a list() request.",
135617	//   "httpMethod": "POST",
135618	//   "id": "compute.sslPolicies.insert",
135619	//   "parameterOrder": [
135620	//     "project"
135621	//   ],
135622	//   "parameters": {
135623	//     "project": {
135624	//       "description": "Project ID for this request.",
135625	//       "location": "path",
135626	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135627	//       "required": true,
135628	//       "type": "string"
135629	//     },
135630	//     "requestId": {
135631	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
135632	//       "location": "query",
135633	//       "type": "string"
135634	//     }
135635	//   },
135636	//   "path": "{project}/global/sslPolicies",
135637	//   "request": {
135638	//     "$ref": "SslPolicy"
135639	//   },
135640	//   "response": {
135641	//     "$ref": "Operation"
135642	//   },
135643	//   "scopes": [
135644	//     "https://www.googleapis.com/auth/cloud-platform",
135645	//     "https://www.googleapis.com/auth/compute"
135646	//   ]
135647	// }
135648
135649}
135650
135651// method id "compute.sslPolicies.list":
135652
135653type SslPoliciesListCall struct {
135654	s            *Service
135655	project      string
135656	urlParams_   gensupport.URLParams
135657	ifNoneMatch_ string
135658	ctx_         context.Context
135659	header_      http.Header
135660}
135661
135662// List: Lists all the SSL policies that have been configured for the
135663// specified project.
135664func (r *SslPoliciesService) List(project string) *SslPoliciesListCall {
135665	c := &SslPoliciesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135666	c.project = project
135667	return c
135668}
135669
135670// Filter sets the optional parameter "filter": A filter expression that
135671// filters resources listed in the response. The expression must specify
135672// the field name, a comparison operator, and the value that you want to
135673// use for filtering. The value must be a string, a number, or a
135674// boolean. The comparison operator must be either =, !=, >, or <.
135675//
135676// For example, if you are filtering Compute Engine instances, you can
135677// exclude instances named example-instance by specifying name !=
135678// example-instance.
135679//
135680// You can also filter nested fields. For example, you could specify
135681// scheduling.automaticRestart = false to include instances only if they
135682// are not scheduled for automatic restarts. You can use filtering on
135683// nested fields to filter based on resource labels.
135684//
135685// To filter on multiple expressions, provide each separate expression
135686// within parentheses. For example, (scheduling.automaticRestart = true)
135687// (cpuPlatform = "Intel Skylake"). By default, each expression is an
135688// AND expression. However, you can include AND and OR expressions
135689// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
135690// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
135691// true).
135692func (c *SslPoliciesListCall) Filter(filter string) *SslPoliciesListCall {
135693	c.urlParams_.Set("filter", filter)
135694	return c
135695}
135696
135697// MaxResults sets the optional parameter "maxResults": The maximum
135698// number of results per page that should be returned. If the number of
135699// available results is larger than maxResults, Compute Engine returns a
135700// nextPageToken that can be used to get the next page of results in
135701// subsequent list requests. Acceptable values are 0 to 500, inclusive.
135702// (Default: 500)
135703func (c *SslPoliciesListCall) MaxResults(maxResults int64) *SslPoliciesListCall {
135704	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135705	return c
135706}
135707
135708// OrderBy sets the optional parameter "orderBy": Sorts list results by
135709// a certain order. By default, results are returned in alphanumerical
135710// order based on the resource name.
135711//
135712// You can also sort results in descending order based on the creation
135713// timestamp using orderBy="creationTimestamp desc". This sorts results
135714// based on the creationTimestamp field in reverse chronological order
135715// (newest result first). Use this to sort resources like operations so
135716// that the newest operation is returned first.
135717//
135718// Currently, only sorting by name or creationTimestamp desc is
135719// supported.
135720func (c *SslPoliciesListCall) OrderBy(orderBy string) *SslPoliciesListCall {
135721	c.urlParams_.Set("orderBy", orderBy)
135722	return c
135723}
135724
135725// PageToken sets the optional parameter "pageToken": Specifies a page
135726// token to use. Set pageToken to the nextPageToken returned by a
135727// previous list request to get the next page of results.
135728func (c *SslPoliciesListCall) PageToken(pageToken string) *SslPoliciesListCall {
135729	c.urlParams_.Set("pageToken", pageToken)
135730	return c
135731}
135732
135733// Fields allows partial responses to be retrieved. See
135734// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135735// for more information.
135736func (c *SslPoliciesListCall) Fields(s ...googleapi.Field) *SslPoliciesListCall {
135737	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135738	return c
135739}
135740
135741// IfNoneMatch sets the optional parameter which makes the operation
135742// fail if the object's ETag matches the given value. This is useful for
135743// getting updates only after the object has changed since the last
135744// request. Use googleapi.IsNotModified to check whether the response
135745// error from Do is the result of In-None-Match.
135746func (c *SslPoliciesListCall) IfNoneMatch(entityTag string) *SslPoliciesListCall {
135747	c.ifNoneMatch_ = entityTag
135748	return c
135749}
135750
135751// Context sets the context to be used in this call's Do method. Any
135752// pending HTTP request will be aborted if the provided context is
135753// canceled.
135754func (c *SslPoliciesListCall) Context(ctx context.Context) *SslPoliciesListCall {
135755	c.ctx_ = ctx
135756	return c
135757}
135758
135759// Header returns an http.Header that can be modified by the caller to
135760// add HTTP headers to the request.
135761func (c *SslPoliciesListCall) Header() http.Header {
135762	if c.header_ == nil {
135763		c.header_ = make(http.Header)
135764	}
135765	return c.header_
135766}
135767
135768func (c *SslPoliciesListCall) doRequest(alt string) (*http.Response, error) {
135769	reqHeaders := make(http.Header)
135770	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
135771	for k, v := range c.header_ {
135772		reqHeaders[k] = v
135773	}
135774	reqHeaders.Set("User-Agent", c.s.userAgent())
135775	if c.ifNoneMatch_ != "" {
135776		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
135777	}
135778	var body io.Reader = nil
135779	c.urlParams_.Set("alt", alt)
135780	c.urlParams_.Set("prettyPrint", "false")
135781	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies")
135782	urls += "?" + c.urlParams_.Encode()
135783	req, err := http.NewRequest("GET", urls, body)
135784	if err != nil {
135785		return nil, err
135786	}
135787	req.Header = reqHeaders
135788	googleapi.Expand(req.URL, map[string]string{
135789		"project": c.project,
135790	})
135791	return gensupport.SendRequest(c.ctx_, c.s.client, req)
135792}
135793
135794// Do executes the "compute.sslPolicies.list" call.
135795// Exactly one of *SslPoliciesList or error will be non-nil. Any non-2xx
135796// status code is an error. Response headers are in either
135797// *SslPoliciesList.ServerResponse.Header or (if a response was returned
135798// at all) in error.(*googleapi.Error).Header. Use
135799// googleapi.IsNotModified to check whether the returned error was
135800// because http.StatusNotModified was returned.
135801func (c *SslPoliciesListCall) Do(opts ...googleapi.CallOption) (*SslPoliciesList, error) {
135802	gensupport.SetOptions(c.urlParams_, opts...)
135803	res, err := c.doRequest("json")
135804	if res != nil && res.StatusCode == http.StatusNotModified {
135805		if res.Body != nil {
135806			res.Body.Close()
135807		}
135808		return nil, &googleapi.Error{
135809			Code:   res.StatusCode,
135810			Header: res.Header,
135811		}
135812	}
135813	if err != nil {
135814		return nil, err
135815	}
135816	defer googleapi.CloseBody(res)
135817	if err := googleapi.CheckResponse(res); err != nil {
135818		return nil, err
135819	}
135820	ret := &SslPoliciesList{
135821		ServerResponse: googleapi.ServerResponse{
135822			Header:         res.Header,
135823			HTTPStatusCode: res.StatusCode,
135824		},
135825	}
135826	target := &ret
135827	if err := gensupport.DecodeResponse(target, res); err != nil {
135828		return nil, err
135829	}
135830	return ret, nil
135831	// {
135832	//   "description": "Lists all the SSL policies that have been configured for the specified project.",
135833	//   "httpMethod": "GET",
135834	//   "id": "compute.sslPolicies.list",
135835	//   "parameterOrder": [
135836	//     "project"
135837	//   ],
135838	//   "parameters": {
135839	//     "filter": {
135840	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
135841	//       "location": "query",
135842	//       "type": "string"
135843	//     },
135844	//     "maxResults": {
135845	//       "default": "500",
135846	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
135847	//       "format": "uint32",
135848	//       "location": "query",
135849	//       "minimum": "0",
135850	//       "type": "integer"
135851	//     },
135852	//     "orderBy": {
135853	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
135854	//       "location": "query",
135855	//       "type": "string"
135856	//     },
135857	//     "pageToken": {
135858	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
135859	//       "location": "query",
135860	//       "type": "string"
135861	//     },
135862	//     "project": {
135863	//       "description": "Project ID for this request.",
135864	//       "location": "path",
135865	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
135866	//       "required": true,
135867	//       "type": "string"
135868	//     }
135869	//   },
135870	//   "path": "{project}/global/sslPolicies",
135871	//   "response": {
135872	//     "$ref": "SslPoliciesList"
135873	//   },
135874	//   "scopes": [
135875	//     "https://www.googleapis.com/auth/cloud-platform",
135876	//     "https://www.googleapis.com/auth/compute",
135877	//     "https://www.googleapis.com/auth/compute.readonly"
135878	//   ]
135879	// }
135880
135881}
135882
135883// Pages invokes f for each page of results.
135884// A non-nil error returned from f will halt the iteration.
135885// The provided context supersedes any context provided to the Context method.
135886func (c *SslPoliciesListCall) Pages(ctx context.Context, f func(*SslPoliciesList) error) error {
135887	c.ctx_ = ctx
135888	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
135889	for {
135890		x, err := c.Do()
135891		if err != nil {
135892			return err
135893		}
135894		if err := f(x); err != nil {
135895			return err
135896		}
135897		if x.NextPageToken == "" {
135898			return nil
135899		}
135900		c.PageToken(x.NextPageToken)
135901	}
135902}
135903
135904// method id "compute.sslPolicies.listAvailableFeatures":
135905
135906type SslPoliciesListAvailableFeaturesCall struct {
135907	s            *Service
135908	project      string
135909	urlParams_   gensupport.URLParams
135910	ifNoneMatch_ string
135911	ctx_         context.Context
135912	header_      http.Header
135913}
135914
135915// ListAvailableFeatures: Lists all features that can be specified in
135916// the SSL policy when using custom profile.
135917func (r *SslPoliciesService) ListAvailableFeatures(project string) *SslPoliciesListAvailableFeaturesCall {
135918	c := &SslPoliciesListAvailableFeaturesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
135919	c.project = project
135920	return c
135921}
135922
135923// Filter sets the optional parameter "filter": A filter expression that
135924// filters resources listed in the response. The expression must specify
135925// the field name, a comparison operator, and the value that you want to
135926// use for filtering. The value must be a string, a number, or a
135927// boolean. The comparison operator must be either =, !=, >, or <.
135928//
135929// For example, if you are filtering Compute Engine instances, you can
135930// exclude instances named example-instance by specifying name !=
135931// example-instance.
135932//
135933// You can also filter nested fields. For example, you could specify
135934// scheduling.automaticRestart = false to include instances only if they
135935// are not scheduled for automatic restarts. You can use filtering on
135936// nested fields to filter based on resource labels.
135937//
135938// To filter on multiple expressions, provide each separate expression
135939// within parentheses. For example, (scheduling.automaticRestart = true)
135940// (cpuPlatform = "Intel Skylake"). By default, each expression is an
135941// AND expression. However, you can include AND and OR expressions
135942// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
135943// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
135944// true).
135945func (c *SslPoliciesListAvailableFeaturesCall) Filter(filter string) *SslPoliciesListAvailableFeaturesCall {
135946	c.urlParams_.Set("filter", filter)
135947	return c
135948}
135949
135950// MaxResults sets the optional parameter "maxResults": The maximum
135951// number of results per page that should be returned. If the number of
135952// available results is larger than maxResults, Compute Engine returns a
135953// nextPageToken that can be used to get the next page of results in
135954// subsequent list requests. Acceptable values are 0 to 500, inclusive.
135955// (Default: 500)
135956func (c *SslPoliciesListAvailableFeaturesCall) MaxResults(maxResults int64) *SslPoliciesListAvailableFeaturesCall {
135957	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
135958	return c
135959}
135960
135961// OrderBy sets the optional parameter "orderBy": Sorts list results by
135962// a certain order. By default, results are returned in alphanumerical
135963// order based on the resource name.
135964//
135965// You can also sort results in descending order based on the creation
135966// timestamp using orderBy="creationTimestamp desc". This sorts results
135967// based on the creationTimestamp field in reverse chronological order
135968// (newest result first). Use this to sort resources like operations so
135969// that the newest operation is returned first.
135970//
135971// Currently, only sorting by name or creationTimestamp desc is
135972// supported.
135973func (c *SslPoliciesListAvailableFeaturesCall) OrderBy(orderBy string) *SslPoliciesListAvailableFeaturesCall {
135974	c.urlParams_.Set("orderBy", orderBy)
135975	return c
135976}
135977
135978// PageToken sets the optional parameter "pageToken": Specifies a page
135979// token to use. Set pageToken to the nextPageToken returned by a
135980// previous list request to get the next page of results.
135981func (c *SslPoliciesListAvailableFeaturesCall) PageToken(pageToken string) *SslPoliciesListAvailableFeaturesCall {
135982	c.urlParams_.Set("pageToken", pageToken)
135983	return c
135984}
135985
135986// Fields allows partial responses to be retrieved. See
135987// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
135988// for more information.
135989func (c *SslPoliciesListAvailableFeaturesCall) Fields(s ...googleapi.Field) *SslPoliciesListAvailableFeaturesCall {
135990	c.urlParams_.Set("fields", googleapi.CombineFields(s))
135991	return c
135992}
135993
135994// IfNoneMatch sets the optional parameter which makes the operation
135995// fail if the object's ETag matches the given value. This is useful for
135996// getting updates only after the object has changed since the last
135997// request. Use googleapi.IsNotModified to check whether the response
135998// error from Do is the result of In-None-Match.
135999func (c *SslPoliciesListAvailableFeaturesCall) IfNoneMatch(entityTag string) *SslPoliciesListAvailableFeaturesCall {
136000	c.ifNoneMatch_ = entityTag
136001	return c
136002}
136003
136004// Context sets the context to be used in this call's Do method. Any
136005// pending HTTP request will be aborted if the provided context is
136006// canceled.
136007func (c *SslPoliciesListAvailableFeaturesCall) Context(ctx context.Context) *SslPoliciesListAvailableFeaturesCall {
136008	c.ctx_ = ctx
136009	return c
136010}
136011
136012// Header returns an http.Header that can be modified by the caller to
136013// add HTTP headers to the request.
136014func (c *SslPoliciesListAvailableFeaturesCall) Header() http.Header {
136015	if c.header_ == nil {
136016		c.header_ = make(http.Header)
136017	}
136018	return c.header_
136019}
136020
136021func (c *SslPoliciesListAvailableFeaturesCall) doRequest(alt string) (*http.Response, error) {
136022	reqHeaders := make(http.Header)
136023	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136024	for k, v := range c.header_ {
136025		reqHeaders[k] = v
136026	}
136027	reqHeaders.Set("User-Agent", c.s.userAgent())
136028	if c.ifNoneMatch_ != "" {
136029		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136030	}
136031	var body io.Reader = nil
136032	c.urlParams_.Set("alt", alt)
136033	c.urlParams_.Set("prettyPrint", "false")
136034	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/listAvailableFeatures")
136035	urls += "?" + c.urlParams_.Encode()
136036	req, err := http.NewRequest("GET", urls, body)
136037	if err != nil {
136038		return nil, err
136039	}
136040	req.Header = reqHeaders
136041	googleapi.Expand(req.URL, map[string]string{
136042		"project": c.project,
136043	})
136044	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136045}
136046
136047// Do executes the "compute.sslPolicies.listAvailableFeatures" call.
136048// Exactly one of *SslPoliciesListAvailableFeaturesResponse or error
136049// will be non-nil. Any non-2xx status code is an error. Response
136050// headers are in either
136051// *SslPoliciesListAvailableFeaturesResponse.ServerResponse.Header or
136052// (if a response was returned at all) in
136053// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
136054// whether the returned error was because http.StatusNotModified was
136055// returned.
136056func (c *SslPoliciesListAvailableFeaturesCall) Do(opts ...googleapi.CallOption) (*SslPoliciesListAvailableFeaturesResponse, error) {
136057	gensupport.SetOptions(c.urlParams_, opts...)
136058	res, err := c.doRequest("json")
136059	if res != nil && res.StatusCode == http.StatusNotModified {
136060		if res.Body != nil {
136061			res.Body.Close()
136062		}
136063		return nil, &googleapi.Error{
136064			Code:   res.StatusCode,
136065			Header: res.Header,
136066		}
136067	}
136068	if err != nil {
136069		return nil, err
136070	}
136071	defer googleapi.CloseBody(res)
136072	if err := googleapi.CheckResponse(res); err != nil {
136073		return nil, err
136074	}
136075	ret := &SslPoliciesListAvailableFeaturesResponse{
136076		ServerResponse: googleapi.ServerResponse{
136077			Header:         res.Header,
136078			HTTPStatusCode: res.StatusCode,
136079		},
136080	}
136081	target := &ret
136082	if err := gensupport.DecodeResponse(target, res); err != nil {
136083		return nil, err
136084	}
136085	return ret, nil
136086	// {
136087	//   "description": "Lists all features that can be specified in the SSL policy when using custom profile.",
136088	//   "httpMethod": "GET",
136089	//   "id": "compute.sslPolicies.listAvailableFeatures",
136090	//   "parameterOrder": [
136091	//     "project"
136092	//   ],
136093	//   "parameters": {
136094	//     "filter": {
136095	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
136096	//       "location": "query",
136097	//       "type": "string"
136098	//     },
136099	//     "maxResults": {
136100	//       "default": "500",
136101	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
136102	//       "format": "uint32",
136103	//       "location": "query",
136104	//       "minimum": "0",
136105	//       "type": "integer"
136106	//     },
136107	//     "orderBy": {
136108	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
136109	//       "location": "query",
136110	//       "type": "string"
136111	//     },
136112	//     "pageToken": {
136113	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
136114	//       "location": "query",
136115	//       "type": "string"
136116	//     },
136117	//     "project": {
136118	//       "description": "Project ID for this request.",
136119	//       "location": "path",
136120	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136121	//       "required": true,
136122	//       "type": "string"
136123	//     }
136124	//   },
136125	//   "path": "{project}/global/sslPolicies/listAvailableFeatures",
136126	//   "response": {
136127	//     "$ref": "SslPoliciesListAvailableFeaturesResponse"
136128	//   },
136129	//   "scopes": [
136130	//     "https://www.googleapis.com/auth/cloud-platform",
136131	//     "https://www.googleapis.com/auth/compute",
136132	//     "https://www.googleapis.com/auth/compute.readonly"
136133	//   ]
136134	// }
136135
136136}
136137
136138// method id "compute.sslPolicies.patch":
136139
136140type SslPoliciesPatchCall struct {
136141	s          *Service
136142	project    string
136143	sslPolicy  string
136144	sslpolicy  *SslPolicy
136145	urlParams_ gensupport.URLParams
136146	ctx_       context.Context
136147	header_    http.Header
136148}
136149
136150// Patch: Patches the specified SSL policy with the data included in the
136151// request.
136152func (r *SslPoliciesService) Patch(project string, sslPolicy string, sslpolicy *SslPolicy) *SslPoliciesPatchCall {
136153	c := &SslPoliciesPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136154	c.project = project
136155	c.sslPolicy = sslPolicy
136156	c.sslpolicy = sslpolicy
136157	return c
136158}
136159
136160// RequestId sets the optional parameter "requestId": An optional
136161// request ID to identify requests. Specify a unique request ID so that
136162// if you must retry your request, the server will know to ignore the
136163// request if it has already been completed.
136164//
136165// For example, consider a situation where you make an initial request
136166// and the request times out. If you make the request again with the
136167// same request ID, the server can check if original operation with the
136168// same request ID was received, and if so, will ignore the second
136169// request. This prevents clients from accidentally creating duplicate
136170// commitments.
136171//
136172// The request ID must be a valid UUID with the exception that zero UUID
136173// is not supported (00000000-0000-0000-0000-000000000000).
136174func (c *SslPoliciesPatchCall) RequestId(requestId string) *SslPoliciesPatchCall {
136175	c.urlParams_.Set("requestId", requestId)
136176	return c
136177}
136178
136179// Fields allows partial responses to be retrieved. See
136180// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136181// for more information.
136182func (c *SslPoliciesPatchCall) Fields(s ...googleapi.Field) *SslPoliciesPatchCall {
136183	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136184	return c
136185}
136186
136187// Context sets the context to be used in this call's Do method. Any
136188// pending HTTP request will be aborted if the provided context is
136189// canceled.
136190func (c *SslPoliciesPatchCall) Context(ctx context.Context) *SslPoliciesPatchCall {
136191	c.ctx_ = ctx
136192	return c
136193}
136194
136195// Header returns an http.Header that can be modified by the caller to
136196// add HTTP headers to the request.
136197func (c *SslPoliciesPatchCall) Header() http.Header {
136198	if c.header_ == nil {
136199		c.header_ = make(http.Header)
136200	}
136201	return c.header_
136202}
136203
136204func (c *SslPoliciesPatchCall) doRequest(alt string) (*http.Response, error) {
136205	reqHeaders := make(http.Header)
136206	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136207	for k, v := range c.header_ {
136208		reqHeaders[k] = v
136209	}
136210	reqHeaders.Set("User-Agent", c.s.userAgent())
136211	var body io.Reader = nil
136212	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicy)
136213	if err != nil {
136214		return nil, err
136215	}
136216	reqHeaders.Set("Content-Type", "application/json")
136217	c.urlParams_.Set("alt", alt)
136218	c.urlParams_.Set("prettyPrint", "false")
136219	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{sslPolicy}")
136220	urls += "?" + c.urlParams_.Encode()
136221	req, err := http.NewRequest("PATCH", urls, body)
136222	if err != nil {
136223		return nil, err
136224	}
136225	req.Header = reqHeaders
136226	googleapi.Expand(req.URL, map[string]string{
136227		"project":   c.project,
136228		"sslPolicy": c.sslPolicy,
136229	})
136230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136231}
136232
136233// Do executes the "compute.sslPolicies.patch" call.
136234// Exactly one of *Operation or error will be non-nil. Any non-2xx
136235// status code is an error. Response headers are in either
136236// *Operation.ServerResponse.Header or (if a response was returned at
136237// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136238// to check whether the returned error was because
136239// http.StatusNotModified was returned.
136240func (c *SslPoliciesPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136241	gensupport.SetOptions(c.urlParams_, opts...)
136242	res, err := c.doRequest("json")
136243	if res != nil && res.StatusCode == http.StatusNotModified {
136244		if res.Body != nil {
136245			res.Body.Close()
136246		}
136247		return nil, &googleapi.Error{
136248			Code:   res.StatusCode,
136249			Header: res.Header,
136250		}
136251	}
136252	if err != nil {
136253		return nil, err
136254	}
136255	defer googleapi.CloseBody(res)
136256	if err := googleapi.CheckResponse(res); err != nil {
136257		return nil, err
136258	}
136259	ret := &Operation{
136260		ServerResponse: googleapi.ServerResponse{
136261			Header:         res.Header,
136262			HTTPStatusCode: res.StatusCode,
136263		},
136264	}
136265	target := &ret
136266	if err := gensupport.DecodeResponse(target, res); err != nil {
136267		return nil, err
136268	}
136269	return ret, nil
136270	// {
136271	//   "description": "Patches the specified SSL policy with the data included in the request.",
136272	//   "httpMethod": "PATCH",
136273	//   "id": "compute.sslPolicies.patch",
136274	//   "parameterOrder": [
136275	//     "project",
136276	//     "sslPolicy"
136277	//   ],
136278	//   "parameters": {
136279	//     "project": {
136280	//       "description": "Project ID for this request.",
136281	//       "location": "path",
136282	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136283	//       "required": true,
136284	//       "type": "string"
136285	//     },
136286	//     "requestId": {
136287	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136288	//       "location": "query",
136289	//       "type": "string"
136290	//     },
136291	//     "sslPolicy": {
136292	//       "description": "Name of the SSL policy to update. The name must be 1-63 characters long, and comply with RFC1035.",
136293	//       "location": "path",
136294	//       "required": true,
136295	//       "type": "string"
136296	//     }
136297	//   },
136298	//   "path": "{project}/global/sslPolicies/{sslPolicy}",
136299	//   "request": {
136300	//     "$ref": "SslPolicy"
136301	//   },
136302	//   "response": {
136303	//     "$ref": "Operation"
136304	//   },
136305	//   "scopes": [
136306	//     "https://www.googleapis.com/auth/cloud-platform",
136307	//     "https://www.googleapis.com/auth/compute"
136308	//   ]
136309	// }
136310
136311}
136312
136313// method id "compute.sslPolicies.testIamPermissions":
136314
136315type SslPoliciesTestIamPermissionsCall struct {
136316	s                      *Service
136317	project                string
136318	resource               string
136319	testpermissionsrequest *TestPermissionsRequest
136320	urlParams_             gensupport.URLParams
136321	ctx_                   context.Context
136322	header_                http.Header
136323}
136324
136325// TestIamPermissions: Returns permissions that a caller has on the
136326// specified resource.
136327func (r *SslPoliciesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *SslPoliciesTestIamPermissionsCall {
136328	c := &SslPoliciesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136329	c.project = project
136330	c.resource = resource
136331	c.testpermissionsrequest = testpermissionsrequest
136332	return c
136333}
136334
136335// Fields allows partial responses to be retrieved. See
136336// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136337// for more information.
136338func (c *SslPoliciesTestIamPermissionsCall) Fields(s ...googleapi.Field) *SslPoliciesTestIamPermissionsCall {
136339	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136340	return c
136341}
136342
136343// Context sets the context to be used in this call's Do method. Any
136344// pending HTTP request will be aborted if the provided context is
136345// canceled.
136346func (c *SslPoliciesTestIamPermissionsCall) Context(ctx context.Context) *SslPoliciesTestIamPermissionsCall {
136347	c.ctx_ = ctx
136348	return c
136349}
136350
136351// Header returns an http.Header that can be modified by the caller to
136352// add HTTP headers to the request.
136353func (c *SslPoliciesTestIamPermissionsCall) Header() http.Header {
136354	if c.header_ == nil {
136355		c.header_ = make(http.Header)
136356	}
136357	return c.header_
136358}
136359
136360func (c *SslPoliciesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
136361	reqHeaders := make(http.Header)
136362	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136363	for k, v := range c.header_ {
136364		reqHeaders[k] = v
136365	}
136366	reqHeaders.Set("User-Agent", c.s.userAgent())
136367	var body io.Reader = nil
136368	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
136369	if err != nil {
136370		return nil, err
136371	}
136372	reqHeaders.Set("Content-Type", "application/json")
136373	c.urlParams_.Set("alt", alt)
136374	c.urlParams_.Set("prettyPrint", "false")
136375	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/sslPolicies/{resource}/testIamPermissions")
136376	urls += "?" + c.urlParams_.Encode()
136377	req, err := http.NewRequest("POST", urls, body)
136378	if err != nil {
136379		return nil, err
136380	}
136381	req.Header = reqHeaders
136382	googleapi.Expand(req.URL, map[string]string{
136383		"project":  c.project,
136384		"resource": c.resource,
136385	})
136386	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136387}
136388
136389// Do executes the "compute.sslPolicies.testIamPermissions" call.
136390// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
136391// non-2xx status code is an error. Response headers are in either
136392// *TestPermissionsResponse.ServerResponse.Header or (if a response was
136393// returned at all) in error.(*googleapi.Error).Header. Use
136394// googleapi.IsNotModified to check whether the returned error was
136395// because http.StatusNotModified was returned.
136396func (c *SslPoliciesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
136397	gensupport.SetOptions(c.urlParams_, opts...)
136398	res, err := c.doRequest("json")
136399	if res != nil && res.StatusCode == http.StatusNotModified {
136400		if res.Body != nil {
136401			res.Body.Close()
136402		}
136403		return nil, &googleapi.Error{
136404			Code:   res.StatusCode,
136405			Header: res.Header,
136406		}
136407	}
136408	if err != nil {
136409		return nil, err
136410	}
136411	defer googleapi.CloseBody(res)
136412	if err := googleapi.CheckResponse(res); err != nil {
136413		return nil, err
136414	}
136415	ret := &TestPermissionsResponse{
136416		ServerResponse: googleapi.ServerResponse{
136417			Header:         res.Header,
136418			HTTPStatusCode: res.StatusCode,
136419		},
136420	}
136421	target := &ret
136422	if err := gensupport.DecodeResponse(target, res); err != nil {
136423		return nil, err
136424	}
136425	return ret, nil
136426	// {
136427	//   "description": "Returns permissions that a caller has on the specified resource.",
136428	//   "httpMethod": "POST",
136429	//   "id": "compute.sslPolicies.testIamPermissions",
136430	//   "parameterOrder": [
136431	//     "project",
136432	//     "resource"
136433	//   ],
136434	//   "parameters": {
136435	//     "project": {
136436	//       "description": "Project ID for this request.",
136437	//       "location": "path",
136438	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136439	//       "required": true,
136440	//       "type": "string"
136441	//     },
136442	//     "resource": {
136443	//       "description": "Name or id of the resource for this request.",
136444	//       "location": "path",
136445	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136446	//       "required": true,
136447	//       "type": "string"
136448	//     }
136449	//   },
136450	//   "path": "{project}/global/sslPolicies/{resource}/testIamPermissions",
136451	//   "request": {
136452	//     "$ref": "TestPermissionsRequest"
136453	//   },
136454	//   "response": {
136455	//     "$ref": "TestPermissionsResponse"
136456	//   },
136457	//   "scopes": [
136458	//     "https://www.googleapis.com/auth/cloud-platform",
136459	//     "https://www.googleapis.com/auth/compute",
136460	//     "https://www.googleapis.com/auth/compute.readonly"
136461	//   ]
136462	// }
136463
136464}
136465
136466// method id "compute.subnetworks.aggregatedList":
136467
136468type SubnetworksAggregatedListCall struct {
136469	s            *Service
136470	project      string
136471	urlParams_   gensupport.URLParams
136472	ifNoneMatch_ string
136473	ctx_         context.Context
136474	header_      http.Header
136475}
136476
136477// AggregatedList: Retrieves an aggregated list of subnetworks.
136478func (r *SubnetworksService) AggregatedList(project string) *SubnetworksAggregatedListCall {
136479	c := &SubnetworksAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136480	c.project = project
136481	return c
136482}
136483
136484// Filter sets the optional parameter "filter": A filter expression that
136485// filters resources listed in the response. The expression must specify
136486// the field name, a comparison operator, and the value that you want to
136487// use for filtering. The value must be a string, a number, or a
136488// boolean. The comparison operator must be either =, !=, >, or <.
136489//
136490// For example, if you are filtering Compute Engine instances, you can
136491// exclude instances named example-instance by specifying name !=
136492// example-instance.
136493//
136494// You can also filter nested fields. For example, you could specify
136495// scheduling.automaticRestart = false to include instances only if they
136496// are not scheduled for automatic restarts. You can use filtering on
136497// nested fields to filter based on resource labels.
136498//
136499// To filter on multiple expressions, provide each separate expression
136500// within parentheses. For example, (scheduling.automaticRestart = true)
136501// (cpuPlatform = "Intel Skylake"). By default, each expression is an
136502// AND expression. However, you can include AND and OR expressions
136503// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
136504// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
136505// true).
136506func (c *SubnetworksAggregatedListCall) Filter(filter string) *SubnetworksAggregatedListCall {
136507	c.urlParams_.Set("filter", filter)
136508	return c
136509}
136510
136511// IncludeAllScopes sets the optional parameter "includeAllScopes":
136512// Indicates whether every visible scope for each scope type (zone,
136513// region, global) should be included in the response. For new resource
136514// types added after this field, the flag has no effect as new resource
136515// types will always include every visible scope for each scope type in
136516// response. For resource types which predate this field, if this flag
136517// is omitted or false, only scopes of the scope types where the
136518// resource type is expected to be found will be included.
136519func (c *SubnetworksAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *SubnetworksAggregatedListCall {
136520	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
136521	return c
136522}
136523
136524// MaxResults sets the optional parameter "maxResults": The maximum
136525// number of results per page that should be returned. If the number of
136526// available results is larger than maxResults, Compute Engine returns a
136527// nextPageToken that can be used to get the next page of results in
136528// subsequent list requests. Acceptable values are 0 to 500, inclusive.
136529// (Default: 500)
136530func (c *SubnetworksAggregatedListCall) MaxResults(maxResults int64) *SubnetworksAggregatedListCall {
136531	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
136532	return c
136533}
136534
136535// OrderBy sets the optional parameter "orderBy": Sorts list results by
136536// a certain order. By default, results are returned in alphanumerical
136537// order based on the resource name.
136538//
136539// You can also sort results in descending order based on the creation
136540// timestamp using orderBy="creationTimestamp desc". This sorts results
136541// based on the creationTimestamp field in reverse chronological order
136542// (newest result first). Use this to sort resources like operations so
136543// that the newest operation is returned first.
136544//
136545// Currently, only sorting by name or creationTimestamp desc is
136546// supported.
136547func (c *SubnetworksAggregatedListCall) OrderBy(orderBy string) *SubnetworksAggregatedListCall {
136548	c.urlParams_.Set("orderBy", orderBy)
136549	return c
136550}
136551
136552// PageToken sets the optional parameter "pageToken": Specifies a page
136553// token to use. Set pageToken to the nextPageToken returned by a
136554// previous list request to get the next page of results.
136555func (c *SubnetworksAggregatedListCall) PageToken(pageToken string) *SubnetworksAggregatedListCall {
136556	c.urlParams_.Set("pageToken", pageToken)
136557	return c
136558}
136559
136560// Fields allows partial responses to be retrieved. See
136561// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136562// for more information.
136563func (c *SubnetworksAggregatedListCall) Fields(s ...googleapi.Field) *SubnetworksAggregatedListCall {
136564	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136565	return c
136566}
136567
136568// IfNoneMatch sets the optional parameter which makes the operation
136569// fail if the object's ETag matches the given value. This is useful for
136570// getting updates only after the object has changed since the last
136571// request. Use googleapi.IsNotModified to check whether the response
136572// error from Do is the result of In-None-Match.
136573func (c *SubnetworksAggregatedListCall) IfNoneMatch(entityTag string) *SubnetworksAggregatedListCall {
136574	c.ifNoneMatch_ = entityTag
136575	return c
136576}
136577
136578// Context sets the context to be used in this call's Do method. Any
136579// pending HTTP request will be aborted if the provided context is
136580// canceled.
136581func (c *SubnetworksAggregatedListCall) Context(ctx context.Context) *SubnetworksAggregatedListCall {
136582	c.ctx_ = ctx
136583	return c
136584}
136585
136586// Header returns an http.Header that can be modified by the caller to
136587// add HTTP headers to the request.
136588func (c *SubnetworksAggregatedListCall) Header() http.Header {
136589	if c.header_ == nil {
136590		c.header_ = make(http.Header)
136591	}
136592	return c.header_
136593}
136594
136595func (c *SubnetworksAggregatedListCall) doRequest(alt string) (*http.Response, error) {
136596	reqHeaders := make(http.Header)
136597	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136598	for k, v := range c.header_ {
136599		reqHeaders[k] = v
136600	}
136601	reqHeaders.Set("User-Agent", c.s.userAgent())
136602	if c.ifNoneMatch_ != "" {
136603		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
136604	}
136605	var body io.Reader = nil
136606	c.urlParams_.Set("alt", alt)
136607	c.urlParams_.Set("prettyPrint", "false")
136608	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks")
136609	urls += "?" + c.urlParams_.Encode()
136610	req, err := http.NewRequest("GET", urls, body)
136611	if err != nil {
136612		return nil, err
136613	}
136614	req.Header = reqHeaders
136615	googleapi.Expand(req.URL, map[string]string{
136616		"project": c.project,
136617	})
136618	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136619}
136620
136621// Do executes the "compute.subnetworks.aggregatedList" call.
136622// Exactly one of *SubnetworkAggregatedList or error will be non-nil.
136623// Any non-2xx status code is an error. Response headers are in either
136624// *SubnetworkAggregatedList.ServerResponse.Header or (if a response was
136625// returned at all) in error.(*googleapi.Error).Header. Use
136626// googleapi.IsNotModified to check whether the returned error was
136627// because http.StatusNotModified was returned.
136628func (c *SubnetworksAggregatedListCall) Do(opts ...googleapi.CallOption) (*SubnetworkAggregatedList, error) {
136629	gensupport.SetOptions(c.urlParams_, opts...)
136630	res, err := c.doRequest("json")
136631	if res != nil && res.StatusCode == http.StatusNotModified {
136632		if res.Body != nil {
136633			res.Body.Close()
136634		}
136635		return nil, &googleapi.Error{
136636			Code:   res.StatusCode,
136637			Header: res.Header,
136638		}
136639	}
136640	if err != nil {
136641		return nil, err
136642	}
136643	defer googleapi.CloseBody(res)
136644	if err := googleapi.CheckResponse(res); err != nil {
136645		return nil, err
136646	}
136647	ret := &SubnetworkAggregatedList{
136648		ServerResponse: googleapi.ServerResponse{
136649			Header:         res.Header,
136650			HTTPStatusCode: res.StatusCode,
136651		},
136652	}
136653	target := &ret
136654	if err := gensupport.DecodeResponse(target, res); err != nil {
136655		return nil, err
136656	}
136657	return ret, nil
136658	// {
136659	//   "description": "Retrieves an aggregated list of subnetworks.",
136660	//   "httpMethod": "GET",
136661	//   "id": "compute.subnetworks.aggregatedList",
136662	//   "parameterOrder": [
136663	//     "project"
136664	//   ],
136665	//   "parameters": {
136666	//     "filter": {
136667	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
136668	//       "location": "query",
136669	//       "type": "string"
136670	//     },
136671	//     "includeAllScopes": {
136672	//       "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.",
136673	//       "location": "query",
136674	//       "type": "boolean"
136675	//     },
136676	//     "maxResults": {
136677	//       "default": "500",
136678	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
136679	//       "format": "uint32",
136680	//       "location": "query",
136681	//       "minimum": "0",
136682	//       "type": "integer"
136683	//     },
136684	//     "orderBy": {
136685	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
136686	//       "location": "query",
136687	//       "type": "string"
136688	//     },
136689	//     "pageToken": {
136690	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
136691	//       "location": "query",
136692	//       "type": "string"
136693	//     },
136694	//     "project": {
136695	//       "description": "Project ID for this request.",
136696	//       "location": "path",
136697	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136698	//       "required": true,
136699	//       "type": "string"
136700	//     }
136701	//   },
136702	//   "path": "{project}/aggregated/subnetworks",
136703	//   "response": {
136704	//     "$ref": "SubnetworkAggregatedList"
136705	//   },
136706	//   "scopes": [
136707	//     "https://www.googleapis.com/auth/cloud-platform",
136708	//     "https://www.googleapis.com/auth/compute",
136709	//     "https://www.googleapis.com/auth/compute.readonly"
136710	//   ]
136711	// }
136712
136713}
136714
136715// Pages invokes f for each page of results.
136716// A non-nil error returned from f will halt the iteration.
136717// The provided context supersedes any context provided to the Context method.
136718func (c *SubnetworksAggregatedListCall) Pages(ctx context.Context, f func(*SubnetworkAggregatedList) error) error {
136719	c.ctx_ = ctx
136720	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
136721	for {
136722		x, err := c.Do()
136723		if err != nil {
136724			return err
136725		}
136726		if err := f(x); err != nil {
136727			return err
136728		}
136729		if x.NextPageToken == "" {
136730			return nil
136731		}
136732		c.PageToken(x.NextPageToken)
136733	}
136734}
136735
136736// method id "compute.subnetworks.delete":
136737
136738type SubnetworksDeleteCall struct {
136739	s          *Service
136740	project    string
136741	region     string
136742	subnetwork string
136743	urlParams_ gensupport.URLParams
136744	ctx_       context.Context
136745	header_    http.Header
136746}
136747
136748// Delete: Deletes the specified subnetwork.
136749func (r *SubnetworksService) Delete(project string, region string, subnetwork string) *SubnetworksDeleteCall {
136750	c := &SubnetworksDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136751	c.project = project
136752	c.region = region
136753	c.subnetwork = subnetwork
136754	return c
136755}
136756
136757// RequestId sets the optional parameter "requestId": An optional
136758// request ID to identify requests. Specify a unique request ID so that
136759// if you must retry your request, the server will know to ignore the
136760// request if it has already been completed.
136761//
136762// For example, consider a situation where you make an initial request
136763// and the request times out. If you make the request again with the
136764// same request ID, the server can check if original operation with the
136765// same request ID was received, and if so, will ignore the second
136766// request. This prevents clients from accidentally creating duplicate
136767// commitments.
136768//
136769// The request ID must be a valid UUID with the exception that zero UUID
136770// is not supported (00000000-0000-0000-0000-000000000000).
136771func (c *SubnetworksDeleteCall) RequestId(requestId string) *SubnetworksDeleteCall {
136772	c.urlParams_.Set("requestId", requestId)
136773	return c
136774}
136775
136776// Fields allows partial responses to be retrieved. See
136777// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136778// for more information.
136779func (c *SubnetworksDeleteCall) Fields(s ...googleapi.Field) *SubnetworksDeleteCall {
136780	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136781	return c
136782}
136783
136784// Context sets the context to be used in this call's Do method. Any
136785// pending HTTP request will be aborted if the provided context is
136786// canceled.
136787func (c *SubnetworksDeleteCall) Context(ctx context.Context) *SubnetworksDeleteCall {
136788	c.ctx_ = ctx
136789	return c
136790}
136791
136792// Header returns an http.Header that can be modified by the caller to
136793// add HTTP headers to the request.
136794func (c *SubnetworksDeleteCall) Header() http.Header {
136795	if c.header_ == nil {
136796		c.header_ = make(http.Header)
136797	}
136798	return c.header_
136799}
136800
136801func (c *SubnetworksDeleteCall) doRequest(alt string) (*http.Response, error) {
136802	reqHeaders := make(http.Header)
136803	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136804	for k, v := range c.header_ {
136805		reqHeaders[k] = v
136806	}
136807	reqHeaders.Set("User-Agent", c.s.userAgent())
136808	var body io.Reader = nil
136809	c.urlParams_.Set("alt", alt)
136810	c.urlParams_.Set("prettyPrint", "false")
136811	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
136812	urls += "?" + c.urlParams_.Encode()
136813	req, err := http.NewRequest("DELETE", urls, body)
136814	if err != nil {
136815		return nil, err
136816	}
136817	req.Header = reqHeaders
136818	googleapi.Expand(req.URL, map[string]string{
136819		"project":    c.project,
136820		"region":     c.region,
136821		"subnetwork": c.subnetwork,
136822	})
136823	return gensupport.SendRequest(c.ctx_, c.s.client, req)
136824}
136825
136826// Do executes the "compute.subnetworks.delete" call.
136827// Exactly one of *Operation or error will be non-nil. Any non-2xx
136828// status code is an error. Response headers are in either
136829// *Operation.ServerResponse.Header or (if a response was returned at
136830// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
136831// to check whether the returned error was because
136832// http.StatusNotModified was returned.
136833func (c *SubnetworksDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
136834	gensupport.SetOptions(c.urlParams_, opts...)
136835	res, err := c.doRequest("json")
136836	if res != nil && res.StatusCode == http.StatusNotModified {
136837		if res.Body != nil {
136838			res.Body.Close()
136839		}
136840		return nil, &googleapi.Error{
136841			Code:   res.StatusCode,
136842			Header: res.Header,
136843		}
136844	}
136845	if err != nil {
136846		return nil, err
136847	}
136848	defer googleapi.CloseBody(res)
136849	if err := googleapi.CheckResponse(res); err != nil {
136850		return nil, err
136851	}
136852	ret := &Operation{
136853		ServerResponse: googleapi.ServerResponse{
136854			Header:         res.Header,
136855			HTTPStatusCode: res.StatusCode,
136856		},
136857	}
136858	target := &ret
136859	if err := gensupport.DecodeResponse(target, res); err != nil {
136860		return nil, err
136861	}
136862	return ret, nil
136863	// {
136864	//   "description": "Deletes the specified subnetwork.",
136865	//   "httpMethod": "DELETE",
136866	//   "id": "compute.subnetworks.delete",
136867	//   "parameterOrder": [
136868	//     "project",
136869	//     "region",
136870	//     "subnetwork"
136871	//   ],
136872	//   "parameters": {
136873	//     "project": {
136874	//       "description": "Project ID for this request.",
136875	//       "location": "path",
136876	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
136877	//       "required": true,
136878	//       "type": "string"
136879	//     },
136880	//     "region": {
136881	//       "description": "Name of the region scoping this request.",
136882	//       "location": "path",
136883	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
136884	//       "required": true,
136885	//       "type": "string"
136886	//     },
136887	//     "requestId": {
136888	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
136889	//       "location": "query",
136890	//       "type": "string"
136891	//     },
136892	//     "subnetwork": {
136893	//       "description": "Name of the Subnetwork resource to delete.",
136894	//       "location": "path",
136895	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
136896	//       "required": true,
136897	//       "type": "string"
136898	//     }
136899	//   },
136900	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
136901	//   "response": {
136902	//     "$ref": "Operation"
136903	//   },
136904	//   "scopes": [
136905	//     "https://www.googleapis.com/auth/cloud-platform",
136906	//     "https://www.googleapis.com/auth/compute"
136907	//   ]
136908	// }
136909
136910}
136911
136912// method id "compute.subnetworks.expandIpCidrRange":
136913
136914type SubnetworksExpandIpCidrRangeCall struct {
136915	s                                   *Service
136916	project                             string
136917	region                              string
136918	subnetwork                          string
136919	subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest
136920	urlParams_                          gensupport.URLParams
136921	ctx_                                context.Context
136922	header_                             http.Header
136923}
136924
136925// ExpandIpCidrRange: Expands the IP CIDR range of the subnetwork to a
136926// specified value.
136927func (r *SubnetworksService) ExpandIpCidrRange(project string, region string, subnetwork string, subnetworksexpandipcidrrangerequest *SubnetworksExpandIpCidrRangeRequest) *SubnetworksExpandIpCidrRangeCall {
136928	c := &SubnetworksExpandIpCidrRangeCall{s: r.s, urlParams_: make(gensupport.URLParams)}
136929	c.project = project
136930	c.region = region
136931	c.subnetwork = subnetwork
136932	c.subnetworksexpandipcidrrangerequest = subnetworksexpandipcidrrangerequest
136933	return c
136934}
136935
136936// RequestId sets the optional parameter "requestId": An optional
136937// request ID to identify requests. Specify a unique request ID so that
136938// if you must retry your request, the server will know to ignore the
136939// request if it has already been completed.
136940//
136941// For example, consider a situation where you make an initial request
136942// and the request times out. If you make the request again with the
136943// same request ID, the server can check if original operation with the
136944// same request ID was received, and if so, will ignore the second
136945// request. This prevents clients from accidentally creating duplicate
136946// commitments.
136947//
136948// The request ID must be a valid UUID with the exception that zero UUID
136949// is not supported (00000000-0000-0000-0000-000000000000).
136950func (c *SubnetworksExpandIpCidrRangeCall) RequestId(requestId string) *SubnetworksExpandIpCidrRangeCall {
136951	c.urlParams_.Set("requestId", requestId)
136952	return c
136953}
136954
136955// Fields allows partial responses to be retrieved. See
136956// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
136957// for more information.
136958func (c *SubnetworksExpandIpCidrRangeCall) Fields(s ...googleapi.Field) *SubnetworksExpandIpCidrRangeCall {
136959	c.urlParams_.Set("fields", googleapi.CombineFields(s))
136960	return c
136961}
136962
136963// Context sets the context to be used in this call's Do method. Any
136964// pending HTTP request will be aborted if the provided context is
136965// canceled.
136966func (c *SubnetworksExpandIpCidrRangeCall) Context(ctx context.Context) *SubnetworksExpandIpCidrRangeCall {
136967	c.ctx_ = ctx
136968	return c
136969}
136970
136971// Header returns an http.Header that can be modified by the caller to
136972// add HTTP headers to the request.
136973func (c *SubnetworksExpandIpCidrRangeCall) Header() http.Header {
136974	if c.header_ == nil {
136975		c.header_ = make(http.Header)
136976	}
136977	return c.header_
136978}
136979
136980func (c *SubnetworksExpandIpCidrRangeCall) doRequest(alt string) (*http.Response, error) {
136981	reqHeaders := make(http.Header)
136982	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
136983	for k, v := range c.header_ {
136984		reqHeaders[k] = v
136985	}
136986	reqHeaders.Set("User-Agent", c.s.userAgent())
136987	var body io.Reader = nil
136988	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworksexpandipcidrrangerequest)
136989	if err != nil {
136990		return nil, err
136991	}
136992	reqHeaders.Set("Content-Type", "application/json")
136993	c.urlParams_.Set("alt", alt)
136994	c.urlParams_.Set("prettyPrint", "false")
136995	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange")
136996	urls += "?" + c.urlParams_.Encode()
136997	req, err := http.NewRequest("POST", urls, body)
136998	if err != nil {
136999		return nil, err
137000	}
137001	req.Header = reqHeaders
137002	googleapi.Expand(req.URL, map[string]string{
137003		"project":    c.project,
137004		"region":     c.region,
137005		"subnetwork": c.subnetwork,
137006	})
137007	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137008}
137009
137010// Do executes the "compute.subnetworks.expandIpCidrRange" call.
137011// Exactly one of *Operation or error will be non-nil. Any non-2xx
137012// status code is an error. Response headers are in either
137013// *Operation.ServerResponse.Header or (if a response was returned at
137014// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137015// to check whether the returned error was because
137016// http.StatusNotModified was returned.
137017func (c *SubnetworksExpandIpCidrRangeCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137018	gensupport.SetOptions(c.urlParams_, opts...)
137019	res, err := c.doRequest("json")
137020	if res != nil && res.StatusCode == http.StatusNotModified {
137021		if res.Body != nil {
137022			res.Body.Close()
137023		}
137024		return nil, &googleapi.Error{
137025			Code:   res.StatusCode,
137026			Header: res.Header,
137027		}
137028	}
137029	if err != nil {
137030		return nil, err
137031	}
137032	defer googleapi.CloseBody(res)
137033	if err := googleapi.CheckResponse(res); err != nil {
137034		return nil, err
137035	}
137036	ret := &Operation{
137037		ServerResponse: googleapi.ServerResponse{
137038			Header:         res.Header,
137039			HTTPStatusCode: res.StatusCode,
137040		},
137041	}
137042	target := &ret
137043	if err := gensupport.DecodeResponse(target, res); err != nil {
137044		return nil, err
137045	}
137046	return ret, nil
137047	// {
137048	//   "description": "Expands the IP CIDR range of the subnetwork to a specified value.",
137049	//   "httpMethod": "POST",
137050	//   "id": "compute.subnetworks.expandIpCidrRange",
137051	//   "parameterOrder": [
137052	//     "project",
137053	//     "region",
137054	//     "subnetwork"
137055	//   ],
137056	//   "parameters": {
137057	//     "project": {
137058	//       "description": "Project ID for this request.",
137059	//       "location": "path",
137060	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137061	//       "required": true,
137062	//       "type": "string"
137063	//     },
137064	//     "region": {
137065	//       "description": "Name of the region scoping this request.",
137066	//       "location": "path",
137067	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137068	//       "required": true,
137069	//       "type": "string"
137070	//     },
137071	//     "requestId": {
137072	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137073	//       "location": "query",
137074	//       "type": "string"
137075	//     },
137076	//     "subnetwork": {
137077	//       "description": "Name of the Subnetwork resource to update.",
137078	//       "location": "path",
137079	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137080	//       "required": true,
137081	//       "type": "string"
137082	//     }
137083	//   },
137084	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/expandIpCidrRange",
137085	//   "request": {
137086	//     "$ref": "SubnetworksExpandIpCidrRangeRequest"
137087	//   },
137088	//   "response": {
137089	//     "$ref": "Operation"
137090	//   },
137091	//   "scopes": [
137092	//     "https://www.googleapis.com/auth/cloud-platform",
137093	//     "https://www.googleapis.com/auth/compute"
137094	//   ]
137095	// }
137096
137097}
137098
137099// method id "compute.subnetworks.get":
137100
137101type SubnetworksGetCall struct {
137102	s            *Service
137103	project      string
137104	region       string
137105	subnetwork   string
137106	urlParams_   gensupport.URLParams
137107	ifNoneMatch_ string
137108	ctx_         context.Context
137109	header_      http.Header
137110}
137111
137112// Get: Returns the specified subnetwork. Gets a list of available
137113// subnetworks list() request.
137114func (r *SubnetworksService) Get(project string, region string, subnetwork string) *SubnetworksGetCall {
137115	c := &SubnetworksGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137116	c.project = project
137117	c.region = region
137118	c.subnetwork = subnetwork
137119	return c
137120}
137121
137122// Fields allows partial responses to be retrieved. See
137123// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137124// for more information.
137125func (c *SubnetworksGetCall) Fields(s ...googleapi.Field) *SubnetworksGetCall {
137126	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137127	return c
137128}
137129
137130// IfNoneMatch sets the optional parameter which makes the operation
137131// fail if the object's ETag matches the given value. This is useful for
137132// getting updates only after the object has changed since the last
137133// request. Use googleapi.IsNotModified to check whether the response
137134// error from Do is the result of In-None-Match.
137135func (c *SubnetworksGetCall) IfNoneMatch(entityTag string) *SubnetworksGetCall {
137136	c.ifNoneMatch_ = entityTag
137137	return c
137138}
137139
137140// Context sets the context to be used in this call's Do method. Any
137141// pending HTTP request will be aborted if the provided context is
137142// canceled.
137143func (c *SubnetworksGetCall) Context(ctx context.Context) *SubnetworksGetCall {
137144	c.ctx_ = ctx
137145	return c
137146}
137147
137148// Header returns an http.Header that can be modified by the caller to
137149// add HTTP headers to the request.
137150func (c *SubnetworksGetCall) Header() http.Header {
137151	if c.header_ == nil {
137152		c.header_ = make(http.Header)
137153	}
137154	return c.header_
137155}
137156
137157func (c *SubnetworksGetCall) doRequest(alt string) (*http.Response, error) {
137158	reqHeaders := make(http.Header)
137159	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137160	for k, v := range c.header_ {
137161		reqHeaders[k] = v
137162	}
137163	reqHeaders.Set("User-Agent", c.s.userAgent())
137164	if c.ifNoneMatch_ != "" {
137165		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137166	}
137167	var body io.Reader = nil
137168	c.urlParams_.Set("alt", alt)
137169	c.urlParams_.Set("prettyPrint", "false")
137170	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
137171	urls += "?" + c.urlParams_.Encode()
137172	req, err := http.NewRequest("GET", urls, body)
137173	if err != nil {
137174		return nil, err
137175	}
137176	req.Header = reqHeaders
137177	googleapi.Expand(req.URL, map[string]string{
137178		"project":    c.project,
137179		"region":     c.region,
137180		"subnetwork": c.subnetwork,
137181	})
137182	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137183}
137184
137185// Do executes the "compute.subnetworks.get" call.
137186// Exactly one of *Subnetwork or error will be non-nil. Any non-2xx
137187// status code is an error. Response headers are in either
137188// *Subnetwork.ServerResponse.Header or (if a response was returned at
137189// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137190// to check whether the returned error was because
137191// http.StatusNotModified was returned.
137192func (c *SubnetworksGetCall) Do(opts ...googleapi.CallOption) (*Subnetwork, error) {
137193	gensupport.SetOptions(c.urlParams_, opts...)
137194	res, err := c.doRequest("json")
137195	if res != nil && res.StatusCode == http.StatusNotModified {
137196		if res.Body != nil {
137197			res.Body.Close()
137198		}
137199		return nil, &googleapi.Error{
137200			Code:   res.StatusCode,
137201			Header: res.Header,
137202		}
137203	}
137204	if err != nil {
137205		return nil, err
137206	}
137207	defer googleapi.CloseBody(res)
137208	if err := googleapi.CheckResponse(res); err != nil {
137209		return nil, err
137210	}
137211	ret := &Subnetwork{
137212		ServerResponse: googleapi.ServerResponse{
137213			Header:         res.Header,
137214			HTTPStatusCode: res.StatusCode,
137215		},
137216	}
137217	target := &ret
137218	if err := gensupport.DecodeResponse(target, res); err != nil {
137219		return nil, err
137220	}
137221	return ret, nil
137222	// {
137223	//   "description": "Returns the specified subnetwork. Gets a list of available subnetworks list() request.",
137224	//   "httpMethod": "GET",
137225	//   "id": "compute.subnetworks.get",
137226	//   "parameterOrder": [
137227	//     "project",
137228	//     "region",
137229	//     "subnetwork"
137230	//   ],
137231	//   "parameters": {
137232	//     "project": {
137233	//       "description": "Project ID for this request.",
137234	//       "location": "path",
137235	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137236	//       "required": true,
137237	//       "type": "string"
137238	//     },
137239	//     "region": {
137240	//       "description": "Name of the region scoping this request.",
137241	//       "location": "path",
137242	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137243	//       "required": true,
137244	//       "type": "string"
137245	//     },
137246	//     "subnetwork": {
137247	//       "description": "Name of the Subnetwork resource to return.",
137248	//       "location": "path",
137249	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137250	//       "required": true,
137251	//       "type": "string"
137252	//     }
137253	//   },
137254	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
137255	//   "response": {
137256	//     "$ref": "Subnetwork"
137257	//   },
137258	//   "scopes": [
137259	//     "https://www.googleapis.com/auth/cloud-platform",
137260	//     "https://www.googleapis.com/auth/compute",
137261	//     "https://www.googleapis.com/auth/compute.readonly"
137262	//   ]
137263	// }
137264
137265}
137266
137267// method id "compute.subnetworks.getIamPolicy":
137268
137269type SubnetworksGetIamPolicyCall struct {
137270	s            *Service
137271	project      string
137272	region       string
137273	resource     string
137274	urlParams_   gensupport.URLParams
137275	ifNoneMatch_ string
137276	ctx_         context.Context
137277	header_      http.Header
137278}
137279
137280// GetIamPolicy: Gets the access control policy for a resource. May be
137281// empty if no such policy or resource exists.
137282func (r *SubnetworksService) GetIamPolicy(project string, region string, resource string) *SubnetworksGetIamPolicyCall {
137283	c := &SubnetworksGetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137284	c.project = project
137285	c.region = region
137286	c.resource = resource
137287	return c
137288}
137289
137290// OptionsRequestedPolicyVersion sets the optional parameter
137291// "optionsRequestedPolicyVersion": Requested IAM Policy version.
137292func (c *SubnetworksGetIamPolicyCall) OptionsRequestedPolicyVersion(optionsRequestedPolicyVersion int64) *SubnetworksGetIamPolicyCall {
137293	c.urlParams_.Set("optionsRequestedPolicyVersion", fmt.Sprint(optionsRequestedPolicyVersion))
137294	return c
137295}
137296
137297// Fields allows partial responses to be retrieved. See
137298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137299// for more information.
137300func (c *SubnetworksGetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksGetIamPolicyCall {
137301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137302	return c
137303}
137304
137305// IfNoneMatch sets the optional parameter which makes the operation
137306// fail if the object's ETag matches the given value. This is useful for
137307// getting updates only after the object has changed since the last
137308// request. Use googleapi.IsNotModified to check whether the response
137309// error from Do is the result of In-None-Match.
137310func (c *SubnetworksGetIamPolicyCall) IfNoneMatch(entityTag string) *SubnetworksGetIamPolicyCall {
137311	c.ifNoneMatch_ = entityTag
137312	return c
137313}
137314
137315// Context sets the context to be used in this call's Do method. Any
137316// pending HTTP request will be aborted if the provided context is
137317// canceled.
137318func (c *SubnetworksGetIamPolicyCall) Context(ctx context.Context) *SubnetworksGetIamPolicyCall {
137319	c.ctx_ = ctx
137320	return c
137321}
137322
137323// Header returns an http.Header that can be modified by the caller to
137324// add HTTP headers to the request.
137325func (c *SubnetworksGetIamPolicyCall) Header() http.Header {
137326	if c.header_ == nil {
137327		c.header_ = make(http.Header)
137328	}
137329	return c.header_
137330}
137331
137332func (c *SubnetworksGetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
137333	reqHeaders := make(http.Header)
137334	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137335	for k, v := range c.header_ {
137336		reqHeaders[k] = v
137337	}
137338	reqHeaders.Set("User-Agent", c.s.userAgent())
137339	if c.ifNoneMatch_ != "" {
137340		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137341	}
137342	var body io.Reader = nil
137343	c.urlParams_.Set("alt", alt)
137344	c.urlParams_.Set("prettyPrint", "false")
137345	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy")
137346	urls += "?" + c.urlParams_.Encode()
137347	req, err := http.NewRequest("GET", urls, body)
137348	if err != nil {
137349		return nil, err
137350	}
137351	req.Header = reqHeaders
137352	googleapi.Expand(req.URL, map[string]string{
137353		"project":  c.project,
137354		"region":   c.region,
137355		"resource": c.resource,
137356	})
137357	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137358}
137359
137360// Do executes the "compute.subnetworks.getIamPolicy" call.
137361// Exactly one of *Policy or error will be non-nil. Any non-2xx status
137362// code is an error. Response headers are in either
137363// *Policy.ServerResponse.Header or (if a response was returned at all)
137364// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
137365// check whether the returned error was because http.StatusNotModified
137366// was returned.
137367func (c *SubnetworksGetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
137368	gensupport.SetOptions(c.urlParams_, opts...)
137369	res, err := c.doRequest("json")
137370	if res != nil && res.StatusCode == http.StatusNotModified {
137371		if res.Body != nil {
137372			res.Body.Close()
137373		}
137374		return nil, &googleapi.Error{
137375			Code:   res.StatusCode,
137376			Header: res.Header,
137377		}
137378	}
137379	if err != nil {
137380		return nil, err
137381	}
137382	defer googleapi.CloseBody(res)
137383	if err := googleapi.CheckResponse(res); err != nil {
137384		return nil, err
137385	}
137386	ret := &Policy{
137387		ServerResponse: googleapi.ServerResponse{
137388			Header:         res.Header,
137389			HTTPStatusCode: res.StatusCode,
137390		},
137391	}
137392	target := &ret
137393	if err := gensupport.DecodeResponse(target, res); err != nil {
137394		return nil, err
137395	}
137396	return ret, nil
137397	// {
137398	//   "description": "Gets the access control policy for a resource. May be empty if no such policy or resource exists.",
137399	//   "httpMethod": "GET",
137400	//   "id": "compute.subnetworks.getIamPolicy",
137401	//   "parameterOrder": [
137402	//     "project",
137403	//     "region",
137404	//     "resource"
137405	//   ],
137406	//   "parameters": {
137407	//     "optionsRequestedPolicyVersion": {
137408	//       "description": "Requested IAM Policy version.",
137409	//       "format": "int32",
137410	//       "location": "query",
137411	//       "type": "integer"
137412	//     },
137413	//     "project": {
137414	//       "description": "Project ID for this request.",
137415	//       "location": "path",
137416	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137417	//       "required": true,
137418	//       "type": "string"
137419	//     },
137420	//     "region": {
137421	//       "description": "The name of the region for this request.",
137422	//       "location": "path",
137423	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137424	//       "required": true,
137425	//       "type": "string"
137426	//     },
137427	//     "resource": {
137428	//       "description": "Name or id of the resource for this request.",
137429	//       "location": "path",
137430	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
137431	//       "required": true,
137432	//       "type": "string"
137433	//     }
137434	//   },
137435	//   "path": "{project}/regions/{region}/subnetworks/{resource}/getIamPolicy",
137436	//   "response": {
137437	//     "$ref": "Policy"
137438	//   },
137439	//   "scopes": [
137440	//     "https://www.googleapis.com/auth/cloud-platform",
137441	//     "https://www.googleapis.com/auth/compute",
137442	//     "https://www.googleapis.com/auth/compute.readonly"
137443	//   ]
137444	// }
137445
137446}
137447
137448// method id "compute.subnetworks.insert":
137449
137450type SubnetworksInsertCall struct {
137451	s          *Service
137452	project    string
137453	region     string
137454	subnetwork *Subnetwork
137455	urlParams_ gensupport.URLParams
137456	ctx_       context.Context
137457	header_    http.Header
137458}
137459
137460// Insert: Creates a subnetwork in the specified project using the data
137461// included in the request.
137462func (r *SubnetworksService) Insert(project string, region string, subnetwork *Subnetwork) *SubnetworksInsertCall {
137463	c := &SubnetworksInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137464	c.project = project
137465	c.region = region
137466	c.subnetwork = subnetwork
137467	return c
137468}
137469
137470// RequestId sets the optional parameter "requestId": An optional
137471// request ID to identify requests. Specify a unique request ID so that
137472// if you must retry your request, the server will know to ignore the
137473// request if it has already been completed.
137474//
137475// For example, consider a situation where you make an initial request
137476// and the request times out. If you make the request again with the
137477// same request ID, the server can check if original operation with the
137478// same request ID was received, and if so, will ignore the second
137479// request. This prevents clients from accidentally creating duplicate
137480// commitments.
137481//
137482// The request ID must be a valid UUID with the exception that zero UUID
137483// is not supported (00000000-0000-0000-0000-000000000000).
137484func (c *SubnetworksInsertCall) RequestId(requestId string) *SubnetworksInsertCall {
137485	c.urlParams_.Set("requestId", requestId)
137486	return c
137487}
137488
137489// Fields allows partial responses to be retrieved. See
137490// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137491// for more information.
137492func (c *SubnetworksInsertCall) Fields(s ...googleapi.Field) *SubnetworksInsertCall {
137493	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137494	return c
137495}
137496
137497// Context sets the context to be used in this call's Do method. Any
137498// pending HTTP request will be aborted if the provided context is
137499// canceled.
137500func (c *SubnetworksInsertCall) Context(ctx context.Context) *SubnetworksInsertCall {
137501	c.ctx_ = ctx
137502	return c
137503}
137504
137505// Header returns an http.Header that can be modified by the caller to
137506// add HTTP headers to the request.
137507func (c *SubnetworksInsertCall) Header() http.Header {
137508	if c.header_ == nil {
137509		c.header_ = make(http.Header)
137510	}
137511	return c.header_
137512}
137513
137514func (c *SubnetworksInsertCall) doRequest(alt string) (*http.Response, error) {
137515	reqHeaders := make(http.Header)
137516	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137517	for k, v := range c.header_ {
137518		reqHeaders[k] = v
137519	}
137520	reqHeaders.Set("User-Agent", c.s.userAgent())
137521	var body io.Reader = nil
137522	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork)
137523	if err != nil {
137524		return nil, err
137525	}
137526	reqHeaders.Set("Content-Type", "application/json")
137527	c.urlParams_.Set("alt", alt)
137528	c.urlParams_.Set("prettyPrint", "false")
137529	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
137530	urls += "?" + c.urlParams_.Encode()
137531	req, err := http.NewRequest("POST", urls, body)
137532	if err != nil {
137533		return nil, err
137534	}
137535	req.Header = reqHeaders
137536	googleapi.Expand(req.URL, map[string]string{
137537		"project": c.project,
137538		"region":  c.region,
137539	})
137540	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137541}
137542
137543// Do executes the "compute.subnetworks.insert" call.
137544// Exactly one of *Operation or error will be non-nil. Any non-2xx
137545// status code is an error. Response headers are in either
137546// *Operation.ServerResponse.Header or (if a response was returned at
137547// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
137548// to check whether the returned error was because
137549// http.StatusNotModified was returned.
137550func (c *SubnetworksInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
137551	gensupport.SetOptions(c.urlParams_, opts...)
137552	res, err := c.doRequest("json")
137553	if res != nil && res.StatusCode == http.StatusNotModified {
137554		if res.Body != nil {
137555			res.Body.Close()
137556		}
137557		return nil, &googleapi.Error{
137558			Code:   res.StatusCode,
137559			Header: res.Header,
137560		}
137561	}
137562	if err != nil {
137563		return nil, err
137564	}
137565	defer googleapi.CloseBody(res)
137566	if err := googleapi.CheckResponse(res); err != nil {
137567		return nil, err
137568	}
137569	ret := &Operation{
137570		ServerResponse: googleapi.ServerResponse{
137571			Header:         res.Header,
137572			HTTPStatusCode: res.StatusCode,
137573		},
137574	}
137575	target := &ret
137576	if err := gensupport.DecodeResponse(target, res); err != nil {
137577		return nil, err
137578	}
137579	return ret, nil
137580	// {
137581	//   "description": "Creates a subnetwork in the specified project using the data included in the request.",
137582	//   "httpMethod": "POST",
137583	//   "id": "compute.subnetworks.insert",
137584	//   "parameterOrder": [
137585	//     "project",
137586	//     "region"
137587	//   ],
137588	//   "parameters": {
137589	//     "project": {
137590	//       "description": "Project ID for this request.",
137591	//       "location": "path",
137592	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137593	//       "required": true,
137594	//       "type": "string"
137595	//     },
137596	//     "region": {
137597	//       "description": "Name of the region scoping this request.",
137598	//       "location": "path",
137599	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137600	//       "required": true,
137601	//       "type": "string"
137602	//     },
137603	//     "requestId": {
137604	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
137605	//       "location": "query",
137606	//       "type": "string"
137607	//     }
137608	//   },
137609	//   "path": "{project}/regions/{region}/subnetworks",
137610	//   "request": {
137611	//     "$ref": "Subnetwork"
137612	//   },
137613	//   "response": {
137614	//     "$ref": "Operation"
137615	//   },
137616	//   "scopes": [
137617	//     "https://www.googleapis.com/auth/cloud-platform",
137618	//     "https://www.googleapis.com/auth/compute"
137619	//   ]
137620	// }
137621
137622}
137623
137624// method id "compute.subnetworks.list":
137625
137626type SubnetworksListCall struct {
137627	s            *Service
137628	project      string
137629	region       string
137630	urlParams_   gensupport.URLParams
137631	ifNoneMatch_ string
137632	ctx_         context.Context
137633	header_      http.Header
137634}
137635
137636// List: Retrieves a list of subnetworks available to the specified
137637// project.
137638func (r *SubnetworksService) List(project string, region string) *SubnetworksListCall {
137639	c := &SubnetworksListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137640	c.project = project
137641	c.region = region
137642	return c
137643}
137644
137645// Filter sets the optional parameter "filter": A filter expression that
137646// filters resources listed in the response. The expression must specify
137647// the field name, a comparison operator, and the value that you want to
137648// use for filtering. The value must be a string, a number, or a
137649// boolean. The comparison operator must be either =, !=, >, or <.
137650//
137651// For example, if you are filtering Compute Engine instances, you can
137652// exclude instances named example-instance by specifying name !=
137653// example-instance.
137654//
137655// You can also filter nested fields. For example, you could specify
137656// scheduling.automaticRestart = false to include instances only if they
137657// are not scheduled for automatic restarts. You can use filtering on
137658// nested fields to filter based on resource labels.
137659//
137660// To filter on multiple expressions, provide each separate expression
137661// within parentheses. For example, (scheduling.automaticRestart = true)
137662// (cpuPlatform = "Intel Skylake"). By default, each expression is an
137663// AND expression. However, you can include AND and OR expressions
137664// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
137665// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
137666// true).
137667func (c *SubnetworksListCall) Filter(filter string) *SubnetworksListCall {
137668	c.urlParams_.Set("filter", filter)
137669	return c
137670}
137671
137672// MaxResults sets the optional parameter "maxResults": The maximum
137673// number of results per page that should be returned. If the number of
137674// available results is larger than maxResults, Compute Engine returns a
137675// nextPageToken that can be used to get the next page of results in
137676// subsequent list requests. Acceptable values are 0 to 500, inclusive.
137677// (Default: 500)
137678func (c *SubnetworksListCall) MaxResults(maxResults int64) *SubnetworksListCall {
137679	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137680	return c
137681}
137682
137683// OrderBy sets the optional parameter "orderBy": Sorts list results by
137684// a certain order. By default, results are returned in alphanumerical
137685// order based on the resource name.
137686//
137687// You can also sort results in descending order based on the creation
137688// timestamp using orderBy="creationTimestamp desc". This sorts results
137689// based on the creationTimestamp field in reverse chronological order
137690// (newest result first). Use this to sort resources like operations so
137691// that the newest operation is returned first.
137692//
137693// Currently, only sorting by name or creationTimestamp desc is
137694// supported.
137695func (c *SubnetworksListCall) OrderBy(orderBy string) *SubnetworksListCall {
137696	c.urlParams_.Set("orderBy", orderBy)
137697	return c
137698}
137699
137700// PageToken sets the optional parameter "pageToken": Specifies a page
137701// token to use. Set pageToken to the nextPageToken returned by a
137702// previous list request to get the next page of results.
137703func (c *SubnetworksListCall) PageToken(pageToken string) *SubnetworksListCall {
137704	c.urlParams_.Set("pageToken", pageToken)
137705	return c
137706}
137707
137708// Fields allows partial responses to be retrieved. See
137709// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137710// for more information.
137711func (c *SubnetworksListCall) Fields(s ...googleapi.Field) *SubnetworksListCall {
137712	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137713	return c
137714}
137715
137716// IfNoneMatch sets the optional parameter which makes the operation
137717// fail if the object's ETag matches the given value. This is useful for
137718// getting updates only after the object has changed since the last
137719// request. Use googleapi.IsNotModified to check whether the response
137720// error from Do is the result of In-None-Match.
137721func (c *SubnetworksListCall) IfNoneMatch(entityTag string) *SubnetworksListCall {
137722	c.ifNoneMatch_ = entityTag
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 *SubnetworksListCall) Context(ctx context.Context) *SubnetworksListCall {
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 *SubnetworksListCall) Header() http.Header {
137737	if c.header_ == nil {
137738		c.header_ = make(http.Header)
137739	}
137740	return c.header_
137741}
137742
137743func (c *SubnetworksListCall) doRequest(alt string) (*http.Response, error) {
137744	reqHeaders := make(http.Header)
137745	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
137746	for k, v := range c.header_ {
137747		reqHeaders[k] = v
137748	}
137749	reqHeaders.Set("User-Agent", c.s.userAgent())
137750	if c.ifNoneMatch_ != "" {
137751		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
137752	}
137753	var body io.Reader = nil
137754	c.urlParams_.Set("alt", alt)
137755	c.urlParams_.Set("prettyPrint", "false")
137756	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks")
137757	urls += "?" + c.urlParams_.Encode()
137758	req, err := http.NewRequest("GET", urls, body)
137759	if err != nil {
137760		return nil, err
137761	}
137762	req.Header = reqHeaders
137763	googleapi.Expand(req.URL, map[string]string{
137764		"project": c.project,
137765		"region":  c.region,
137766	})
137767	return gensupport.SendRequest(c.ctx_, c.s.client, req)
137768}
137769
137770// Do executes the "compute.subnetworks.list" call.
137771// Exactly one of *SubnetworkList or error will be non-nil. Any non-2xx
137772// status code is an error. Response headers are in either
137773// *SubnetworkList.ServerResponse.Header or (if a response was returned
137774// at all) in error.(*googleapi.Error).Header. Use
137775// googleapi.IsNotModified to check whether the returned error was
137776// because http.StatusNotModified was returned.
137777func (c *SubnetworksListCall) Do(opts ...googleapi.CallOption) (*SubnetworkList, error) {
137778	gensupport.SetOptions(c.urlParams_, opts...)
137779	res, err := c.doRequest("json")
137780	if res != nil && res.StatusCode == http.StatusNotModified {
137781		if res.Body != nil {
137782			res.Body.Close()
137783		}
137784		return nil, &googleapi.Error{
137785			Code:   res.StatusCode,
137786			Header: res.Header,
137787		}
137788	}
137789	if err != nil {
137790		return nil, err
137791	}
137792	defer googleapi.CloseBody(res)
137793	if err := googleapi.CheckResponse(res); err != nil {
137794		return nil, err
137795	}
137796	ret := &SubnetworkList{
137797		ServerResponse: googleapi.ServerResponse{
137798			Header:         res.Header,
137799			HTTPStatusCode: res.StatusCode,
137800		},
137801	}
137802	target := &ret
137803	if err := gensupport.DecodeResponse(target, res); err != nil {
137804		return nil, err
137805	}
137806	return ret, nil
137807	// {
137808	//   "description": "Retrieves a list of subnetworks available to the specified project.",
137809	//   "httpMethod": "GET",
137810	//   "id": "compute.subnetworks.list",
137811	//   "parameterOrder": [
137812	//     "project",
137813	//     "region"
137814	//   ],
137815	//   "parameters": {
137816	//     "filter": {
137817	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
137818	//       "location": "query",
137819	//       "type": "string"
137820	//     },
137821	//     "maxResults": {
137822	//       "default": "500",
137823	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
137824	//       "format": "uint32",
137825	//       "location": "query",
137826	//       "minimum": "0",
137827	//       "type": "integer"
137828	//     },
137829	//     "orderBy": {
137830	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
137831	//       "location": "query",
137832	//       "type": "string"
137833	//     },
137834	//     "pageToken": {
137835	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
137836	//       "location": "query",
137837	//       "type": "string"
137838	//     },
137839	//     "project": {
137840	//       "description": "Project ID for this request.",
137841	//       "location": "path",
137842	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
137843	//       "required": true,
137844	//       "type": "string"
137845	//     },
137846	//     "region": {
137847	//       "description": "Name of the region scoping this request.",
137848	//       "location": "path",
137849	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
137850	//       "required": true,
137851	//       "type": "string"
137852	//     }
137853	//   },
137854	//   "path": "{project}/regions/{region}/subnetworks",
137855	//   "response": {
137856	//     "$ref": "SubnetworkList"
137857	//   },
137858	//   "scopes": [
137859	//     "https://www.googleapis.com/auth/cloud-platform",
137860	//     "https://www.googleapis.com/auth/compute",
137861	//     "https://www.googleapis.com/auth/compute.readonly"
137862	//   ]
137863	// }
137864
137865}
137866
137867// Pages invokes f for each page of results.
137868// A non-nil error returned from f will halt the iteration.
137869// The provided context supersedes any context provided to the Context method.
137870func (c *SubnetworksListCall) Pages(ctx context.Context, f func(*SubnetworkList) error) error {
137871	c.ctx_ = ctx
137872	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
137873	for {
137874		x, err := c.Do()
137875		if err != nil {
137876			return err
137877		}
137878		if err := f(x); err != nil {
137879			return err
137880		}
137881		if x.NextPageToken == "" {
137882			return nil
137883		}
137884		c.PageToken(x.NextPageToken)
137885	}
137886}
137887
137888// method id "compute.subnetworks.listUsable":
137889
137890type SubnetworksListUsableCall struct {
137891	s            *Service
137892	project      string
137893	urlParams_   gensupport.URLParams
137894	ifNoneMatch_ string
137895	ctx_         context.Context
137896	header_      http.Header
137897}
137898
137899// ListUsable: Retrieves an aggregated list of all usable subnetworks in
137900// the project. The list contains all of the subnetworks in the project
137901// and the subnetworks that were shared by a Shared VPC host project.
137902func (r *SubnetworksService) ListUsable(project string) *SubnetworksListUsableCall {
137903	c := &SubnetworksListUsableCall{s: r.s, urlParams_: make(gensupport.URLParams)}
137904	c.project = project
137905	return c
137906}
137907
137908// Filter sets the optional parameter "filter": A filter expression that
137909// filters resources listed in the response. The expression must specify
137910// the field name, a comparison operator, and the value that you want to
137911// use for filtering. The value must be a string, a number, or a
137912// boolean. The comparison operator must be either =, !=, >, or <.
137913//
137914// For example, if you are filtering Compute Engine instances, you can
137915// exclude instances named example-instance by specifying name !=
137916// example-instance.
137917//
137918// You can also filter nested fields. For example, you could specify
137919// scheduling.automaticRestart = false to include instances only if they
137920// are not scheduled for automatic restarts. You can use filtering on
137921// nested fields to filter based on resource labels.
137922//
137923// To filter on multiple expressions, provide each separate expression
137924// within parentheses. For example, (scheduling.automaticRestart = true)
137925// (cpuPlatform = "Intel Skylake"). By default, each expression is an
137926// AND expression. However, you can include AND and OR expressions
137927// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
137928// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
137929// true).
137930func (c *SubnetworksListUsableCall) Filter(filter string) *SubnetworksListUsableCall {
137931	c.urlParams_.Set("filter", filter)
137932	return c
137933}
137934
137935// MaxResults sets the optional parameter "maxResults": The maximum
137936// number of results per page that should be returned. If the number of
137937// available results is larger than maxResults, Compute Engine returns a
137938// nextPageToken that can be used to get the next page of results in
137939// subsequent list requests. Acceptable values are 0 to 500, inclusive.
137940// (Default: 500)
137941func (c *SubnetworksListUsableCall) MaxResults(maxResults int64) *SubnetworksListUsableCall {
137942	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
137943	return c
137944}
137945
137946// OrderBy sets the optional parameter "orderBy": Sorts list results by
137947// a certain order. By default, results are returned in alphanumerical
137948// order based on the resource name.
137949//
137950// You can also sort results in descending order based on the creation
137951// timestamp using orderBy="creationTimestamp desc". This sorts results
137952// based on the creationTimestamp field in reverse chronological order
137953// (newest result first). Use this to sort resources like operations so
137954// that the newest operation is returned first.
137955//
137956// Currently, only sorting by name or creationTimestamp desc is
137957// supported.
137958func (c *SubnetworksListUsableCall) OrderBy(orderBy string) *SubnetworksListUsableCall {
137959	c.urlParams_.Set("orderBy", orderBy)
137960	return c
137961}
137962
137963// PageToken sets the optional parameter "pageToken": Specifies a page
137964// token to use. Set pageToken to the nextPageToken returned by a
137965// previous list request to get the next page of results.
137966func (c *SubnetworksListUsableCall) PageToken(pageToken string) *SubnetworksListUsableCall {
137967	c.urlParams_.Set("pageToken", pageToken)
137968	return c
137969}
137970
137971// Fields allows partial responses to be retrieved. See
137972// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
137973// for more information.
137974func (c *SubnetworksListUsableCall) Fields(s ...googleapi.Field) *SubnetworksListUsableCall {
137975	c.urlParams_.Set("fields", googleapi.CombineFields(s))
137976	return c
137977}
137978
137979// IfNoneMatch sets the optional parameter which makes the operation
137980// fail if the object's ETag matches the given value. This is useful for
137981// getting updates only after the object has changed since the last
137982// request. Use googleapi.IsNotModified to check whether the response
137983// error from Do is the result of In-None-Match.
137984func (c *SubnetworksListUsableCall) IfNoneMatch(entityTag string) *SubnetworksListUsableCall {
137985	c.ifNoneMatch_ = entityTag
137986	return c
137987}
137988
137989// Context sets the context to be used in this call's Do method. Any
137990// pending HTTP request will be aborted if the provided context is
137991// canceled.
137992func (c *SubnetworksListUsableCall) Context(ctx context.Context) *SubnetworksListUsableCall {
137993	c.ctx_ = ctx
137994	return c
137995}
137996
137997// Header returns an http.Header that can be modified by the caller to
137998// add HTTP headers to the request.
137999func (c *SubnetworksListUsableCall) Header() http.Header {
138000	if c.header_ == nil {
138001		c.header_ = make(http.Header)
138002	}
138003	return c.header_
138004}
138005
138006func (c *SubnetworksListUsableCall) doRequest(alt string) (*http.Response, error) {
138007	reqHeaders := make(http.Header)
138008	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138009	for k, v := range c.header_ {
138010		reqHeaders[k] = v
138011	}
138012	reqHeaders.Set("User-Agent", c.s.userAgent())
138013	if c.ifNoneMatch_ != "" {
138014		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
138015	}
138016	var body io.Reader = nil
138017	c.urlParams_.Set("alt", alt)
138018	c.urlParams_.Set("prettyPrint", "false")
138019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/subnetworks/listUsable")
138020	urls += "?" + c.urlParams_.Encode()
138021	req, err := http.NewRequest("GET", urls, body)
138022	if err != nil {
138023		return nil, err
138024	}
138025	req.Header = reqHeaders
138026	googleapi.Expand(req.URL, map[string]string{
138027		"project": c.project,
138028	})
138029	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138030}
138031
138032// Do executes the "compute.subnetworks.listUsable" call.
138033// Exactly one of *UsableSubnetworksAggregatedList or error will be
138034// non-nil. Any non-2xx status code is an error. Response headers are in
138035// either *UsableSubnetworksAggregatedList.ServerResponse.Header or (if
138036// a response was returned at all) in error.(*googleapi.Error).Header.
138037// Use googleapi.IsNotModified to check whether the returned error was
138038// because http.StatusNotModified was returned.
138039func (c *SubnetworksListUsableCall) Do(opts ...googleapi.CallOption) (*UsableSubnetworksAggregatedList, error) {
138040	gensupport.SetOptions(c.urlParams_, opts...)
138041	res, err := c.doRequest("json")
138042	if res != nil && res.StatusCode == http.StatusNotModified {
138043		if res.Body != nil {
138044			res.Body.Close()
138045		}
138046		return nil, &googleapi.Error{
138047			Code:   res.StatusCode,
138048			Header: res.Header,
138049		}
138050	}
138051	if err != nil {
138052		return nil, err
138053	}
138054	defer googleapi.CloseBody(res)
138055	if err := googleapi.CheckResponse(res); err != nil {
138056		return nil, err
138057	}
138058	ret := &UsableSubnetworksAggregatedList{
138059		ServerResponse: googleapi.ServerResponse{
138060			Header:         res.Header,
138061			HTTPStatusCode: res.StatusCode,
138062		},
138063	}
138064	target := &ret
138065	if err := gensupport.DecodeResponse(target, res); err != nil {
138066		return nil, err
138067	}
138068	return ret, nil
138069	// {
138070	//   "description": "Retrieves an aggregated list of all usable subnetworks in the project. The list contains all of the subnetworks in the project and the subnetworks that were shared by a Shared VPC host project.",
138071	//   "httpMethod": "GET",
138072	//   "id": "compute.subnetworks.listUsable",
138073	//   "parameterOrder": [
138074	//     "project"
138075	//   ],
138076	//   "parameters": {
138077	//     "filter": {
138078	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
138079	//       "location": "query",
138080	//       "type": "string"
138081	//     },
138082	//     "maxResults": {
138083	//       "default": "500",
138084	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
138085	//       "format": "uint32",
138086	//       "location": "query",
138087	//       "minimum": "0",
138088	//       "type": "integer"
138089	//     },
138090	//     "orderBy": {
138091	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
138092	//       "location": "query",
138093	//       "type": "string"
138094	//     },
138095	//     "pageToken": {
138096	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
138097	//       "location": "query",
138098	//       "type": "string"
138099	//     },
138100	//     "project": {
138101	//       "description": "Project ID for this request.",
138102	//       "location": "path",
138103	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138104	//       "required": true,
138105	//       "type": "string"
138106	//     }
138107	//   },
138108	//   "path": "{project}/aggregated/subnetworks/listUsable",
138109	//   "response": {
138110	//     "$ref": "UsableSubnetworksAggregatedList"
138111	//   },
138112	//   "scopes": [
138113	//     "https://www.googleapis.com/auth/cloud-platform",
138114	//     "https://www.googleapis.com/auth/compute",
138115	//     "https://www.googleapis.com/auth/compute.readonly"
138116	//   ]
138117	// }
138118
138119}
138120
138121// Pages invokes f for each page of results.
138122// A non-nil error returned from f will halt the iteration.
138123// The provided context supersedes any context provided to the Context method.
138124func (c *SubnetworksListUsableCall) Pages(ctx context.Context, f func(*UsableSubnetworksAggregatedList) error) error {
138125	c.ctx_ = ctx
138126	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
138127	for {
138128		x, err := c.Do()
138129		if err != nil {
138130			return err
138131		}
138132		if err := f(x); err != nil {
138133			return err
138134		}
138135		if x.NextPageToken == "" {
138136			return nil
138137		}
138138		c.PageToken(x.NextPageToken)
138139	}
138140}
138141
138142// method id "compute.subnetworks.patch":
138143
138144type SubnetworksPatchCall struct {
138145	s           *Service
138146	project     string
138147	region      string
138148	subnetwork  string
138149	subnetwork2 *Subnetwork
138150	urlParams_  gensupport.URLParams
138151	ctx_        context.Context
138152	header_     http.Header
138153}
138154
138155// Patch: Patches the specified subnetwork with the data included in the
138156// request. Only certain fields can up updated with a patch request as
138157// indicated in the field descriptions. You must specify the current
138158// fingeprint of the subnetwork resource being patched.
138159func (r *SubnetworksService) Patch(project string, region string, subnetwork string, subnetwork2 *Subnetwork) *SubnetworksPatchCall {
138160	c := &SubnetworksPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138161	c.project = project
138162	c.region = region
138163	c.subnetwork = subnetwork
138164	c.subnetwork2 = subnetwork2
138165	return c
138166}
138167
138168// DrainTimeoutSeconds sets the optional parameter
138169// "drainTimeoutSeconds": The drain timeout specifies the upper bound in
138170// seconds on the amount of time allowed to drain connections from the
138171// current ACTIVE subnetwork to the current BACKUP subnetwork. The drain
138172// timeout is only applicable when the following conditions are true: -
138173// the subnetwork being patched has purpose =
138174// INTERNAL_HTTPS_LOAD_BALANCER - the subnetwork being patched has role
138175// = BACKUP - the patch request is setting the role to ACTIVE. Note that
138176// after this patch operation the roles of the ACTIVE and BACKUP
138177// subnetworks will be swapped.
138178func (c *SubnetworksPatchCall) DrainTimeoutSeconds(drainTimeoutSeconds int64) *SubnetworksPatchCall {
138179	c.urlParams_.Set("drainTimeoutSeconds", fmt.Sprint(drainTimeoutSeconds))
138180	return c
138181}
138182
138183// RequestId sets the optional parameter "requestId": An optional
138184// request ID to identify requests. Specify a unique request ID so that
138185// if you must retry your request, the server will know to ignore the
138186// request if it has already been completed.
138187//
138188// For example, consider a situation where you make an initial request
138189// and the request times out. If you make the request again with the
138190// same request ID, the server can check if original operation with the
138191// same request ID was received, and if so, will ignore the second
138192// request. This prevents clients from accidentally creating duplicate
138193// commitments.
138194//
138195// The request ID must be a valid UUID with the exception that zero UUID
138196// is not supported (00000000-0000-0000-0000-000000000000).
138197func (c *SubnetworksPatchCall) RequestId(requestId string) *SubnetworksPatchCall {
138198	c.urlParams_.Set("requestId", requestId)
138199	return c
138200}
138201
138202// Fields allows partial responses to be retrieved. See
138203// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138204// for more information.
138205func (c *SubnetworksPatchCall) Fields(s ...googleapi.Field) *SubnetworksPatchCall {
138206	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138207	return c
138208}
138209
138210// Context sets the context to be used in this call's Do method. Any
138211// pending HTTP request will be aborted if the provided context is
138212// canceled.
138213func (c *SubnetworksPatchCall) Context(ctx context.Context) *SubnetworksPatchCall {
138214	c.ctx_ = ctx
138215	return c
138216}
138217
138218// Header returns an http.Header that can be modified by the caller to
138219// add HTTP headers to the request.
138220func (c *SubnetworksPatchCall) Header() http.Header {
138221	if c.header_ == nil {
138222		c.header_ = make(http.Header)
138223	}
138224	return c.header_
138225}
138226
138227func (c *SubnetworksPatchCall) doRequest(alt string) (*http.Response, error) {
138228	reqHeaders := make(http.Header)
138229	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138230	for k, v := range c.header_ {
138231		reqHeaders[k] = v
138232	}
138233	reqHeaders.Set("User-Agent", c.s.userAgent())
138234	var body io.Reader = nil
138235	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetwork2)
138236	if err != nil {
138237		return nil, err
138238	}
138239	reqHeaders.Set("Content-Type", "application/json")
138240	c.urlParams_.Set("alt", alt)
138241	c.urlParams_.Set("prettyPrint", "false")
138242	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}")
138243	urls += "?" + c.urlParams_.Encode()
138244	req, err := http.NewRequest("PATCH", urls, body)
138245	if err != nil {
138246		return nil, err
138247	}
138248	req.Header = reqHeaders
138249	googleapi.Expand(req.URL, map[string]string{
138250		"project":    c.project,
138251		"region":     c.region,
138252		"subnetwork": c.subnetwork,
138253	})
138254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138255}
138256
138257// Do executes the "compute.subnetworks.patch" call.
138258// Exactly one of *Operation or error will be non-nil. Any non-2xx
138259// status code is an error. Response headers are in either
138260// *Operation.ServerResponse.Header or (if a response was returned at
138261// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138262// to check whether the returned error was because
138263// http.StatusNotModified was returned.
138264func (c *SubnetworksPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138265	gensupport.SetOptions(c.urlParams_, opts...)
138266	res, err := c.doRequest("json")
138267	if res != nil && res.StatusCode == http.StatusNotModified {
138268		if res.Body != nil {
138269			res.Body.Close()
138270		}
138271		return nil, &googleapi.Error{
138272			Code:   res.StatusCode,
138273			Header: res.Header,
138274		}
138275	}
138276	if err != nil {
138277		return nil, err
138278	}
138279	defer googleapi.CloseBody(res)
138280	if err := googleapi.CheckResponse(res); err != nil {
138281		return nil, err
138282	}
138283	ret := &Operation{
138284		ServerResponse: googleapi.ServerResponse{
138285			Header:         res.Header,
138286			HTTPStatusCode: res.StatusCode,
138287		},
138288	}
138289	target := &ret
138290	if err := gensupport.DecodeResponse(target, res); err != nil {
138291		return nil, err
138292	}
138293	return ret, nil
138294	// {
138295	//   "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 fingeprint of the subnetwork resource being patched.",
138296	//   "httpMethod": "PATCH",
138297	//   "id": "compute.subnetworks.patch",
138298	//   "parameterOrder": [
138299	//     "project",
138300	//     "region",
138301	//     "subnetwork"
138302	//   ],
138303	//   "parameters": {
138304	//     "drainTimeoutSeconds": {
138305	//       "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.",
138306	//       "format": "int32",
138307	//       "location": "query",
138308	//       "type": "integer"
138309	//     },
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	//     "region": {
138318	//       "description": "Name of the region scoping this request.",
138319	//       "location": "path",
138320	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138321	//       "required": true,
138322	//       "type": "string"
138323	//     },
138324	//     "requestId": {
138325	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138326	//       "location": "query",
138327	//       "type": "string"
138328	//     },
138329	//     "subnetwork": {
138330	//       "description": "Name of the Subnetwork resource to patch.",
138331	//       "location": "path",
138332	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138333	//       "required": true,
138334	//       "type": "string"
138335	//     }
138336	//   },
138337	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}",
138338	//   "request": {
138339	//     "$ref": "Subnetwork"
138340	//   },
138341	//   "response": {
138342	//     "$ref": "Operation"
138343	//   },
138344	//   "scopes": [
138345	//     "https://www.googleapis.com/auth/cloud-platform",
138346	//     "https://www.googleapis.com/auth/compute"
138347	//   ]
138348	// }
138349
138350}
138351
138352// method id "compute.subnetworks.setIamPolicy":
138353
138354type SubnetworksSetIamPolicyCall struct {
138355	s                      *Service
138356	project                string
138357	region                 string
138358	resource               string
138359	regionsetpolicyrequest *RegionSetPolicyRequest
138360	urlParams_             gensupport.URLParams
138361	ctx_                   context.Context
138362	header_                http.Header
138363}
138364
138365// SetIamPolicy: Sets the access control policy on the specified
138366// resource. Replaces any existing policy.
138367func (r *SubnetworksService) SetIamPolicy(project string, region string, resource string, regionsetpolicyrequest *RegionSetPolicyRequest) *SubnetworksSetIamPolicyCall {
138368	c := &SubnetworksSetIamPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138369	c.project = project
138370	c.region = region
138371	c.resource = resource
138372	c.regionsetpolicyrequest = regionsetpolicyrequest
138373	return c
138374}
138375
138376// Fields allows partial responses to be retrieved. See
138377// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138378// for more information.
138379func (c *SubnetworksSetIamPolicyCall) Fields(s ...googleapi.Field) *SubnetworksSetIamPolicyCall {
138380	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138381	return c
138382}
138383
138384// Context sets the context to be used in this call's Do method. Any
138385// pending HTTP request will be aborted if the provided context is
138386// canceled.
138387func (c *SubnetworksSetIamPolicyCall) Context(ctx context.Context) *SubnetworksSetIamPolicyCall {
138388	c.ctx_ = ctx
138389	return c
138390}
138391
138392// Header returns an http.Header that can be modified by the caller to
138393// add HTTP headers to the request.
138394func (c *SubnetworksSetIamPolicyCall) Header() http.Header {
138395	if c.header_ == nil {
138396		c.header_ = make(http.Header)
138397	}
138398	return c.header_
138399}
138400
138401func (c *SubnetworksSetIamPolicyCall) doRequest(alt string) (*http.Response, error) {
138402	reqHeaders := make(http.Header)
138403	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138404	for k, v := range c.header_ {
138405		reqHeaders[k] = v
138406	}
138407	reqHeaders.Set("User-Agent", c.s.userAgent())
138408	var body io.Reader = nil
138409	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetpolicyrequest)
138410	if err != nil {
138411		return nil, err
138412	}
138413	reqHeaders.Set("Content-Type", "application/json")
138414	c.urlParams_.Set("alt", alt)
138415	c.urlParams_.Set("prettyPrint", "false")
138416	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy")
138417	urls += "?" + c.urlParams_.Encode()
138418	req, err := http.NewRequest("POST", urls, body)
138419	if err != nil {
138420		return nil, err
138421	}
138422	req.Header = reqHeaders
138423	googleapi.Expand(req.URL, map[string]string{
138424		"project":  c.project,
138425		"region":   c.region,
138426		"resource": c.resource,
138427	})
138428	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138429}
138430
138431// Do executes the "compute.subnetworks.setIamPolicy" call.
138432// Exactly one of *Policy or error will be non-nil. Any non-2xx status
138433// code is an error. Response headers are in either
138434// *Policy.ServerResponse.Header or (if a response was returned at all)
138435// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
138436// check whether the returned error was because http.StatusNotModified
138437// was returned.
138438func (c *SubnetworksSetIamPolicyCall) Do(opts ...googleapi.CallOption) (*Policy, error) {
138439	gensupport.SetOptions(c.urlParams_, opts...)
138440	res, err := c.doRequest("json")
138441	if res != nil && res.StatusCode == http.StatusNotModified {
138442		if res.Body != nil {
138443			res.Body.Close()
138444		}
138445		return nil, &googleapi.Error{
138446			Code:   res.StatusCode,
138447			Header: res.Header,
138448		}
138449	}
138450	if err != nil {
138451		return nil, err
138452	}
138453	defer googleapi.CloseBody(res)
138454	if err := googleapi.CheckResponse(res); err != nil {
138455		return nil, err
138456	}
138457	ret := &Policy{
138458		ServerResponse: googleapi.ServerResponse{
138459			Header:         res.Header,
138460			HTTPStatusCode: res.StatusCode,
138461		},
138462	}
138463	target := &ret
138464	if err := gensupport.DecodeResponse(target, res); err != nil {
138465		return nil, err
138466	}
138467	return ret, nil
138468	// {
138469	//   "description": "Sets the access control policy on the specified resource. Replaces any existing policy.",
138470	//   "httpMethod": "POST",
138471	//   "id": "compute.subnetworks.setIamPolicy",
138472	//   "parameterOrder": [
138473	//     "project",
138474	//     "region",
138475	//     "resource"
138476	//   ],
138477	//   "parameters": {
138478	//     "project": {
138479	//       "description": "Project ID for this request.",
138480	//       "location": "path",
138481	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138482	//       "required": true,
138483	//       "type": "string"
138484	//     },
138485	//     "region": {
138486	//       "description": "The name of the region for this request.",
138487	//       "location": "path",
138488	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138489	//       "required": true,
138490	//       "type": "string"
138491	//     },
138492	//     "resource": {
138493	//       "description": "Name or id of the resource for this request.",
138494	//       "location": "path",
138495	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138496	//       "required": true,
138497	//       "type": "string"
138498	//     }
138499	//   },
138500	//   "path": "{project}/regions/{region}/subnetworks/{resource}/setIamPolicy",
138501	//   "request": {
138502	//     "$ref": "RegionSetPolicyRequest"
138503	//   },
138504	//   "response": {
138505	//     "$ref": "Policy"
138506	//   },
138507	//   "scopes": [
138508	//     "https://www.googleapis.com/auth/cloud-platform",
138509	//     "https://www.googleapis.com/auth/compute"
138510	//   ]
138511	// }
138512
138513}
138514
138515// method id "compute.subnetworks.setPrivateIpGoogleAccess":
138516
138517type SubnetworksSetPrivateIpGoogleAccessCall struct {
138518	s                                          *Service
138519	project                                    string
138520	region                                     string
138521	subnetwork                                 string
138522	subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest
138523	urlParams_                                 gensupport.URLParams
138524	ctx_                                       context.Context
138525	header_                                    http.Header
138526}
138527
138528// SetPrivateIpGoogleAccess: Set whether VMs in this subnet can access
138529// Google services without assigning external IP addresses through
138530// Private Google Access.
138531func (r *SubnetworksService) SetPrivateIpGoogleAccess(project string, region string, subnetwork string, subnetworkssetprivateipgoogleaccessrequest *SubnetworksSetPrivateIpGoogleAccessRequest) *SubnetworksSetPrivateIpGoogleAccessCall {
138532	c := &SubnetworksSetPrivateIpGoogleAccessCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138533	c.project = project
138534	c.region = region
138535	c.subnetwork = subnetwork
138536	c.subnetworkssetprivateipgoogleaccessrequest = subnetworkssetprivateipgoogleaccessrequest
138537	return c
138538}
138539
138540// RequestId sets the optional parameter "requestId": An optional
138541// request ID to identify requests. Specify a unique request ID so that
138542// if you must retry your request, the server will know to ignore the
138543// request if it has already been completed.
138544//
138545// For example, consider a situation where you make an initial request
138546// and the request times out. If you make the request again with the
138547// same request ID, the server can check if original operation with the
138548// same request ID was received, and if so, will ignore the second
138549// request. This prevents clients from accidentally creating duplicate
138550// commitments.
138551//
138552// The request ID must be a valid UUID with the exception that zero UUID
138553// is not supported (00000000-0000-0000-0000-000000000000).
138554func (c *SubnetworksSetPrivateIpGoogleAccessCall) RequestId(requestId string) *SubnetworksSetPrivateIpGoogleAccessCall {
138555	c.urlParams_.Set("requestId", requestId)
138556	return c
138557}
138558
138559// Fields allows partial responses to be retrieved. See
138560// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138561// for more information.
138562func (c *SubnetworksSetPrivateIpGoogleAccessCall) Fields(s ...googleapi.Field) *SubnetworksSetPrivateIpGoogleAccessCall {
138563	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138564	return c
138565}
138566
138567// Context sets the context to be used in this call's Do method. Any
138568// pending HTTP request will be aborted if the provided context is
138569// canceled.
138570func (c *SubnetworksSetPrivateIpGoogleAccessCall) Context(ctx context.Context) *SubnetworksSetPrivateIpGoogleAccessCall {
138571	c.ctx_ = ctx
138572	return c
138573}
138574
138575// Header returns an http.Header that can be modified by the caller to
138576// add HTTP headers to the request.
138577func (c *SubnetworksSetPrivateIpGoogleAccessCall) Header() http.Header {
138578	if c.header_ == nil {
138579		c.header_ = make(http.Header)
138580	}
138581	return c.header_
138582}
138583
138584func (c *SubnetworksSetPrivateIpGoogleAccessCall) doRequest(alt string) (*http.Response, error) {
138585	reqHeaders := make(http.Header)
138586	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138587	for k, v := range c.header_ {
138588		reqHeaders[k] = v
138589	}
138590	reqHeaders.Set("User-Agent", c.s.userAgent())
138591	var body io.Reader = nil
138592	body, err := googleapi.WithoutDataWrapper.JSONReader(c.subnetworkssetprivateipgoogleaccessrequest)
138593	if err != nil {
138594		return nil, err
138595	}
138596	reqHeaders.Set("Content-Type", "application/json")
138597	c.urlParams_.Set("alt", alt)
138598	c.urlParams_.Set("prettyPrint", "false")
138599	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess")
138600	urls += "?" + c.urlParams_.Encode()
138601	req, err := http.NewRequest("POST", urls, body)
138602	if err != nil {
138603		return nil, err
138604	}
138605	req.Header = reqHeaders
138606	googleapi.Expand(req.URL, map[string]string{
138607		"project":    c.project,
138608		"region":     c.region,
138609		"subnetwork": c.subnetwork,
138610	})
138611	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138612}
138613
138614// Do executes the "compute.subnetworks.setPrivateIpGoogleAccess" call.
138615// Exactly one of *Operation or error will be non-nil. Any non-2xx
138616// status code is an error. Response headers are in either
138617// *Operation.ServerResponse.Header or (if a response was returned at
138618// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
138619// to check whether the returned error was because
138620// http.StatusNotModified was returned.
138621func (c *SubnetworksSetPrivateIpGoogleAccessCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
138622	gensupport.SetOptions(c.urlParams_, opts...)
138623	res, err := c.doRequest("json")
138624	if res != nil && res.StatusCode == http.StatusNotModified {
138625		if res.Body != nil {
138626			res.Body.Close()
138627		}
138628		return nil, &googleapi.Error{
138629			Code:   res.StatusCode,
138630			Header: res.Header,
138631		}
138632	}
138633	if err != nil {
138634		return nil, err
138635	}
138636	defer googleapi.CloseBody(res)
138637	if err := googleapi.CheckResponse(res); err != nil {
138638		return nil, err
138639	}
138640	ret := &Operation{
138641		ServerResponse: googleapi.ServerResponse{
138642			Header:         res.Header,
138643			HTTPStatusCode: res.StatusCode,
138644		},
138645	}
138646	target := &ret
138647	if err := gensupport.DecodeResponse(target, res); err != nil {
138648		return nil, err
138649	}
138650	return ret, nil
138651	// {
138652	//   "description": "Set whether VMs in this subnet can access Google services without assigning external IP addresses through Private Google Access.",
138653	//   "httpMethod": "POST",
138654	//   "id": "compute.subnetworks.setPrivateIpGoogleAccess",
138655	//   "parameterOrder": [
138656	//     "project",
138657	//     "region",
138658	//     "subnetwork"
138659	//   ],
138660	//   "parameters": {
138661	//     "project": {
138662	//       "description": "Project ID for this request.",
138663	//       "location": "path",
138664	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138665	//       "required": true,
138666	//       "type": "string"
138667	//     },
138668	//     "region": {
138669	//       "description": "Name of the region scoping this request.",
138670	//       "location": "path",
138671	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138672	//       "required": true,
138673	//       "type": "string"
138674	//     },
138675	//     "requestId": {
138676	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
138677	//       "location": "query",
138678	//       "type": "string"
138679	//     },
138680	//     "subnetwork": {
138681	//       "description": "Name of the Subnetwork resource.",
138682	//       "location": "path",
138683	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138684	//       "required": true,
138685	//       "type": "string"
138686	//     }
138687	//   },
138688	//   "path": "{project}/regions/{region}/subnetworks/{subnetwork}/setPrivateIpGoogleAccess",
138689	//   "request": {
138690	//     "$ref": "SubnetworksSetPrivateIpGoogleAccessRequest"
138691	//   },
138692	//   "response": {
138693	//     "$ref": "Operation"
138694	//   },
138695	//   "scopes": [
138696	//     "https://www.googleapis.com/auth/cloud-platform",
138697	//     "https://www.googleapis.com/auth/compute"
138698	//   ]
138699	// }
138700
138701}
138702
138703// method id "compute.subnetworks.testIamPermissions":
138704
138705type SubnetworksTestIamPermissionsCall struct {
138706	s                      *Service
138707	project                string
138708	region                 string
138709	resource               string
138710	testpermissionsrequest *TestPermissionsRequest
138711	urlParams_             gensupport.URLParams
138712	ctx_                   context.Context
138713	header_                http.Header
138714}
138715
138716// TestIamPermissions: Returns permissions that a caller has on the
138717// specified resource.
138718func (r *SubnetworksService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *SubnetworksTestIamPermissionsCall {
138719	c := &SubnetworksTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138720	c.project = project
138721	c.region = region
138722	c.resource = resource
138723	c.testpermissionsrequest = testpermissionsrequest
138724	return c
138725}
138726
138727// Fields allows partial responses to be retrieved. See
138728// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138729// for more information.
138730func (c *SubnetworksTestIamPermissionsCall) Fields(s ...googleapi.Field) *SubnetworksTestIamPermissionsCall {
138731	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138732	return c
138733}
138734
138735// Context sets the context to be used in this call's Do method. Any
138736// pending HTTP request will be aborted if the provided context is
138737// canceled.
138738func (c *SubnetworksTestIamPermissionsCall) Context(ctx context.Context) *SubnetworksTestIamPermissionsCall {
138739	c.ctx_ = ctx
138740	return c
138741}
138742
138743// Header returns an http.Header that can be modified by the caller to
138744// add HTTP headers to the request.
138745func (c *SubnetworksTestIamPermissionsCall) Header() http.Header {
138746	if c.header_ == nil {
138747		c.header_ = make(http.Header)
138748	}
138749	return c.header_
138750}
138751
138752func (c *SubnetworksTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
138753	reqHeaders := make(http.Header)
138754	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
138755	for k, v := range c.header_ {
138756		reqHeaders[k] = v
138757	}
138758	reqHeaders.Set("User-Agent", c.s.userAgent())
138759	var body io.Reader = nil
138760	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
138761	if err != nil {
138762		return nil, err
138763	}
138764	reqHeaders.Set("Content-Type", "application/json")
138765	c.urlParams_.Set("alt", alt)
138766	c.urlParams_.Set("prettyPrint", "false")
138767	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions")
138768	urls += "?" + c.urlParams_.Encode()
138769	req, err := http.NewRequest("POST", urls, body)
138770	if err != nil {
138771		return nil, err
138772	}
138773	req.Header = reqHeaders
138774	googleapi.Expand(req.URL, map[string]string{
138775		"project":  c.project,
138776		"region":   c.region,
138777		"resource": c.resource,
138778	})
138779	return gensupport.SendRequest(c.ctx_, c.s.client, req)
138780}
138781
138782// Do executes the "compute.subnetworks.testIamPermissions" call.
138783// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
138784// non-2xx status code is an error. Response headers are in either
138785// *TestPermissionsResponse.ServerResponse.Header or (if a response was
138786// returned at all) in error.(*googleapi.Error).Header. Use
138787// googleapi.IsNotModified to check whether the returned error was
138788// because http.StatusNotModified was returned.
138789func (c *SubnetworksTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
138790	gensupport.SetOptions(c.urlParams_, opts...)
138791	res, err := c.doRequest("json")
138792	if res != nil && res.StatusCode == http.StatusNotModified {
138793		if res.Body != nil {
138794			res.Body.Close()
138795		}
138796		return nil, &googleapi.Error{
138797			Code:   res.StatusCode,
138798			Header: res.Header,
138799		}
138800	}
138801	if err != nil {
138802		return nil, err
138803	}
138804	defer googleapi.CloseBody(res)
138805	if err := googleapi.CheckResponse(res); err != nil {
138806		return nil, err
138807	}
138808	ret := &TestPermissionsResponse{
138809		ServerResponse: googleapi.ServerResponse{
138810			Header:         res.Header,
138811			HTTPStatusCode: res.StatusCode,
138812		},
138813	}
138814	target := &ret
138815	if err := gensupport.DecodeResponse(target, res); err != nil {
138816		return nil, err
138817	}
138818	return ret, nil
138819	// {
138820	//   "description": "Returns permissions that a caller has on the specified resource.",
138821	//   "httpMethod": "POST",
138822	//   "id": "compute.subnetworks.testIamPermissions",
138823	//   "parameterOrder": [
138824	//     "project",
138825	//     "region",
138826	//     "resource"
138827	//   ],
138828	//   "parameters": {
138829	//     "project": {
138830	//       "description": "Project ID for this request.",
138831	//       "location": "path",
138832	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
138833	//       "required": true,
138834	//       "type": "string"
138835	//     },
138836	//     "region": {
138837	//       "description": "The name of the region for this request.",
138838	//       "location": "path",
138839	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
138840	//       "required": true,
138841	//       "type": "string"
138842	//     },
138843	//     "resource": {
138844	//       "description": "Name or id of the resource for this request.",
138845	//       "location": "path",
138846	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
138847	//       "required": true,
138848	//       "type": "string"
138849	//     }
138850	//   },
138851	//   "path": "{project}/regions/{region}/subnetworks/{resource}/testIamPermissions",
138852	//   "request": {
138853	//     "$ref": "TestPermissionsRequest"
138854	//   },
138855	//   "response": {
138856	//     "$ref": "TestPermissionsResponse"
138857	//   },
138858	//   "scopes": [
138859	//     "https://www.googleapis.com/auth/cloud-platform",
138860	//     "https://www.googleapis.com/auth/compute",
138861	//     "https://www.googleapis.com/auth/compute.readonly"
138862	//   ]
138863	// }
138864
138865}
138866
138867// method id "compute.targetHttpProxies.aggregatedList":
138868
138869type TargetHttpProxiesAggregatedListCall struct {
138870	s            *Service
138871	project      string
138872	urlParams_   gensupport.URLParams
138873	ifNoneMatch_ string
138874	ctx_         context.Context
138875	header_      http.Header
138876}
138877
138878// AggregatedList: Retrieves the list of all TargetHttpProxy resources,
138879// regional and global, available to the specified project.
138880func (r *TargetHttpProxiesService) AggregatedList(project string) *TargetHttpProxiesAggregatedListCall {
138881	c := &TargetHttpProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
138882	c.project = project
138883	return c
138884}
138885
138886// Filter sets the optional parameter "filter": A filter expression that
138887// filters resources listed in the response. The expression must specify
138888// the field name, a comparison operator, and the value that you want to
138889// use for filtering. The value must be a string, a number, or a
138890// boolean. The comparison operator must be either =, !=, >, or <.
138891//
138892// For example, if you are filtering Compute Engine instances, you can
138893// exclude instances named example-instance by specifying name !=
138894// example-instance.
138895//
138896// You can also filter nested fields. For example, you could specify
138897// scheduling.automaticRestart = false to include instances only if they
138898// are not scheduled for automatic restarts. You can use filtering on
138899// nested fields to filter based on resource labels.
138900//
138901// To filter on multiple expressions, provide each separate expression
138902// within parentheses. For example, (scheduling.automaticRestart = true)
138903// (cpuPlatform = "Intel Skylake"). By default, each expression is an
138904// AND expression. However, you can include AND and OR expressions
138905// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
138906// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
138907// true).
138908func (c *TargetHttpProxiesAggregatedListCall) Filter(filter string) *TargetHttpProxiesAggregatedListCall {
138909	c.urlParams_.Set("filter", filter)
138910	return c
138911}
138912
138913// IncludeAllScopes sets the optional parameter "includeAllScopes":
138914// Indicates whether every visible scope for each scope type (zone,
138915// region, global) should be included in the response. For new resource
138916// types added after this field, the flag has no effect as new resource
138917// types will always include every visible scope for each scope type in
138918// response. For resource types which predate this field, if this flag
138919// is omitted or false, only scopes of the scope types where the
138920// resource type is expected to be found will be included.
138921func (c *TargetHttpProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpProxiesAggregatedListCall {
138922	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
138923	return c
138924}
138925
138926// MaxResults sets the optional parameter "maxResults": The maximum
138927// number of results per page that should be returned. If the number of
138928// available results is larger than maxResults, Compute Engine returns a
138929// nextPageToken that can be used to get the next page of results in
138930// subsequent list requests. Acceptable values are 0 to 500, inclusive.
138931// (Default: 500)
138932func (c *TargetHttpProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpProxiesAggregatedListCall {
138933	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
138934	return c
138935}
138936
138937// OrderBy sets the optional parameter "orderBy": Sorts list results by
138938// a certain order. By default, results are returned in alphanumerical
138939// order based on the resource name.
138940//
138941// You can also sort results in descending order based on the creation
138942// timestamp using orderBy="creationTimestamp desc". This sorts results
138943// based on the creationTimestamp field in reverse chronological order
138944// (newest result first). Use this to sort resources like operations so
138945// that the newest operation is returned first.
138946//
138947// Currently, only sorting by name or creationTimestamp desc is
138948// supported.
138949func (c *TargetHttpProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpProxiesAggregatedListCall {
138950	c.urlParams_.Set("orderBy", orderBy)
138951	return c
138952}
138953
138954// PageToken sets the optional parameter "pageToken": Specifies a page
138955// token to use. Set pageToken to the nextPageToken returned by a
138956// previous list request to get the next page of results.
138957func (c *TargetHttpProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpProxiesAggregatedListCall {
138958	c.urlParams_.Set("pageToken", pageToken)
138959	return c
138960}
138961
138962// Fields allows partial responses to be retrieved. See
138963// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
138964// for more information.
138965func (c *TargetHttpProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesAggregatedListCall {
138966	c.urlParams_.Set("fields", googleapi.CombineFields(s))
138967	return c
138968}
138969
138970// IfNoneMatch sets the optional parameter which makes the operation
138971// fail if the object's ETag matches the given value. This is useful for
138972// getting updates only after the object has changed since the last
138973// request. Use googleapi.IsNotModified to check whether the response
138974// error from Do is the result of In-None-Match.
138975func (c *TargetHttpProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesAggregatedListCall {
138976	c.ifNoneMatch_ = entityTag
138977	return c
138978}
138979
138980// Context sets the context to be used in this call's Do method. Any
138981// pending HTTP request will be aborted if the provided context is
138982// canceled.
138983func (c *TargetHttpProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpProxiesAggregatedListCall {
138984	c.ctx_ = ctx
138985	return c
138986}
138987
138988// Header returns an http.Header that can be modified by the caller to
138989// add HTTP headers to the request.
138990func (c *TargetHttpProxiesAggregatedListCall) Header() http.Header {
138991	if c.header_ == nil {
138992		c.header_ = make(http.Header)
138993	}
138994	return c.header_
138995}
138996
138997func (c *TargetHttpProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
138998	reqHeaders := make(http.Header)
138999	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139000	for k, v := range c.header_ {
139001		reqHeaders[k] = v
139002	}
139003	reqHeaders.Set("User-Agent", c.s.userAgent())
139004	if c.ifNoneMatch_ != "" {
139005		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139006	}
139007	var body io.Reader = nil
139008	c.urlParams_.Set("alt", alt)
139009	c.urlParams_.Set("prettyPrint", "false")
139010	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpProxies")
139011	urls += "?" + c.urlParams_.Encode()
139012	req, err := http.NewRequest("GET", urls, body)
139013	if err != nil {
139014		return nil, err
139015	}
139016	req.Header = reqHeaders
139017	googleapi.Expand(req.URL, map[string]string{
139018		"project": c.project,
139019	})
139020	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139021}
139022
139023// Do executes the "compute.targetHttpProxies.aggregatedList" call.
139024// Exactly one of *TargetHttpProxyAggregatedList or error will be
139025// non-nil. Any non-2xx status code is an error. Response headers are in
139026// either *TargetHttpProxyAggregatedList.ServerResponse.Header or (if a
139027// response was returned at all) in error.(*googleapi.Error).Header. Use
139028// googleapi.IsNotModified to check whether the returned error was
139029// because http.StatusNotModified was returned.
139030func (c *TargetHttpProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyAggregatedList, error) {
139031	gensupport.SetOptions(c.urlParams_, opts...)
139032	res, err := c.doRequest("json")
139033	if res != nil && res.StatusCode == http.StatusNotModified {
139034		if res.Body != nil {
139035			res.Body.Close()
139036		}
139037		return nil, &googleapi.Error{
139038			Code:   res.StatusCode,
139039			Header: res.Header,
139040		}
139041	}
139042	if err != nil {
139043		return nil, err
139044	}
139045	defer googleapi.CloseBody(res)
139046	if err := googleapi.CheckResponse(res); err != nil {
139047		return nil, err
139048	}
139049	ret := &TargetHttpProxyAggregatedList{
139050		ServerResponse: googleapi.ServerResponse{
139051			Header:         res.Header,
139052			HTTPStatusCode: res.StatusCode,
139053		},
139054	}
139055	target := &ret
139056	if err := gensupport.DecodeResponse(target, res); err != nil {
139057		return nil, err
139058	}
139059	return ret, nil
139060	// {
139061	//   "description": "Retrieves the list of all TargetHttpProxy resources, regional and global, available to the specified project.",
139062	//   "httpMethod": "GET",
139063	//   "id": "compute.targetHttpProxies.aggregatedList",
139064	//   "parameterOrder": [
139065	//     "project"
139066	//   ],
139067	//   "parameters": {
139068	//     "filter": {
139069	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
139070	//       "location": "query",
139071	//       "type": "string"
139072	//     },
139073	//     "includeAllScopes": {
139074	//       "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.",
139075	//       "location": "query",
139076	//       "type": "boolean"
139077	//     },
139078	//     "maxResults": {
139079	//       "default": "500",
139080	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
139081	//       "format": "uint32",
139082	//       "location": "query",
139083	//       "minimum": "0",
139084	//       "type": "integer"
139085	//     },
139086	//     "orderBy": {
139087	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
139088	//       "location": "query",
139089	//       "type": "string"
139090	//     },
139091	//     "pageToken": {
139092	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
139093	//       "location": "query",
139094	//       "type": "string"
139095	//     },
139096	//     "project": {
139097	//       "description": "Name of the project scoping this request.",
139098	//       "location": "path",
139099	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139100	//       "required": true,
139101	//       "type": "string"
139102	//     }
139103	//   },
139104	//   "path": "{project}/aggregated/targetHttpProxies",
139105	//   "response": {
139106	//     "$ref": "TargetHttpProxyAggregatedList"
139107	//   },
139108	//   "scopes": [
139109	//     "https://www.googleapis.com/auth/cloud-platform",
139110	//     "https://www.googleapis.com/auth/compute",
139111	//     "https://www.googleapis.com/auth/compute.readonly"
139112	//   ]
139113	// }
139114
139115}
139116
139117// Pages invokes f for each page of results.
139118// A non-nil error returned from f will halt the iteration.
139119// The provided context supersedes any context provided to the Context method.
139120func (c *TargetHttpProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpProxyAggregatedList) error) error {
139121	c.ctx_ = ctx
139122	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139123	for {
139124		x, err := c.Do()
139125		if err != nil {
139126			return err
139127		}
139128		if err := f(x); err != nil {
139129			return err
139130		}
139131		if x.NextPageToken == "" {
139132			return nil
139133		}
139134		c.PageToken(x.NextPageToken)
139135	}
139136}
139137
139138// method id "compute.targetHttpProxies.delete":
139139
139140type TargetHttpProxiesDeleteCall struct {
139141	s               *Service
139142	project         string
139143	targetHttpProxy string
139144	urlParams_      gensupport.URLParams
139145	ctx_            context.Context
139146	header_         http.Header
139147}
139148
139149// Delete: Deletes the specified TargetHttpProxy resource.
139150// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/delete
139151func (r *TargetHttpProxiesService) Delete(project string, targetHttpProxy string) *TargetHttpProxiesDeleteCall {
139152	c := &TargetHttpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139153	c.project = project
139154	c.targetHttpProxy = targetHttpProxy
139155	return c
139156}
139157
139158// RequestId sets the optional parameter "requestId": An optional
139159// request ID to identify requests. Specify a unique request ID so that
139160// if you must retry your request, the server will know to ignore the
139161// request if it has already been completed.
139162//
139163// For example, consider a situation where you make an initial request
139164// and the request times out. If you make the request again with the
139165// same request ID, the server can check if original operation with the
139166// same request ID was received, and if so, will ignore the second
139167// request. This prevents clients from accidentally creating duplicate
139168// commitments.
139169//
139170// The request ID must be a valid UUID with the exception that zero UUID
139171// is not supported (00000000-0000-0000-0000-000000000000).
139172func (c *TargetHttpProxiesDeleteCall) RequestId(requestId string) *TargetHttpProxiesDeleteCall {
139173	c.urlParams_.Set("requestId", requestId)
139174	return c
139175}
139176
139177// Fields allows partial responses to be retrieved. See
139178// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139179// for more information.
139180func (c *TargetHttpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpProxiesDeleteCall {
139181	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139182	return c
139183}
139184
139185// Context sets the context to be used in this call's Do method. Any
139186// pending HTTP request will be aborted if the provided context is
139187// canceled.
139188func (c *TargetHttpProxiesDeleteCall) Context(ctx context.Context) *TargetHttpProxiesDeleteCall {
139189	c.ctx_ = ctx
139190	return c
139191}
139192
139193// Header returns an http.Header that can be modified by the caller to
139194// add HTTP headers to the request.
139195func (c *TargetHttpProxiesDeleteCall) Header() http.Header {
139196	if c.header_ == nil {
139197		c.header_ = make(http.Header)
139198	}
139199	return c.header_
139200}
139201
139202func (c *TargetHttpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
139203	reqHeaders := make(http.Header)
139204	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139205	for k, v := range c.header_ {
139206		reqHeaders[k] = v
139207	}
139208	reqHeaders.Set("User-Agent", c.s.userAgent())
139209	var body io.Reader = nil
139210	c.urlParams_.Set("alt", alt)
139211	c.urlParams_.Set("prettyPrint", "false")
139212	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
139213	urls += "?" + c.urlParams_.Encode()
139214	req, err := http.NewRequest("DELETE", urls, body)
139215	if err != nil {
139216		return nil, err
139217	}
139218	req.Header = reqHeaders
139219	googleapi.Expand(req.URL, map[string]string{
139220		"project":         c.project,
139221		"targetHttpProxy": c.targetHttpProxy,
139222	})
139223	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139224}
139225
139226// Do executes the "compute.targetHttpProxies.delete" call.
139227// Exactly one of *Operation or error will be non-nil. Any non-2xx
139228// status code is an error. Response headers are in either
139229// *Operation.ServerResponse.Header or (if a response was returned at
139230// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139231// to check whether the returned error was because
139232// http.StatusNotModified was returned.
139233func (c *TargetHttpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139234	gensupport.SetOptions(c.urlParams_, opts...)
139235	res, err := c.doRequest("json")
139236	if res != nil && res.StatusCode == http.StatusNotModified {
139237		if res.Body != nil {
139238			res.Body.Close()
139239		}
139240		return nil, &googleapi.Error{
139241			Code:   res.StatusCode,
139242			Header: res.Header,
139243		}
139244	}
139245	if err != nil {
139246		return nil, err
139247	}
139248	defer googleapi.CloseBody(res)
139249	if err := googleapi.CheckResponse(res); err != nil {
139250		return nil, err
139251	}
139252	ret := &Operation{
139253		ServerResponse: googleapi.ServerResponse{
139254			Header:         res.Header,
139255			HTTPStatusCode: res.StatusCode,
139256		},
139257	}
139258	target := &ret
139259	if err := gensupport.DecodeResponse(target, res); err != nil {
139260		return nil, err
139261	}
139262	return ret, nil
139263	// {
139264	//   "description": "Deletes the specified TargetHttpProxy resource.",
139265	//   "httpMethod": "DELETE",
139266	//   "id": "compute.targetHttpProxies.delete",
139267	//   "parameterOrder": [
139268	//     "project",
139269	//     "targetHttpProxy"
139270	//   ],
139271	//   "parameters": {
139272	//     "project": {
139273	//       "description": "Project ID for this request.",
139274	//       "location": "path",
139275	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139276	//       "required": true,
139277	//       "type": "string"
139278	//     },
139279	//     "requestId": {
139280	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139281	//       "location": "query",
139282	//       "type": "string"
139283	//     },
139284	//     "targetHttpProxy": {
139285	//       "description": "Name of the TargetHttpProxy resource to delete.",
139286	//       "location": "path",
139287	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139288	//       "required": true,
139289	//       "type": "string"
139290	//     }
139291	//   },
139292	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
139293	//   "response": {
139294	//     "$ref": "Operation"
139295	//   },
139296	//   "scopes": [
139297	//     "https://www.googleapis.com/auth/cloud-platform",
139298	//     "https://www.googleapis.com/auth/compute"
139299	//   ]
139300	// }
139301
139302}
139303
139304// method id "compute.targetHttpProxies.get":
139305
139306type TargetHttpProxiesGetCall struct {
139307	s               *Service
139308	project         string
139309	targetHttpProxy string
139310	urlParams_      gensupport.URLParams
139311	ifNoneMatch_    string
139312	ctx_            context.Context
139313	header_         http.Header
139314}
139315
139316// Get: Returns the specified TargetHttpProxy resource. Gets a list of
139317// available target HTTP proxies by making a list() request.
139318// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/get
139319func (r *TargetHttpProxiesService) Get(project string, targetHttpProxy string) *TargetHttpProxiesGetCall {
139320	c := &TargetHttpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139321	c.project = project
139322	c.targetHttpProxy = targetHttpProxy
139323	return c
139324}
139325
139326// Fields allows partial responses to be retrieved. See
139327// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139328// for more information.
139329func (c *TargetHttpProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpProxiesGetCall {
139330	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139331	return c
139332}
139333
139334// IfNoneMatch sets the optional parameter which makes the operation
139335// fail if the object's ETag matches the given value. This is useful for
139336// getting updates only after the object has changed since the last
139337// request. Use googleapi.IsNotModified to check whether the response
139338// error from Do is the result of In-None-Match.
139339func (c *TargetHttpProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpProxiesGetCall {
139340	c.ifNoneMatch_ = entityTag
139341	return c
139342}
139343
139344// Context sets the context to be used in this call's Do method. Any
139345// pending HTTP request will be aborted if the provided context is
139346// canceled.
139347func (c *TargetHttpProxiesGetCall) Context(ctx context.Context) *TargetHttpProxiesGetCall {
139348	c.ctx_ = ctx
139349	return c
139350}
139351
139352// Header returns an http.Header that can be modified by the caller to
139353// add HTTP headers to the request.
139354func (c *TargetHttpProxiesGetCall) Header() http.Header {
139355	if c.header_ == nil {
139356		c.header_ = make(http.Header)
139357	}
139358	return c.header_
139359}
139360
139361func (c *TargetHttpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
139362	reqHeaders := make(http.Header)
139363	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139364	for k, v := range c.header_ {
139365		reqHeaders[k] = v
139366	}
139367	reqHeaders.Set("User-Agent", c.s.userAgent())
139368	if c.ifNoneMatch_ != "" {
139369		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139370	}
139371	var body io.Reader = nil
139372	c.urlParams_.Set("alt", alt)
139373	c.urlParams_.Set("prettyPrint", "false")
139374	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{targetHttpProxy}")
139375	urls += "?" + c.urlParams_.Encode()
139376	req, err := http.NewRequest("GET", urls, body)
139377	if err != nil {
139378		return nil, err
139379	}
139380	req.Header = reqHeaders
139381	googleapi.Expand(req.URL, map[string]string{
139382		"project":         c.project,
139383		"targetHttpProxy": c.targetHttpProxy,
139384	})
139385	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139386}
139387
139388// Do executes the "compute.targetHttpProxies.get" call.
139389// Exactly one of *TargetHttpProxy or error will be non-nil. Any non-2xx
139390// status code is an error. Response headers are in either
139391// *TargetHttpProxy.ServerResponse.Header or (if a response was returned
139392// at all) in error.(*googleapi.Error).Header. Use
139393// googleapi.IsNotModified to check whether the returned error was
139394// because http.StatusNotModified was returned.
139395func (c *TargetHttpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxy, error) {
139396	gensupport.SetOptions(c.urlParams_, opts...)
139397	res, err := c.doRequest("json")
139398	if res != nil && res.StatusCode == http.StatusNotModified {
139399		if res.Body != nil {
139400			res.Body.Close()
139401		}
139402		return nil, &googleapi.Error{
139403			Code:   res.StatusCode,
139404			Header: res.Header,
139405		}
139406	}
139407	if err != nil {
139408		return nil, err
139409	}
139410	defer googleapi.CloseBody(res)
139411	if err := googleapi.CheckResponse(res); err != nil {
139412		return nil, err
139413	}
139414	ret := &TargetHttpProxy{
139415		ServerResponse: googleapi.ServerResponse{
139416			Header:         res.Header,
139417			HTTPStatusCode: res.StatusCode,
139418		},
139419	}
139420	target := &ret
139421	if err := gensupport.DecodeResponse(target, res); err != nil {
139422		return nil, err
139423	}
139424	return ret, nil
139425	// {
139426	//   "description": "Returns the specified TargetHttpProxy resource. Gets a list of available target HTTP proxies by making a list() request.",
139427	//   "httpMethod": "GET",
139428	//   "id": "compute.targetHttpProxies.get",
139429	//   "parameterOrder": [
139430	//     "project",
139431	//     "targetHttpProxy"
139432	//   ],
139433	//   "parameters": {
139434	//     "project": {
139435	//       "description": "Project ID for this request.",
139436	//       "location": "path",
139437	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139438	//       "required": true,
139439	//       "type": "string"
139440	//     },
139441	//     "targetHttpProxy": {
139442	//       "description": "Name of the TargetHttpProxy resource to return.",
139443	//       "location": "path",
139444	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
139445	//       "required": true,
139446	//       "type": "string"
139447	//     }
139448	//   },
139449	//   "path": "{project}/global/targetHttpProxies/{targetHttpProxy}",
139450	//   "response": {
139451	//     "$ref": "TargetHttpProxy"
139452	//   },
139453	//   "scopes": [
139454	//     "https://www.googleapis.com/auth/cloud-platform",
139455	//     "https://www.googleapis.com/auth/compute",
139456	//     "https://www.googleapis.com/auth/compute.readonly"
139457	//   ]
139458	// }
139459
139460}
139461
139462// method id "compute.targetHttpProxies.insert":
139463
139464type TargetHttpProxiesInsertCall struct {
139465	s               *Service
139466	project         string
139467	targethttpproxy *TargetHttpProxy
139468	urlParams_      gensupport.URLParams
139469	ctx_            context.Context
139470	header_         http.Header
139471}
139472
139473// Insert: Creates a TargetHttpProxy resource in the specified project
139474// using the data included in the request.
139475// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/insert
139476func (r *TargetHttpProxiesService) Insert(project string, targethttpproxy *TargetHttpProxy) *TargetHttpProxiesInsertCall {
139477	c := &TargetHttpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139478	c.project = project
139479	c.targethttpproxy = targethttpproxy
139480	return c
139481}
139482
139483// RequestId sets the optional parameter "requestId": An optional
139484// request ID to identify requests. Specify a unique request ID so that
139485// if you must retry your request, the server will know to ignore the
139486// request if it has already been completed.
139487//
139488// For example, consider a situation where you make an initial request
139489// and the request times out. If you make the request again with the
139490// same request ID, the server can check if original operation with the
139491// same request ID was received, and if so, will ignore the second
139492// request. This prevents clients from accidentally creating duplicate
139493// commitments.
139494//
139495// The request ID must be a valid UUID with the exception that zero UUID
139496// is not supported (00000000-0000-0000-0000-000000000000).
139497func (c *TargetHttpProxiesInsertCall) RequestId(requestId string) *TargetHttpProxiesInsertCall {
139498	c.urlParams_.Set("requestId", requestId)
139499	return c
139500}
139501
139502// Fields allows partial responses to be retrieved. See
139503// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139504// for more information.
139505func (c *TargetHttpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpProxiesInsertCall {
139506	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139507	return c
139508}
139509
139510// Context sets the context to be used in this call's Do method. Any
139511// pending HTTP request will be aborted if the provided context is
139512// canceled.
139513func (c *TargetHttpProxiesInsertCall) Context(ctx context.Context) *TargetHttpProxiesInsertCall {
139514	c.ctx_ = ctx
139515	return c
139516}
139517
139518// Header returns an http.Header that can be modified by the caller to
139519// add HTTP headers to the request.
139520func (c *TargetHttpProxiesInsertCall) Header() http.Header {
139521	if c.header_ == nil {
139522		c.header_ = make(http.Header)
139523	}
139524	return c.header_
139525}
139526
139527func (c *TargetHttpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
139528	reqHeaders := make(http.Header)
139529	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139530	for k, v := range c.header_ {
139531		reqHeaders[k] = v
139532	}
139533	reqHeaders.Set("User-Agent", c.s.userAgent())
139534	var body io.Reader = nil
139535	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpproxy)
139536	if err != nil {
139537		return nil, err
139538	}
139539	reqHeaders.Set("Content-Type", "application/json")
139540	c.urlParams_.Set("alt", alt)
139541	c.urlParams_.Set("prettyPrint", "false")
139542	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
139543	urls += "?" + c.urlParams_.Encode()
139544	req, err := http.NewRequest("POST", urls, body)
139545	if err != nil {
139546		return nil, err
139547	}
139548	req.Header = reqHeaders
139549	googleapi.Expand(req.URL, map[string]string{
139550		"project": c.project,
139551	})
139552	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139553}
139554
139555// Do executes the "compute.targetHttpProxies.insert" call.
139556// Exactly one of *Operation or error will be non-nil. Any non-2xx
139557// status code is an error. Response headers are in either
139558// *Operation.ServerResponse.Header or (if a response was returned at
139559// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139560// to check whether the returned error was because
139561// http.StatusNotModified was returned.
139562func (c *TargetHttpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139563	gensupport.SetOptions(c.urlParams_, opts...)
139564	res, err := c.doRequest("json")
139565	if res != nil && res.StatusCode == http.StatusNotModified {
139566		if res.Body != nil {
139567			res.Body.Close()
139568		}
139569		return nil, &googleapi.Error{
139570			Code:   res.StatusCode,
139571			Header: res.Header,
139572		}
139573	}
139574	if err != nil {
139575		return nil, err
139576	}
139577	defer googleapi.CloseBody(res)
139578	if err := googleapi.CheckResponse(res); err != nil {
139579		return nil, err
139580	}
139581	ret := &Operation{
139582		ServerResponse: googleapi.ServerResponse{
139583			Header:         res.Header,
139584			HTTPStatusCode: res.StatusCode,
139585		},
139586	}
139587	target := &ret
139588	if err := gensupport.DecodeResponse(target, res); err != nil {
139589		return nil, err
139590	}
139591	return ret, nil
139592	// {
139593	//   "description": "Creates a TargetHttpProxy resource in the specified project using the data included in the request.",
139594	//   "httpMethod": "POST",
139595	//   "id": "compute.targetHttpProxies.insert",
139596	//   "parameterOrder": [
139597	//     "project"
139598	//   ],
139599	//   "parameters": {
139600	//     "project": {
139601	//       "description": "Project ID for this request.",
139602	//       "location": "path",
139603	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139604	//       "required": true,
139605	//       "type": "string"
139606	//     },
139607	//     "requestId": {
139608	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
139609	//       "location": "query",
139610	//       "type": "string"
139611	//     }
139612	//   },
139613	//   "path": "{project}/global/targetHttpProxies",
139614	//   "request": {
139615	//     "$ref": "TargetHttpProxy"
139616	//   },
139617	//   "response": {
139618	//     "$ref": "Operation"
139619	//   },
139620	//   "scopes": [
139621	//     "https://www.googleapis.com/auth/cloud-platform",
139622	//     "https://www.googleapis.com/auth/compute"
139623	//   ]
139624	// }
139625
139626}
139627
139628// method id "compute.targetHttpProxies.list":
139629
139630type TargetHttpProxiesListCall struct {
139631	s            *Service
139632	project      string
139633	urlParams_   gensupport.URLParams
139634	ifNoneMatch_ string
139635	ctx_         context.Context
139636	header_      http.Header
139637}
139638
139639// List: Retrieves the list of TargetHttpProxy resources available to
139640// the specified project.
139641// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/list
139642func (r *TargetHttpProxiesService) List(project string) *TargetHttpProxiesListCall {
139643	c := &TargetHttpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139644	c.project = project
139645	return c
139646}
139647
139648// Filter sets the optional parameter "filter": A filter expression that
139649// filters resources listed in the response. The expression must specify
139650// the field name, a comparison operator, and the value that you want to
139651// use for filtering. The value must be a string, a number, or a
139652// boolean. The comparison operator must be either =, !=, >, or <.
139653//
139654// For example, if you are filtering Compute Engine instances, you can
139655// exclude instances named example-instance by specifying name !=
139656// example-instance.
139657//
139658// You can also filter nested fields. For example, you could specify
139659// scheduling.automaticRestart = false to include instances only if they
139660// are not scheduled for automatic restarts. You can use filtering on
139661// nested fields to filter based on resource labels.
139662//
139663// To filter on multiple expressions, provide each separate expression
139664// within parentheses. For example, (scheduling.automaticRestart = true)
139665// (cpuPlatform = "Intel Skylake"). By default, each expression is an
139666// AND expression. However, you can include AND and OR expressions
139667// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
139668// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
139669// true).
139670func (c *TargetHttpProxiesListCall) Filter(filter string) *TargetHttpProxiesListCall {
139671	c.urlParams_.Set("filter", filter)
139672	return c
139673}
139674
139675// MaxResults sets the optional parameter "maxResults": The maximum
139676// number of results per page that should be returned. If the number of
139677// available results is larger than maxResults, Compute Engine returns a
139678// nextPageToken that can be used to get the next page of results in
139679// subsequent list requests. Acceptable values are 0 to 500, inclusive.
139680// (Default: 500)
139681func (c *TargetHttpProxiesListCall) MaxResults(maxResults int64) *TargetHttpProxiesListCall {
139682	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
139683	return c
139684}
139685
139686// OrderBy sets the optional parameter "orderBy": Sorts list results by
139687// a certain order. By default, results are returned in alphanumerical
139688// order based on the resource name.
139689//
139690// You can also sort results in descending order based on the creation
139691// timestamp using orderBy="creationTimestamp desc". This sorts results
139692// based on the creationTimestamp field in reverse chronological order
139693// (newest result first). Use this to sort resources like operations so
139694// that the newest operation is returned first.
139695//
139696// Currently, only sorting by name or creationTimestamp desc is
139697// supported.
139698func (c *TargetHttpProxiesListCall) OrderBy(orderBy string) *TargetHttpProxiesListCall {
139699	c.urlParams_.Set("orderBy", orderBy)
139700	return c
139701}
139702
139703// PageToken sets the optional parameter "pageToken": Specifies a page
139704// token to use. Set pageToken to the nextPageToken returned by a
139705// previous list request to get the next page of results.
139706func (c *TargetHttpProxiesListCall) PageToken(pageToken string) *TargetHttpProxiesListCall {
139707	c.urlParams_.Set("pageToken", pageToken)
139708	return c
139709}
139710
139711// Fields allows partial responses to be retrieved. See
139712// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139713// for more information.
139714func (c *TargetHttpProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpProxiesListCall {
139715	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139716	return c
139717}
139718
139719// IfNoneMatch sets the optional parameter which makes the operation
139720// fail if the object's ETag matches the given value. This is useful for
139721// getting updates only after the object has changed since the last
139722// request. Use googleapi.IsNotModified to check whether the response
139723// error from Do is the result of In-None-Match.
139724func (c *TargetHttpProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpProxiesListCall {
139725	c.ifNoneMatch_ = entityTag
139726	return c
139727}
139728
139729// Context sets the context to be used in this call's Do method. Any
139730// pending HTTP request will be aborted if the provided context is
139731// canceled.
139732func (c *TargetHttpProxiesListCall) Context(ctx context.Context) *TargetHttpProxiesListCall {
139733	c.ctx_ = ctx
139734	return c
139735}
139736
139737// Header returns an http.Header that can be modified by the caller to
139738// add HTTP headers to the request.
139739func (c *TargetHttpProxiesListCall) Header() http.Header {
139740	if c.header_ == nil {
139741		c.header_ = make(http.Header)
139742	}
139743	return c.header_
139744}
139745
139746func (c *TargetHttpProxiesListCall) doRequest(alt string) (*http.Response, error) {
139747	reqHeaders := make(http.Header)
139748	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139749	for k, v := range c.header_ {
139750		reqHeaders[k] = v
139751	}
139752	reqHeaders.Set("User-Agent", c.s.userAgent())
139753	if c.ifNoneMatch_ != "" {
139754		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
139755	}
139756	var body io.Reader = nil
139757	c.urlParams_.Set("alt", alt)
139758	c.urlParams_.Set("prettyPrint", "false")
139759	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies")
139760	urls += "?" + c.urlParams_.Encode()
139761	req, err := http.NewRequest("GET", urls, body)
139762	if err != nil {
139763		return nil, err
139764	}
139765	req.Header = reqHeaders
139766	googleapi.Expand(req.URL, map[string]string{
139767		"project": c.project,
139768	})
139769	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139770}
139771
139772// Do executes the "compute.targetHttpProxies.list" call.
139773// Exactly one of *TargetHttpProxyList or error will be non-nil. Any
139774// non-2xx status code is an error. Response headers are in either
139775// *TargetHttpProxyList.ServerResponse.Header or (if a response was
139776// returned at all) in error.(*googleapi.Error).Header. Use
139777// googleapi.IsNotModified to check whether the returned error was
139778// because http.StatusNotModified was returned.
139779func (c *TargetHttpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpProxyList, error) {
139780	gensupport.SetOptions(c.urlParams_, opts...)
139781	res, err := c.doRequest("json")
139782	if res != nil && res.StatusCode == http.StatusNotModified {
139783		if res.Body != nil {
139784			res.Body.Close()
139785		}
139786		return nil, &googleapi.Error{
139787			Code:   res.StatusCode,
139788			Header: res.Header,
139789		}
139790	}
139791	if err != nil {
139792		return nil, err
139793	}
139794	defer googleapi.CloseBody(res)
139795	if err := googleapi.CheckResponse(res); err != nil {
139796		return nil, err
139797	}
139798	ret := &TargetHttpProxyList{
139799		ServerResponse: googleapi.ServerResponse{
139800			Header:         res.Header,
139801			HTTPStatusCode: res.StatusCode,
139802		},
139803	}
139804	target := &ret
139805	if err := gensupport.DecodeResponse(target, res); err != nil {
139806		return nil, err
139807	}
139808	return ret, nil
139809	// {
139810	//   "description": "Retrieves the list of TargetHttpProxy resources available to the specified project.",
139811	//   "httpMethod": "GET",
139812	//   "id": "compute.targetHttpProxies.list",
139813	//   "parameterOrder": [
139814	//     "project"
139815	//   ],
139816	//   "parameters": {
139817	//     "filter": {
139818	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
139819	//       "location": "query",
139820	//       "type": "string"
139821	//     },
139822	//     "maxResults": {
139823	//       "default": "500",
139824	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
139825	//       "format": "uint32",
139826	//       "location": "query",
139827	//       "minimum": "0",
139828	//       "type": "integer"
139829	//     },
139830	//     "orderBy": {
139831	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
139832	//       "location": "query",
139833	//       "type": "string"
139834	//     },
139835	//     "pageToken": {
139836	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
139837	//       "location": "query",
139838	//       "type": "string"
139839	//     },
139840	//     "project": {
139841	//       "description": "Project ID for this request.",
139842	//       "location": "path",
139843	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
139844	//       "required": true,
139845	//       "type": "string"
139846	//     }
139847	//   },
139848	//   "path": "{project}/global/targetHttpProxies",
139849	//   "response": {
139850	//     "$ref": "TargetHttpProxyList"
139851	//   },
139852	//   "scopes": [
139853	//     "https://www.googleapis.com/auth/cloud-platform",
139854	//     "https://www.googleapis.com/auth/compute",
139855	//     "https://www.googleapis.com/auth/compute.readonly"
139856	//   ]
139857	// }
139858
139859}
139860
139861// Pages invokes f for each page of results.
139862// A non-nil error returned from f will halt the iteration.
139863// The provided context supersedes any context provided to the Context method.
139864func (c *TargetHttpProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpProxyList) error) error {
139865	c.ctx_ = ctx
139866	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
139867	for {
139868		x, err := c.Do()
139869		if err != nil {
139870			return err
139871		}
139872		if err := f(x); err != nil {
139873			return err
139874		}
139875		if x.NextPageToken == "" {
139876			return nil
139877		}
139878		c.PageToken(x.NextPageToken)
139879	}
139880}
139881
139882// method id "compute.targetHttpProxies.setUrlMap":
139883
139884type TargetHttpProxiesSetUrlMapCall struct {
139885	s               *Service
139886	project         string
139887	targetHttpProxy string
139888	urlmapreference *UrlMapReference
139889	urlParams_      gensupport.URLParams
139890	ctx_            context.Context
139891	header_         http.Header
139892}
139893
139894// SetUrlMap: Changes the URL map for TargetHttpProxy.
139895// For details, see https://cloud.google.com/compute/docs/reference/latest/targetHttpProxies/setUrlMap
139896func (r *TargetHttpProxiesService) SetUrlMap(project string, targetHttpProxy string, urlmapreference *UrlMapReference) *TargetHttpProxiesSetUrlMapCall {
139897	c := &TargetHttpProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
139898	c.project = project
139899	c.targetHttpProxy = targetHttpProxy
139900	c.urlmapreference = urlmapreference
139901	return c
139902}
139903
139904// RequestId sets the optional parameter "requestId": An optional
139905// request ID to identify requests. Specify a unique request ID so that
139906// if you must retry your request, the server will know to ignore the
139907// request if it has already been completed.
139908//
139909// For example, consider a situation where you make an initial request
139910// and the request times out. If you make the request again with the
139911// same request ID, the server can check if original operation with the
139912// same request ID was received, and if so, will ignore the second
139913// request. This prevents clients from accidentally creating duplicate
139914// commitments.
139915//
139916// The request ID must be a valid UUID with the exception that zero UUID
139917// is not supported (00000000-0000-0000-0000-000000000000).
139918func (c *TargetHttpProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpProxiesSetUrlMapCall {
139919	c.urlParams_.Set("requestId", requestId)
139920	return c
139921}
139922
139923// Fields allows partial responses to be retrieved. See
139924// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
139925// for more information.
139926func (c *TargetHttpProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpProxiesSetUrlMapCall {
139927	c.urlParams_.Set("fields", googleapi.CombineFields(s))
139928	return c
139929}
139930
139931// Context sets the context to be used in this call's Do method. Any
139932// pending HTTP request will be aborted if the provided context is
139933// canceled.
139934func (c *TargetHttpProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpProxiesSetUrlMapCall {
139935	c.ctx_ = ctx
139936	return c
139937}
139938
139939// Header returns an http.Header that can be modified by the caller to
139940// add HTTP headers to the request.
139941func (c *TargetHttpProxiesSetUrlMapCall) Header() http.Header {
139942	if c.header_ == nil {
139943		c.header_ = make(http.Header)
139944	}
139945	return c.header_
139946}
139947
139948func (c *TargetHttpProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
139949	reqHeaders := make(http.Header)
139950	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
139951	for k, v := range c.header_ {
139952		reqHeaders[k] = v
139953	}
139954	reqHeaders.Set("User-Agent", c.s.userAgent())
139955	var body io.Reader = nil
139956	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
139957	if err != nil {
139958		return nil, err
139959	}
139960	reqHeaders.Set("Content-Type", "application/json")
139961	c.urlParams_.Set("alt", alt)
139962	c.urlParams_.Set("prettyPrint", "false")
139963	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap")
139964	urls += "?" + c.urlParams_.Encode()
139965	req, err := http.NewRequest("POST", urls, body)
139966	if err != nil {
139967		return nil, err
139968	}
139969	req.Header = reqHeaders
139970	googleapi.Expand(req.URL, map[string]string{
139971		"project":         c.project,
139972		"targetHttpProxy": c.targetHttpProxy,
139973	})
139974	return gensupport.SendRequest(c.ctx_, c.s.client, req)
139975}
139976
139977// Do executes the "compute.targetHttpProxies.setUrlMap" call.
139978// Exactly one of *Operation or error will be non-nil. Any non-2xx
139979// status code is an error. Response headers are in either
139980// *Operation.ServerResponse.Header or (if a response was returned at
139981// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
139982// to check whether the returned error was because
139983// http.StatusNotModified was returned.
139984func (c *TargetHttpProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
139985	gensupport.SetOptions(c.urlParams_, opts...)
139986	res, err := c.doRequest("json")
139987	if res != nil && res.StatusCode == http.StatusNotModified {
139988		if res.Body != nil {
139989			res.Body.Close()
139990		}
139991		return nil, &googleapi.Error{
139992			Code:   res.StatusCode,
139993			Header: res.Header,
139994		}
139995	}
139996	if err != nil {
139997		return nil, err
139998	}
139999	defer googleapi.CloseBody(res)
140000	if err := googleapi.CheckResponse(res); err != nil {
140001		return nil, err
140002	}
140003	ret := &Operation{
140004		ServerResponse: googleapi.ServerResponse{
140005			Header:         res.Header,
140006			HTTPStatusCode: res.StatusCode,
140007		},
140008	}
140009	target := &ret
140010	if err := gensupport.DecodeResponse(target, res); err != nil {
140011		return nil, err
140012	}
140013	return ret, nil
140014	// {
140015	//   "description": "Changes the URL map for TargetHttpProxy.",
140016	//   "httpMethod": "POST",
140017	//   "id": "compute.targetHttpProxies.setUrlMap",
140018	//   "parameterOrder": [
140019	//     "project",
140020	//     "targetHttpProxy"
140021	//   ],
140022	//   "parameters": {
140023	//     "project": {
140024	//       "description": "Project ID for this request.",
140025	//       "location": "path",
140026	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140027	//       "required": true,
140028	//       "type": "string"
140029	//     },
140030	//     "requestId": {
140031	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140032	//       "location": "query",
140033	//       "type": "string"
140034	//     },
140035	//     "targetHttpProxy": {
140036	//       "description": "Name of the TargetHttpProxy to set a URL map for.",
140037	//       "location": "path",
140038	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140039	//       "required": true,
140040	//       "type": "string"
140041	//     }
140042	//   },
140043	//   "path": "{project}/targetHttpProxies/{targetHttpProxy}/setUrlMap",
140044	//   "request": {
140045	//     "$ref": "UrlMapReference"
140046	//   },
140047	//   "response": {
140048	//     "$ref": "Operation"
140049	//   },
140050	//   "scopes": [
140051	//     "https://www.googleapis.com/auth/cloud-platform",
140052	//     "https://www.googleapis.com/auth/compute"
140053	//   ]
140054	// }
140055
140056}
140057
140058// method id "compute.targetHttpProxies.testIamPermissions":
140059
140060type TargetHttpProxiesTestIamPermissionsCall struct {
140061	s                      *Service
140062	project                string
140063	resource               string
140064	testpermissionsrequest *TestPermissionsRequest
140065	urlParams_             gensupport.URLParams
140066	ctx_                   context.Context
140067	header_                http.Header
140068}
140069
140070// TestIamPermissions: Returns permissions that a caller has on the
140071// specified resource.
140072func (r *TargetHttpProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpProxiesTestIamPermissionsCall {
140073	c := &TargetHttpProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140074	c.project = project
140075	c.resource = resource
140076	c.testpermissionsrequest = testpermissionsrequest
140077	return c
140078}
140079
140080// Fields allows partial responses to be retrieved. See
140081// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140082// for more information.
140083func (c *TargetHttpProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpProxiesTestIamPermissionsCall {
140084	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140085	return c
140086}
140087
140088// Context sets the context to be used in this call's Do method. Any
140089// pending HTTP request will be aborted if the provided context is
140090// canceled.
140091func (c *TargetHttpProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpProxiesTestIamPermissionsCall {
140092	c.ctx_ = ctx
140093	return c
140094}
140095
140096// Header returns an http.Header that can be modified by the caller to
140097// add HTTP headers to the request.
140098func (c *TargetHttpProxiesTestIamPermissionsCall) Header() http.Header {
140099	if c.header_ == nil {
140100		c.header_ = make(http.Header)
140101	}
140102	return c.header_
140103}
140104
140105func (c *TargetHttpProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
140106	reqHeaders := make(http.Header)
140107	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140108	for k, v := range c.header_ {
140109		reqHeaders[k] = v
140110	}
140111	reqHeaders.Set("User-Agent", c.s.userAgent())
140112	var body io.Reader = nil
140113	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
140114	if err != nil {
140115		return nil, err
140116	}
140117	reqHeaders.Set("Content-Type", "application/json")
140118	c.urlParams_.Set("alt", alt)
140119	c.urlParams_.Set("prettyPrint", "false")
140120	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpProxies/{resource}/testIamPermissions")
140121	urls += "?" + c.urlParams_.Encode()
140122	req, err := http.NewRequest("POST", urls, body)
140123	if err != nil {
140124		return nil, err
140125	}
140126	req.Header = reqHeaders
140127	googleapi.Expand(req.URL, map[string]string{
140128		"project":  c.project,
140129		"resource": c.resource,
140130	})
140131	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140132}
140133
140134// Do executes the "compute.targetHttpProxies.testIamPermissions" call.
140135// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
140136// non-2xx status code is an error. Response headers are in either
140137// *TestPermissionsResponse.ServerResponse.Header or (if a response was
140138// returned at all) in error.(*googleapi.Error).Header. Use
140139// googleapi.IsNotModified to check whether the returned error was
140140// because http.StatusNotModified was returned.
140141func (c *TargetHttpProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
140142	gensupport.SetOptions(c.urlParams_, opts...)
140143	res, err := c.doRequest("json")
140144	if res != nil && res.StatusCode == http.StatusNotModified {
140145		if res.Body != nil {
140146			res.Body.Close()
140147		}
140148		return nil, &googleapi.Error{
140149			Code:   res.StatusCode,
140150			Header: res.Header,
140151		}
140152	}
140153	if err != nil {
140154		return nil, err
140155	}
140156	defer googleapi.CloseBody(res)
140157	if err := googleapi.CheckResponse(res); err != nil {
140158		return nil, err
140159	}
140160	ret := &TestPermissionsResponse{
140161		ServerResponse: googleapi.ServerResponse{
140162			Header:         res.Header,
140163			HTTPStatusCode: res.StatusCode,
140164		},
140165	}
140166	target := &ret
140167	if err := gensupport.DecodeResponse(target, res); err != nil {
140168		return nil, err
140169	}
140170	return ret, nil
140171	// {
140172	//   "description": "Returns permissions that a caller has on the specified resource.",
140173	//   "httpMethod": "POST",
140174	//   "id": "compute.targetHttpProxies.testIamPermissions",
140175	//   "parameterOrder": [
140176	//     "project",
140177	//     "resource"
140178	//   ],
140179	//   "parameters": {
140180	//     "project": {
140181	//       "description": "Project ID for this request.",
140182	//       "location": "path",
140183	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140184	//       "required": true,
140185	//       "type": "string"
140186	//     },
140187	//     "resource": {
140188	//       "description": "Name or id of the resource for this request.",
140189	//       "location": "path",
140190	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140191	//       "required": true,
140192	//       "type": "string"
140193	//     }
140194	//   },
140195	//   "path": "{project}/global/targetHttpProxies/{resource}/testIamPermissions",
140196	//   "request": {
140197	//     "$ref": "TestPermissionsRequest"
140198	//   },
140199	//   "response": {
140200	//     "$ref": "TestPermissionsResponse"
140201	//   },
140202	//   "scopes": [
140203	//     "https://www.googleapis.com/auth/cloud-platform",
140204	//     "https://www.googleapis.com/auth/compute",
140205	//     "https://www.googleapis.com/auth/compute.readonly"
140206	//   ]
140207	// }
140208
140209}
140210
140211// method id "compute.targetHttpsProxies.aggregatedList":
140212
140213type TargetHttpsProxiesAggregatedListCall struct {
140214	s            *Service
140215	project      string
140216	urlParams_   gensupport.URLParams
140217	ifNoneMatch_ string
140218	ctx_         context.Context
140219	header_      http.Header
140220}
140221
140222// AggregatedList: Retrieves the list of all TargetHttpsProxy resources,
140223// regional and global, available to the specified project.
140224func (r *TargetHttpsProxiesService) AggregatedList(project string) *TargetHttpsProxiesAggregatedListCall {
140225	c := &TargetHttpsProxiesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140226	c.project = project
140227	return c
140228}
140229
140230// Filter sets the optional parameter "filter": A filter expression that
140231// filters resources listed in the response. The expression must specify
140232// the field name, a comparison operator, and the value that you want to
140233// use for filtering. The value must be a string, a number, or a
140234// boolean. The comparison operator must be either =, !=, >, or <.
140235//
140236// For example, if you are filtering Compute Engine instances, you can
140237// exclude instances named example-instance by specifying name !=
140238// example-instance.
140239//
140240// You can also filter nested fields. For example, you could specify
140241// scheduling.automaticRestart = false to include instances only if they
140242// are not scheduled for automatic restarts. You can use filtering on
140243// nested fields to filter based on resource labels.
140244//
140245// To filter on multiple expressions, provide each separate expression
140246// within parentheses. For example, (scheduling.automaticRestart = true)
140247// (cpuPlatform = "Intel Skylake"). By default, each expression is an
140248// AND expression. However, you can include AND and OR expressions
140249// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
140250// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
140251// true).
140252func (c *TargetHttpsProxiesAggregatedListCall) Filter(filter string) *TargetHttpsProxiesAggregatedListCall {
140253	c.urlParams_.Set("filter", filter)
140254	return c
140255}
140256
140257// IncludeAllScopes sets the optional parameter "includeAllScopes":
140258// Indicates whether every visible scope for each scope type (zone,
140259// region, global) should be included in the response. For new resource
140260// types added after this field, the flag has no effect as new resource
140261// types will always include every visible scope for each scope type in
140262// response. For resource types which predate this field, if this flag
140263// is omitted or false, only scopes of the scope types where the
140264// resource type is expected to be found will be included.
140265func (c *TargetHttpsProxiesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetHttpsProxiesAggregatedListCall {
140266	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
140267	return c
140268}
140269
140270// MaxResults sets the optional parameter "maxResults": The maximum
140271// number of results per page that should be returned. If the number of
140272// available results is larger than maxResults, Compute Engine returns a
140273// nextPageToken that can be used to get the next page of results in
140274// subsequent list requests. Acceptable values are 0 to 500, inclusive.
140275// (Default: 500)
140276func (c *TargetHttpsProxiesAggregatedListCall) MaxResults(maxResults int64) *TargetHttpsProxiesAggregatedListCall {
140277	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
140278	return c
140279}
140280
140281// OrderBy sets the optional parameter "orderBy": Sorts list results by
140282// a certain order. By default, results are returned in alphanumerical
140283// order based on the resource name.
140284//
140285// You can also sort results in descending order based on the creation
140286// timestamp using orderBy="creationTimestamp desc". This sorts results
140287// based on the creationTimestamp field in reverse chronological order
140288// (newest result first). Use this to sort resources like operations so
140289// that the newest operation is returned first.
140290//
140291// Currently, only sorting by name or creationTimestamp desc is
140292// supported.
140293func (c *TargetHttpsProxiesAggregatedListCall) OrderBy(orderBy string) *TargetHttpsProxiesAggregatedListCall {
140294	c.urlParams_.Set("orderBy", orderBy)
140295	return c
140296}
140297
140298// PageToken sets the optional parameter "pageToken": Specifies a page
140299// token to use. Set pageToken to the nextPageToken returned by a
140300// previous list request to get the next page of results.
140301func (c *TargetHttpsProxiesAggregatedListCall) PageToken(pageToken string) *TargetHttpsProxiesAggregatedListCall {
140302	c.urlParams_.Set("pageToken", pageToken)
140303	return c
140304}
140305
140306// Fields allows partial responses to be retrieved. See
140307// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140308// for more information.
140309func (c *TargetHttpsProxiesAggregatedListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesAggregatedListCall {
140310	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140311	return c
140312}
140313
140314// IfNoneMatch sets the optional parameter which makes the operation
140315// fail if the object's ETag matches the given value. This is useful for
140316// getting updates only after the object has changed since the last
140317// request. Use googleapi.IsNotModified to check whether the response
140318// error from Do is the result of In-None-Match.
140319func (c *TargetHttpsProxiesAggregatedListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesAggregatedListCall {
140320	c.ifNoneMatch_ = entityTag
140321	return c
140322}
140323
140324// Context sets the context to be used in this call's Do method. Any
140325// pending HTTP request will be aborted if the provided context is
140326// canceled.
140327func (c *TargetHttpsProxiesAggregatedListCall) Context(ctx context.Context) *TargetHttpsProxiesAggregatedListCall {
140328	c.ctx_ = ctx
140329	return c
140330}
140331
140332// Header returns an http.Header that can be modified by the caller to
140333// add HTTP headers to the request.
140334func (c *TargetHttpsProxiesAggregatedListCall) Header() http.Header {
140335	if c.header_ == nil {
140336		c.header_ = make(http.Header)
140337	}
140338	return c.header_
140339}
140340
140341func (c *TargetHttpsProxiesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
140342	reqHeaders := make(http.Header)
140343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140344	for k, v := range c.header_ {
140345		reqHeaders[k] = v
140346	}
140347	reqHeaders.Set("User-Agent", c.s.userAgent())
140348	if c.ifNoneMatch_ != "" {
140349		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140350	}
140351	var body io.Reader = nil
140352	c.urlParams_.Set("alt", alt)
140353	c.urlParams_.Set("prettyPrint", "false")
140354	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetHttpsProxies")
140355	urls += "?" + c.urlParams_.Encode()
140356	req, err := http.NewRequest("GET", urls, body)
140357	if err != nil {
140358		return nil, err
140359	}
140360	req.Header = reqHeaders
140361	googleapi.Expand(req.URL, map[string]string{
140362		"project": c.project,
140363	})
140364	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140365}
140366
140367// Do executes the "compute.targetHttpsProxies.aggregatedList" call.
140368// Exactly one of *TargetHttpsProxyAggregatedList or error will be
140369// non-nil. Any non-2xx status code is an error. Response headers are in
140370// either *TargetHttpsProxyAggregatedList.ServerResponse.Header or (if a
140371// response was returned at all) in error.(*googleapi.Error).Header. Use
140372// googleapi.IsNotModified to check whether the returned error was
140373// because http.StatusNotModified was returned.
140374func (c *TargetHttpsProxiesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyAggregatedList, error) {
140375	gensupport.SetOptions(c.urlParams_, opts...)
140376	res, err := c.doRequest("json")
140377	if res != nil && res.StatusCode == http.StatusNotModified {
140378		if res.Body != nil {
140379			res.Body.Close()
140380		}
140381		return nil, &googleapi.Error{
140382			Code:   res.StatusCode,
140383			Header: res.Header,
140384		}
140385	}
140386	if err != nil {
140387		return nil, err
140388	}
140389	defer googleapi.CloseBody(res)
140390	if err := googleapi.CheckResponse(res); err != nil {
140391		return nil, err
140392	}
140393	ret := &TargetHttpsProxyAggregatedList{
140394		ServerResponse: googleapi.ServerResponse{
140395			Header:         res.Header,
140396			HTTPStatusCode: res.StatusCode,
140397		},
140398	}
140399	target := &ret
140400	if err := gensupport.DecodeResponse(target, res); err != nil {
140401		return nil, err
140402	}
140403	return ret, nil
140404	// {
140405	//   "description": "Retrieves the list of all TargetHttpsProxy resources, regional and global, available to the specified project.",
140406	//   "httpMethod": "GET",
140407	//   "id": "compute.targetHttpsProxies.aggregatedList",
140408	//   "parameterOrder": [
140409	//     "project"
140410	//   ],
140411	//   "parameters": {
140412	//     "filter": {
140413	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
140414	//       "location": "query",
140415	//       "type": "string"
140416	//     },
140417	//     "includeAllScopes": {
140418	//       "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.",
140419	//       "location": "query",
140420	//       "type": "boolean"
140421	//     },
140422	//     "maxResults": {
140423	//       "default": "500",
140424	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
140425	//       "format": "uint32",
140426	//       "location": "query",
140427	//       "minimum": "0",
140428	//       "type": "integer"
140429	//     },
140430	//     "orderBy": {
140431	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
140432	//       "location": "query",
140433	//       "type": "string"
140434	//     },
140435	//     "pageToken": {
140436	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
140437	//       "location": "query",
140438	//       "type": "string"
140439	//     },
140440	//     "project": {
140441	//       "description": "Name of the project scoping this request.",
140442	//       "location": "path",
140443	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140444	//       "required": true,
140445	//       "type": "string"
140446	//     }
140447	//   },
140448	//   "path": "{project}/aggregated/targetHttpsProxies",
140449	//   "response": {
140450	//     "$ref": "TargetHttpsProxyAggregatedList"
140451	//   },
140452	//   "scopes": [
140453	//     "https://www.googleapis.com/auth/cloud-platform",
140454	//     "https://www.googleapis.com/auth/compute",
140455	//     "https://www.googleapis.com/auth/compute.readonly"
140456	//   ]
140457	// }
140458
140459}
140460
140461// Pages invokes f for each page of results.
140462// A non-nil error returned from f will halt the iteration.
140463// The provided context supersedes any context provided to the Context method.
140464func (c *TargetHttpsProxiesAggregatedListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyAggregatedList) error) error {
140465	c.ctx_ = ctx
140466	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
140467	for {
140468		x, err := c.Do()
140469		if err != nil {
140470			return err
140471		}
140472		if err := f(x); err != nil {
140473			return err
140474		}
140475		if x.NextPageToken == "" {
140476			return nil
140477		}
140478		c.PageToken(x.NextPageToken)
140479	}
140480}
140481
140482// method id "compute.targetHttpsProxies.delete":
140483
140484type TargetHttpsProxiesDeleteCall struct {
140485	s                *Service
140486	project          string
140487	targetHttpsProxy string
140488	urlParams_       gensupport.URLParams
140489	ctx_             context.Context
140490	header_          http.Header
140491}
140492
140493// Delete: Deletes the specified TargetHttpsProxy resource.
140494func (r *TargetHttpsProxiesService) Delete(project string, targetHttpsProxy string) *TargetHttpsProxiesDeleteCall {
140495	c := &TargetHttpsProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140496	c.project = project
140497	c.targetHttpsProxy = targetHttpsProxy
140498	return c
140499}
140500
140501// RequestId sets the optional parameter "requestId": An optional
140502// request ID to identify requests. Specify a unique request ID so that
140503// if you must retry your request, the server will know to ignore the
140504// request if it has already been completed.
140505//
140506// For example, consider a situation where you make an initial request
140507// and the request times out. If you make the request again with the
140508// same request ID, the server can check if original operation with the
140509// same request ID was received, and if so, will ignore the second
140510// request. This prevents clients from accidentally creating duplicate
140511// commitments.
140512//
140513// The request ID must be a valid UUID with the exception that zero UUID
140514// is not supported (00000000-0000-0000-0000-000000000000).
140515func (c *TargetHttpsProxiesDeleteCall) RequestId(requestId string) *TargetHttpsProxiesDeleteCall {
140516	c.urlParams_.Set("requestId", requestId)
140517	return c
140518}
140519
140520// Fields allows partial responses to be retrieved. See
140521// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140522// for more information.
140523func (c *TargetHttpsProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesDeleteCall {
140524	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140525	return c
140526}
140527
140528// Context sets the context to be used in this call's Do method. Any
140529// pending HTTP request will be aborted if the provided context is
140530// canceled.
140531func (c *TargetHttpsProxiesDeleteCall) Context(ctx context.Context) *TargetHttpsProxiesDeleteCall {
140532	c.ctx_ = ctx
140533	return c
140534}
140535
140536// Header returns an http.Header that can be modified by the caller to
140537// add HTTP headers to the request.
140538func (c *TargetHttpsProxiesDeleteCall) Header() http.Header {
140539	if c.header_ == nil {
140540		c.header_ = make(http.Header)
140541	}
140542	return c.header_
140543}
140544
140545func (c *TargetHttpsProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
140546	reqHeaders := make(http.Header)
140547	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140548	for k, v := range c.header_ {
140549		reqHeaders[k] = v
140550	}
140551	reqHeaders.Set("User-Agent", c.s.userAgent())
140552	var body io.Reader = nil
140553	c.urlParams_.Set("alt", alt)
140554	c.urlParams_.Set("prettyPrint", "false")
140555	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
140556	urls += "?" + c.urlParams_.Encode()
140557	req, err := http.NewRequest("DELETE", urls, body)
140558	if err != nil {
140559		return nil, err
140560	}
140561	req.Header = reqHeaders
140562	googleapi.Expand(req.URL, map[string]string{
140563		"project":          c.project,
140564		"targetHttpsProxy": c.targetHttpsProxy,
140565	})
140566	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140567}
140568
140569// Do executes the "compute.targetHttpsProxies.delete" call.
140570// Exactly one of *Operation or error will be non-nil. Any non-2xx
140571// status code is an error. Response headers are in either
140572// *Operation.ServerResponse.Header or (if a response was returned at
140573// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140574// to check whether the returned error was because
140575// http.StatusNotModified was returned.
140576func (c *TargetHttpsProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140577	gensupport.SetOptions(c.urlParams_, opts...)
140578	res, err := c.doRequest("json")
140579	if res != nil && res.StatusCode == http.StatusNotModified {
140580		if res.Body != nil {
140581			res.Body.Close()
140582		}
140583		return nil, &googleapi.Error{
140584			Code:   res.StatusCode,
140585			Header: res.Header,
140586		}
140587	}
140588	if err != nil {
140589		return nil, err
140590	}
140591	defer googleapi.CloseBody(res)
140592	if err := googleapi.CheckResponse(res); err != nil {
140593		return nil, err
140594	}
140595	ret := &Operation{
140596		ServerResponse: googleapi.ServerResponse{
140597			Header:         res.Header,
140598			HTTPStatusCode: res.StatusCode,
140599		},
140600	}
140601	target := &ret
140602	if err := gensupport.DecodeResponse(target, res); err != nil {
140603		return nil, err
140604	}
140605	return ret, nil
140606	// {
140607	//   "description": "Deletes the specified TargetHttpsProxy resource.",
140608	//   "httpMethod": "DELETE",
140609	//   "id": "compute.targetHttpsProxies.delete",
140610	//   "parameterOrder": [
140611	//     "project",
140612	//     "targetHttpsProxy"
140613	//   ],
140614	//   "parameters": {
140615	//     "project": {
140616	//       "description": "Project ID for this request.",
140617	//       "location": "path",
140618	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140619	//       "required": true,
140620	//       "type": "string"
140621	//     },
140622	//     "requestId": {
140623	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140624	//       "location": "query",
140625	//       "type": "string"
140626	//     },
140627	//     "targetHttpsProxy": {
140628	//       "description": "Name of the TargetHttpsProxy resource to delete.",
140629	//       "location": "path",
140630	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140631	//       "required": true,
140632	//       "type": "string"
140633	//     }
140634	//   },
140635	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
140636	//   "response": {
140637	//     "$ref": "Operation"
140638	//   },
140639	//   "scopes": [
140640	//     "https://www.googleapis.com/auth/cloud-platform",
140641	//     "https://www.googleapis.com/auth/compute"
140642	//   ]
140643	// }
140644
140645}
140646
140647// method id "compute.targetHttpsProxies.get":
140648
140649type TargetHttpsProxiesGetCall struct {
140650	s                *Service
140651	project          string
140652	targetHttpsProxy string
140653	urlParams_       gensupport.URLParams
140654	ifNoneMatch_     string
140655	ctx_             context.Context
140656	header_          http.Header
140657}
140658
140659// Get: Returns the specified TargetHttpsProxy resource. Gets a list of
140660// available target HTTPS proxies by making a list() request.
140661func (r *TargetHttpsProxiesService) Get(project string, targetHttpsProxy string) *TargetHttpsProxiesGetCall {
140662	c := &TargetHttpsProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140663	c.project = project
140664	c.targetHttpsProxy = targetHttpsProxy
140665	return c
140666}
140667
140668// Fields allows partial responses to be retrieved. See
140669// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140670// for more information.
140671func (c *TargetHttpsProxiesGetCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesGetCall {
140672	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140673	return c
140674}
140675
140676// IfNoneMatch sets the optional parameter which makes the operation
140677// fail if the object's ETag matches the given value. This is useful for
140678// getting updates only after the object has changed since the last
140679// request. Use googleapi.IsNotModified to check whether the response
140680// error from Do is the result of In-None-Match.
140681func (c *TargetHttpsProxiesGetCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesGetCall {
140682	c.ifNoneMatch_ = entityTag
140683	return c
140684}
140685
140686// Context sets the context to be used in this call's Do method. Any
140687// pending HTTP request will be aborted if the provided context is
140688// canceled.
140689func (c *TargetHttpsProxiesGetCall) Context(ctx context.Context) *TargetHttpsProxiesGetCall {
140690	c.ctx_ = ctx
140691	return c
140692}
140693
140694// Header returns an http.Header that can be modified by the caller to
140695// add HTTP headers to the request.
140696func (c *TargetHttpsProxiesGetCall) Header() http.Header {
140697	if c.header_ == nil {
140698		c.header_ = make(http.Header)
140699	}
140700	return c.header_
140701}
140702
140703func (c *TargetHttpsProxiesGetCall) doRequest(alt string) (*http.Response, error) {
140704	reqHeaders := make(http.Header)
140705	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140706	for k, v := range c.header_ {
140707		reqHeaders[k] = v
140708	}
140709	reqHeaders.Set("User-Agent", c.s.userAgent())
140710	if c.ifNoneMatch_ != "" {
140711		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
140712	}
140713	var body io.Reader = nil
140714	c.urlParams_.Set("alt", alt)
140715	c.urlParams_.Set("prettyPrint", "false")
140716	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}")
140717	urls += "?" + c.urlParams_.Encode()
140718	req, err := http.NewRequest("GET", urls, body)
140719	if err != nil {
140720		return nil, err
140721	}
140722	req.Header = reqHeaders
140723	googleapi.Expand(req.URL, map[string]string{
140724		"project":          c.project,
140725		"targetHttpsProxy": c.targetHttpsProxy,
140726	})
140727	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140728}
140729
140730// Do executes the "compute.targetHttpsProxies.get" call.
140731// Exactly one of *TargetHttpsProxy or error will be non-nil. Any
140732// non-2xx status code is an error. Response headers are in either
140733// *TargetHttpsProxy.ServerResponse.Header or (if a response was
140734// returned at all) in error.(*googleapi.Error).Header. Use
140735// googleapi.IsNotModified to check whether the returned error was
140736// because http.StatusNotModified was returned.
140737func (c *TargetHttpsProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxy, error) {
140738	gensupport.SetOptions(c.urlParams_, opts...)
140739	res, err := c.doRequest("json")
140740	if res != nil && res.StatusCode == http.StatusNotModified {
140741		if res.Body != nil {
140742			res.Body.Close()
140743		}
140744		return nil, &googleapi.Error{
140745			Code:   res.StatusCode,
140746			Header: res.Header,
140747		}
140748	}
140749	if err != nil {
140750		return nil, err
140751	}
140752	defer googleapi.CloseBody(res)
140753	if err := googleapi.CheckResponse(res); err != nil {
140754		return nil, err
140755	}
140756	ret := &TargetHttpsProxy{
140757		ServerResponse: googleapi.ServerResponse{
140758			Header:         res.Header,
140759			HTTPStatusCode: res.StatusCode,
140760		},
140761	}
140762	target := &ret
140763	if err := gensupport.DecodeResponse(target, res); err != nil {
140764		return nil, err
140765	}
140766	return ret, nil
140767	// {
140768	//   "description": "Returns the specified TargetHttpsProxy resource. Gets a list of available target HTTPS proxies by making a list() request.",
140769	//   "httpMethod": "GET",
140770	//   "id": "compute.targetHttpsProxies.get",
140771	//   "parameterOrder": [
140772	//     "project",
140773	//     "targetHttpsProxy"
140774	//   ],
140775	//   "parameters": {
140776	//     "project": {
140777	//       "description": "Project ID for this request.",
140778	//       "location": "path",
140779	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140780	//       "required": true,
140781	//       "type": "string"
140782	//     },
140783	//     "targetHttpsProxy": {
140784	//       "description": "Name of the TargetHttpsProxy resource to return.",
140785	//       "location": "path",
140786	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
140787	//       "required": true,
140788	//       "type": "string"
140789	//     }
140790	//   },
140791	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}",
140792	//   "response": {
140793	//     "$ref": "TargetHttpsProxy"
140794	//   },
140795	//   "scopes": [
140796	//     "https://www.googleapis.com/auth/cloud-platform",
140797	//     "https://www.googleapis.com/auth/compute",
140798	//     "https://www.googleapis.com/auth/compute.readonly"
140799	//   ]
140800	// }
140801
140802}
140803
140804// method id "compute.targetHttpsProxies.insert":
140805
140806type TargetHttpsProxiesInsertCall struct {
140807	s                *Service
140808	project          string
140809	targethttpsproxy *TargetHttpsProxy
140810	urlParams_       gensupport.URLParams
140811	ctx_             context.Context
140812	header_          http.Header
140813}
140814
140815// Insert: Creates a TargetHttpsProxy resource in the specified project
140816// using the data included in the request.
140817func (r *TargetHttpsProxiesService) Insert(project string, targethttpsproxy *TargetHttpsProxy) *TargetHttpsProxiesInsertCall {
140818	c := &TargetHttpsProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140819	c.project = project
140820	c.targethttpsproxy = targethttpsproxy
140821	return c
140822}
140823
140824// RequestId sets the optional parameter "requestId": An optional
140825// request ID to identify requests. Specify a unique request ID so that
140826// if you must retry your request, the server will know to ignore the
140827// request if it has already been completed.
140828//
140829// For example, consider a situation where you make an initial request
140830// and the request times out. If you make the request again with the
140831// same request ID, the server can check if original operation with the
140832// same request ID was received, and if so, will ignore the second
140833// request. This prevents clients from accidentally creating duplicate
140834// commitments.
140835//
140836// The request ID must be a valid UUID with the exception that zero UUID
140837// is not supported (00000000-0000-0000-0000-000000000000).
140838func (c *TargetHttpsProxiesInsertCall) RequestId(requestId string) *TargetHttpsProxiesInsertCall {
140839	c.urlParams_.Set("requestId", requestId)
140840	return c
140841}
140842
140843// Fields allows partial responses to be retrieved. See
140844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
140845// for more information.
140846func (c *TargetHttpsProxiesInsertCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesInsertCall {
140847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
140848	return c
140849}
140850
140851// Context sets the context to be used in this call's Do method. Any
140852// pending HTTP request will be aborted if the provided context is
140853// canceled.
140854func (c *TargetHttpsProxiesInsertCall) Context(ctx context.Context) *TargetHttpsProxiesInsertCall {
140855	c.ctx_ = ctx
140856	return c
140857}
140858
140859// Header returns an http.Header that can be modified by the caller to
140860// add HTTP headers to the request.
140861func (c *TargetHttpsProxiesInsertCall) Header() http.Header {
140862	if c.header_ == nil {
140863		c.header_ = make(http.Header)
140864	}
140865	return c.header_
140866}
140867
140868func (c *TargetHttpsProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
140869	reqHeaders := make(http.Header)
140870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
140871	for k, v := range c.header_ {
140872		reqHeaders[k] = v
140873	}
140874	reqHeaders.Set("User-Agent", c.s.userAgent())
140875	var body io.Reader = nil
140876	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxy)
140877	if err != nil {
140878		return nil, err
140879	}
140880	reqHeaders.Set("Content-Type", "application/json")
140881	c.urlParams_.Set("alt", alt)
140882	c.urlParams_.Set("prettyPrint", "false")
140883	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
140884	urls += "?" + c.urlParams_.Encode()
140885	req, err := http.NewRequest("POST", urls, body)
140886	if err != nil {
140887		return nil, err
140888	}
140889	req.Header = reqHeaders
140890	googleapi.Expand(req.URL, map[string]string{
140891		"project": c.project,
140892	})
140893	return gensupport.SendRequest(c.ctx_, c.s.client, req)
140894}
140895
140896// Do executes the "compute.targetHttpsProxies.insert" call.
140897// Exactly one of *Operation or error will be non-nil. Any non-2xx
140898// status code is an error. Response headers are in either
140899// *Operation.ServerResponse.Header or (if a response was returned at
140900// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
140901// to check whether the returned error was because
140902// http.StatusNotModified was returned.
140903func (c *TargetHttpsProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
140904	gensupport.SetOptions(c.urlParams_, opts...)
140905	res, err := c.doRequest("json")
140906	if res != nil && res.StatusCode == http.StatusNotModified {
140907		if res.Body != nil {
140908			res.Body.Close()
140909		}
140910		return nil, &googleapi.Error{
140911			Code:   res.StatusCode,
140912			Header: res.Header,
140913		}
140914	}
140915	if err != nil {
140916		return nil, err
140917	}
140918	defer googleapi.CloseBody(res)
140919	if err := googleapi.CheckResponse(res); err != nil {
140920		return nil, err
140921	}
140922	ret := &Operation{
140923		ServerResponse: googleapi.ServerResponse{
140924			Header:         res.Header,
140925			HTTPStatusCode: res.StatusCode,
140926		},
140927	}
140928	target := &ret
140929	if err := gensupport.DecodeResponse(target, res); err != nil {
140930		return nil, err
140931	}
140932	return ret, nil
140933	// {
140934	//   "description": "Creates a TargetHttpsProxy resource in the specified project using the data included in the request.",
140935	//   "httpMethod": "POST",
140936	//   "id": "compute.targetHttpsProxies.insert",
140937	//   "parameterOrder": [
140938	//     "project"
140939	//   ],
140940	//   "parameters": {
140941	//     "project": {
140942	//       "description": "Project ID for this request.",
140943	//       "location": "path",
140944	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
140945	//       "required": true,
140946	//       "type": "string"
140947	//     },
140948	//     "requestId": {
140949	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
140950	//       "location": "query",
140951	//       "type": "string"
140952	//     }
140953	//   },
140954	//   "path": "{project}/global/targetHttpsProxies",
140955	//   "request": {
140956	//     "$ref": "TargetHttpsProxy"
140957	//   },
140958	//   "response": {
140959	//     "$ref": "Operation"
140960	//   },
140961	//   "scopes": [
140962	//     "https://www.googleapis.com/auth/cloud-platform",
140963	//     "https://www.googleapis.com/auth/compute"
140964	//   ]
140965	// }
140966
140967}
140968
140969// method id "compute.targetHttpsProxies.list":
140970
140971type TargetHttpsProxiesListCall struct {
140972	s            *Service
140973	project      string
140974	urlParams_   gensupport.URLParams
140975	ifNoneMatch_ string
140976	ctx_         context.Context
140977	header_      http.Header
140978}
140979
140980// List: Retrieves the list of TargetHttpsProxy resources available to
140981// the specified project.
140982func (r *TargetHttpsProxiesService) List(project string) *TargetHttpsProxiesListCall {
140983	c := &TargetHttpsProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
140984	c.project = project
140985	return c
140986}
140987
140988// Filter sets the optional parameter "filter": A filter expression that
140989// filters resources listed in the response. The expression must specify
140990// the field name, a comparison operator, and the value that you want to
140991// use for filtering. The value must be a string, a number, or a
140992// boolean. The comparison operator must be either =, !=, >, or <.
140993//
140994// For example, if you are filtering Compute Engine instances, you can
140995// exclude instances named example-instance by specifying name !=
140996// example-instance.
140997//
140998// You can also filter nested fields. For example, you could specify
140999// scheduling.automaticRestart = false to include instances only if they
141000// are not scheduled for automatic restarts. You can use filtering on
141001// nested fields to filter based on resource labels.
141002//
141003// To filter on multiple expressions, provide each separate expression
141004// within parentheses. For example, (scheduling.automaticRestart = true)
141005// (cpuPlatform = "Intel Skylake"). By default, each expression is an
141006// AND expression. However, you can include AND and OR expressions
141007// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
141008// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
141009// true).
141010func (c *TargetHttpsProxiesListCall) Filter(filter string) *TargetHttpsProxiesListCall {
141011	c.urlParams_.Set("filter", filter)
141012	return c
141013}
141014
141015// MaxResults sets the optional parameter "maxResults": The maximum
141016// number of results per page that should be returned. If the number of
141017// available results is larger than maxResults, Compute Engine returns a
141018// nextPageToken that can be used to get the next page of results in
141019// subsequent list requests. Acceptable values are 0 to 500, inclusive.
141020// (Default: 500)
141021func (c *TargetHttpsProxiesListCall) MaxResults(maxResults int64) *TargetHttpsProxiesListCall {
141022	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
141023	return c
141024}
141025
141026// OrderBy sets the optional parameter "orderBy": Sorts list results by
141027// a certain order. By default, results are returned in alphanumerical
141028// order based on the resource name.
141029//
141030// You can also sort results in descending order based on the creation
141031// timestamp using orderBy="creationTimestamp desc". This sorts results
141032// based on the creationTimestamp field in reverse chronological order
141033// (newest result first). Use this to sort resources like operations so
141034// that the newest operation is returned first.
141035//
141036// Currently, only sorting by name or creationTimestamp desc is
141037// supported.
141038func (c *TargetHttpsProxiesListCall) OrderBy(orderBy string) *TargetHttpsProxiesListCall {
141039	c.urlParams_.Set("orderBy", orderBy)
141040	return c
141041}
141042
141043// PageToken sets the optional parameter "pageToken": Specifies a page
141044// token to use. Set pageToken to the nextPageToken returned by a
141045// previous list request to get the next page of results.
141046func (c *TargetHttpsProxiesListCall) PageToken(pageToken string) *TargetHttpsProxiesListCall {
141047	c.urlParams_.Set("pageToken", pageToken)
141048	return c
141049}
141050
141051// Fields allows partial responses to be retrieved. See
141052// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141053// for more information.
141054func (c *TargetHttpsProxiesListCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesListCall {
141055	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141056	return c
141057}
141058
141059// IfNoneMatch sets the optional parameter which makes the operation
141060// fail if the object's ETag matches the given value. This is useful for
141061// getting updates only after the object has changed since the last
141062// request. Use googleapi.IsNotModified to check whether the response
141063// error from Do is the result of In-None-Match.
141064func (c *TargetHttpsProxiesListCall) IfNoneMatch(entityTag string) *TargetHttpsProxiesListCall {
141065	c.ifNoneMatch_ = entityTag
141066	return c
141067}
141068
141069// Context sets the context to be used in this call's Do method. Any
141070// pending HTTP request will be aborted if the provided context is
141071// canceled.
141072func (c *TargetHttpsProxiesListCall) Context(ctx context.Context) *TargetHttpsProxiesListCall {
141073	c.ctx_ = ctx
141074	return c
141075}
141076
141077// Header returns an http.Header that can be modified by the caller to
141078// add HTTP headers to the request.
141079func (c *TargetHttpsProxiesListCall) Header() http.Header {
141080	if c.header_ == nil {
141081		c.header_ = make(http.Header)
141082	}
141083	return c.header_
141084}
141085
141086func (c *TargetHttpsProxiesListCall) doRequest(alt string) (*http.Response, error) {
141087	reqHeaders := make(http.Header)
141088	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141089	for k, v := range c.header_ {
141090		reqHeaders[k] = v
141091	}
141092	reqHeaders.Set("User-Agent", c.s.userAgent())
141093	if c.ifNoneMatch_ != "" {
141094		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
141095	}
141096	var body io.Reader = nil
141097	c.urlParams_.Set("alt", alt)
141098	c.urlParams_.Set("prettyPrint", "false")
141099	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies")
141100	urls += "?" + c.urlParams_.Encode()
141101	req, err := http.NewRequest("GET", urls, body)
141102	if err != nil {
141103		return nil, err
141104	}
141105	req.Header = reqHeaders
141106	googleapi.Expand(req.URL, map[string]string{
141107		"project": c.project,
141108	})
141109	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141110}
141111
141112// Do executes the "compute.targetHttpsProxies.list" call.
141113// Exactly one of *TargetHttpsProxyList or error will be non-nil. Any
141114// non-2xx status code is an error. Response headers are in either
141115// *TargetHttpsProxyList.ServerResponse.Header or (if a response was
141116// returned at all) in error.(*googleapi.Error).Header. Use
141117// googleapi.IsNotModified to check whether the returned error was
141118// because http.StatusNotModified was returned.
141119func (c *TargetHttpsProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetHttpsProxyList, error) {
141120	gensupport.SetOptions(c.urlParams_, opts...)
141121	res, err := c.doRequest("json")
141122	if res != nil && res.StatusCode == http.StatusNotModified {
141123		if res.Body != nil {
141124			res.Body.Close()
141125		}
141126		return nil, &googleapi.Error{
141127			Code:   res.StatusCode,
141128			Header: res.Header,
141129		}
141130	}
141131	if err != nil {
141132		return nil, err
141133	}
141134	defer googleapi.CloseBody(res)
141135	if err := googleapi.CheckResponse(res); err != nil {
141136		return nil, err
141137	}
141138	ret := &TargetHttpsProxyList{
141139		ServerResponse: googleapi.ServerResponse{
141140			Header:         res.Header,
141141			HTTPStatusCode: res.StatusCode,
141142		},
141143	}
141144	target := &ret
141145	if err := gensupport.DecodeResponse(target, res); err != nil {
141146		return nil, err
141147	}
141148	return ret, nil
141149	// {
141150	//   "description": "Retrieves the list of TargetHttpsProxy resources available to the specified project.",
141151	//   "httpMethod": "GET",
141152	//   "id": "compute.targetHttpsProxies.list",
141153	//   "parameterOrder": [
141154	//     "project"
141155	//   ],
141156	//   "parameters": {
141157	//     "filter": {
141158	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
141159	//       "location": "query",
141160	//       "type": "string"
141161	//     },
141162	//     "maxResults": {
141163	//       "default": "500",
141164	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
141165	//       "format": "uint32",
141166	//       "location": "query",
141167	//       "minimum": "0",
141168	//       "type": "integer"
141169	//     },
141170	//     "orderBy": {
141171	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
141172	//       "location": "query",
141173	//       "type": "string"
141174	//     },
141175	//     "pageToken": {
141176	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
141177	//       "location": "query",
141178	//       "type": "string"
141179	//     },
141180	//     "project": {
141181	//       "description": "Project ID for this request.",
141182	//       "location": "path",
141183	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141184	//       "required": true,
141185	//       "type": "string"
141186	//     }
141187	//   },
141188	//   "path": "{project}/global/targetHttpsProxies",
141189	//   "response": {
141190	//     "$ref": "TargetHttpsProxyList"
141191	//   },
141192	//   "scopes": [
141193	//     "https://www.googleapis.com/auth/cloud-platform",
141194	//     "https://www.googleapis.com/auth/compute",
141195	//     "https://www.googleapis.com/auth/compute.readonly"
141196	//   ]
141197	// }
141198
141199}
141200
141201// Pages invokes f for each page of results.
141202// A non-nil error returned from f will halt the iteration.
141203// The provided context supersedes any context provided to the Context method.
141204func (c *TargetHttpsProxiesListCall) Pages(ctx context.Context, f func(*TargetHttpsProxyList) error) error {
141205	c.ctx_ = ctx
141206	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
141207	for {
141208		x, err := c.Do()
141209		if err != nil {
141210			return err
141211		}
141212		if err := f(x); err != nil {
141213			return err
141214		}
141215		if x.NextPageToken == "" {
141216			return nil
141217		}
141218		c.PageToken(x.NextPageToken)
141219	}
141220}
141221
141222// method id "compute.targetHttpsProxies.setQuicOverride":
141223
141224type TargetHttpsProxiesSetQuicOverrideCall struct {
141225	s                                        *Service
141226	project                                  string
141227	targetHttpsProxy                         string
141228	targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest
141229	urlParams_                               gensupport.URLParams
141230	ctx_                                     context.Context
141231	header_                                  http.Header
141232}
141233
141234// SetQuicOverride: Sets the QUIC override policy for TargetHttpsProxy.
141235func (r *TargetHttpsProxiesService) SetQuicOverride(project string, targetHttpsProxy string, targethttpsproxiessetquicoverriderequest *TargetHttpsProxiesSetQuicOverrideRequest) *TargetHttpsProxiesSetQuicOverrideCall {
141236	c := &TargetHttpsProxiesSetQuicOverrideCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141237	c.project = project
141238	c.targetHttpsProxy = targetHttpsProxy
141239	c.targethttpsproxiessetquicoverriderequest = targethttpsproxiessetquicoverriderequest
141240	return c
141241}
141242
141243// RequestId sets the optional parameter "requestId": An optional
141244// request ID to identify requests. Specify a unique request ID so that
141245// if you must retry your request, the server will know to ignore the
141246// request if it has already been completed.
141247//
141248// For example, consider a situation where you make an initial request
141249// and the request times out. If you make the request again with the
141250// same request ID, the server can check if original operation with the
141251// same request ID was received, and if so, will ignore the second
141252// request. This prevents clients from accidentally creating duplicate
141253// commitments.
141254//
141255// The request ID must be a valid UUID with the exception that zero UUID
141256// is not supported (00000000-0000-0000-0000-000000000000).
141257func (c *TargetHttpsProxiesSetQuicOverrideCall) RequestId(requestId string) *TargetHttpsProxiesSetQuicOverrideCall {
141258	c.urlParams_.Set("requestId", requestId)
141259	return c
141260}
141261
141262// Fields allows partial responses to be retrieved. See
141263// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141264// for more information.
141265func (c *TargetHttpsProxiesSetQuicOverrideCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetQuicOverrideCall {
141266	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141267	return c
141268}
141269
141270// Context sets the context to be used in this call's Do method. Any
141271// pending HTTP request will be aborted if the provided context is
141272// canceled.
141273func (c *TargetHttpsProxiesSetQuicOverrideCall) Context(ctx context.Context) *TargetHttpsProxiesSetQuicOverrideCall {
141274	c.ctx_ = ctx
141275	return c
141276}
141277
141278// Header returns an http.Header that can be modified by the caller to
141279// add HTTP headers to the request.
141280func (c *TargetHttpsProxiesSetQuicOverrideCall) Header() http.Header {
141281	if c.header_ == nil {
141282		c.header_ = make(http.Header)
141283	}
141284	return c.header_
141285}
141286
141287func (c *TargetHttpsProxiesSetQuicOverrideCall) doRequest(alt string) (*http.Response, error) {
141288	reqHeaders := make(http.Header)
141289	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141290	for k, v := range c.header_ {
141291		reqHeaders[k] = v
141292	}
141293	reqHeaders.Set("User-Agent", c.s.userAgent())
141294	var body io.Reader = nil
141295	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetquicoverriderequest)
141296	if err != nil {
141297		return nil, err
141298	}
141299	reqHeaders.Set("Content-Type", "application/json")
141300	c.urlParams_.Set("alt", alt)
141301	c.urlParams_.Set("prettyPrint", "false")
141302	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride")
141303	urls += "?" + c.urlParams_.Encode()
141304	req, err := http.NewRequest("POST", urls, body)
141305	if err != nil {
141306		return nil, err
141307	}
141308	req.Header = reqHeaders
141309	googleapi.Expand(req.URL, map[string]string{
141310		"project":          c.project,
141311		"targetHttpsProxy": c.targetHttpsProxy,
141312	})
141313	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141314}
141315
141316// Do executes the "compute.targetHttpsProxies.setQuicOverride" call.
141317// Exactly one of *Operation or error will be non-nil. Any non-2xx
141318// status code is an error. Response headers are in either
141319// *Operation.ServerResponse.Header or (if a response was returned at
141320// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141321// to check whether the returned error was because
141322// http.StatusNotModified was returned.
141323func (c *TargetHttpsProxiesSetQuicOverrideCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141324	gensupport.SetOptions(c.urlParams_, opts...)
141325	res, err := c.doRequest("json")
141326	if res != nil && res.StatusCode == http.StatusNotModified {
141327		if res.Body != nil {
141328			res.Body.Close()
141329		}
141330		return nil, &googleapi.Error{
141331			Code:   res.StatusCode,
141332			Header: res.Header,
141333		}
141334	}
141335	if err != nil {
141336		return nil, err
141337	}
141338	defer googleapi.CloseBody(res)
141339	if err := googleapi.CheckResponse(res); err != nil {
141340		return nil, err
141341	}
141342	ret := &Operation{
141343		ServerResponse: googleapi.ServerResponse{
141344			Header:         res.Header,
141345			HTTPStatusCode: res.StatusCode,
141346		},
141347	}
141348	target := &ret
141349	if err := gensupport.DecodeResponse(target, res); err != nil {
141350		return nil, err
141351	}
141352	return ret, nil
141353	// {
141354	//   "description": "Sets the QUIC override policy for TargetHttpsProxy.",
141355	//   "httpMethod": "POST",
141356	//   "id": "compute.targetHttpsProxies.setQuicOverride",
141357	//   "parameterOrder": [
141358	//     "project",
141359	//     "targetHttpsProxy"
141360	//   ],
141361	//   "parameters": {
141362	//     "project": {
141363	//       "description": "Project ID for this request.",
141364	//       "location": "path",
141365	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141366	//       "required": true,
141367	//       "type": "string"
141368	//     },
141369	//     "requestId": {
141370	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141371	//       "location": "query",
141372	//       "type": "string"
141373	//     },
141374	//     "targetHttpsProxy": {
141375	//       "description": "Name of the TargetHttpsProxy resource to set the QUIC override policy for. The name should conform to RFC1035.",
141376	//       "location": "path",
141377	//       "required": true,
141378	//       "type": "string"
141379	//     }
141380	//   },
141381	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setQuicOverride",
141382	//   "request": {
141383	//     "$ref": "TargetHttpsProxiesSetQuicOverrideRequest"
141384	//   },
141385	//   "response": {
141386	//     "$ref": "Operation"
141387	//   },
141388	//   "scopes": [
141389	//     "https://www.googleapis.com/auth/cloud-platform",
141390	//     "https://www.googleapis.com/auth/compute"
141391	//   ]
141392	// }
141393
141394}
141395
141396// method id "compute.targetHttpsProxies.setSslCertificates":
141397
141398type TargetHttpsProxiesSetSslCertificatesCall struct {
141399	s                                           *Service
141400	project                                     string
141401	targetHttpsProxy                            string
141402	targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest
141403	urlParams_                                  gensupport.URLParams
141404	ctx_                                        context.Context
141405	header_                                     http.Header
141406}
141407
141408// SetSslCertificates: Replaces SslCertificates for TargetHttpsProxy.
141409func (r *TargetHttpsProxiesService) SetSslCertificates(project string, targetHttpsProxy string, targethttpsproxiessetsslcertificatesrequest *TargetHttpsProxiesSetSslCertificatesRequest) *TargetHttpsProxiesSetSslCertificatesCall {
141410	c := &TargetHttpsProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141411	c.project = project
141412	c.targetHttpsProxy = targetHttpsProxy
141413	c.targethttpsproxiessetsslcertificatesrequest = targethttpsproxiessetsslcertificatesrequest
141414	return c
141415}
141416
141417// RequestId sets the optional parameter "requestId": An optional
141418// request ID to identify requests. Specify a unique request ID so that
141419// if you must retry your request, the server will know to ignore the
141420// request if it has already been completed.
141421//
141422// For example, consider a situation where you make an initial request
141423// and the request times out. If you make the request again with the
141424// same request ID, the server can check if original operation with the
141425// same request ID was received, and if so, will ignore the second
141426// request. This prevents clients from accidentally creating duplicate
141427// commitments.
141428//
141429// The request ID must be a valid UUID with the exception that zero UUID
141430// is not supported (00000000-0000-0000-0000-000000000000).
141431func (c *TargetHttpsProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetHttpsProxiesSetSslCertificatesCall {
141432	c.urlParams_.Set("requestId", requestId)
141433	return c
141434}
141435
141436// Fields allows partial responses to be retrieved. See
141437// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141438// for more information.
141439func (c *TargetHttpsProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslCertificatesCall {
141440	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141441	return c
141442}
141443
141444// Context sets the context to be used in this call's Do method. Any
141445// pending HTTP request will be aborted if the provided context is
141446// canceled.
141447func (c *TargetHttpsProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslCertificatesCall {
141448	c.ctx_ = ctx
141449	return c
141450}
141451
141452// Header returns an http.Header that can be modified by the caller to
141453// add HTTP headers to the request.
141454func (c *TargetHttpsProxiesSetSslCertificatesCall) Header() http.Header {
141455	if c.header_ == nil {
141456		c.header_ = make(http.Header)
141457	}
141458	return c.header_
141459}
141460
141461func (c *TargetHttpsProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
141462	reqHeaders := make(http.Header)
141463	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141464	for k, v := range c.header_ {
141465		reqHeaders[k] = v
141466	}
141467	reqHeaders.Set("User-Agent", c.s.userAgent())
141468	var body io.Reader = nil
141469	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targethttpsproxiessetsslcertificatesrequest)
141470	if err != nil {
141471		return nil, err
141472	}
141473	reqHeaders.Set("Content-Type", "application/json")
141474	c.urlParams_.Set("alt", alt)
141475	c.urlParams_.Set("prettyPrint", "false")
141476	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates")
141477	urls += "?" + c.urlParams_.Encode()
141478	req, err := http.NewRequest("POST", urls, body)
141479	if err != nil {
141480		return nil, err
141481	}
141482	req.Header = reqHeaders
141483	googleapi.Expand(req.URL, map[string]string{
141484		"project":          c.project,
141485		"targetHttpsProxy": c.targetHttpsProxy,
141486	})
141487	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141488}
141489
141490// Do executes the "compute.targetHttpsProxies.setSslCertificates" call.
141491// Exactly one of *Operation or error will be non-nil. Any non-2xx
141492// status code is an error. Response headers are in either
141493// *Operation.ServerResponse.Header or (if a response was returned at
141494// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141495// to check whether the returned error was because
141496// http.StatusNotModified was returned.
141497func (c *TargetHttpsProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141498	gensupport.SetOptions(c.urlParams_, opts...)
141499	res, err := c.doRequest("json")
141500	if res != nil && res.StatusCode == http.StatusNotModified {
141501		if res.Body != nil {
141502			res.Body.Close()
141503		}
141504		return nil, &googleapi.Error{
141505			Code:   res.StatusCode,
141506			Header: res.Header,
141507		}
141508	}
141509	if err != nil {
141510		return nil, err
141511	}
141512	defer googleapi.CloseBody(res)
141513	if err := googleapi.CheckResponse(res); err != nil {
141514		return nil, err
141515	}
141516	ret := &Operation{
141517		ServerResponse: googleapi.ServerResponse{
141518			Header:         res.Header,
141519			HTTPStatusCode: res.StatusCode,
141520		},
141521	}
141522	target := &ret
141523	if err := gensupport.DecodeResponse(target, res); err != nil {
141524		return nil, err
141525	}
141526	return ret, nil
141527	// {
141528	//   "description": "Replaces SslCertificates for TargetHttpsProxy.",
141529	//   "httpMethod": "POST",
141530	//   "id": "compute.targetHttpsProxies.setSslCertificates",
141531	//   "parameterOrder": [
141532	//     "project",
141533	//     "targetHttpsProxy"
141534	//   ],
141535	//   "parameters": {
141536	//     "project": {
141537	//       "description": "Project ID for this request.",
141538	//       "location": "path",
141539	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141540	//       "required": true,
141541	//       "type": "string"
141542	//     },
141543	//     "requestId": {
141544	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141545	//       "location": "query",
141546	//       "type": "string"
141547	//     },
141548	//     "targetHttpsProxy": {
141549	//       "description": "Name of the TargetHttpsProxy resource to set an SslCertificates resource for.",
141550	//       "location": "path",
141551	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141552	//       "required": true,
141553	//       "type": "string"
141554	//     }
141555	//   },
141556	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setSslCertificates",
141557	//   "request": {
141558	//     "$ref": "TargetHttpsProxiesSetSslCertificatesRequest"
141559	//   },
141560	//   "response": {
141561	//     "$ref": "Operation"
141562	//   },
141563	//   "scopes": [
141564	//     "https://www.googleapis.com/auth/cloud-platform",
141565	//     "https://www.googleapis.com/auth/compute"
141566	//   ]
141567	// }
141568
141569}
141570
141571// method id "compute.targetHttpsProxies.setSslPolicy":
141572
141573type TargetHttpsProxiesSetSslPolicyCall struct {
141574	s                  *Service
141575	project            string
141576	targetHttpsProxy   string
141577	sslpolicyreference *SslPolicyReference
141578	urlParams_         gensupport.URLParams
141579	ctx_               context.Context
141580	header_            http.Header
141581}
141582
141583// SetSslPolicy: Sets the SSL policy for TargetHttpsProxy. The SSL
141584// policy specifies the server-side support for SSL features. This
141585// affects connections between clients and the HTTPS proxy load
141586// balancer. They do not affect the connection between the load balancer
141587// and the backends.
141588func (r *TargetHttpsProxiesService) SetSslPolicy(project string, targetHttpsProxy string, sslpolicyreference *SslPolicyReference) *TargetHttpsProxiesSetSslPolicyCall {
141589	c := &TargetHttpsProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141590	c.project = project
141591	c.targetHttpsProxy = targetHttpsProxy
141592	c.sslpolicyreference = sslpolicyreference
141593	return c
141594}
141595
141596// RequestId sets the optional parameter "requestId": An optional
141597// request ID to identify requests. Specify a unique request ID so that
141598// if you must retry your request, the server will know to ignore the
141599// request if it has already been completed.
141600//
141601// For example, consider a situation where you make an initial request
141602// and the request times out. If you make the request again with the
141603// same request ID, the server can check if original operation with the
141604// same request ID was received, and if so, will ignore the second
141605// request. This prevents clients from accidentally creating duplicate
141606// commitments.
141607//
141608// The request ID must be a valid UUID with the exception that zero UUID
141609// is not supported (00000000-0000-0000-0000-000000000000).
141610func (c *TargetHttpsProxiesSetSslPolicyCall) RequestId(requestId string) *TargetHttpsProxiesSetSslPolicyCall {
141611	c.urlParams_.Set("requestId", requestId)
141612	return c
141613}
141614
141615// Fields allows partial responses to be retrieved. See
141616// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141617// for more information.
141618func (c *TargetHttpsProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetSslPolicyCall {
141619	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141620	return c
141621}
141622
141623// Context sets the context to be used in this call's Do method. Any
141624// pending HTTP request will be aborted if the provided context is
141625// canceled.
141626func (c *TargetHttpsProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetHttpsProxiesSetSslPolicyCall {
141627	c.ctx_ = ctx
141628	return c
141629}
141630
141631// Header returns an http.Header that can be modified by the caller to
141632// add HTTP headers to the request.
141633func (c *TargetHttpsProxiesSetSslPolicyCall) Header() http.Header {
141634	if c.header_ == nil {
141635		c.header_ = make(http.Header)
141636	}
141637	return c.header_
141638}
141639
141640func (c *TargetHttpsProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
141641	reqHeaders := make(http.Header)
141642	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141643	for k, v := range c.header_ {
141644		reqHeaders[k] = v
141645	}
141646	reqHeaders.Set("User-Agent", c.s.userAgent())
141647	var body io.Reader = nil
141648	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
141649	if err != nil {
141650		return nil, err
141651	}
141652	reqHeaders.Set("Content-Type", "application/json")
141653	c.urlParams_.Set("alt", alt)
141654	c.urlParams_.Set("prettyPrint", "false")
141655	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy")
141656	urls += "?" + c.urlParams_.Encode()
141657	req, err := http.NewRequest("POST", urls, body)
141658	if err != nil {
141659		return nil, err
141660	}
141661	req.Header = reqHeaders
141662	googleapi.Expand(req.URL, map[string]string{
141663		"project":          c.project,
141664		"targetHttpsProxy": c.targetHttpsProxy,
141665	})
141666	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141667}
141668
141669// Do executes the "compute.targetHttpsProxies.setSslPolicy" call.
141670// Exactly one of *Operation or error will be non-nil. Any non-2xx
141671// status code is an error. Response headers are in either
141672// *Operation.ServerResponse.Header or (if a response was returned at
141673// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141674// to check whether the returned error was because
141675// http.StatusNotModified was returned.
141676func (c *TargetHttpsProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141677	gensupport.SetOptions(c.urlParams_, opts...)
141678	res, err := c.doRequest("json")
141679	if res != nil && res.StatusCode == http.StatusNotModified {
141680		if res.Body != nil {
141681			res.Body.Close()
141682		}
141683		return nil, &googleapi.Error{
141684			Code:   res.StatusCode,
141685			Header: res.Header,
141686		}
141687	}
141688	if err != nil {
141689		return nil, err
141690	}
141691	defer googleapi.CloseBody(res)
141692	if err := googleapi.CheckResponse(res); err != nil {
141693		return nil, err
141694	}
141695	ret := &Operation{
141696		ServerResponse: googleapi.ServerResponse{
141697			Header:         res.Header,
141698			HTTPStatusCode: res.StatusCode,
141699		},
141700	}
141701	target := &ret
141702	if err := gensupport.DecodeResponse(target, res); err != nil {
141703		return nil, err
141704	}
141705	return ret, nil
141706	// {
141707	//   "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.",
141708	//   "httpMethod": "POST",
141709	//   "id": "compute.targetHttpsProxies.setSslPolicy",
141710	//   "parameterOrder": [
141711	//     "project",
141712	//     "targetHttpsProxy"
141713	//   ],
141714	//   "parameters": {
141715	//     "project": {
141716	//       "description": "Project ID for this request.",
141717	//       "location": "path",
141718	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141719	//       "required": true,
141720	//       "type": "string"
141721	//     },
141722	//     "requestId": {
141723	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141724	//       "location": "query",
141725	//       "type": "string"
141726	//     },
141727	//     "targetHttpsProxy": {
141728	//       "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.",
141729	//       "location": "path",
141730	//       "required": true,
141731	//       "type": "string"
141732	//     }
141733	//   },
141734	//   "path": "{project}/global/targetHttpsProxies/{targetHttpsProxy}/setSslPolicy",
141735	//   "request": {
141736	//     "$ref": "SslPolicyReference"
141737	//   },
141738	//   "response": {
141739	//     "$ref": "Operation"
141740	//   },
141741	//   "scopes": [
141742	//     "https://www.googleapis.com/auth/cloud-platform",
141743	//     "https://www.googleapis.com/auth/compute"
141744	//   ]
141745	// }
141746
141747}
141748
141749// method id "compute.targetHttpsProxies.setUrlMap":
141750
141751type TargetHttpsProxiesSetUrlMapCall struct {
141752	s                *Service
141753	project          string
141754	targetHttpsProxy string
141755	urlmapreference  *UrlMapReference
141756	urlParams_       gensupport.URLParams
141757	ctx_             context.Context
141758	header_          http.Header
141759}
141760
141761// SetUrlMap: Changes the URL map for TargetHttpsProxy.
141762func (r *TargetHttpsProxiesService) SetUrlMap(project string, targetHttpsProxy string, urlmapreference *UrlMapReference) *TargetHttpsProxiesSetUrlMapCall {
141763	c := &TargetHttpsProxiesSetUrlMapCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141764	c.project = project
141765	c.targetHttpsProxy = targetHttpsProxy
141766	c.urlmapreference = urlmapreference
141767	return c
141768}
141769
141770// RequestId sets the optional parameter "requestId": An optional
141771// request ID to identify requests. Specify a unique request ID so that
141772// if you must retry your request, the server will know to ignore the
141773// request if it has already been completed.
141774//
141775// For example, consider a situation where you make an initial request
141776// and the request times out. If you make the request again with the
141777// same request ID, the server can check if original operation with the
141778// same request ID was received, and if so, will ignore the second
141779// request. This prevents clients from accidentally creating duplicate
141780// commitments.
141781//
141782// The request ID must be a valid UUID with the exception that zero UUID
141783// is not supported (00000000-0000-0000-0000-000000000000).
141784func (c *TargetHttpsProxiesSetUrlMapCall) RequestId(requestId string) *TargetHttpsProxiesSetUrlMapCall {
141785	c.urlParams_.Set("requestId", requestId)
141786	return c
141787}
141788
141789// Fields allows partial responses to be retrieved. See
141790// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141791// for more information.
141792func (c *TargetHttpsProxiesSetUrlMapCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesSetUrlMapCall {
141793	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141794	return c
141795}
141796
141797// Context sets the context to be used in this call's Do method. Any
141798// pending HTTP request will be aborted if the provided context is
141799// canceled.
141800func (c *TargetHttpsProxiesSetUrlMapCall) Context(ctx context.Context) *TargetHttpsProxiesSetUrlMapCall {
141801	c.ctx_ = ctx
141802	return c
141803}
141804
141805// Header returns an http.Header that can be modified by the caller to
141806// add HTTP headers to the request.
141807func (c *TargetHttpsProxiesSetUrlMapCall) Header() http.Header {
141808	if c.header_ == nil {
141809		c.header_ = make(http.Header)
141810	}
141811	return c.header_
141812}
141813
141814func (c *TargetHttpsProxiesSetUrlMapCall) doRequest(alt string) (*http.Response, error) {
141815	reqHeaders := make(http.Header)
141816	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141817	for k, v := range c.header_ {
141818		reqHeaders[k] = v
141819	}
141820	reqHeaders.Set("User-Agent", c.s.userAgent())
141821	var body io.Reader = nil
141822	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapreference)
141823	if err != nil {
141824		return nil, err
141825	}
141826	reqHeaders.Set("Content-Type", "application/json")
141827	c.urlParams_.Set("alt", alt)
141828	c.urlParams_.Set("prettyPrint", "false")
141829	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap")
141830	urls += "?" + c.urlParams_.Encode()
141831	req, err := http.NewRequest("POST", urls, body)
141832	if err != nil {
141833		return nil, err
141834	}
141835	req.Header = reqHeaders
141836	googleapi.Expand(req.URL, map[string]string{
141837		"project":          c.project,
141838		"targetHttpsProxy": c.targetHttpsProxy,
141839	})
141840	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141841}
141842
141843// Do executes the "compute.targetHttpsProxies.setUrlMap" call.
141844// Exactly one of *Operation or error will be non-nil. Any non-2xx
141845// status code is an error. Response headers are in either
141846// *Operation.ServerResponse.Header or (if a response was returned at
141847// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
141848// to check whether the returned error was because
141849// http.StatusNotModified was returned.
141850func (c *TargetHttpsProxiesSetUrlMapCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
141851	gensupport.SetOptions(c.urlParams_, opts...)
141852	res, err := c.doRequest("json")
141853	if res != nil && res.StatusCode == http.StatusNotModified {
141854		if res.Body != nil {
141855			res.Body.Close()
141856		}
141857		return nil, &googleapi.Error{
141858			Code:   res.StatusCode,
141859			Header: res.Header,
141860		}
141861	}
141862	if err != nil {
141863		return nil, err
141864	}
141865	defer googleapi.CloseBody(res)
141866	if err := googleapi.CheckResponse(res); err != nil {
141867		return nil, err
141868	}
141869	ret := &Operation{
141870		ServerResponse: googleapi.ServerResponse{
141871			Header:         res.Header,
141872			HTTPStatusCode: res.StatusCode,
141873		},
141874	}
141875	target := &ret
141876	if err := gensupport.DecodeResponse(target, res); err != nil {
141877		return nil, err
141878	}
141879	return ret, nil
141880	// {
141881	//   "description": "Changes the URL map for TargetHttpsProxy.",
141882	//   "httpMethod": "POST",
141883	//   "id": "compute.targetHttpsProxies.setUrlMap",
141884	//   "parameterOrder": [
141885	//     "project",
141886	//     "targetHttpsProxy"
141887	//   ],
141888	//   "parameters": {
141889	//     "project": {
141890	//       "description": "Project ID for this request.",
141891	//       "location": "path",
141892	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
141893	//       "required": true,
141894	//       "type": "string"
141895	//     },
141896	//     "requestId": {
141897	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
141898	//       "location": "query",
141899	//       "type": "string"
141900	//     },
141901	//     "targetHttpsProxy": {
141902	//       "description": "Name of the TargetHttpsProxy resource whose URL map is to be set.",
141903	//       "location": "path",
141904	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
141905	//       "required": true,
141906	//       "type": "string"
141907	//     }
141908	//   },
141909	//   "path": "{project}/targetHttpsProxies/{targetHttpsProxy}/setUrlMap",
141910	//   "request": {
141911	//     "$ref": "UrlMapReference"
141912	//   },
141913	//   "response": {
141914	//     "$ref": "Operation"
141915	//   },
141916	//   "scopes": [
141917	//     "https://www.googleapis.com/auth/cloud-platform",
141918	//     "https://www.googleapis.com/auth/compute"
141919	//   ]
141920	// }
141921
141922}
141923
141924// method id "compute.targetHttpsProxies.testIamPermissions":
141925
141926type TargetHttpsProxiesTestIamPermissionsCall struct {
141927	s                      *Service
141928	project                string
141929	resource               string
141930	testpermissionsrequest *TestPermissionsRequest
141931	urlParams_             gensupport.URLParams
141932	ctx_                   context.Context
141933	header_                http.Header
141934}
141935
141936// TestIamPermissions: Returns permissions that a caller has on the
141937// specified resource.
141938func (r *TargetHttpsProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetHttpsProxiesTestIamPermissionsCall {
141939	c := &TargetHttpsProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
141940	c.project = project
141941	c.resource = resource
141942	c.testpermissionsrequest = testpermissionsrequest
141943	return c
141944}
141945
141946// Fields allows partial responses to be retrieved. See
141947// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
141948// for more information.
141949func (c *TargetHttpsProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetHttpsProxiesTestIamPermissionsCall {
141950	c.urlParams_.Set("fields", googleapi.CombineFields(s))
141951	return c
141952}
141953
141954// Context sets the context to be used in this call's Do method. Any
141955// pending HTTP request will be aborted if the provided context is
141956// canceled.
141957func (c *TargetHttpsProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetHttpsProxiesTestIamPermissionsCall {
141958	c.ctx_ = ctx
141959	return c
141960}
141961
141962// Header returns an http.Header that can be modified by the caller to
141963// add HTTP headers to the request.
141964func (c *TargetHttpsProxiesTestIamPermissionsCall) Header() http.Header {
141965	if c.header_ == nil {
141966		c.header_ = make(http.Header)
141967	}
141968	return c.header_
141969}
141970
141971func (c *TargetHttpsProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
141972	reqHeaders := make(http.Header)
141973	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
141974	for k, v := range c.header_ {
141975		reqHeaders[k] = v
141976	}
141977	reqHeaders.Set("User-Agent", c.s.userAgent())
141978	var body io.Reader = nil
141979	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
141980	if err != nil {
141981		return nil, err
141982	}
141983	reqHeaders.Set("Content-Type", "application/json")
141984	c.urlParams_.Set("alt", alt)
141985	c.urlParams_.Set("prettyPrint", "false")
141986	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetHttpsProxies/{resource}/testIamPermissions")
141987	urls += "?" + c.urlParams_.Encode()
141988	req, err := http.NewRequest("POST", urls, body)
141989	if err != nil {
141990		return nil, err
141991	}
141992	req.Header = reqHeaders
141993	googleapi.Expand(req.URL, map[string]string{
141994		"project":  c.project,
141995		"resource": c.resource,
141996	})
141997	return gensupport.SendRequest(c.ctx_, c.s.client, req)
141998}
141999
142000// Do executes the "compute.targetHttpsProxies.testIamPermissions" call.
142001// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
142002// non-2xx status code is an error. Response headers are in either
142003// *TestPermissionsResponse.ServerResponse.Header or (if a response was
142004// returned at all) in error.(*googleapi.Error).Header. Use
142005// googleapi.IsNotModified to check whether the returned error was
142006// because http.StatusNotModified was returned.
142007func (c *TargetHttpsProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
142008	gensupport.SetOptions(c.urlParams_, opts...)
142009	res, err := c.doRequest("json")
142010	if res != nil && res.StatusCode == http.StatusNotModified {
142011		if res.Body != nil {
142012			res.Body.Close()
142013		}
142014		return nil, &googleapi.Error{
142015			Code:   res.StatusCode,
142016			Header: res.Header,
142017		}
142018	}
142019	if err != nil {
142020		return nil, err
142021	}
142022	defer googleapi.CloseBody(res)
142023	if err := googleapi.CheckResponse(res); err != nil {
142024		return nil, err
142025	}
142026	ret := &TestPermissionsResponse{
142027		ServerResponse: googleapi.ServerResponse{
142028			Header:         res.Header,
142029			HTTPStatusCode: res.StatusCode,
142030		},
142031	}
142032	target := &ret
142033	if err := gensupport.DecodeResponse(target, res); err != nil {
142034		return nil, err
142035	}
142036	return ret, nil
142037	// {
142038	//   "description": "Returns permissions that a caller has on the specified resource.",
142039	//   "httpMethod": "POST",
142040	//   "id": "compute.targetHttpsProxies.testIamPermissions",
142041	//   "parameterOrder": [
142042	//     "project",
142043	//     "resource"
142044	//   ],
142045	//   "parameters": {
142046	//     "project": {
142047	//       "description": "Project ID for this request.",
142048	//       "location": "path",
142049	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142050	//       "required": true,
142051	//       "type": "string"
142052	//     },
142053	//     "resource": {
142054	//       "description": "Name or id of the resource for this request.",
142055	//       "location": "path",
142056	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142057	//       "required": true,
142058	//       "type": "string"
142059	//     }
142060	//   },
142061	//   "path": "{project}/global/targetHttpsProxies/{resource}/testIamPermissions",
142062	//   "request": {
142063	//     "$ref": "TestPermissionsRequest"
142064	//   },
142065	//   "response": {
142066	//     "$ref": "TestPermissionsResponse"
142067	//   },
142068	//   "scopes": [
142069	//     "https://www.googleapis.com/auth/cloud-platform",
142070	//     "https://www.googleapis.com/auth/compute",
142071	//     "https://www.googleapis.com/auth/compute.readonly"
142072	//   ]
142073	// }
142074
142075}
142076
142077// method id "compute.targetInstances.aggregatedList":
142078
142079type TargetInstancesAggregatedListCall struct {
142080	s            *Service
142081	project      string
142082	urlParams_   gensupport.URLParams
142083	ifNoneMatch_ string
142084	ctx_         context.Context
142085	header_      http.Header
142086}
142087
142088// AggregatedList: Retrieves an aggregated list of target instances.
142089// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/aggregatedList
142090func (r *TargetInstancesService) AggregatedList(project string) *TargetInstancesAggregatedListCall {
142091	c := &TargetInstancesAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142092	c.project = project
142093	return c
142094}
142095
142096// Filter sets the optional parameter "filter": A filter expression that
142097// filters resources listed in the response. The expression must specify
142098// the field name, a comparison operator, and the value that you want to
142099// use for filtering. The value must be a string, a number, or a
142100// boolean. The comparison operator must be either =, !=, >, or <.
142101//
142102// For example, if you are filtering Compute Engine instances, you can
142103// exclude instances named example-instance by specifying name !=
142104// example-instance.
142105//
142106// You can also filter nested fields. For example, you could specify
142107// scheduling.automaticRestart = false to include instances only if they
142108// are not scheduled for automatic restarts. You can use filtering on
142109// nested fields to filter based on resource labels.
142110//
142111// To filter on multiple expressions, provide each separate expression
142112// within parentheses. For example, (scheduling.automaticRestart = true)
142113// (cpuPlatform = "Intel Skylake"). By default, each expression is an
142114// AND expression. However, you can include AND and OR expressions
142115// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
142116// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
142117// true).
142118func (c *TargetInstancesAggregatedListCall) Filter(filter string) *TargetInstancesAggregatedListCall {
142119	c.urlParams_.Set("filter", filter)
142120	return c
142121}
142122
142123// IncludeAllScopes sets the optional parameter "includeAllScopes":
142124// Indicates whether every visible scope for each scope type (zone,
142125// region, global) should be included in the response. For new resource
142126// types added after this field, the flag has no effect as new resource
142127// types will always include every visible scope for each scope type in
142128// response. For resource types which predate this field, if this flag
142129// is omitted or false, only scopes of the scope types where the
142130// resource type is expected to be found will be included.
142131func (c *TargetInstancesAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetInstancesAggregatedListCall {
142132	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
142133	return c
142134}
142135
142136// MaxResults sets the optional parameter "maxResults": The maximum
142137// number of results per page that should be returned. If the number of
142138// available results is larger than maxResults, Compute Engine returns a
142139// nextPageToken that can be used to get the next page of results in
142140// subsequent list requests. Acceptable values are 0 to 500, inclusive.
142141// (Default: 500)
142142func (c *TargetInstancesAggregatedListCall) MaxResults(maxResults int64) *TargetInstancesAggregatedListCall {
142143	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142144	return c
142145}
142146
142147// OrderBy sets the optional parameter "orderBy": Sorts list results by
142148// a certain order. By default, results are returned in alphanumerical
142149// order based on the resource name.
142150//
142151// You can also sort results in descending order based on the creation
142152// timestamp using orderBy="creationTimestamp desc". This sorts results
142153// based on the creationTimestamp field in reverse chronological order
142154// (newest result first). Use this to sort resources like operations so
142155// that the newest operation is returned first.
142156//
142157// Currently, only sorting by name or creationTimestamp desc is
142158// supported.
142159func (c *TargetInstancesAggregatedListCall) OrderBy(orderBy string) *TargetInstancesAggregatedListCall {
142160	c.urlParams_.Set("orderBy", orderBy)
142161	return c
142162}
142163
142164// PageToken sets the optional parameter "pageToken": Specifies a page
142165// token to use. Set pageToken to the nextPageToken returned by a
142166// previous list request to get the next page of results.
142167func (c *TargetInstancesAggregatedListCall) PageToken(pageToken string) *TargetInstancesAggregatedListCall {
142168	c.urlParams_.Set("pageToken", pageToken)
142169	return c
142170}
142171
142172// Fields allows partial responses to be retrieved. See
142173// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142174// for more information.
142175func (c *TargetInstancesAggregatedListCall) Fields(s ...googleapi.Field) *TargetInstancesAggregatedListCall {
142176	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142177	return c
142178}
142179
142180// IfNoneMatch sets the optional parameter which makes the operation
142181// fail if the object's ETag matches the given value. This is useful for
142182// getting updates only after the object has changed since the last
142183// request. Use googleapi.IsNotModified to check whether the response
142184// error from Do is the result of In-None-Match.
142185func (c *TargetInstancesAggregatedListCall) IfNoneMatch(entityTag string) *TargetInstancesAggregatedListCall {
142186	c.ifNoneMatch_ = entityTag
142187	return c
142188}
142189
142190// Context sets the context to be used in this call's Do method. Any
142191// pending HTTP request will be aborted if the provided context is
142192// canceled.
142193func (c *TargetInstancesAggregatedListCall) Context(ctx context.Context) *TargetInstancesAggregatedListCall {
142194	c.ctx_ = ctx
142195	return c
142196}
142197
142198// Header returns an http.Header that can be modified by the caller to
142199// add HTTP headers to the request.
142200func (c *TargetInstancesAggregatedListCall) Header() http.Header {
142201	if c.header_ == nil {
142202		c.header_ = make(http.Header)
142203	}
142204	return c.header_
142205}
142206
142207func (c *TargetInstancesAggregatedListCall) doRequest(alt string) (*http.Response, error) {
142208	reqHeaders := make(http.Header)
142209	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142210	for k, v := range c.header_ {
142211		reqHeaders[k] = v
142212	}
142213	reqHeaders.Set("User-Agent", c.s.userAgent())
142214	if c.ifNoneMatch_ != "" {
142215		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142216	}
142217	var body io.Reader = nil
142218	c.urlParams_.Set("alt", alt)
142219	c.urlParams_.Set("prettyPrint", "false")
142220	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetInstances")
142221	urls += "?" + c.urlParams_.Encode()
142222	req, err := http.NewRequest("GET", urls, body)
142223	if err != nil {
142224		return nil, err
142225	}
142226	req.Header = reqHeaders
142227	googleapi.Expand(req.URL, map[string]string{
142228		"project": c.project,
142229	})
142230	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142231}
142232
142233// Do executes the "compute.targetInstances.aggregatedList" call.
142234// Exactly one of *TargetInstanceAggregatedList or error will be
142235// non-nil. Any non-2xx status code is an error. Response headers are in
142236// either *TargetInstanceAggregatedList.ServerResponse.Header or (if a
142237// response was returned at all) in error.(*googleapi.Error).Header. Use
142238// googleapi.IsNotModified to check whether the returned error was
142239// because http.StatusNotModified was returned.
142240func (c *TargetInstancesAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceAggregatedList, error) {
142241	gensupport.SetOptions(c.urlParams_, opts...)
142242	res, err := c.doRequest("json")
142243	if res != nil && res.StatusCode == http.StatusNotModified {
142244		if res.Body != nil {
142245			res.Body.Close()
142246		}
142247		return nil, &googleapi.Error{
142248			Code:   res.StatusCode,
142249			Header: res.Header,
142250		}
142251	}
142252	if err != nil {
142253		return nil, err
142254	}
142255	defer googleapi.CloseBody(res)
142256	if err := googleapi.CheckResponse(res); err != nil {
142257		return nil, err
142258	}
142259	ret := &TargetInstanceAggregatedList{
142260		ServerResponse: googleapi.ServerResponse{
142261			Header:         res.Header,
142262			HTTPStatusCode: res.StatusCode,
142263		},
142264	}
142265	target := &ret
142266	if err := gensupport.DecodeResponse(target, res); err != nil {
142267		return nil, err
142268	}
142269	return ret, nil
142270	// {
142271	//   "description": "Retrieves an aggregated list of target instances.",
142272	//   "httpMethod": "GET",
142273	//   "id": "compute.targetInstances.aggregatedList",
142274	//   "parameterOrder": [
142275	//     "project"
142276	//   ],
142277	//   "parameters": {
142278	//     "filter": {
142279	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
142280	//       "location": "query",
142281	//       "type": "string"
142282	//     },
142283	//     "includeAllScopes": {
142284	//       "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.",
142285	//       "location": "query",
142286	//       "type": "boolean"
142287	//     },
142288	//     "maxResults": {
142289	//       "default": "500",
142290	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
142291	//       "format": "uint32",
142292	//       "location": "query",
142293	//       "minimum": "0",
142294	//       "type": "integer"
142295	//     },
142296	//     "orderBy": {
142297	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
142298	//       "location": "query",
142299	//       "type": "string"
142300	//     },
142301	//     "pageToken": {
142302	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
142303	//       "location": "query",
142304	//       "type": "string"
142305	//     },
142306	//     "project": {
142307	//       "description": "Project ID for this request.",
142308	//       "location": "path",
142309	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142310	//       "required": true,
142311	//       "type": "string"
142312	//     }
142313	//   },
142314	//   "path": "{project}/aggregated/targetInstances",
142315	//   "response": {
142316	//     "$ref": "TargetInstanceAggregatedList"
142317	//   },
142318	//   "scopes": [
142319	//     "https://www.googleapis.com/auth/cloud-platform",
142320	//     "https://www.googleapis.com/auth/compute",
142321	//     "https://www.googleapis.com/auth/compute.readonly"
142322	//   ]
142323	// }
142324
142325}
142326
142327// Pages invokes f for each page of results.
142328// A non-nil error returned from f will halt the iteration.
142329// The provided context supersedes any context provided to the Context method.
142330func (c *TargetInstancesAggregatedListCall) Pages(ctx context.Context, f func(*TargetInstanceAggregatedList) error) error {
142331	c.ctx_ = ctx
142332	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
142333	for {
142334		x, err := c.Do()
142335		if err != nil {
142336			return err
142337		}
142338		if err := f(x); err != nil {
142339			return err
142340		}
142341		if x.NextPageToken == "" {
142342			return nil
142343		}
142344		c.PageToken(x.NextPageToken)
142345	}
142346}
142347
142348// method id "compute.targetInstances.delete":
142349
142350type TargetInstancesDeleteCall struct {
142351	s              *Service
142352	project        string
142353	zone           string
142354	targetInstance string
142355	urlParams_     gensupport.URLParams
142356	ctx_           context.Context
142357	header_        http.Header
142358}
142359
142360// Delete: Deletes the specified TargetInstance resource.
142361// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/delete
142362func (r *TargetInstancesService) Delete(project string, zone string, targetInstance string) *TargetInstancesDeleteCall {
142363	c := &TargetInstancesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142364	c.project = project
142365	c.zone = zone
142366	c.targetInstance = targetInstance
142367	return c
142368}
142369
142370// RequestId sets the optional parameter "requestId": An optional
142371// request ID to identify requests. Specify a unique request ID so that
142372// if you must retry your request, the server will know to ignore the
142373// request if it has already been completed.
142374//
142375// For example, consider a situation where you make an initial request
142376// and the request times out. If you make the request again with the
142377// same request ID, the server can check if original operation with the
142378// same request ID was received, and if so, will ignore the second
142379// request. This prevents clients from accidentally creating duplicate
142380// commitments.
142381//
142382// The request ID must be a valid UUID with the exception that zero UUID
142383// is not supported (00000000-0000-0000-0000-000000000000).
142384func (c *TargetInstancesDeleteCall) RequestId(requestId string) *TargetInstancesDeleteCall {
142385	c.urlParams_.Set("requestId", requestId)
142386	return c
142387}
142388
142389// Fields allows partial responses to be retrieved. See
142390// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142391// for more information.
142392func (c *TargetInstancesDeleteCall) Fields(s ...googleapi.Field) *TargetInstancesDeleteCall {
142393	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142394	return c
142395}
142396
142397// Context sets the context to be used in this call's Do method. Any
142398// pending HTTP request will be aborted if the provided context is
142399// canceled.
142400func (c *TargetInstancesDeleteCall) Context(ctx context.Context) *TargetInstancesDeleteCall {
142401	c.ctx_ = ctx
142402	return c
142403}
142404
142405// Header returns an http.Header that can be modified by the caller to
142406// add HTTP headers to the request.
142407func (c *TargetInstancesDeleteCall) Header() http.Header {
142408	if c.header_ == nil {
142409		c.header_ = make(http.Header)
142410	}
142411	return c.header_
142412}
142413
142414func (c *TargetInstancesDeleteCall) doRequest(alt string) (*http.Response, error) {
142415	reqHeaders := make(http.Header)
142416	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142417	for k, v := range c.header_ {
142418		reqHeaders[k] = v
142419	}
142420	reqHeaders.Set("User-Agent", c.s.userAgent())
142421	var body io.Reader = nil
142422	c.urlParams_.Set("alt", alt)
142423	c.urlParams_.Set("prettyPrint", "false")
142424	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
142425	urls += "?" + c.urlParams_.Encode()
142426	req, err := http.NewRequest("DELETE", urls, body)
142427	if err != nil {
142428		return nil, err
142429	}
142430	req.Header = reqHeaders
142431	googleapi.Expand(req.URL, map[string]string{
142432		"project":        c.project,
142433		"zone":           c.zone,
142434		"targetInstance": c.targetInstance,
142435	})
142436	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142437}
142438
142439// Do executes the "compute.targetInstances.delete" call.
142440// Exactly one of *Operation or error will be non-nil. Any non-2xx
142441// status code is an error. Response headers are in either
142442// *Operation.ServerResponse.Header or (if a response was returned at
142443// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142444// to check whether the returned error was because
142445// http.StatusNotModified was returned.
142446func (c *TargetInstancesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142447	gensupport.SetOptions(c.urlParams_, opts...)
142448	res, err := c.doRequest("json")
142449	if res != nil && res.StatusCode == http.StatusNotModified {
142450		if res.Body != nil {
142451			res.Body.Close()
142452		}
142453		return nil, &googleapi.Error{
142454			Code:   res.StatusCode,
142455			Header: res.Header,
142456		}
142457	}
142458	if err != nil {
142459		return nil, err
142460	}
142461	defer googleapi.CloseBody(res)
142462	if err := googleapi.CheckResponse(res); err != nil {
142463		return nil, err
142464	}
142465	ret := &Operation{
142466		ServerResponse: googleapi.ServerResponse{
142467			Header:         res.Header,
142468			HTTPStatusCode: res.StatusCode,
142469		},
142470	}
142471	target := &ret
142472	if err := gensupport.DecodeResponse(target, res); err != nil {
142473		return nil, err
142474	}
142475	return ret, nil
142476	// {
142477	//   "description": "Deletes the specified TargetInstance resource.",
142478	//   "httpMethod": "DELETE",
142479	//   "id": "compute.targetInstances.delete",
142480	//   "parameterOrder": [
142481	//     "project",
142482	//     "zone",
142483	//     "targetInstance"
142484	//   ],
142485	//   "parameters": {
142486	//     "project": {
142487	//       "description": "Project ID for this request.",
142488	//       "location": "path",
142489	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142490	//       "required": true,
142491	//       "type": "string"
142492	//     },
142493	//     "requestId": {
142494	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142495	//       "location": "query",
142496	//       "type": "string"
142497	//     },
142498	//     "targetInstance": {
142499	//       "description": "Name of the TargetInstance resource to delete.",
142500	//       "location": "path",
142501	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142502	//       "required": true,
142503	//       "type": "string"
142504	//     },
142505	//     "zone": {
142506	//       "description": "Name of the zone scoping this request.",
142507	//       "location": "path",
142508	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142509	//       "required": true,
142510	//       "type": "string"
142511	//     }
142512	//   },
142513	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
142514	//   "response": {
142515	//     "$ref": "Operation"
142516	//   },
142517	//   "scopes": [
142518	//     "https://www.googleapis.com/auth/cloud-platform",
142519	//     "https://www.googleapis.com/auth/compute"
142520	//   ]
142521	// }
142522
142523}
142524
142525// method id "compute.targetInstances.get":
142526
142527type TargetInstancesGetCall struct {
142528	s              *Service
142529	project        string
142530	zone           string
142531	targetInstance string
142532	urlParams_     gensupport.URLParams
142533	ifNoneMatch_   string
142534	ctx_           context.Context
142535	header_        http.Header
142536}
142537
142538// Get: Returns the specified TargetInstance resource. Gets a list of
142539// available target instances by making a list() request.
142540// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/get
142541func (r *TargetInstancesService) Get(project string, zone string, targetInstance string) *TargetInstancesGetCall {
142542	c := &TargetInstancesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142543	c.project = project
142544	c.zone = zone
142545	c.targetInstance = targetInstance
142546	return c
142547}
142548
142549// Fields allows partial responses to be retrieved. See
142550// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142551// for more information.
142552func (c *TargetInstancesGetCall) Fields(s ...googleapi.Field) *TargetInstancesGetCall {
142553	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142554	return c
142555}
142556
142557// IfNoneMatch sets the optional parameter which makes the operation
142558// fail if the object's ETag matches the given value. This is useful for
142559// getting updates only after the object has changed since the last
142560// request. Use googleapi.IsNotModified to check whether the response
142561// error from Do is the result of In-None-Match.
142562func (c *TargetInstancesGetCall) IfNoneMatch(entityTag string) *TargetInstancesGetCall {
142563	c.ifNoneMatch_ = entityTag
142564	return c
142565}
142566
142567// Context sets the context to be used in this call's Do method. Any
142568// pending HTTP request will be aborted if the provided context is
142569// canceled.
142570func (c *TargetInstancesGetCall) Context(ctx context.Context) *TargetInstancesGetCall {
142571	c.ctx_ = ctx
142572	return c
142573}
142574
142575// Header returns an http.Header that can be modified by the caller to
142576// add HTTP headers to the request.
142577func (c *TargetInstancesGetCall) Header() http.Header {
142578	if c.header_ == nil {
142579		c.header_ = make(http.Header)
142580	}
142581	return c.header_
142582}
142583
142584func (c *TargetInstancesGetCall) doRequest(alt string) (*http.Response, error) {
142585	reqHeaders := make(http.Header)
142586	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142587	for k, v := range c.header_ {
142588		reqHeaders[k] = v
142589	}
142590	reqHeaders.Set("User-Agent", c.s.userAgent())
142591	if c.ifNoneMatch_ != "" {
142592		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
142593	}
142594	var body io.Reader = nil
142595	c.urlParams_.Set("alt", alt)
142596	c.urlParams_.Set("prettyPrint", "false")
142597	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{targetInstance}")
142598	urls += "?" + c.urlParams_.Encode()
142599	req, err := http.NewRequest("GET", urls, body)
142600	if err != nil {
142601		return nil, err
142602	}
142603	req.Header = reqHeaders
142604	googleapi.Expand(req.URL, map[string]string{
142605		"project":        c.project,
142606		"zone":           c.zone,
142607		"targetInstance": c.targetInstance,
142608	})
142609	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142610}
142611
142612// Do executes the "compute.targetInstances.get" call.
142613// Exactly one of *TargetInstance or error will be non-nil. Any non-2xx
142614// status code is an error. Response headers are in either
142615// *TargetInstance.ServerResponse.Header or (if a response was returned
142616// at all) in error.(*googleapi.Error).Header. Use
142617// googleapi.IsNotModified to check whether the returned error was
142618// because http.StatusNotModified was returned.
142619func (c *TargetInstancesGetCall) Do(opts ...googleapi.CallOption) (*TargetInstance, error) {
142620	gensupport.SetOptions(c.urlParams_, opts...)
142621	res, err := c.doRequest("json")
142622	if res != nil && res.StatusCode == http.StatusNotModified {
142623		if res.Body != nil {
142624			res.Body.Close()
142625		}
142626		return nil, &googleapi.Error{
142627			Code:   res.StatusCode,
142628			Header: res.Header,
142629		}
142630	}
142631	if err != nil {
142632		return nil, err
142633	}
142634	defer googleapi.CloseBody(res)
142635	if err := googleapi.CheckResponse(res); err != nil {
142636		return nil, err
142637	}
142638	ret := &TargetInstance{
142639		ServerResponse: googleapi.ServerResponse{
142640			Header:         res.Header,
142641			HTTPStatusCode: res.StatusCode,
142642		},
142643	}
142644	target := &ret
142645	if err := gensupport.DecodeResponse(target, res); err != nil {
142646		return nil, err
142647	}
142648	return ret, nil
142649	// {
142650	//   "description": "Returns the specified TargetInstance resource. Gets a list of available target instances by making a list() request.",
142651	//   "httpMethod": "GET",
142652	//   "id": "compute.targetInstances.get",
142653	//   "parameterOrder": [
142654	//     "project",
142655	//     "zone",
142656	//     "targetInstance"
142657	//   ],
142658	//   "parameters": {
142659	//     "project": {
142660	//       "description": "Project ID for this request.",
142661	//       "location": "path",
142662	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142663	//       "required": true,
142664	//       "type": "string"
142665	//     },
142666	//     "targetInstance": {
142667	//       "description": "Name of the TargetInstance resource to return.",
142668	//       "location": "path",
142669	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
142670	//       "required": true,
142671	//       "type": "string"
142672	//     },
142673	//     "zone": {
142674	//       "description": "Name of the zone scoping this request.",
142675	//       "location": "path",
142676	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142677	//       "required": true,
142678	//       "type": "string"
142679	//     }
142680	//   },
142681	//   "path": "{project}/zones/{zone}/targetInstances/{targetInstance}",
142682	//   "response": {
142683	//     "$ref": "TargetInstance"
142684	//   },
142685	//   "scopes": [
142686	//     "https://www.googleapis.com/auth/cloud-platform",
142687	//     "https://www.googleapis.com/auth/compute",
142688	//     "https://www.googleapis.com/auth/compute.readonly"
142689	//   ]
142690	// }
142691
142692}
142693
142694// method id "compute.targetInstances.insert":
142695
142696type TargetInstancesInsertCall struct {
142697	s              *Service
142698	project        string
142699	zone           string
142700	targetinstance *TargetInstance
142701	urlParams_     gensupport.URLParams
142702	ctx_           context.Context
142703	header_        http.Header
142704}
142705
142706// Insert: Creates a TargetInstance resource in the specified project
142707// and zone using the data included in the request.
142708// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/insert
142709func (r *TargetInstancesService) Insert(project string, zone string, targetinstance *TargetInstance) *TargetInstancesInsertCall {
142710	c := &TargetInstancesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142711	c.project = project
142712	c.zone = zone
142713	c.targetinstance = targetinstance
142714	return c
142715}
142716
142717// RequestId sets the optional parameter "requestId": An optional
142718// request ID to identify requests. Specify a unique request ID so that
142719// if you must retry your request, the server will know to ignore the
142720// request if it has already been completed.
142721//
142722// For example, consider a situation where you make an initial request
142723// and the request times out. If you make the request again with the
142724// same request ID, the server can check if original operation with the
142725// same request ID was received, and if so, will ignore the second
142726// request. This prevents clients from accidentally creating duplicate
142727// commitments.
142728//
142729// The request ID must be a valid UUID with the exception that zero UUID
142730// is not supported (00000000-0000-0000-0000-000000000000).
142731func (c *TargetInstancesInsertCall) RequestId(requestId string) *TargetInstancesInsertCall {
142732	c.urlParams_.Set("requestId", requestId)
142733	return c
142734}
142735
142736// Fields allows partial responses to be retrieved. See
142737// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142738// for more information.
142739func (c *TargetInstancesInsertCall) Fields(s ...googleapi.Field) *TargetInstancesInsertCall {
142740	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142741	return c
142742}
142743
142744// Context sets the context to be used in this call's Do method. Any
142745// pending HTTP request will be aborted if the provided context is
142746// canceled.
142747func (c *TargetInstancesInsertCall) Context(ctx context.Context) *TargetInstancesInsertCall {
142748	c.ctx_ = ctx
142749	return c
142750}
142751
142752// Header returns an http.Header that can be modified by the caller to
142753// add HTTP headers to the request.
142754func (c *TargetInstancesInsertCall) Header() http.Header {
142755	if c.header_ == nil {
142756		c.header_ = make(http.Header)
142757	}
142758	return c.header_
142759}
142760
142761func (c *TargetInstancesInsertCall) doRequest(alt string) (*http.Response, error) {
142762	reqHeaders := make(http.Header)
142763	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142764	for k, v := range c.header_ {
142765		reqHeaders[k] = v
142766	}
142767	reqHeaders.Set("User-Agent", c.s.userAgent())
142768	var body io.Reader = nil
142769	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetinstance)
142770	if err != nil {
142771		return nil, err
142772	}
142773	reqHeaders.Set("Content-Type", "application/json")
142774	c.urlParams_.Set("alt", alt)
142775	c.urlParams_.Set("prettyPrint", "false")
142776	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
142777	urls += "?" + c.urlParams_.Encode()
142778	req, err := http.NewRequest("POST", urls, body)
142779	if err != nil {
142780		return nil, err
142781	}
142782	req.Header = reqHeaders
142783	googleapi.Expand(req.URL, map[string]string{
142784		"project": c.project,
142785		"zone":    c.zone,
142786	})
142787	return gensupport.SendRequest(c.ctx_, c.s.client, req)
142788}
142789
142790// Do executes the "compute.targetInstances.insert" call.
142791// Exactly one of *Operation or error will be non-nil. Any non-2xx
142792// status code is an error. Response headers are in either
142793// *Operation.ServerResponse.Header or (if a response was returned at
142794// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
142795// to check whether the returned error was because
142796// http.StatusNotModified was returned.
142797func (c *TargetInstancesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
142798	gensupport.SetOptions(c.urlParams_, opts...)
142799	res, err := c.doRequest("json")
142800	if res != nil && res.StatusCode == http.StatusNotModified {
142801		if res.Body != nil {
142802			res.Body.Close()
142803		}
142804		return nil, &googleapi.Error{
142805			Code:   res.StatusCode,
142806			Header: res.Header,
142807		}
142808	}
142809	if err != nil {
142810		return nil, err
142811	}
142812	defer googleapi.CloseBody(res)
142813	if err := googleapi.CheckResponse(res); err != nil {
142814		return nil, err
142815	}
142816	ret := &Operation{
142817		ServerResponse: googleapi.ServerResponse{
142818			Header:         res.Header,
142819			HTTPStatusCode: res.StatusCode,
142820		},
142821	}
142822	target := &ret
142823	if err := gensupport.DecodeResponse(target, res); err != nil {
142824		return nil, err
142825	}
142826	return ret, nil
142827	// {
142828	//   "description": "Creates a TargetInstance resource in the specified project and zone using the data included in the request.",
142829	//   "httpMethod": "POST",
142830	//   "id": "compute.targetInstances.insert",
142831	//   "parameterOrder": [
142832	//     "project",
142833	//     "zone"
142834	//   ],
142835	//   "parameters": {
142836	//     "project": {
142837	//       "description": "Project ID for this request.",
142838	//       "location": "path",
142839	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
142840	//       "required": true,
142841	//       "type": "string"
142842	//     },
142843	//     "requestId": {
142844	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
142845	//       "location": "query",
142846	//       "type": "string"
142847	//     },
142848	//     "zone": {
142849	//       "description": "Name of the zone scoping this request.",
142850	//       "location": "path",
142851	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
142852	//       "required": true,
142853	//       "type": "string"
142854	//     }
142855	//   },
142856	//   "path": "{project}/zones/{zone}/targetInstances",
142857	//   "request": {
142858	//     "$ref": "TargetInstance"
142859	//   },
142860	//   "response": {
142861	//     "$ref": "Operation"
142862	//   },
142863	//   "scopes": [
142864	//     "https://www.googleapis.com/auth/cloud-platform",
142865	//     "https://www.googleapis.com/auth/compute"
142866	//   ]
142867	// }
142868
142869}
142870
142871// method id "compute.targetInstances.list":
142872
142873type TargetInstancesListCall struct {
142874	s            *Service
142875	project      string
142876	zone         string
142877	urlParams_   gensupport.URLParams
142878	ifNoneMatch_ string
142879	ctx_         context.Context
142880	header_      http.Header
142881}
142882
142883// List: Retrieves a list of TargetInstance resources available to the
142884// specified project and zone.
142885// For details, see https://cloud.google.com/compute/docs/reference/latest/targetInstances/list
142886func (r *TargetInstancesService) List(project string, zone string) *TargetInstancesListCall {
142887	c := &TargetInstancesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
142888	c.project = project
142889	c.zone = zone
142890	return c
142891}
142892
142893// Filter sets the optional parameter "filter": A filter expression that
142894// filters resources listed in the response. The expression must specify
142895// the field name, a comparison operator, and the value that you want to
142896// use for filtering. The value must be a string, a number, or a
142897// boolean. The comparison operator must be either =, !=, >, or <.
142898//
142899// For example, if you are filtering Compute Engine instances, you can
142900// exclude instances named example-instance by specifying name !=
142901// example-instance.
142902//
142903// You can also filter nested fields. For example, you could specify
142904// scheduling.automaticRestart = false to include instances only if they
142905// are not scheduled for automatic restarts. You can use filtering on
142906// nested fields to filter based on resource labels.
142907//
142908// To filter on multiple expressions, provide each separate expression
142909// within parentheses. For example, (scheduling.automaticRestart = true)
142910// (cpuPlatform = "Intel Skylake"). By default, each expression is an
142911// AND expression. However, you can include AND and OR expressions
142912// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
142913// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
142914// true).
142915func (c *TargetInstancesListCall) Filter(filter string) *TargetInstancesListCall {
142916	c.urlParams_.Set("filter", filter)
142917	return c
142918}
142919
142920// MaxResults sets the optional parameter "maxResults": The maximum
142921// number of results per page that should be returned. If the number of
142922// available results is larger than maxResults, Compute Engine returns a
142923// nextPageToken that can be used to get the next page of results in
142924// subsequent list requests. Acceptable values are 0 to 500, inclusive.
142925// (Default: 500)
142926func (c *TargetInstancesListCall) MaxResults(maxResults int64) *TargetInstancesListCall {
142927	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
142928	return c
142929}
142930
142931// OrderBy sets the optional parameter "orderBy": Sorts list results by
142932// a certain order. By default, results are returned in alphanumerical
142933// order based on the resource name.
142934//
142935// You can also sort results in descending order based on the creation
142936// timestamp using orderBy="creationTimestamp desc". This sorts results
142937// based on the creationTimestamp field in reverse chronological order
142938// (newest result first). Use this to sort resources like operations so
142939// that the newest operation is returned first.
142940//
142941// Currently, only sorting by name or creationTimestamp desc is
142942// supported.
142943func (c *TargetInstancesListCall) OrderBy(orderBy string) *TargetInstancesListCall {
142944	c.urlParams_.Set("orderBy", orderBy)
142945	return c
142946}
142947
142948// PageToken sets the optional parameter "pageToken": Specifies a page
142949// token to use. Set pageToken to the nextPageToken returned by a
142950// previous list request to get the next page of results.
142951func (c *TargetInstancesListCall) PageToken(pageToken string) *TargetInstancesListCall {
142952	c.urlParams_.Set("pageToken", pageToken)
142953	return c
142954}
142955
142956// Fields allows partial responses to be retrieved. See
142957// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
142958// for more information.
142959func (c *TargetInstancesListCall) Fields(s ...googleapi.Field) *TargetInstancesListCall {
142960	c.urlParams_.Set("fields", googleapi.CombineFields(s))
142961	return c
142962}
142963
142964// IfNoneMatch sets the optional parameter which makes the operation
142965// fail if the object's ETag matches the given value. This is useful for
142966// getting updates only after the object has changed since the last
142967// request. Use googleapi.IsNotModified to check whether the response
142968// error from Do is the result of In-None-Match.
142969func (c *TargetInstancesListCall) IfNoneMatch(entityTag string) *TargetInstancesListCall {
142970	c.ifNoneMatch_ = entityTag
142971	return c
142972}
142973
142974// Context sets the context to be used in this call's Do method. Any
142975// pending HTTP request will be aborted if the provided context is
142976// canceled.
142977func (c *TargetInstancesListCall) Context(ctx context.Context) *TargetInstancesListCall {
142978	c.ctx_ = ctx
142979	return c
142980}
142981
142982// Header returns an http.Header that can be modified by the caller to
142983// add HTTP headers to the request.
142984func (c *TargetInstancesListCall) Header() http.Header {
142985	if c.header_ == nil {
142986		c.header_ = make(http.Header)
142987	}
142988	return c.header_
142989}
142990
142991func (c *TargetInstancesListCall) doRequest(alt string) (*http.Response, error) {
142992	reqHeaders := make(http.Header)
142993	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
142994	for k, v := range c.header_ {
142995		reqHeaders[k] = v
142996	}
142997	reqHeaders.Set("User-Agent", c.s.userAgent())
142998	if c.ifNoneMatch_ != "" {
142999		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143000	}
143001	var body io.Reader = nil
143002	c.urlParams_.Set("alt", alt)
143003	c.urlParams_.Set("prettyPrint", "false")
143004	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances")
143005	urls += "?" + c.urlParams_.Encode()
143006	req, err := http.NewRequest("GET", urls, body)
143007	if err != nil {
143008		return nil, err
143009	}
143010	req.Header = reqHeaders
143011	googleapi.Expand(req.URL, map[string]string{
143012		"project": c.project,
143013		"zone":    c.zone,
143014	})
143015	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143016}
143017
143018// Do executes the "compute.targetInstances.list" call.
143019// Exactly one of *TargetInstanceList or error will be non-nil. Any
143020// non-2xx status code is an error. Response headers are in either
143021// *TargetInstanceList.ServerResponse.Header or (if a response was
143022// returned at all) in error.(*googleapi.Error).Header. Use
143023// googleapi.IsNotModified to check whether the returned error was
143024// because http.StatusNotModified was returned.
143025func (c *TargetInstancesListCall) Do(opts ...googleapi.CallOption) (*TargetInstanceList, error) {
143026	gensupport.SetOptions(c.urlParams_, opts...)
143027	res, err := c.doRequest("json")
143028	if res != nil && res.StatusCode == http.StatusNotModified {
143029		if res.Body != nil {
143030			res.Body.Close()
143031		}
143032		return nil, &googleapi.Error{
143033			Code:   res.StatusCode,
143034			Header: res.Header,
143035		}
143036	}
143037	if err != nil {
143038		return nil, err
143039	}
143040	defer googleapi.CloseBody(res)
143041	if err := googleapi.CheckResponse(res); err != nil {
143042		return nil, err
143043	}
143044	ret := &TargetInstanceList{
143045		ServerResponse: googleapi.ServerResponse{
143046			Header:         res.Header,
143047			HTTPStatusCode: res.StatusCode,
143048		},
143049	}
143050	target := &ret
143051	if err := gensupport.DecodeResponse(target, res); err != nil {
143052		return nil, err
143053	}
143054	return ret, nil
143055	// {
143056	//   "description": "Retrieves a list of TargetInstance resources available to the specified project and zone.",
143057	//   "httpMethod": "GET",
143058	//   "id": "compute.targetInstances.list",
143059	//   "parameterOrder": [
143060	//     "project",
143061	//     "zone"
143062	//   ],
143063	//   "parameters": {
143064	//     "filter": {
143065	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
143066	//       "location": "query",
143067	//       "type": "string"
143068	//     },
143069	//     "maxResults": {
143070	//       "default": "500",
143071	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
143072	//       "format": "uint32",
143073	//       "location": "query",
143074	//       "minimum": "0",
143075	//       "type": "integer"
143076	//     },
143077	//     "orderBy": {
143078	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
143079	//       "location": "query",
143080	//       "type": "string"
143081	//     },
143082	//     "pageToken": {
143083	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
143084	//       "location": "query",
143085	//       "type": "string"
143086	//     },
143087	//     "project": {
143088	//       "description": "Project ID for this request.",
143089	//       "location": "path",
143090	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143091	//       "required": true,
143092	//       "type": "string"
143093	//     },
143094	//     "zone": {
143095	//       "description": "Name of the zone scoping this request.",
143096	//       "location": "path",
143097	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143098	//       "required": true,
143099	//       "type": "string"
143100	//     }
143101	//   },
143102	//   "path": "{project}/zones/{zone}/targetInstances",
143103	//   "response": {
143104	//     "$ref": "TargetInstanceList"
143105	//   },
143106	//   "scopes": [
143107	//     "https://www.googleapis.com/auth/cloud-platform",
143108	//     "https://www.googleapis.com/auth/compute",
143109	//     "https://www.googleapis.com/auth/compute.readonly"
143110	//   ]
143111	// }
143112
143113}
143114
143115// Pages invokes f for each page of results.
143116// A non-nil error returned from f will halt the iteration.
143117// The provided context supersedes any context provided to the Context method.
143118func (c *TargetInstancesListCall) Pages(ctx context.Context, f func(*TargetInstanceList) error) error {
143119	c.ctx_ = ctx
143120	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143121	for {
143122		x, err := c.Do()
143123		if err != nil {
143124			return err
143125		}
143126		if err := f(x); err != nil {
143127			return err
143128		}
143129		if x.NextPageToken == "" {
143130			return nil
143131		}
143132		c.PageToken(x.NextPageToken)
143133	}
143134}
143135
143136// method id "compute.targetInstances.testIamPermissions":
143137
143138type TargetInstancesTestIamPermissionsCall struct {
143139	s                      *Service
143140	project                string
143141	zone                   string
143142	resource               string
143143	testpermissionsrequest *TestPermissionsRequest
143144	urlParams_             gensupport.URLParams
143145	ctx_                   context.Context
143146	header_                http.Header
143147}
143148
143149// TestIamPermissions: Returns permissions that a caller has on the
143150// specified resource.
143151func (r *TargetInstancesService) TestIamPermissions(project string, zone string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetInstancesTestIamPermissionsCall {
143152	c := &TargetInstancesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143153	c.project = project
143154	c.zone = zone
143155	c.resource = resource
143156	c.testpermissionsrequest = testpermissionsrequest
143157	return c
143158}
143159
143160// Fields allows partial responses to be retrieved. See
143161// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143162// for more information.
143163func (c *TargetInstancesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetInstancesTestIamPermissionsCall {
143164	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143165	return c
143166}
143167
143168// Context sets the context to be used in this call's Do method. Any
143169// pending HTTP request will be aborted if the provided context is
143170// canceled.
143171func (c *TargetInstancesTestIamPermissionsCall) Context(ctx context.Context) *TargetInstancesTestIamPermissionsCall {
143172	c.ctx_ = ctx
143173	return c
143174}
143175
143176// Header returns an http.Header that can be modified by the caller to
143177// add HTTP headers to the request.
143178func (c *TargetInstancesTestIamPermissionsCall) Header() http.Header {
143179	if c.header_ == nil {
143180		c.header_ = make(http.Header)
143181	}
143182	return c.header_
143183}
143184
143185func (c *TargetInstancesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
143186	reqHeaders := make(http.Header)
143187	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143188	for k, v := range c.header_ {
143189		reqHeaders[k] = v
143190	}
143191	reqHeaders.Set("User-Agent", c.s.userAgent())
143192	var body io.Reader = nil
143193	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
143194	if err != nil {
143195		return nil, err
143196	}
143197	reqHeaders.Set("Content-Type", "application/json")
143198	c.urlParams_.Set("alt", alt)
143199	c.urlParams_.Set("prettyPrint", "false")
143200	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions")
143201	urls += "?" + c.urlParams_.Encode()
143202	req, err := http.NewRequest("POST", urls, body)
143203	if err != nil {
143204		return nil, err
143205	}
143206	req.Header = reqHeaders
143207	googleapi.Expand(req.URL, map[string]string{
143208		"project":  c.project,
143209		"zone":     c.zone,
143210		"resource": c.resource,
143211	})
143212	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143213}
143214
143215// Do executes the "compute.targetInstances.testIamPermissions" call.
143216// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
143217// non-2xx status code is an error. Response headers are in either
143218// *TestPermissionsResponse.ServerResponse.Header or (if a response was
143219// returned at all) in error.(*googleapi.Error).Header. Use
143220// googleapi.IsNotModified to check whether the returned error was
143221// because http.StatusNotModified was returned.
143222func (c *TargetInstancesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
143223	gensupport.SetOptions(c.urlParams_, opts...)
143224	res, err := c.doRequest("json")
143225	if res != nil && res.StatusCode == http.StatusNotModified {
143226		if res.Body != nil {
143227			res.Body.Close()
143228		}
143229		return nil, &googleapi.Error{
143230			Code:   res.StatusCode,
143231			Header: res.Header,
143232		}
143233	}
143234	if err != nil {
143235		return nil, err
143236	}
143237	defer googleapi.CloseBody(res)
143238	if err := googleapi.CheckResponse(res); err != nil {
143239		return nil, err
143240	}
143241	ret := &TestPermissionsResponse{
143242		ServerResponse: googleapi.ServerResponse{
143243			Header:         res.Header,
143244			HTTPStatusCode: res.StatusCode,
143245		},
143246	}
143247	target := &ret
143248	if err := gensupport.DecodeResponse(target, res); err != nil {
143249		return nil, err
143250	}
143251	return ret, nil
143252	// {
143253	//   "description": "Returns permissions that a caller has on the specified resource.",
143254	//   "httpMethod": "POST",
143255	//   "id": "compute.targetInstances.testIamPermissions",
143256	//   "parameterOrder": [
143257	//     "project",
143258	//     "zone",
143259	//     "resource"
143260	//   ],
143261	//   "parameters": {
143262	//     "project": {
143263	//       "description": "Project ID for this request.",
143264	//       "location": "path",
143265	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143266	//       "required": true,
143267	//       "type": "string"
143268	//     },
143269	//     "resource": {
143270	//       "description": "Name or id of the resource for this request.",
143271	//       "location": "path",
143272	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143273	//       "required": true,
143274	//       "type": "string"
143275	//     },
143276	//     "zone": {
143277	//       "description": "The name of the zone for this request.",
143278	//       "location": "path",
143279	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143280	//       "required": true,
143281	//       "type": "string"
143282	//     }
143283	//   },
143284	//   "path": "{project}/zones/{zone}/targetInstances/{resource}/testIamPermissions",
143285	//   "request": {
143286	//     "$ref": "TestPermissionsRequest"
143287	//   },
143288	//   "response": {
143289	//     "$ref": "TestPermissionsResponse"
143290	//   },
143291	//   "scopes": [
143292	//     "https://www.googleapis.com/auth/cloud-platform",
143293	//     "https://www.googleapis.com/auth/compute",
143294	//     "https://www.googleapis.com/auth/compute.readonly"
143295	//   ]
143296	// }
143297
143298}
143299
143300// method id "compute.targetPools.addHealthCheck":
143301
143302type TargetPoolsAddHealthCheckCall struct {
143303	s                                *Service
143304	project                          string
143305	region                           string
143306	targetPool                       string
143307	targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest
143308	urlParams_                       gensupport.URLParams
143309	ctx_                             context.Context
143310	header_                          http.Header
143311}
143312
143313// AddHealthCheck: Adds health check URLs to a target pool.
143314// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addHealthCheck
143315func (r *TargetPoolsService) AddHealthCheck(project string, region string, targetPool string, targetpoolsaddhealthcheckrequest *TargetPoolsAddHealthCheckRequest) *TargetPoolsAddHealthCheckCall {
143316	c := &TargetPoolsAddHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143317	c.project = project
143318	c.region = region
143319	c.targetPool = targetPool
143320	c.targetpoolsaddhealthcheckrequest = targetpoolsaddhealthcheckrequest
143321	return c
143322}
143323
143324// RequestId sets the optional parameter "requestId": An optional
143325// request ID to identify requests. Specify a unique request ID so that
143326// if you must retry your request, the server will know to ignore the
143327// request if it has already been completed.
143328//
143329// For example, consider a situation where you make an initial request
143330// and the request times out. If you make the request again with the
143331// same request ID, the server can check if original operation with the
143332// same request ID was received, and if so, will ignore the second
143333// request. This prevents clients from accidentally creating duplicate
143334// commitments.
143335//
143336// The request ID must be a valid UUID with the exception that zero UUID
143337// is not supported (00000000-0000-0000-0000-000000000000).
143338func (c *TargetPoolsAddHealthCheckCall) RequestId(requestId string) *TargetPoolsAddHealthCheckCall {
143339	c.urlParams_.Set("requestId", requestId)
143340	return c
143341}
143342
143343// Fields allows partial responses to be retrieved. See
143344// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143345// for more information.
143346func (c *TargetPoolsAddHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsAddHealthCheckCall {
143347	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143348	return c
143349}
143350
143351// Context sets the context to be used in this call's Do method. Any
143352// pending HTTP request will be aborted if the provided context is
143353// canceled.
143354func (c *TargetPoolsAddHealthCheckCall) Context(ctx context.Context) *TargetPoolsAddHealthCheckCall {
143355	c.ctx_ = ctx
143356	return c
143357}
143358
143359// Header returns an http.Header that can be modified by the caller to
143360// add HTTP headers to the request.
143361func (c *TargetPoolsAddHealthCheckCall) Header() http.Header {
143362	if c.header_ == nil {
143363		c.header_ = make(http.Header)
143364	}
143365	return c.header_
143366}
143367
143368func (c *TargetPoolsAddHealthCheckCall) doRequest(alt string) (*http.Response, error) {
143369	reqHeaders := make(http.Header)
143370	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143371	for k, v := range c.header_ {
143372		reqHeaders[k] = v
143373	}
143374	reqHeaders.Set("User-Agent", c.s.userAgent())
143375	var body io.Reader = nil
143376	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddhealthcheckrequest)
143377	if err != nil {
143378		return nil, err
143379	}
143380	reqHeaders.Set("Content-Type", "application/json")
143381	c.urlParams_.Set("alt", alt)
143382	c.urlParams_.Set("prettyPrint", "false")
143383	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck")
143384	urls += "?" + c.urlParams_.Encode()
143385	req, err := http.NewRequest("POST", urls, body)
143386	if err != nil {
143387		return nil, err
143388	}
143389	req.Header = reqHeaders
143390	googleapi.Expand(req.URL, map[string]string{
143391		"project":    c.project,
143392		"region":     c.region,
143393		"targetPool": c.targetPool,
143394	})
143395	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143396}
143397
143398// Do executes the "compute.targetPools.addHealthCheck" call.
143399// Exactly one of *Operation or error will be non-nil. Any non-2xx
143400// status code is an error. Response headers are in either
143401// *Operation.ServerResponse.Header or (if a response was returned at
143402// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143403// to check whether the returned error was because
143404// http.StatusNotModified was returned.
143405func (c *TargetPoolsAddHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143406	gensupport.SetOptions(c.urlParams_, opts...)
143407	res, err := c.doRequest("json")
143408	if res != nil && res.StatusCode == http.StatusNotModified {
143409		if res.Body != nil {
143410			res.Body.Close()
143411		}
143412		return nil, &googleapi.Error{
143413			Code:   res.StatusCode,
143414			Header: res.Header,
143415		}
143416	}
143417	if err != nil {
143418		return nil, err
143419	}
143420	defer googleapi.CloseBody(res)
143421	if err := googleapi.CheckResponse(res); err != nil {
143422		return nil, err
143423	}
143424	ret := &Operation{
143425		ServerResponse: googleapi.ServerResponse{
143426			Header:         res.Header,
143427			HTTPStatusCode: res.StatusCode,
143428		},
143429	}
143430	target := &ret
143431	if err := gensupport.DecodeResponse(target, res); err != nil {
143432		return nil, err
143433	}
143434	return ret, nil
143435	// {
143436	//   "description": "Adds health check URLs to a target pool.",
143437	//   "httpMethod": "POST",
143438	//   "id": "compute.targetPools.addHealthCheck",
143439	//   "parameterOrder": [
143440	//     "project",
143441	//     "region",
143442	//     "targetPool"
143443	//   ],
143444	//   "parameters": {
143445	//     "project": {
143446	//       "description": "Project ID for this request.",
143447	//       "location": "path",
143448	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143449	//       "required": true,
143450	//       "type": "string"
143451	//     },
143452	//     "region": {
143453	//       "description": "Name of the region scoping this request.",
143454	//       "location": "path",
143455	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143456	//       "required": true,
143457	//       "type": "string"
143458	//     },
143459	//     "requestId": {
143460	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143461	//       "location": "query",
143462	//       "type": "string"
143463	//     },
143464	//     "targetPool": {
143465	//       "description": "Name of the target pool to add a health check to.",
143466	//       "location": "path",
143467	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143468	//       "required": true,
143469	//       "type": "string"
143470	//     }
143471	//   },
143472	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addHealthCheck",
143473	//   "request": {
143474	//     "$ref": "TargetPoolsAddHealthCheckRequest"
143475	//   },
143476	//   "response": {
143477	//     "$ref": "Operation"
143478	//   },
143479	//   "scopes": [
143480	//     "https://www.googleapis.com/auth/cloud-platform",
143481	//     "https://www.googleapis.com/auth/compute"
143482	//   ]
143483	// }
143484
143485}
143486
143487// method id "compute.targetPools.addInstance":
143488
143489type TargetPoolsAddInstanceCall struct {
143490	s                             *Service
143491	project                       string
143492	region                        string
143493	targetPool                    string
143494	targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest
143495	urlParams_                    gensupport.URLParams
143496	ctx_                          context.Context
143497	header_                       http.Header
143498}
143499
143500// AddInstance: Adds an instance to a target pool.
143501// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/addInstance
143502func (r *TargetPoolsService) AddInstance(project string, region string, targetPool string, targetpoolsaddinstancerequest *TargetPoolsAddInstanceRequest) *TargetPoolsAddInstanceCall {
143503	c := &TargetPoolsAddInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143504	c.project = project
143505	c.region = region
143506	c.targetPool = targetPool
143507	c.targetpoolsaddinstancerequest = targetpoolsaddinstancerequest
143508	return c
143509}
143510
143511// RequestId sets the optional parameter "requestId": An optional
143512// request ID to identify requests. Specify a unique request ID so that
143513// if you must retry your request, the server will know to ignore the
143514// request if it has already been completed.
143515//
143516// For example, consider a situation where you make an initial request
143517// and the request times out. If you make the request again with the
143518// same request ID, the server can check if original operation with the
143519// same request ID was received, and if so, will ignore the second
143520// request. This prevents clients from accidentally creating duplicate
143521// commitments.
143522//
143523// The request ID must be a valid UUID with the exception that zero UUID
143524// is not supported (00000000-0000-0000-0000-000000000000).
143525func (c *TargetPoolsAddInstanceCall) RequestId(requestId string) *TargetPoolsAddInstanceCall {
143526	c.urlParams_.Set("requestId", requestId)
143527	return c
143528}
143529
143530// Fields allows partial responses to be retrieved. See
143531// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143532// for more information.
143533func (c *TargetPoolsAddInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsAddInstanceCall {
143534	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143535	return c
143536}
143537
143538// Context sets the context to be used in this call's Do method. Any
143539// pending HTTP request will be aborted if the provided context is
143540// canceled.
143541func (c *TargetPoolsAddInstanceCall) Context(ctx context.Context) *TargetPoolsAddInstanceCall {
143542	c.ctx_ = ctx
143543	return c
143544}
143545
143546// Header returns an http.Header that can be modified by the caller to
143547// add HTTP headers to the request.
143548func (c *TargetPoolsAddInstanceCall) Header() http.Header {
143549	if c.header_ == nil {
143550		c.header_ = make(http.Header)
143551	}
143552	return c.header_
143553}
143554
143555func (c *TargetPoolsAddInstanceCall) doRequest(alt string) (*http.Response, error) {
143556	reqHeaders := make(http.Header)
143557	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143558	for k, v := range c.header_ {
143559		reqHeaders[k] = v
143560	}
143561	reqHeaders.Set("User-Agent", c.s.userAgent())
143562	var body io.Reader = nil
143563	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsaddinstancerequest)
143564	if err != nil {
143565		return nil, err
143566	}
143567	reqHeaders.Set("Content-Type", "application/json")
143568	c.urlParams_.Set("alt", alt)
143569	c.urlParams_.Set("prettyPrint", "false")
143570	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/addInstance")
143571	urls += "?" + c.urlParams_.Encode()
143572	req, err := http.NewRequest("POST", urls, body)
143573	if err != nil {
143574		return nil, err
143575	}
143576	req.Header = reqHeaders
143577	googleapi.Expand(req.URL, map[string]string{
143578		"project":    c.project,
143579		"region":     c.region,
143580		"targetPool": c.targetPool,
143581	})
143582	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143583}
143584
143585// Do executes the "compute.targetPools.addInstance" call.
143586// Exactly one of *Operation or error will be non-nil. Any non-2xx
143587// status code is an error. Response headers are in either
143588// *Operation.ServerResponse.Header or (if a response was returned at
143589// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
143590// to check whether the returned error was because
143591// http.StatusNotModified was returned.
143592func (c *TargetPoolsAddInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
143593	gensupport.SetOptions(c.urlParams_, opts...)
143594	res, err := c.doRequest("json")
143595	if res != nil && res.StatusCode == http.StatusNotModified {
143596		if res.Body != nil {
143597			res.Body.Close()
143598		}
143599		return nil, &googleapi.Error{
143600			Code:   res.StatusCode,
143601			Header: res.Header,
143602		}
143603	}
143604	if err != nil {
143605		return nil, err
143606	}
143607	defer googleapi.CloseBody(res)
143608	if err := googleapi.CheckResponse(res); err != nil {
143609		return nil, err
143610	}
143611	ret := &Operation{
143612		ServerResponse: googleapi.ServerResponse{
143613			Header:         res.Header,
143614			HTTPStatusCode: res.StatusCode,
143615		},
143616	}
143617	target := &ret
143618	if err := gensupport.DecodeResponse(target, res); err != nil {
143619		return nil, err
143620	}
143621	return ret, nil
143622	// {
143623	//   "description": "Adds an instance to a target pool.",
143624	//   "httpMethod": "POST",
143625	//   "id": "compute.targetPools.addInstance",
143626	//   "parameterOrder": [
143627	//     "project",
143628	//     "region",
143629	//     "targetPool"
143630	//   ],
143631	//   "parameters": {
143632	//     "project": {
143633	//       "description": "Project ID for this request.",
143634	//       "location": "path",
143635	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143636	//       "required": true,
143637	//       "type": "string"
143638	//     },
143639	//     "region": {
143640	//       "description": "Name of the region scoping this request.",
143641	//       "location": "path",
143642	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
143643	//       "required": true,
143644	//       "type": "string"
143645	//     },
143646	//     "requestId": {
143647	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
143648	//       "location": "query",
143649	//       "type": "string"
143650	//     },
143651	//     "targetPool": {
143652	//       "description": "Name of the TargetPool resource to add instances to.",
143653	//       "location": "path",
143654	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
143655	//       "required": true,
143656	//       "type": "string"
143657	//     }
143658	//   },
143659	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/addInstance",
143660	//   "request": {
143661	//     "$ref": "TargetPoolsAddInstanceRequest"
143662	//   },
143663	//   "response": {
143664	//     "$ref": "Operation"
143665	//   },
143666	//   "scopes": [
143667	//     "https://www.googleapis.com/auth/cloud-platform",
143668	//     "https://www.googleapis.com/auth/compute"
143669	//   ]
143670	// }
143671
143672}
143673
143674// method id "compute.targetPools.aggregatedList":
143675
143676type TargetPoolsAggregatedListCall struct {
143677	s            *Service
143678	project      string
143679	urlParams_   gensupport.URLParams
143680	ifNoneMatch_ string
143681	ctx_         context.Context
143682	header_      http.Header
143683}
143684
143685// AggregatedList: Retrieves an aggregated list of target pools.
143686// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/aggregatedList
143687func (r *TargetPoolsService) AggregatedList(project string) *TargetPoolsAggregatedListCall {
143688	c := &TargetPoolsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143689	c.project = project
143690	return c
143691}
143692
143693// Filter sets the optional parameter "filter": A filter expression that
143694// filters resources listed in the response. The expression must specify
143695// the field name, a comparison operator, and the value that you want to
143696// use for filtering. The value must be a string, a number, or a
143697// boolean. The comparison operator must be either =, !=, >, or <.
143698//
143699// For example, if you are filtering Compute Engine instances, you can
143700// exclude instances named example-instance by specifying name !=
143701// example-instance.
143702//
143703// You can also filter nested fields. For example, you could specify
143704// scheduling.automaticRestart = false to include instances only if they
143705// are not scheduled for automatic restarts. You can use filtering on
143706// nested fields to filter based on resource labels.
143707//
143708// To filter on multiple expressions, provide each separate expression
143709// within parentheses. For example, (scheduling.automaticRestart = true)
143710// (cpuPlatform = "Intel Skylake"). By default, each expression is an
143711// AND expression. However, you can include AND and OR expressions
143712// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
143713// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
143714// true).
143715func (c *TargetPoolsAggregatedListCall) Filter(filter string) *TargetPoolsAggregatedListCall {
143716	c.urlParams_.Set("filter", filter)
143717	return c
143718}
143719
143720// IncludeAllScopes sets the optional parameter "includeAllScopes":
143721// Indicates whether every visible scope for each scope type (zone,
143722// region, global) should be included in the response. For new resource
143723// types added after this field, the flag has no effect as new resource
143724// types will always include every visible scope for each scope type in
143725// response. For resource types which predate this field, if this flag
143726// is omitted or false, only scopes of the scope types where the
143727// resource type is expected to be found will be included.
143728func (c *TargetPoolsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetPoolsAggregatedListCall {
143729	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
143730	return c
143731}
143732
143733// MaxResults sets the optional parameter "maxResults": The maximum
143734// number of results per page that should be returned. If the number of
143735// available results is larger than maxResults, Compute Engine returns a
143736// nextPageToken that can be used to get the next page of results in
143737// subsequent list requests. Acceptable values are 0 to 500, inclusive.
143738// (Default: 500)
143739func (c *TargetPoolsAggregatedListCall) MaxResults(maxResults int64) *TargetPoolsAggregatedListCall {
143740	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
143741	return c
143742}
143743
143744// OrderBy sets the optional parameter "orderBy": Sorts list results by
143745// a certain order. By default, results are returned in alphanumerical
143746// order based on the resource name.
143747//
143748// You can also sort results in descending order based on the creation
143749// timestamp using orderBy="creationTimestamp desc". This sorts results
143750// based on the creationTimestamp field in reverse chronological order
143751// (newest result first). Use this to sort resources like operations so
143752// that the newest operation is returned first.
143753//
143754// Currently, only sorting by name or creationTimestamp desc is
143755// supported.
143756func (c *TargetPoolsAggregatedListCall) OrderBy(orderBy string) *TargetPoolsAggregatedListCall {
143757	c.urlParams_.Set("orderBy", orderBy)
143758	return c
143759}
143760
143761// PageToken sets the optional parameter "pageToken": Specifies a page
143762// token to use. Set pageToken to the nextPageToken returned by a
143763// previous list request to get the next page of results.
143764func (c *TargetPoolsAggregatedListCall) PageToken(pageToken string) *TargetPoolsAggregatedListCall {
143765	c.urlParams_.Set("pageToken", pageToken)
143766	return c
143767}
143768
143769// Fields allows partial responses to be retrieved. See
143770// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143771// for more information.
143772func (c *TargetPoolsAggregatedListCall) Fields(s ...googleapi.Field) *TargetPoolsAggregatedListCall {
143773	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143774	return c
143775}
143776
143777// IfNoneMatch sets the optional parameter which makes the operation
143778// fail if the object's ETag matches the given value. This is useful for
143779// getting updates only after the object has changed since the last
143780// request. Use googleapi.IsNotModified to check whether the response
143781// error from Do is the result of In-None-Match.
143782func (c *TargetPoolsAggregatedListCall) IfNoneMatch(entityTag string) *TargetPoolsAggregatedListCall {
143783	c.ifNoneMatch_ = entityTag
143784	return c
143785}
143786
143787// Context sets the context to be used in this call's Do method. Any
143788// pending HTTP request will be aborted if the provided context is
143789// canceled.
143790func (c *TargetPoolsAggregatedListCall) Context(ctx context.Context) *TargetPoolsAggregatedListCall {
143791	c.ctx_ = ctx
143792	return c
143793}
143794
143795// Header returns an http.Header that can be modified by the caller to
143796// add HTTP headers to the request.
143797func (c *TargetPoolsAggregatedListCall) Header() http.Header {
143798	if c.header_ == nil {
143799		c.header_ = make(http.Header)
143800	}
143801	return c.header_
143802}
143803
143804func (c *TargetPoolsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
143805	reqHeaders := make(http.Header)
143806	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
143807	for k, v := range c.header_ {
143808		reqHeaders[k] = v
143809	}
143810	reqHeaders.Set("User-Agent", c.s.userAgent())
143811	if c.ifNoneMatch_ != "" {
143812		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
143813	}
143814	var body io.Reader = nil
143815	c.urlParams_.Set("alt", alt)
143816	c.urlParams_.Set("prettyPrint", "false")
143817	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetPools")
143818	urls += "?" + c.urlParams_.Encode()
143819	req, err := http.NewRequest("GET", urls, body)
143820	if err != nil {
143821		return nil, err
143822	}
143823	req.Header = reqHeaders
143824	googleapi.Expand(req.URL, map[string]string{
143825		"project": c.project,
143826	})
143827	return gensupport.SendRequest(c.ctx_, c.s.client, req)
143828}
143829
143830// Do executes the "compute.targetPools.aggregatedList" call.
143831// Exactly one of *TargetPoolAggregatedList or error will be non-nil.
143832// Any non-2xx status code is an error. Response headers are in either
143833// *TargetPoolAggregatedList.ServerResponse.Header or (if a response was
143834// returned at all) in error.(*googleapi.Error).Header. Use
143835// googleapi.IsNotModified to check whether the returned error was
143836// because http.StatusNotModified was returned.
143837func (c *TargetPoolsAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetPoolAggregatedList, error) {
143838	gensupport.SetOptions(c.urlParams_, opts...)
143839	res, err := c.doRequest("json")
143840	if res != nil && res.StatusCode == http.StatusNotModified {
143841		if res.Body != nil {
143842			res.Body.Close()
143843		}
143844		return nil, &googleapi.Error{
143845			Code:   res.StatusCode,
143846			Header: res.Header,
143847		}
143848	}
143849	if err != nil {
143850		return nil, err
143851	}
143852	defer googleapi.CloseBody(res)
143853	if err := googleapi.CheckResponse(res); err != nil {
143854		return nil, err
143855	}
143856	ret := &TargetPoolAggregatedList{
143857		ServerResponse: googleapi.ServerResponse{
143858			Header:         res.Header,
143859			HTTPStatusCode: res.StatusCode,
143860		},
143861	}
143862	target := &ret
143863	if err := gensupport.DecodeResponse(target, res); err != nil {
143864		return nil, err
143865	}
143866	return ret, nil
143867	// {
143868	//   "description": "Retrieves an aggregated list of target pools.",
143869	//   "httpMethod": "GET",
143870	//   "id": "compute.targetPools.aggregatedList",
143871	//   "parameterOrder": [
143872	//     "project"
143873	//   ],
143874	//   "parameters": {
143875	//     "filter": {
143876	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
143877	//       "location": "query",
143878	//       "type": "string"
143879	//     },
143880	//     "includeAllScopes": {
143881	//       "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.",
143882	//       "location": "query",
143883	//       "type": "boolean"
143884	//     },
143885	//     "maxResults": {
143886	//       "default": "500",
143887	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
143888	//       "format": "uint32",
143889	//       "location": "query",
143890	//       "minimum": "0",
143891	//       "type": "integer"
143892	//     },
143893	//     "orderBy": {
143894	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
143895	//       "location": "query",
143896	//       "type": "string"
143897	//     },
143898	//     "pageToken": {
143899	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
143900	//       "location": "query",
143901	//       "type": "string"
143902	//     },
143903	//     "project": {
143904	//       "description": "Project ID for this request.",
143905	//       "location": "path",
143906	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
143907	//       "required": true,
143908	//       "type": "string"
143909	//     }
143910	//   },
143911	//   "path": "{project}/aggregated/targetPools",
143912	//   "response": {
143913	//     "$ref": "TargetPoolAggregatedList"
143914	//   },
143915	//   "scopes": [
143916	//     "https://www.googleapis.com/auth/cloud-platform",
143917	//     "https://www.googleapis.com/auth/compute",
143918	//     "https://www.googleapis.com/auth/compute.readonly"
143919	//   ]
143920	// }
143921
143922}
143923
143924// Pages invokes f for each page of results.
143925// A non-nil error returned from f will halt the iteration.
143926// The provided context supersedes any context provided to the Context method.
143927func (c *TargetPoolsAggregatedListCall) Pages(ctx context.Context, f func(*TargetPoolAggregatedList) error) error {
143928	c.ctx_ = ctx
143929	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
143930	for {
143931		x, err := c.Do()
143932		if err != nil {
143933			return err
143934		}
143935		if err := f(x); err != nil {
143936			return err
143937		}
143938		if x.NextPageToken == "" {
143939			return nil
143940		}
143941		c.PageToken(x.NextPageToken)
143942	}
143943}
143944
143945// method id "compute.targetPools.delete":
143946
143947type TargetPoolsDeleteCall struct {
143948	s          *Service
143949	project    string
143950	region     string
143951	targetPool string
143952	urlParams_ gensupport.URLParams
143953	ctx_       context.Context
143954	header_    http.Header
143955}
143956
143957// Delete: Deletes the specified target pool.
143958// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/delete
143959func (r *TargetPoolsService) Delete(project string, region string, targetPool string) *TargetPoolsDeleteCall {
143960	c := &TargetPoolsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
143961	c.project = project
143962	c.region = region
143963	c.targetPool = targetPool
143964	return c
143965}
143966
143967// RequestId sets the optional parameter "requestId": An optional
143968// request ID to identify requests. Specify a unique request ID so that
143969// if you must retry your request, the server will know to ignore the
143970// request if it has already been completed.
143971//
143972// For example, consider a situation where you make an initial request
143973// and the request times out. If you make the request again with the
143974// same request ID, the server can check if original operation with the
143975// same request ID was received, and if so, will ignore the second
143976// request. This prevents clients from accidentally creating duplicate
143977// commitments.
143978//
143979// The request ID must be a valid UUID with the exception that zero UUID
143980// is not supported (00000000-0000-0000-0000-000000000000).
143981func (c *TargetPoolsDeleteCall) RequestId(requestId string) *TargetPoolsDeleteCall {
143982	c.urlParams_.Set("requestId", requestId)
143983	return c
143984}
143985
143986// Fields allows partial responses to be retrieved. See
143987// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
143988// for more information.
143989func (c *TargetPoolsDeleteCall) Fields(s ...googleapi.Field) *TargetPoolsDeleteCall {
143990	c.urlParams_.Set("fields", googleapi.CombineFields(s))
143991	return c
143992}
143993
143994// Context sets the context to be used in this call's Do method. Any
143995// pending HTTP request will be aborted if the provided context is
143996// canceled.
143997func (c *TargetPoolsDeleteCall) Context(ctx context.Context) *TargetPoolsDeleteCall {
143998	c.ctx_ = ctx
143999	return c
144000}
144001
144002// Header returns an http.Header that can be modified by the caller to
144003// add HTTP headers to the request.
144004func (c *TargetPoolsDeleteCall) Header() http.Header {
144005	if c.header_ == nil {
144006		c.header_ = make(http.Header)
144007	}
144008	return c.header_
144009}
144010
144011func (c *TargetPoolsDeleteCall) doRequest(alt string) (*http.Response, error) {
144012	reqHeaders := make(http.Header)
144013	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144014	for k, v := range c.header_ {
144015		reqHeaders[k] = v
144016	}
144017	reqHeaders.Set("User-Agent", c.s.userAgent())
144018	var body io.Reader = nil
144019	c.urlParams_.Set("alt", alt)
144020	c.urlParams_.Set("prettyPrint", "false")
144021	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
144022	urls += "?" + c.urlParams_.Encode()
144023	req, err := http.NewRequest("DELETE", urls, body)
144024	if err != nil {
144025		return nil, err
144026	}
144027	req.Header = reqHeaders
144028	googleapi.Expand(req.URL, map[string]string{
144029		"project":    c.project,
144030		"region":     c.region,
144031		"targetPool": c.targetPool,
144032	})
144033	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144034}
144035
144036// Do executes the "compute.targetPools.delete" call.
144037// Exactly one of *Operation or error will be non-nil. Any non-2xx
144038// status code is an error. Response headers are in either
144039// *Operation.ServerResponse.Header or (if a response was returned at
144040// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144041// to check whether the returned error was because
144042// http.StatusNotModified was returned.
144043func (c *TargetPoolsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144044	gensupport.SetOptions(c.urlParams_, opts...)
144045	res, err := c.doRequest("json")
144046	if res != nil && res.StatusCode == http.StatusNotModified {
144047		if res.Body != nil {
144048			res.Body.Close()
144049		}
144050		return nil, &googleapi.Error{
144051			Code:   res.StatusCode,
144052			Header: res.Header,
144053		}
144054	}
144055	if err != nil {
144056		return nil, err
144057	}
144058	defer googleapi.CloseBody(res)
144059	if err := googleapi.CheckResponse(res); err != nil {
144060		return nil, err
144061	}
144062	ret := &Operation{
144063		ServerResponse: googleapi.ServerResponse{
144064			Header:         res.Header,
144065			HTTPStatusCode: res.StatusCode,
144066		},
144067	}
144068	target := &ret
144069	if err := gensupport.DecodeResponse(target, res); err != nil {
144070		return nil, err
144071	}
144072	return ret, nil
144073	// {
144074	//   "description": "Deletes the specified target pool.",
144075	//   "httpMethod": "DELETE",
144076	//   "id": "compute.targetPools.delete",
144077	//   "parameterOrder": [
144078	//     "project",
144079	//     "region",
144080	//     "targetPool"
144081	//   ],
144082	//   "parameters": {
144083	//     "project": {
144084	//       "description": "Project ID for this request.",
144085	//       "location": "path",
144086	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144087	//       "required": true,
144088	//       "type": "string"
144089	//     },
144090	//     "region": {
144091	//       "description": "Name of the region scoping this request.",
144092	//       "location": "path",
144093	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144094	//       "required": true,
144095	//       "type": "string"
144096	//     },
144097	//     "requestId": {
144098	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144099	//       "location": "query",
144100	//       "type": "string"
144101	//     },
144102	//     "targetPool": {
144103	//       "description": "Name of the TargetPool resource to delete.",
144104	//       "location": "path",
144105	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144106	//       "required": true,
144107	//       "type": "string"
144108	//     }
144109	//   },
144110	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
144111	//   "response": {
144112	//     "$ref": "Operation"
144113	//   },
144114	//   "scopes": [
144115	//     "https://www.googleapis.com/auth/cloud-platform",
144116	//     "https://www.googleapis.com/auth/compute"
144117	//   ]
144118	// }
144119
144120}
144121
144122// method id "compute.targetPools.get":
144123
144124type TargetPoolsGetCall struct {
144125	s            *Service
144126	project      string
144127	region       string
144128	targetPool   string
144129	urlParams_   gensupport.URLParams
144130	ifNoneMatch_ string
144131	ctx_         context.Context
144132	header_      http.Header
144133}
144134
144135// Get: Returns the specified target pool. Gets a list of available
144136// target pools by making a list() request.
144137// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/get
144138func (r *TargetPoolsService) Get(project string, region string, targetPool string) *TargetPoolsGetCall {
144139	c := &TargetPoolsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144140	c.project = project
144141	c.region = region
144142	c.targetPool = targetPool
144143	return c
144144}
144145
144146// Fields allows partial responses to be retrieved. See
144147// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144148// for more information.
144149func (c *TargetPoolsGetCall) Fields(s ...googleapi.Field) *TargetPoolsGetCall {
144150	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144151	return c
144152}
144153
144154// IfNoneMatch sets the optional parameter which makes the operation
144155// fail if the object's ETag matches the given value. This is useful for
144156// getting updates only after the object has changed since the last
144157// request. Use googleapi.IsNotModified to check whether the response
144158// error from Do is the result of In-None-Match.
144159func (c *TargetPoolsGetCall) IfNoneMatch(entityTag string) *TargetPoolsGetCall {
144160	c.ifNoneMatch_ = entityTag
144161	return c
144162}
144163
144164// Context sets the context to be used in this call's Do method. Any
144165// pending HTTP request will be aborted if the provided context is
144166// canceled.
144167func (c *TargetPoolsGetCall) Context(ctx context.Context) *TargetPoolsGetCall {
144168	c.ctx_ = ctx
144169	return c
144170}
144171
144172// Header returns an http.Header that can be modified by the caller to
144173// add HTTP headers to the request.
144174func (c *TargetPoolsGetCall) Header() http.Header {
144175	if c.header_ == nil {
144176		c.header_ = make(http.Header)
144177	}
144178	return c.header_
144179}
144180
144181func (c *TargetPoolsGetCall) doRequest(alt string) (*http.Response, error) {
144182	reqHeaders := make(http.Header)
144183	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144184	for k, v := range c.header_ {
144185		reqHeaders[k] = v
144186	}
144187	reqHeaders.Set("User-Agent", c.s.userAgent())
144188	if c.ifNoneMatch_ != "" {
144189		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144190	}
144191	var body io.Reader = nil
144192	c.urlParams_.Set("alt", alt)
144193	c.urlParams_.Set("prettyPrint", "false")
144194	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}")
144195	urls += "?" + c.urlParams_.Encode()
144196	req, err := http.NewRequest("GET", urls, body)
144197	if err != nil {
144198		return nil, err
144199	}
144200	req.Header = reqHeaders
144201	googleapi.Expand(req.URL, map[string]string{
144202		"project":    c.project,
144203		"region":     c.region,
144204		"targetPool": c.targetPool,
144205	})
144206	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144207}
144208
144209// Do executes the "compute.targetPools.get" call.
144210// Exactly one of *TargetPool or error will be non-nil. Any non-2xx
144211// status code is an error. Response headers are in either
144212// *TargetPool.ServerResponse.Header or (if a response was returned at
144213// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144214// to check whether the returned error was because
144215// http.StatusNotModified was returned.
144216func (c *TargetPoolsGetCall) Do(opts ...googleapi.CallOption) (*TargetPool, error) {
144217	gensupport.SetOptions(c.urlParams_, opts...)
144218	res, err := c.doRequest("json")
144219	if res != nil && res.StatusCode == http.StatusNotModified {
144220		if res.Body != nil {
144221			res.Body.Close()
144222		}
144223		return nil, &googleapi.Error{
144224			Code:   res.StatusCode,
144225			Header: res.Header,
144226		}
144227	}
144228	if err != nil {
144229		return nil, err
144230	}
144231	defer googleapi.CloseBody(res)
144232	if err := googleapi.CheckResponse(res); err != nil {
144233		return nil, err
144234	}
144235	ret := &TargetPool{
144236		ServerResponse: googleapi.ServerResponse{
144237			Header:         res.Header,
144238			HTTPStatusCode: res.StatusCode,
144239		},
144240	}
144241	target := &ret
144242	if err := gensupport.DecodeResponse(target, res); err != nil {
144243		return nil, err
144244	}
144245	return ret, nil
144246	// {
144247	//   "description": "Returns the specified target pool. Gets a list of available target pools by making a list() request.",
144248	//   "httpMethod": "GET",
144249	//   "id": "compute.targetPools.get",
144250	//   "parameterOrder": [
144251	//     "project",
144252	//     "region",
144253	//     "targetPool"
144254	//   ],
144255	//   "parameters": {
144256	//     "project": {
144257	//       "description": "Project ID for this request.",
144258	//       "location": "path",
144259	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144260	//       "required": true,
144261	//       "type": "string"
144262	//     },
144263	//     "region": {
144264	//       "description": "Name of the region scoping this request.",
144265	//       "location": "path",
144266	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144267	//       "required": true,
144268	//       "type": "string"
144269	//     },
144270	//     "targetPool": {
144271	//       "description": "Name of the TargetPool resource to return.",
144272	//       "location": "path",
144273	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144274	//       "required": true,
144275	//       "type": "string"
144276	//     }
144277	//   },
144278	//   "path": "{project}/regions/{region}/targetPools/{targetPool}",
144279	//   "response": {
144280	//     "$ref": "TargetPool"
144281	//   },
144282	//   "scopes": [
144283	//     "https://www.googleapis.com/auth/cloud-platform",
144284	//     "https://www.googleapis.com/auth/compute",
144285	//     "https://www.googleapis.com/auth/compute.readonly"
144286	//   ]
144287	// }
144288
144289}
144290
144291// method id "compute.targetPools.getHealth":
144292
144293type TargetPoolsGetHealthCall struct {
144294	s                 *Service
144295	project           string
144296	region            string
144297	targetPool        string
144298	instancereference *InstanceReference
144299	urlParams_        gensupport.URLParams
144300	ctx_              context.Context
144301	header_           http.Header
144302}
144303
144304// GetHealth: Gets the most recent health check results for each IP for
144305// the instance that is referenced by the given target pool.
144306// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/getHealth
144307func (r *TargetPoolsService) GetHealth(project string, region string, targetPool string, instancereference *InstanceReference) *TargetPoolsGetHealthCall {
144308	c := &TargetPoolsGetHealthCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144309	c.project = project
144310	c.region = region
144311	c.targetPool = targetPool
144312	c.instancereference = instancereference
144313	return c
144314}
144315
144316// Fields allows partial responses to be retrieved. See
144317// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144318// for more information.
144319func (c *TargetPoolsGetHealthCall) Fields(s ...googleapi.Field) *TargetPoolsGetHealthCall {
144320	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144321	return c
144322}
144323
144324// Context sets the context to be used in this call's Do method. Any
144325// pending HTTP request will be aborted if the provided context is
144326// canceled.
144327func (c *TargetPoolsGetHealthCall) Context(ctx context.Context) *TargetPoolsGetHealthCall {
144328	c.ctx_ = ctx
144329	return c
144330}
144331
144332// Header returns an http.Header that can be modified by the caller to
144333// add HTTP headers to the request.
144334func (c *TargetPoolsGetHealthCall) Header() http.Header {
144335	if c.header_ == nil {
144336		c.header_ = make(http.Header)
144337	}
144338	return c.header_
144339}
144340
144341func (c *TargetPoolsGetHealthCall) doRequest(alt string) (*http.Response, error) {
144342	reqHeaders := make(http.Header)
144343	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144344	for k, v := range c.header_ {
144345		reqHeaders[k] = v
144346	}
144347	reqHeaders.Set("User-Agent", c.s.userAgent())
144348	var body io.Reader = nil
144349	body, err := googleapi.WithoutDataWrapper.JSONReader(c.instancereference)
144350	if err != nil {
144351		return nil, err
144352	}
144353	reqHeaders.Set("Content-Type", "application/json")
144354	c.urlParams_.Set("alt", alt)
144355	c.urlParams_.Set("prettyPrint", "false")
144356	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/getHealth")
144357	urls += "?" + c.urlParams_.Encode()
144358	req, err := http.NewRequest("POST", urls, body)
144359	if err != nil {
144360		return nil, err
144361	}
144362	req.Header = reqHeaders
144363	googleapi.Expand(req.URL, map[string]string{
144364		"project":    c.project,
144365		"region":     c.region,
144366		"targetPool": c.targetPool,
144367	})
144368	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144369}
144370
144371// Do executes the "compute.targetPools.getHealth" call.
144372// Exactly one of *TargetPoolInstanceHealth or error will be non-nil.
144373// Any non-2xx status code is an error. Response headers are in either
144374// *TargetPoolInstanceHealth.ServerResponse.Header or (if a response was
144375// returned at all) in error.(*googleapi.Error).Header. Use
144376// googleapi.IsNotModified to check whether the returned error was
144377// because http.StatusNotModified was returned.
144378func (c *TargetPoolsGetHealthCall) Do(opts ...googleapi.CallOption) (*TargetPoolInstanceHealth, error) {
144379	gensupport.SetOptions(c.urlParams_, opts...)
144380	res, err := c.doRequest("json")
144381	if res != nil && res.StatusCode == http.StatusNotModified {
144382		if res.Body != nil {
144383			res.Body.Close()
144384		}
144385		return nil, &googleapi.Error{
144386			Code:   res.StatusCode,
144387			Header: res.Header,
144388		}
144389	}
144390	if err != nil {
144391		return nil, err
144392	}
144393	defer googleapi.CloseBody(res)
144394	if err := googleapi.CheckResponse(res); err != nil {
144395		return nil, err
144396	}
144397	ret := &TargetPoolInstanceHealth{
144398		ServerResponse: googleapi.ServerResponse{
144399			Header:         res.Header,
144400			HTTPStatusCode: res.StatusCode,
144401		},
144402	}
144403	target := &ret
144404	if err := gensupport.DecodeResponse(target, res); err != nil {
144405		return nil, err
144406	}
144407	return ret, nil
144408	// {
144409	//   "description": "Gets the most recent health check results for each IP for the instance that is referenced by the given target pool.",
144410	//   "httpMethod": "POST",
144411	//   "id": "compute.targetPools.getHealth",
144412	//   "parameterOrder": [
144413	//     "project",
144414	//     "region",
144415	//     "targetPool"
144416	//   ],
144417	//   "parameters": {
144418	//     "project": {
144419	//       "description": "Project ID for this request.",
144420	//       "location": "path",
144421	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144422	//       "required": true,
144423	//       "type": "string"
144424	//     },
144425	//     "region": {
144426	//       "description": "Name of the region scoping this request.",
144427	//       "location": "path",
144428	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144429	//       "required": true,
144430	//       "type": "string"
144431	//     },
144432	//     "targetPool": {
144433	//       "description": "Name of the TargetPool resource to which the queried instance belongs.",
144434	//       "location": "path",
144435	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
144436	//       "required": true,
144437	//       "type": "string"
144438	//     }
144439	//   },
144440	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/getHealth",
144441	//   "request": {
144442	//     "$ref": "InstanceReference"
144443	//   },
144444	//   "response": {
144445	//     "$ref": "TargetPoolInstanceHealth"
144446	//   },
144447	//   "scopes": [
144448	//     "https://www.googleapis.com/auth/cloud-platform",
144449	//     "https://www.googleapis.com/auth/compute",
144450	//     "https://www.googleapis.com/auth/compute.readonly"
144451	//   ]
144452	// }
144453
144454}
144455
144456// method id "compute.targetPools.insert":
144457
144458type TargetPoolsInsertCall struct {
144459	s          *Service
144460	project    string
144461	region     string
144462	targetpool *TargetPool
144463	urlParams_ gensupport.URLParams
144464	ctx_       context.Context
144465	header_    http.Header
144466}
144467
144468// Insert: Creates a target pool in the specified project and region
144469// using the data included in the request.
144470// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/insert
144471func (r *TargetPoolsService) Insert(project string, region string, targetpool *TargetPool) *TargetPoolsInsertCall {
144472	c := &TargetPoolsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144473	c.project = project
144474	c.region = region
144475	c.targetpool = targetpool
144476	return c
144477}
144478
144479// RequestId sets the optional parameter "requestId": An optional
144480// request ID to identify requests. Specify a unique request ID so that
144481// if you must retry your request, the server will know to ignore the
144482// request if it has already been completed.
144483//
144484// For example, consider a situation where you make an initial request
144485// and the request times out. If you make the request again with the
144486// same request ID, the server can check if original operation with the
144487// same request ID was received, and if so, will ignore the second
144488// request. This prevents clients from accidentally creating duplicate
144489// commitments.
144490//
144491// The request ID must be a valid UUID with the exception that zero UUID
144492// is not supported (00000000-0000-0000-0000-000000000000).
144493func (c *TargetPoolsInsertCall) RequestId(requestId string) *TargetPoolsInsertCall {
144494	c.urlParams_.Set("requestId", requestId)
144495	return c
144496}
144497
144498// Fields allows partial responses to be retrieved. See
144499// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144500// for more information.
144501func (c *TargetPoolsInsertCall) Fields(s ...googleapi.Field) *TargetPoolsInsertCall {
144502	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144503	return c
144504}
144505
144506// Context sets the context to be used in this call's Do method. Any
144507// pending HTTP request will be aborted if the provided context is
144508// canceled.
144509func (c *TargetPoolsInsertCall) Context(ctx context.Context) *TargetPoolsInsertCall {
144510	c.ctx_ = ctx
144511	return c
144512}
144513
144514// Header returns an http.Header that can be modified by the caller to
144515// add HTTP headers to the request.
144516func (c *TargetPoolsInsertCall) Header() http.Header {
144517	if c.header_ == nil {
144518		c.header_ = make(http.Header)
144519	}
144520	return c.header_
144521}
144522
144523func (c *TargetPoolsInsertCall) doRequest(alt string) (*http.Response, error) {
144524	reqHeaders := make(http.Header)
144525	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144526	for k, v := range c.header_ {
144527		reqHeaders[k] = v
144528	}
144529	reqHeaders.Set("User-Agent", c.s.userAgent())
144530	var body io.Reader = nil
144531	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpool)
144532	if err != nil {
144533		return nil, err
144534	}
144535	reqHeaders.Set("Content-Type", "application/json")
144536	c.urlParams_.Set("alt", alt)
144537	c.urlParams_.Set("prettyPrint", "false")
144538	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
144539	urls += "?" + c.urlParams_.Encode()
144540	req, err := http.NewRequest("POST", urls, body)
144541	if err != nil {
144542		return nil, err
144543	}
144544	req.Header = reqHeaders
144545	googleapi.Expand(req.URL, map[string]string{
144546		"project": c.project,
144547		"region":  c.region,
144548	})
144549	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144550}
144551
144552// Do executes the "compute.targetPools.insert" call.
144553// Exactly one of *Operation or error will be non-nil. Any non-2xx
144554// status code is an error. Response headers are in either
144555// *Operation.ServerResponse.Header or (if a response was returned at
144556// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
144557// to check whether the returned error was because
144558// http.StatusNotModified was returned.
144559func (c *TargetPoolsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
144560	gensupport.SetOptions(c.urlParams_, opts...)
144561	res, err := c.doRequest("json")
144562	if res != nil && res.StatusCode == http.StatusNotModified {
144563		if res.Body != nil {
144564			res.Body.Close()
144565		}
144566		return nil, &googleapi.Error{
144567			Code:   res.StatusCode,
144568			Header: res.Header,
144569		}
144570	}
144571	if err != nil {
144572		return nil, err
144573	}
144574	defer googleapi.CloseBody(res)
144575	if err := googleapi.CheckResponse(res); err != nil {
144576		return nil, err
144577	}
144578	ret := &Operation{
144579		ServerResponse: googleapi.ServerResponse{
144580			Header:         res.Header,
144581			HTTPStatusCode: res.StatusCode,
144582		},
144583	}
144584	target := &ret
144585	if err := gensupport.DecodeResponse(target, res); err != nil {
144586		return nil, err
144587	}
144588	return ret, nil
144589	// {
144590	//   "description": "Creates a target pool in the specified project and region using the data included in the request.",
144591	//   "httpMethod": "POST",
144592	//   "id": "compute.targetPools.insert",
144593	//   "parameterOrder": [
144594	//     "project",
144595	//     "region"
144596	//   ],
144597	//   "parameters": {
144598	//     "project": {
144599	//       "description": "Project ID for this request.",
144600	//       "location": "path",
144601	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144602	//       "required": true,
144603	//       "type": "string"
144604	//     },
144605	//     "region": {
144606	//       "description": "Name of the region scoping this request.",
144607	//       "location": "path",
144608	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144609	//       "required": true,
144610	//       "type": "string"
144611	//     },
144612	//     "requestId": {
144613	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
144614	//       "location": "query",
144615	//       "type": "string"
144616	//     }
144617	//   },
144618	//   "path": "{project}/regions/{region}/targetPools",
144619	//   "request": {
144620	//     "$ref": "TargetPool"
144621	//   },
144622	//   "response": {
144623	//     "$ref": "Operation"
144624	//   },
144625	//   "scopes": [
144626	//     "https://www.googleapis.com/auth/cloud-platform",
144627	//     "https://www.googleapis.com/auth/compute"
144628	//   ]
144629	// }
144630
144631}
144632
144633// method id "compute.targetPools.list":
144634
144635type TargetPoolsListCall struct {
144636	s            *Service
144637	project      string
144638	region       string
144639	urlParams_   gensupport.URLParams
144640	ifNoneMatch_ string
144641	ctx_         context.Context
144642	header_      http.Header
144643}
144644
144645// List: Retrieves a list of target pools available to the specified
144646// project and region.
144647// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/list
144648func (r *TargetPoolsService) List(project string, region string) *TargetPoolsListCall {
144649	c := &TargetPoolsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144650	c.project = project
144651	c.region = region
144652	return c
144653}
144654
144655// Filter sets the optional parameter "filter": A filter expression that
144656// filters resources listed in the response. The expression must specify
144657// the field name, a comparison operator, and the value that you want to
144658// use for filtering. The value must be a string, a number, or a
144659// boolean. The comparison operator must be either =, !=, >, or <.
144660//
144661// For example, if you are filtering Compute Engine instances, you can
144662// exclude instances named example-instance by specifying name !=
144663// example-instance.
144664//
144665// You can also filter nested fields. For example, you could specify
144666// scheduling.automaticRestart = false to include instances only if they
144667// are not scheduled for automatic restarts. You can use filtering on
144668// nested fields to filter based on resource labels.
144669//
144670// To filter on multiple expressions, provide each separate expression
144671// within parentheses. For example, (scheduling.automaticRestart = true)
144672// (cpuPlatform = "Intel Skylake"). By default, each expression is an
144673// AND expression. However, you can include AND and OR expressions
144674// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
144675// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
144676// true).
144677func (c *TargetPoolsListCall) Filter(filter string) *TargetPoolsListCall {
144678	c.urlParams_.Set("filter", filter)
144679	return c
144680}
144681
144682// MaxResults sets the optional parameter "maxResults": The maximum
144683// number of results per page that should be returned. If the number of
144684// available results is larger than maxResults, Compute Engine returns a
144685// nextPageToken that can be used to get the next page of results in
144686// subsequent list requests. Acceptable values are 0 to 500, inclusive.
144687// (Default: 500)
144688func (c *TargetPoolsListCall) MaxResults(maxResults int64) *TargetPoolsListCall {
144689	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
144690	return c
144691}
144692
144693// OrderBy sets the optional parameter "orderBy": Sorts list results by
144694// a certain order. By default, results are returned in alphanumerical
144695// order based on the resource name.
144696//
144697// You can also sort results in descending order based on the creation
144698// timestamp using orderBy="creationTimestamp desc". This sorts results
144699// based on the creationTimestamp field in reverse chronological order
144700// (newest result first). Use this to sort resources like operations so
144701// that the newest operation is returned first.
144702//
144703// Currently, only sorting by name or creationTimestamp desc is
144704// supported.
144705func (c *TargetPoolsListCall) OrderBy(orderBy string) *TargetPoolsListCall {
144706	c.urlParams_.Set("orderBy", orderBy)
144707	return c
144708}
144709
144710// PageToken sets the optional parameter "pageToken": Specifies a page
144711// token to use. Set pageToken to the nextPageToken returned by a
144712// previous list request to get the next page of results.
144713func (c *TargetPoolsListCall) PageToken(pageToken string) *TargetPoolsListCall {
144714	c.urlParams_.Set("pageToken", pageToken)
144715	return c
144716}
144717
144718// Fields allows partial responses to be retrieved. See
144719// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144720// for more information.
144721func (c *TargetPoolsListCall) Fields(s ...googleapi.Field) *TargetPoolsListCall {
144722	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144723	return c
144724}
144725
144726// IfNoneMatch sets the optional parameter which makes the operation
144727// fail if the object's ETag matches the given value. This is useful for
144728// getting updates only after the object has changed since the last
144729// request. Use googleapi.IsNotModified to check whether the response
144730// error from Do is the result of In-None-Match.
144731func (c *TargetPoolsListCall) IfNoneMatch(entityTag string) *TargetPoolsListCall {
144732	c.ifNoneMatch_ = entityTag
144733	return c
144734}
144735
144736// Context sets the context to be used in this call's Do method. Any
144737// pending HTTP request will be aborted if the provided context is
144738// canceled.
144739func (c *TargetPoolsListCall) Context(ctx context.Context) *TargetPoolsListCall {
144740	c.ctx_ = ctx
144741	return c
144742}
144743
144744// Header returns an http.Header that can be modified by the caller to
144745// add HTTP headers to the request.
144746func (c *TargetPoolsListCall) Header() http.Header {
144747	if c.header_ == nil {
144748		c.header_ = make(http.Header)
144749	}
144750	return c.header_
144751}
144752
144753func (c *TargetPoolsListCall) doRequest(alt string) (*http.Response, error) {
144754	reqHeaders := make(http.Header)
144755	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144756	for k, v := range c.header_ {
144757		reqHeaders[k] = v
144758	}
144759	reqHeaders.Set("User-Agent", c.s.userAgent())
144760	if c.ifNoneMatch_ != "" {
144761		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
144762	}
144763	var body io.Reader = nil
144764	c.urlParams_.Set("alt", alt)
144765	c.urlParams_.Set("prettyPrint", "false")
144766	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools")
144767	urls += "?" + c.urlParams_.Encode()
144768	req, err := http.NewRequest("GET", urls, body)
144769	if err != nil {
144770		return nil, err
144771	}
144772	req.Header = reqHeaders
144773	googleapi.Expand(req.URL, map[string]string{
144774		"project": c.project,
144775		"region":  c.region,
144776	})
144777	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144778}
144779
144780// Do executes the "compute.targetPools.list" call.
144781// Exactly one of *TargetPoolList or error will be non-nil. Any non-2xx
144782// status code is an error. Response headers are in either
144783// *TargetPoolList.ServerResponse.Header or (if a response was returned
144784// at all) in error.(*googleapi.Error).Header. Use
144785// googleapi.IsNotModified to check whether the returned error was
144786// because http.StatusNotModified was returned.
144787func (c *TargetPoolsListCall) Do(opts ...googleapi.CallOption) (*TargetPoolList, error) {
144788	gensupport.SetOptions(c.urlParams_, opts...)
144789	res, err := c.doRequest("json")
144790	if res != nil && res.StatusCode == http.StatusNotModified {
144791		if res.Body != nil {
144792			res.Body.Close()
144793		}
144794		return nil, &googleapi.Error{
144795			Code:   res.StatusCode,
144796			Header: res.Header,
144797		}
144798	}
144799	if err != nil {
144800		return nil, err
144801	}
144802	defer googleapi.CloseBody(res)
144803	if err := googleapi.CheckResponse(res); err != nil {
144804		return nil, err
144805	}
144806	ret := &TargetPoolList{
144807		ServerResponse: googleapi.ServerResponse{
144808			Header:         res.Header,
144809			HTTPStatusCode: res.StatusCode,
144810		},
144811	}
144812	target := &ret
144813	if err := gensupport.DecodeResponse(target, res); err != nil {
144814		return nil, err
144815	}
144816	return ret, nil
144817	// {
144818	//   "description": "Retrieves a list of target pools available to the specified project and region.",
144819	//   "httpMethod": "GET",
144820	//   "id": "compute.targetPools.list",
144821	//   "parameterOrder": [
144822	//     "project",
144823	//     "region"
144824	//   ],
144825	//   "parameters": {
144826	//     "filter": {
144827	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
144828	//       "location": "query",
144829	//       "type": "string"
144830	//     },
144831	//     "maxResults": {
144832	//       "default": "500",
144833	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
144834	//       "format": "uint32",
144835	//       "location": "query",
144836	//       "minimum": "0",
144837	//       "type": "integer"
144838	//     },
144839	//     "orderBy": {
144840	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
144841	//       "location": "query",
144842	//       "type": "string"
144843	//     },
144844	//     "pageToken": {
144845	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
144846	//       "location": "query",
144847	//       "type": "string"
144848	//     },
144849	//     "project": {
144850	//       "description": "Project ID for this request.",
144851	//       "location": "path",
144852	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
144853	//       "required": true,
144854	//       "type": "string"
144855	//     },
144856	//     "region": {
144857	//       "description": "Name of the region scoping this request.",
144858	//       "location": "path",
144859	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
144860	//       "required": true,
144861	//       "type": "string"
144862	//     }
144863	//   },
144864	//   "path": "{project}/regions/{region}/targetPools",
144865	//   "response": {
144866	//     "$ref": "TargetPoolList"
144867	//   },
144868	//   "scopes": [
144869	//     "https://www.googleapis.com/auth/cloud-platform",
144870	//     "https://www.googleapis.com/auth/compute",
144871	//     "https://www.googleapis.com/auth/compute.readonly"
144872	//   ]
144873	// }
144874
144875}
144876
144877// Pages invokes f for each page of results.
144878// A non-nil error returned from f will halt the iteration.
144879// The provided context supersedes any context provided to the Context method.
144880func (c *TargetPoolsListCall) Pages(ctx context.Context, f func(*TargetPoolList) error) error {
144881	c.ctx_ = ctx
144882	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
144883	for {
144884		x, err := c.Do()
144885		if err != nil {
144886			return err
144887		}
144888		if err := f(x); err != nil {
144889			return err
144890		}
144891		if x.NextPageToken == "" {
144892			return nil
144893		}
144894		c.PageToken(x.NextPageToken)
144895	}
144896}
144897
144898// method id "compute.targetPools.removeHealthCheck":
144899
144900type TargetPoolsRemoveHealthCheckCall struct {
144901	s                                   *Service
144902	project                             string
144903	region                              string
144904	targetPool                          string
144905	targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest
144906	urlParams_                          gensupport.URLParams
144907	ctx_                                context.Context
144908	header_                             http.Header
144909}
144910
144911// RemoveHealthCheck: Removes health check URL from a target pool.
144912// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeHealthCheck
144913func (r *TargetPoolsService) RemoveHealthCheck(project string, region string, targetPool string, targetpoolsremovehealthcheckrequest *TargetPoolsRemoveHealthCheckRequest) *TargetPoolsRemoveHealthCheckCall {
144914	c := &TargetPoolsRemoveHealthCheckCall{s: r.s, urlParams_: make(gensupport.URLParams)}
144915	c.project = project
144916	c.region = region
144917	c.targetPool = targetPool
144918	c.targetpoolsremovehealthcheckrequest = targetpoolsremovehealthcheckrequest
144919	return c
144920}
144921
144922// RequestId sets the optional parameter "requestId": An optional
144923// request ID to identify requests. Specify a unique request ID so that
144924// if you must retry your request, the server will know to ignore the
144925// request if it has already been completed.
144926//
144927// For example, consider a situation where you make an initial request
144928// and the request times out. If you make the request again with the
144929// same request ID, the server can check if original operation with the
144930// same request ID was received, and if so, will ignore the second
144931// request. This prevents clients from accidentally creating duplicate
144932// commitments.
144933//
144934// The request ID must be a valid UUID with the exception that zero UUID
144935// is not supported (00000000-0000-0000-0000-000000000000).
144936func (c *TargetPoolsRemoveHealthCheckCall) RequestId(requestId string) *TargetPoolsRemoveHealthCheckCall {
144937	c.urlParams_.Set("requestId", requestId)
144938	return c
144939}
144940
144941// Fields allows partial responses to be retrieved. See
144942// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
144943// for more information.
144944func (c *TargetPoolsRemoveHealthCheckCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveHealthCheckCall {
144945	c.urlParams_.Set("fields", googleapi.CombineFields(s))
144946	return c
144947}
144948
144949// Context sets the context to be used in this call's Do method. Any
144950// pending HTTP request will be aborted if the provided context is
144951// canceled.
144952func (c *TargetPoolsRemoveHealthCheckCall) Context(ctx context.Context) *TargetPoolsRemoveHealthCheckCall {
144953	c.ctx_ = ctx
144954	return c
144955}
144956
144957// Header returns an http.Header that can be modified by the caller to
144958// add HTTP headers to the request.
144959func (c *TargetPoolsRemoveHealthCheckCall) Header() http.Header {
144960	if c.header_ == nil {
144961		c.header_ = make(http.Header)
144962	}
144963	return c.header_
144964}
144965
144966func (c *TargetPoolsRemoveHealthCheckCall) doRequest(alt string) (*http.Response, error) {
144967	reqHeaders := make(http.Header)
144968	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
144969	for k, v := range c.header_ {
144970		reqHeaders[k] = v
144971	}
144972	reqHeaders.Set("User-Agent", c.s.userAgent())
144973	var body io.Reader = nil
144974	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremovehealthcheckrequest)
144975	if err != nil {
144976		return nil, err
144977	}
144978	reqHeaders.Set("Content-Type", "application/json")
144979	c.urlParams_.Set("alt", alt)
144980	c.urlParams_.Set("prettyPrint", "false")
144981	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck")
144982	urls += "?" + c.urlParams_.Encode()
144983	req, err := http.NewRequest("POST", urls, body)
144984	if err != nil {
144985		return nil, err
144986	}
144987	req.Header = reqHeaders
144988	googleapi.Expand(req.URL, map[string]string{
144989		"project":    c.project,
144990		"region":     c.region,
144991		"targetPool": c.targetPool,
144992	})
144993	return gensupport.SendRequest(c.ctx_, c.s.client, req)
144994}
144995
144996// Do executes the "compute.targetPools.removeHealthCheck" call.
144997// Exactly one of *Operation or error will be non-nil. Any non-2xx
144998// status code is an error. Response headers are in either
144999// *Operation.ServerResponse.Header or (if a response was returned at
145000// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145001// to check whether the returned error was because
145002// http.StatusNotModified was returned.
145003func (c *TargetPoolsRemoveHealthCheckCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145004	gensupport.SetOptions(c.urlParams_, opts...)
145005	res, err := c.doRequest("json")
145006	if res != nil && res.StatusCode == http.StatusNotModified {
145007		if res.Body != nil {
145008			res.Body.Close()
145009		}
145010		return nil, &googleapi.Error{
145011			Code:   res.StatusCode,
145012			Header: res.Header,
145013		}
145014	}
145015	if err != nil {
145016		return nil, err
145017	}
145018	defer googleapi.CloseBody(res)
145019	if err := googleapi.CheckResponse(res); err != nil {
145020		return nil, err
145021	}
145022	ret := &Operation{
145023		ServerResponse: googleapi.ServerResponse{
145024			Header:         res.Header,
145025			HTTPStatusCode: res.StatusCode,
145026		},
145027	}
145028	target := &ret
145029	if err := gensupport.DecodeResponse(target, res); err != nil {
145030		return nil, err
145031	}
145032	return ret, nil
145033	// {
145034	//   "description": "Removes health check URL from a target pool.",
145035	//   "httpMethod": "POST",
145036	//   "id": "compute.targetPools.removeHealthCheck",
145037	//   "parameterOrder": [
145038	//     "project",
145039	//     "region",
145040	//     "targetPool"
145041	//   ],
145042	//   "parameters": {
145043	//     "project": {
145044	//       "description": "Project ID for this request.",
145045	//       "location": "path",
145046	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145047	//       "required": true,
145048	//       "type": "string"
145049	//     },
145050	//     "region": {
145051	//       "description": "Name of the region for this request.",
145052	//       "location": "path",
145053	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145054	//       "required": true,
145055	//       "type": "string"
145056	//     },
145057	//     "requestId": {
145058	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145059	//       "location": "query",
145060	//       "type": "string"
145061	//     },
145062	//     "targetPool": {
145063	//       "description": "Name of the target pool to remove health checks from.",
145064	//       "location": "path",
145065	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145066	//       "required": true,
145067	//       "type": "string"
145068	//     }
145069	//   },
145070	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeHealthCheck",
145071	//   "request": {
145072	//     "$ref": "TargetPoolsRemoveHealthCheckRequest"
145073	//   },
145074	//   "response": {
145075	//     "$ref": "Operation"
145076	//   },
145077	//   "scopes": [
145078	//     "https://www.googleapis.com/auth/cloud-platform",
145079	//     "https://www.googleapis.com/auth/compute"
145080	//   ]
145081	// }
145082
145083}
145084
145085// method id "compute.targetPools.removeInstance":
145086
145087type TargetPoolsRemoveInstanceCall struct {
145088	s                                *Service
145089	project                          string
145090	region                           string
145091	targetPool                       string
145092	targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest
145093	urlParams_                       gensupport.URLParams
145094	ctx_                             context.Context
145095	header_                          http.Header
145096}
145097
145098// RemoveInstance: Removes instance URL from a target pool.
145099// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/removeInstance
145100func (r *TargetPoolsService) RemoveInstance(project string, region string, targetPool string, targetpoolsremoveinstancerequest *TargetPoolsRemoveInstanceRequest) *TargetPoolsRemoveInstanceCall {
145101	c := &TargetPoolsRemoveInstanceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145102	c.project = project
145103	c.region = region
145104	c.targetPool = targetPool
145105	c.targetpoolsremoveinstancerequest = targetpoolsremoveinstancerequest
145106	return c
145107}
145108
145109// RequestId sets the optional parameter "requestId": An optional
145110// request ID to identify requests. Specify a unique request ID so that
145111// if you must retry your request, the server will know to ignore the
145112// request if it has already been completed.
145113//
145114// For example, consider a situation where you make an initial request
145115// and the request times out. If you make the request again with the
145116// same request ID, the server can check if original operation with the
145117// same request ID was received, and if so, will ignore the second
145118// request. This prevents clients from accidentally creating duplicate
145119// commitments.
145120//
145121// The request ID must be a valid UUID with the exception that zero UUID
145122// is not supported (00000000-0000-0000-0000-000000000000).
145123func (c *TargetPoolsRemoveInstanceCall) RequestId(requestId string) *TargetPoolsRemoveInstanceCall {
145124	c.urlParams_.Set("requestId", requestId)
145125	return c
145126}
145127
145128// Fields allows partial responses to be retrieved. See
145129// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145130// for more information.
145131func (c *TargetPoolsRemoveInstanceCall) Fields(s ...googleapi.Field) *TargetPoolsRemoveInstanceCall {
145132	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145133	return c
145134}
145135
145136// Context sets the context to be used in this call's Do method. Any
145137// pending HTTP request will be aborted if the provided context is
145138// canceled.
145139func (c *TargetPoolsRemoveInstanceCall) Context(ctx context.Context) *TargetPoolsRemoveInstanceCall {
145140	c.ctx_ = ctx
145141	return c
145142}
145143
145144// Header returns an http.Header that can be modified by the caller to
145145// add HTTP headers to the request.
145146func (c *TargetPoolsRemoveInstanceCall) Header() http.Header {
145147	if c.header_ == nil {
145148		c.header_ = make(http.Header)
145149	}
145150	return c.header_
145151}
145152
145153func (c *TargetPoolsRemoveInstanceCall) doRequest(alt string) (*http.Response, error) {
145154	reqHeaders := make(http.Header)
145155	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145156	for k, v := range c.header_ {
145157		reqHeaders[k] = v
145158	}
145159	reqHeaders.Set("User-Agent", c.s.userAgent())
145160	var body io.Reader = nil
145161	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetpoolsremoveinstancerequest)
145162	if err != nil {
145163		return nil, err
145164	}
145165	reqHeaders.Set("Content-Type", "application/json")
145166	c.urlParams_.Set("alt", alt)
145167	c.urlParams_.Set("prettyPrint", "false")
145168	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/removeInstance")
145169	urls += "?" + c.urlParams_.Encode()
145170	req, err := http.NewRequest("POST", urls, body)
145171	if err != nil {
145172		return nil, err
145173	}
145174	req.Header = reqHeaders
145175	googleapi.Expand(req.URL, map[string]string{
145176		"project":    c.project,
145177		"region":     c.region,
145178		"targetPool": c.targetPool,
145179	})
145180	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145181}
145182
145183// Do executes the "compute.targetPools.removeInstance" call.
145184// Exactly one of *Operation or error will be non-nil. Any non-2xx
145185// status code is an error. Response headers are in either
145186// *Operation.ServerResponse.Header or (if a response was returned at
145187// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145188// to check whether the returned error was because
145189// http.StatusNotModified was returned.
145190func (c *TargetPoolsRemoveInstanceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145191	gensupport.SetOptions(c.urlParams_, opts...)
145192	res, err := c.doRequest("json")
145193	if res != nil && res.StatusCode == http.StatusNotModified {
145194		if res.Body != nil {
145195			res.Body.Close()
145196		}
145197		return nil, &googleapi.Error{
145198			Code:   res.StatusCode,
145199			Header: res.Header,
145200		}
145201	}
145202	if err != nil {
145203		return nil, err
145204	}
145205	defer googleapi.CloseBody(res)
145206	if err := googleapi.CheckResponse(res); err != nil {
145207		return nil, err
145208	}
145209	ret := &Operation{
145210		ServerResponse: googleapi.ServerResponse{
145211			Header:         res.Header,
145212			HTTPStatusCode: res.StatusCode,
145213		},
145214	}
145215	target := &ret
145216	if err := gensupport.DecodeResponse(target, res); err != nil {
145217		return nil, err
145218	}
145219	return ret, nil
145220	// {
145221	//   "description": "Removes instance URL from a target pool.",
145222	//   "httpMethod": "POST",
145223	//   "id": "compute.targetPools.removeInstance",
145224	//   "parameterOrder": [
145225	//     "project",
145226	//     "region",
145227	//     "targetPool"
145228	//   ],
145229	//   "parameters": {
145230	//     "project": {
145231	//       "description": "Project ID for this request.",
145232	//       "location": "path",
145233	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145234	//       "required": true,
145235	//       "type": "string"
145236	//     },
145237	//     "region": {
145238	//       "description": "Name of the region scoping this request.",
145239	//       "location": "path",
145240	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145241	//       "required": true,
145242	//       "type": "string"
145243	//     },
145244	//     "requestId": {
145245	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145246	//       "location": "query",
145247	//       "type": "string"
145248	//     },
145249	//     "targetPool": {
145250	//       "description": "Name of the TargetPool resource to remove instances from.",
145251	//       "location": "path",
145252	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145253	//       "required": true,
145254	//       "type": "string"
145255	//     }
145256	//   },
145257	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/removeInstance",
145258	//   "request": {
145259	//     "$ref": "TargetPoolsRemoveInstanceRequest"
145260	//   },
145261	//   "response": {
145262	//     "$ref": "Operation"
145263	//   },
145264	//   "scopes": [
145265	//     "https://www.googleapis.com/auth/cloud-platform",
145266	//     "https://www.googleapis.com/auth/compute"
145267	//   ]
145268	// }
145269
145270}
145271
145272// method id "compute.targetPools.setBackup":
145273
145274type TargetPoolsSetBackupCall struct {
145275	s               *Service
145276	project         string
145277	region          string
145278	targetPool      string
145279	targetreference *TargetReference
145280	urlParams_      gensupport.URLParams
145281	ctx_            context.Context
145282	header_         http.Header
145283}
145284
145285// SetBackup: Changes a backup target pool's configurations.
145286// For details, see https://cloud.google.com/compute/docs/reference/latest/targetPools/setBackup
145287func (r *TargetPoolsService) SetBackup(project string, region string, targetPool string, targetreference *TargetReference) *TargetPoolsSetBackupCall {
145288	c := &TargetPoolsSetBackupCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145289	c.project = project
145290	c.region = region
145291	c.targetPool = targetPool
145292	c.targetreference = targetreference
145293	return c
145294}
145295
145296// FailoverRatio sets the optional parameter "failoverRatio": New
145297// failoverRatio value for the target pool.
145298func (c *TargetPoolsSetBackupCall) FailoverRatio(failoverRatio float64) *TargetPoolsSetBackupCall {
145299	c.urlParams_.Set("failoverRatio", fmt.Sprint(failoverRatio))
145300	return c
145301}
145302
145303// RequestId sets the optional parameter "requestId": An optional
145304// request ID to identify requests. Specify a unique request ID so that
145305// if you must retry your request, the server will know to ignore the
145306// request if it has already been completed.
145307//
145308// For example, consider a situation where you make an initial request
145309// and the request times out. If you make the request again with the
145310// same request ID, the server can check if original operation with the
145311// same request ID was received, and if so, will ignore the second
145312// request. This prevents clients from accidentally creating duplicate
145313// commitments.
145314//
145315// The request ID must be a valid UUID with the exception that zero UUID
145316// is not supported (00000000-0000-0000-0000-000000000000).
145317func (c *TargetPoolsSetBackupCall) RequestId(requestId string) *TargetPoolsSetBackupCall {
145318	c.urlParams_.Set("requestId", requestId)
145319	return c
145320}
145321
145322// Fields allows partial responses to be retrieved. See
145323// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145324// for more information.
145325func (c *TargetPoolsSetBackupCall) Fields(s ...googleapi.Field) *TargetPoolsSetBackupCall {
145326	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145327	return c
145328}
145329
145330// Context sets the context to be used in this call's Do method. Any
145331// pending HTTP request will be aborted if the provided context is
145332// canceled.
145333func (c *TargetPoolsSetBackupCall) Context(ctx context.Context) *TargetPoolsSetBackupCall {
145334	c.ctx_ = ctx
145335	return c
145336}
145337
145338// Header returns an http.Header that can be modified by the caller to
145339// add HTTP headers to the request.
145340func (c *TargetPoolsSetBackupCall) Header() http.Header {
145341	if c.header_ == nil {
145342		c.header_ = make(http.Header)
145343	}
145344	return c.header_
145345}
145346
145347func (c *TargetPoolsSetBackupCall) doRequest(alt string) (*http.Response, error) {
145348	reqHeaders := make(http.Header)
145349	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145350	for k, v := range c.header_ {
145351		reqHeaders[k] = v
145352	}
145353	reqHeaders.Set("User-Agent", c.s.userAgent())
145354	var body io.Reader = nil
145355	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetreference)
145356	if err != nil {
145357		return nil, err
145358	}
145359	reqHeaders.Set("Content-Type", "application/json")
145360	c.urlParams_.Set("alt", alt)
145361	c.urlParams_.Set("prettyPrint", "false")
145362	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{targetPool}/setBackup")
145363	urls += "?" + c.urlParams_.Encode()
145364	req, err := http.NewRequest("POST", urls, body)
145365	if err != nil {
145366		return nil, err
145367	}
145368	req.Header = reqHeaders
145369	googleapi.Expand(req.URL, map[string]string{
145370		"project":    c.project,
145371		"region":     c.region,
145372		"targetPool": c.targetPool,
145373	})
145374	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145375}
145376
145377// Do executes the "compute.targetPools.setBackup" call.
145378// Exactly one of *Operation or error will be non-nil. Any non-2xx
145379// status code is an error. Response headers are in either
145380// *Operation.ServerResponse.Header or (if a response was returned at
145381// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145382// to check whether the returned error was because
145383// http.StatusNotModified was returned.
145384func (c *TargetPoolsSetBackupCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145385	gensupport.SetOptions(c.urlParams_, opts...)
145386	res, err := c.doRequest("json")
145387	if res != nil && res.StatusCode == http.StatusNotModified {
145388		if res.Body != nil {
145389			res.Body.Close()
145390		}
145391		return nil, &googleapi.Error{
145392			Code:   res.StatusCode,
145393			Header: res.Header,
145394		}
145395	}
145396	if err != nil {
145397		return nil, err
145398	}
145399	defer googleapi.CloseBody(res)
145400	if err := googleapi.CheckResponse(res); err != nil {
145401		return nil, err
145402	}
145403	ret := &Operation{
145404		ServerResponse: googleapi.ServerResponse{
145405			Header:         res.Header,
145406			HTTPStatusCode: res.StatusCode,
145407		},
145408	}
145409	target := &ret
145410	if err := gensupport.DecodeResponse(target, res); err != nil {
145411		return nil, err
145412	}
145413	return ret, nil
145414	// {
145415	//   "description": "Changes a backup target pool's configurations.",
145416	//   "httpMethod": "POST",
145417	//   "id": "compute.targetPools.setBackup",
145418	//   "parameterOrder": [
145419	//     "project",
145420	//     "region",
145421	//     "targetPool"
145422	//   ],
145423	//   "parameters": {
145424	//     "failoverRatio": {
145425	//       "description": "New failoverRatio value for the target pool.",
145426	//       "format": "float",
145427	//       "location": "query",
145428	//       "type": "number"
145429	//     },
145430	//     "project": {
145431	//       "description": "Project ID for this request.",
145432	//       "location": "path",
145433	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145434	//       "required": true,
145435	//       "type": "string"
145436	//     },
145437	//     "region": {
145438	//       "description": "Name of the region scoping this request.",
145439	//       "location": "path",
145440	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145441	//       "required": true,
145442	//       "type": "string"
145443	//     },
145444	//     "requestId": {
145445	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145446	//       "location": "query",
145447	//       "type": "string"
145448	//     },
145449	//     "targetPool": {
145450	//       "description": "Name of the TargetPool resource to set a backup pool for.",
145451	//       "location": "path",
145452	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145453	//       "required": true,
145454	//       "type": "string"
145455	//     }
145456	//   },
145457	//   "path": "{project}/regions/{region}/targetPools/{targetPool}/setBackup",
145458	//   "request": {
145459	//     "$ref": "TargetReference"
145460	//   },
145461	//   "response": {
145462	//     "$ref": "Operation"
145463	//   },
145464	//   "scopes": [
145465	//     "https://www.googleapis.com/auth/cloud-platform",
145466	//     "https://www.googleapis.com/auth/compute"
145467	//   ]
145468	// }
145469
145470}
145471
145472// method id "compute.targetPools.testIamPermissions":
145473
145474type TargetPoolsTestIamPermissionsCall struct {
145475	s                      *Service
145476	project                string
145477	region                 string
145478	resource               string
145479	testpermissionsrequest *TestPermissionsRequest
145480	urlParams_             gensupport.URLParams
145481	ctx_                   context.Context
145482	header_                http.Header
145483}
145484
145485// TestIamPermissions: Returns permissions that a caller has on the
145486// specified resource.
145487func (r *TargetPoolsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetPoolsTestIamPermissionsCall {
145488	c := &TargetPoolsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145489	c.project = project
145490	c.region = region
145491	c.resource = resource
145492	c.testpermissionsrequest = testpermissionsrequest
145493	return c
145494}
145495
145496// Fields allows partial responses to be retrieved. See
145497// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145498// for more information.
145499func (c *TargetPoolsTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetPoolsTestIamPermissionsCall {
145500	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145501	return c
145502}
145503
145504// Context sets the context to be used in this call's Do method. Any
145505// pending HTTP request will be aborted if the provided context is
145506// canceled.
145507func (c *TargetPoolsTestIamPermissionsCall) Context(ctx context.Context) *TargetPoolsTestIamPermissionsCall {
145508	c.ctx_ = ctx
145509	return c
145510}
145511
145512// Header returns an http.Header that can be modified by the caller to
145513// add HTTP headers to the request.
145514func (c *TargetPoolsTestIamPermissionsCall) Header() http.Header {
145515	if c.header_ == nil {
145516		c.header_ = make(http.Header)
145517	}
145518	return c.header_
145519}
145520
145521func (c *TargetPoolsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
145522	reqHeaders := make(http.Header)
145523	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145524	for k, v := range c.header_ {
145525		reqHeaders[k] = v
145526	}
145527	reqHeaders.Set("User-Agent", c.s.userAgent())
145528	var body io.Reader = nil
145529	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
145530	if err != nil {
145531		return nil, err
145532	}
145533	reqHeaders.Set("Content-Type", "application/json")
145534	c.urlParams_.Set("alt", alt)
145535	c.urlParams_.Set("prettyPrint", "false")
145536	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetPools/{resource}/testIamPermissions")
145537	urls += "?" + c.urlParams_.Encode()
145538	req, err := http.NewRequest("POST", urls, body)
145539	if err != nil {
145540		return nil, err
145541	}
145542	req.Header = reqHeaders
145543	googleapi.Expand(req.URL, map[string]string{
145544		"project":  c.project,
145545		"region":   c.region,
145546		"resource": c.resource,
145547	})
145548	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145549}
145550
145551// Do executes the "compute.targetPools.testIamPermissions" call.
145552// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
145553// non-2xx status code is an error. Response headers are in either
145554// *TestPermissionsResponse.ServerResponse.Header or (if a response was
145555// returned at all) in error.(*googleapi.Error).Header. Use
145556// googleapi.IsNotModified to check whether the returned error was
145557// because http.StatusNotModified was returned.
145558func (c *TargetPoolsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
145559	gensupport.SetOptions(c.urlParams_, opts...)
145560	res, err := c.doRequest("json")
145561	if res != nil && res.StatusCode == http.StatusNotModified {
145562		if res.Body != nil {
145563			res.Body.Close()
145564		}
145565		return nil, &googleapi.Error{
145566			Code:   res.StatusCode,
145567			Header: res.Header,
145568		}
145569	}
145570	if err != nil {
145571		return nil, err
145572	}
145573	defer googleapi.CloseBody(res)
145574	if err := googleapi.CheckResponse(res); err != nil {
145575		return nil, err
145576	}
145577	ret := &TestPermissionsResponse{
145578		ServerResponse: googleapi.ServerResponse{
145579			Header:         res.Header,
145580			HTTPStatusCode: res.StatusCode,
145581		},
145582	}
145583	target := &ret
145584	if err := gensupport.DecodeResponse(target, res); err != nil {
145585		return nil, err
145586	}
145587	return ret, nil
145588	// {
145589	//   "description": "Returns permissions that a caller has on the specified resource.",
145590	//   "httpMethod": "POST",
145591	//   "id": "compute.targetPools.testIamPermissions",
145592	//   "parameterOrder": [
145593	//     "project",
145594	//     "region",
145595	//     "resource"
145596	//   ],
145597	//   "parameters": {
145598	//     "project": {
145599	//       "description": "Project ID for this request.",
145600	//       "location": "path",
145601	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145602	//       "required": true,
145603	//       "type": "string"
145604	//     },
145605	//     "region": {
145606	//       "description": "The name of the region for this request.",
145607	//       "location": "path",
145608	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
145609	//       "required": true,
145610	//       "type": "string"
145611	//     },
145612	//     "resource": {
145613	//       "description": "Name or id of the resource for this request.",
145614	//       "location": "path",
145615	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145616	//       "required": true,
145617	//       "type": "string"
145618	//     }
145619	//   },
145620	//   "path": "{project}/regions/{region}/targetPools/{resource}/testIamPermissions",
145621	//   "request": {
145622	//     "$ref": "TestPermissionsRequest"
145623	//   },
145624	//   "response": {
145625	//     "$ref": "TestPermissionsResponse"
145626	//   },
145627	//   "scopes": [
145628	//     "https://www.googleapis.com/auth/cloud-platform",
145629	//     "https://www.googleapis.com/auth/compute",
145630	//     "https://www.googleapis.com/auth/compute.readonly"
145631	//   ]
145632	// }
145633
145634}
145635
145636// method id "compute.targetSslProxies.delete":
145637
145638type TargetSslProxiesDeleteCall struct {
145639	s              *Service
145640	project        string
145641	targetSslProxy string
145642	urlParams_     gensupport.URLParams
145643	ctx_           context.Context
145644	header_        http.Header
145645}
145646
145647// Delete: Deletes the specified TargetSslProxy resource.
145648func (r *TargetSslProxiesService) Delete(project string, targetSslProxy string) *TargetSslProxiesDeleteCall {
145649	c := &TargetSslProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145650	c.project = project
145651	c.targetSslProxy = targetSslProxy
145652	return c
145653}
145654
145655// RequestId sets the optional parameter "requestId": An optional
145656// request ID to identify requests. Specify a unique request ID so that
145657// if you must retry your request, the server will know to ignore the
145658// request if it has already been completed.
145659//
145660// For example, consider a situation where you make an initial request
145661// and the request times out. If you make the request again with the
145662// same request ID, the server can check if original operation with the
145663// same request ID was received, and if so, will ignore the second
145664// request. This prevents clients from accidentally creating duplicate
145665// commitments.
145666//
145667// The request ID must be a valid UUID with the exception that zero UUID
145668// is not supported (00000000-0000-0000-0000-000000000000).
145669func (c *TargetSslProxiesDeleteCall) RequestId(requestId string) *TargetSslProxiesDeleteCall {
145670	c.urlParams_.Set("requestId", requestId)
145671	return c
145672}
145673
145674// Fields allows partial responses to be retrieved. See
145675// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145676// for more information.
145677func (c *TargetSslProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetSslProxiesDeleteCall {
145678	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145679	return c
145680}
145681
145682// Context sets the context to be used in this call's Do method. Any
145683// pending HTTP request will be aborted if the provided context is
145684// canceled.
145685func (c *TargetSslProxiesDeleteCall) Context(ctx context.Context) *TargetSslProxiesDeleteCall {
145686	c.ctx_ = ctx
145687	return c
145688}
145689
145690// Header returns an http.Header that can be modified by the caller to
145691// add HTTP headers to the request.
145692func (c *TargetSslProxiesDeleteCall) Header() http.Header {
145693	if c.header_ == nil {
145694		c.header_ = make(http.Header)
145695	}
145696	return c.header_
145697}
145698
145699func (c *TargetSslProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
145700	reqHeaders := make(http.Header)
145701	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145702	for k, v := range c.header_ {
145703		reqHeaders[k] = v
145704	}
145705	reqHeaders.Set("User-Agent", c.s.userAgent())
145706	var body io.Reader = nil
145707	c.urlParams_.Set("alt", alt)
145708	c.urlParams_.Set("prettyPrint", "false")
145709	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
145710	urls += "?" + c.urlParams_.Encode()
145711	req, err := http.NewRequest("DELETE", urls, body)
145712	if err != nil {
145713		return nil, err
145714	}
145715	req.Header = reqHeaders
145716	googleapi.Expand(req.URL, map[string]string{
145717		"project":        c.project,
145718		"targetSslProxy": c.targetSslProxy,
145719	})
145720	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145721}
145722
145723// Do executes the "compute.targetSslProxies.delete" call.
145724// Exactly one of *Operation or error will be non-nil. Any non-2xx
145725// status code is an error. Response headers are in either
145726// *Operation.ServerResponse.Header or (if a response was returned at
145727// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
145728// to check whether the returned error was because
145729// http.StatusNotModified was returned.
145730func (c *TargetSslProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
145731	gensupport.SetOptions(c.urlParams_, opts...)
145732	res, err := c.doRequest("json")
145733	if res != nil && res.StatusCode == http.StatusNotModified {
145734		if res.Body != nil {
145735			res.Body.Close()
145736		}
145737		return nil, &googleapi.Error{
145738			Code:   res.StatusCode,
145739			Header: res.Header,
145740		}
145741	}
145742	if err != nil {
145743		return nil, err
145744	}
145745	defer googleapi.CloseBody(res)
145746	if err := googleapi.CheckResponse(res); err != nil {
145747		return nil, err
145748	}
145749	ret := &Operation{
145750		ServerResponse: googleapi.ServerResponse{
145751			Header:         res.Header,
145752			HTTPStatusCode: res.StatusCode,
145753		},
145754	}
145755	target := &ret
145756	if err := gensupport.DecodeResponse(target, res); err != nil {
145757		return nil, err
145758	}
145759	return ret, nil
145760	// {
145761	//   "description": "Deletes the specified TargetSslProxy resource.",
145762	//   "httpMethod": "DELETE",
145763	//   "id": "compute.targetSslProxies.delete",
145764	//   "parameterOrder": [
145765	//     "project",
145766	//     "targetSslProxy"
145767	//   ],
145768	//   "parameters": {
145769	//     "project": {
145770	//       "description": "Project ID for this request.",
145771	//       "location": "path",
145772	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145773	//       "required": true,
145774	//       "type": "string"
145775	//     },
145776	//     "requestId": {
145777	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
145778	//       "location": "query",
145779	//       "type": "string"
145780	//     },
145781	//     "targetSslProxy": {
145782	//       "description": "Name of the TargetSslProxy resource to delete.",
145783	//       "location": "path",
145784	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145785	//       "required": true,
145786	//       "type": "string"
145787	//     }
145788	//   },
145789	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
145790	//   "response": {
145791	//     "$ref": "Operation"
145792	//   },
145793	//   "scopes": [
145794	//     "https://www.googleapis.com/auth/cloud-platform",
145795	//     "https://www.googleapis.com/auth/compute"
145796	//   ]
145797	// }
145798
145799}
145800
145801// method id "compute.targetSslProxies.get":
145802
145803type TargetSslProxiesGetCall struct {
145804	s              *Service
145805	project        string
145806	targetSslProxy string
145807	urlParams_     gensupport.URLParams
145808	ifNoneMatch_   string
145809	ctx_           context.Context
145810	header_        http.Header
145811}
145812
145813// Get: Returns the specified TargetSslProxy resource. Gets a list of
145814// available target SSL proxies by making a list() request.
145815func (r *TargetSslProxiesService) Get(project string, targetSslProxy string) *TargetSslProxiesGetCall {
145816	c := &TargetSslProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145817	c.project = project
145818	c.targetSslProxy = targetSslProxy
145819	return c
145820}
145821
145822// Fields allows partial responses to be retrieved. See
145823// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145824// for more information.
145825func (c *TargetSslProxiesGetCall) Fields(s ...googleapi.Field) *TargetSslProxiesGetCall {
145826	c.urlParams_.Set("fields", googleapi.CombineFields(s))
145827	return c
145828}
145829
145830// IfNoneMatch sets the optional parameter which makes the operation
145831// fail if the object's ETag matches the given value. This is useful for
145832// getting updates only after the object has changed since the last
145833// request. Use googleapi.IsNotModified to check whether the response
145834// error from Do is the result of In-None-Match.
145835func (c *TargetSslProxiesGetCall) IfNoneMatch(entityTag string) *TargetSslProxiesGetCall {
145836	c.ifNoneMatch_ = entityTag
145837	return c
145838}
145839
145840// Context sets the context to be used in this call's Do method. Any
145841// pending HTTP request will be aborted if the provided context is
145842// canceled.
145843func (c *TargetSslProxiesGetCall) Context(ctx context.Context) *TargetSslProxiesGetCall {
145844	c.ctx_ = ctx
145845	return c
145846}
145847
145848// Header returns an http.Header that can be modified by the caller to
145849// add HTTP headers to the request.
145850func (c *TargetSslProxiesGetCall) Header() http.Header {
145851	if c.header_ == nil {
145852		c.header_ = make(http.Header)
145853	}
145854	return c.header_
145855}
145856
145857func (c *TargetSslProxiesGetCall) doRequest(alt string) (*http.Response, error) {
145858	reqHeaders := make(http.Header)
145859	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
145860	for k, v := range c.header_ {
145861		reqHeaders[k] = v
145862	}
145863	reqHeaders.Set("User-Agent", c.s.userAgent())
145864	if c.ifNoneMatch_ != "" {
145865		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
145866	}
145867	var body io.Reader = nil
145868	c.urlParams_.Set("alt", alt)
145869	c.urlParams_.Set("prettyPrint", "false")
145870	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}")
145871	urls += "?" + c.urlParams_.Encode()
145872	req, err := http.NewRequest("GET", urls, body)
145873	if err != nil {
145874		return nil, err
145875	}
145876	req.Header = reqHeaders
145877	googleapi.Expand(req.URL, map[string]string{
145878		"project":        c.project,
145879		"targetSslProxy": c.targetSslProxy,
145880	})
145881	return gensupport.SendRequest(c.ctx_, c.s.client, req)
145882}
145883
145884// Do executes the "compute.targetSslProxies.get" call.
145885// Exactly one of *TargetSslProxy or error will be non-nil. Any non-2xx
145886// status code is an error. Response headers are in either
145887// *TargetSslProxy.ServerResponse.Header or (if a response was returned
145888// at all) in error.(*googleapi.Error).Header. Use
145889// googleapi.IsNotModified to check whether the returned error was
145890// because http.StatusNotModified was returned.
145891func (c *TargetSslProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetSslProxy, error) {
145892	gensupport.SetOptions(c.urlParams_, opts...)
145893	res, err := c.doRequest("json")
145894	if res != nil && res.StatusCode == http.StatusNotModified {
145895		if res.Body != nil {
145896			res.Body.Close()
145897		}
145898		return nil, &googleapi.Error{
145899			Code:   res.StatusCode,
145900			Header: res.Header,
145901		}
145902	}
145903	if err != nil {
145904		return nil, err
145905	}
145906	defer googleapi.CloseBody(res)
145907	if err := googleapi.CheckResponse(res); err != nil {
145908		return nil, err
145909	}
145910	ret := &TargetSslProxy{
145911		ServerResponse: googleapi.ServerResponse{
145912			Header:         res.Header,
145913			HTTPStatusCode: res.StatusCode,
145914		},
145915	}
145916	target := &ret
145917	if err := gensupport.DecodeResponse(target, res); err != nil {
145918		return nil, err
145919	}
145920	return ret, nil
145921	// {
145922	//   "description": "Returns the specified TargetSslProxy resource. Gets a list of available target SSL proxies by making a list() request.",
145923	//   "httpMethod": "GET",
145924	//   "id": "compute.targetSslProxies.get",
145925	//   "parameterOrder": [
145926	//     "project",
145927	//     "targetSslProxy"
145928	//   ],
145929	//   "parameters": {
145930	//     "project": {
145931	//       "description": "Project ID for this request.",
145932	//       "location": "path",
145933	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
145934	//       "required": true,
145935	//       "type": "string"
145936	//     },
145937	//     "targetSslProxy": {
145938	//       "description": "Name of the TargetSslProxy resource to return.",
145939	//       "location": "path",
145940	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
145941	//       "required": true,
145942	//       "type": "string"
145943	//     }
145944	//   },
145945	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}",
145946	//   "response": {
145947	//     "$ref": "TargetSslProxy"
145948	//   },
145949	//   "scopes": [
145950	//     "https://www.googleapis.com/auth/cloud-platform",
145951	//     "https://www.googleapis.com/auth/compute",
145952	//     "https://www.googleapis.com/auth/compute.readonly"
145953	//   ]
145954	// }
145955
145956}
145957
145958// method id "compute.targetSslProxies.insert":
145959
145960type TargetSslProxiesInsertCall struct {
145961	s              *Service
145962	project        string
145963	targetsslproxy *TargetSslProxy
145964	urlParams_     gensupport.URLParams
145965	ctx_           context.Context
145966	header_        http.Header
145967}
145968
145969// Insert: Creates a TargetSslProxy resource in the specified project
145970// using the data included in the request.
145971func (r *TargetSslProxiesService) Insert(project string, targetsslproxy *TargetSslProxy) *TargetSslProxiesInsertCall {
145972	c := &TargetSslProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
145973	c.project = project
145974	c.targetsslproxy = targetsslproxy
145975	return c
145976}
145977
145978// RequestId sets the optional parameter "requestId": An optional
145979// request ID to identify requests. Specify a unique request ID so that
145980// if you must retry your request, the server will know to ignore the
145981// request if it has already been completed.
145982//
145983// For example, consider a situation where you make an initial request
145984// and the request times out. If you make the request again with the
145985// same request ID, the server can check if original operation with the
145986// same request ID was received, and if so, will ignore the second
145987// request. This prevents clients from accidentally creating duplicate
145988// commitments.
145989//
145990// The request ID must be a valid UUID with the exception that zero UUID
145991// is not supported (00000000-0000-0000-0000-000000000000).
145992func (c *TargetSslProxiesInsertCall) RequestId(requestId string) *TargetSslProxiesInsertCall {
145993	c.urlParams_.Set("requestId", requestId)
145994	return c
145995}
145996
145997// Fields allows partial responses to be retrieved. See
145998// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
145999// for more information.
146000func (c *TargetSslProxiesInsertCall) Fields(s ...googleapi.Field) *TargetSslProxiesInsertCall {
146001	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146002	return c
146003}
146004
146005// Context sets the context to be used in this call's Do method. Any
146006// pending HTTP request will be aborted if the provided context is
146007// canceled.
146008func (c *TargetSslProxiesInsertCall) Context(ctx context.Context) *TargetSslProxiesInsertCall {
146009	c.ctx_ = ctx
146010	return c
146011}
146012
146013// Header returns an http.Header that can be modified by the caller to
146014// add HTTP headers to the request.
146015func (c *TargetSslProxiesInsertCall) Header() http.Header {
146016	if c.header_ == nil {
146017		c.header_ = make(http.Header)
146018	}
146019	return c.header_
146020}
146021
146022func (c *TargetSslProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
146023	reqHeaders := make(http.Header)
146024	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146025	for k, v := range c.header_ {
146026		reqHeaders[k] = v
146027	}
146028	reqHeaders.Set("User-Agent", c.s.userAgent())
146029	var body io.Reader = nil
146030	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxy)
146031	if err != nil {
146032		return nil, err
146033	}
146034	reqHeaders.Set("Content-Type", "application/json")
146035	c.urlParams_.Set("alt", alt)
146036	c.urlParams_.Set("prettyPrint", "false")
146037	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
146038	urls += "?" + c.urlParams_.Encode()
146039	req, err := http.NewRequest("POST", urls, body)
146040	if err != nil {
146041		return nil, err
146042	}
146043	req.Header = reqHeaders
146044	googleapi.Expand(req.URL, map[string]string{
146045		"project": c.project,
146046	})
146047	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146048}
146049
146050// Do executes the "compute.targetSslProxies.insert" call.
146051// Exactly one of *Operation or error will be non-nil. Any non-2xx
146052// status code is an error. Response headers are in either
146053// *Operation.ServerResponse.Header or (if a response was returned at
146054// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146055// to check whether the returned error was because
146056// http.StatusNotModified was returned.
146057func (c *TargetSslProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146058	gensupport.SetOptions(c.urlParams_, opts...)
146059	res, err := c.doRequest("json")
146060	if res != nil && res.StatusCode == http.StatusNotModified {
146061		if res.Body != nil {
146062			res.Body.Close()
146063		}
146064		return nil, &googleapi.Error{
146065			Code:   res.StatusCode,
146066			Header: res.Header,
146067		}
146068	}
146069	if err != nil {
146070		return nil, err
146071	}
146072	defer googleapi.CloseBody(res)
146073	if err := googleapi.CheckResponse(res); err != nil {
146074		return nil, err
146075	}
146076	ret := &Operation{
146077		ServerResponse: googleapi.ServerResponse{
146078			Header:         res.Header,
146079			HTTPStatusCode: res.StatusCode,
146080		},
146081	}
146082	target := &ret
146083	if err := gensupport.DecodeResponse(target, res); err != nil {
146084		return nil, err
146085	}
146086	return ret, nil
146087	// {
146088	//   "description": "Creates a TargetSslProxy resource in the specified project using the data included in the request.",
146089	//   "httpMethod": "POST",
146090	//   "id": "compute.targetSslProxies.insert",
146091	//   "parameterOrder": [
146092	//     "project"
146093	//   ],
146094	//   "parameters": {
146095	//     "project": {
146096	//       "description": "Project ID for this request.",
146097	//       "location": "path",
146098	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146099	//       "required": true,
146100	//       "type": "string"
146101	//     },
146102	//     "requestId": {
146103	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146104	//       "location": "query",
146105	//       "type": "string"
146106	//     }
146107	//   },
146108	//   "path": "{project}/global/targetSslProxies",
146109	//   "request": {
146110	//     "$ref": "TargetSslProxy"
146111	//   },
146112	//   "response": {
146113	//     "$ref": "Operation"
146114	//   },
146115	//   "scopes": [
146116	//     "https://www.googleapis.com/auth/cloud-platform",
146117	//     "https://www.googleapis.com/auth/compute"
146118	//   ]
146119	// }
146120
146121}
146122
146123// method id "compute.targetSslProxies.list":
146124
146125type TargetSslProxiesListCall struct {
146126	s            *Service
146127	project      string
146128	urlParams_   gensupport.URLParams
146129	ifNoneMatch_ string
146130	ctx_         context.Context
146131	header_      http.Header
146132}
146133
146134// List: Retrieves the list of TargetSslProxy resources available to the
146135// specified project.
146136func (r *TargetSslProxiesService) List(project string) *TargetSslProxiesListCall {
146137	c := &TargetSslProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146138	c.project = project
146139	return c
146140}
146141
146142// Filter sets the optional parameter "filter": A filter expression that
146143// filters resources listed in the response. The expression must specify
146144// the field name, a comparison operator, and the value that you want to
146145// use for filtering. The value must be a string, a number, or a
146146// boolean. The comparison operator must be either =, !=, >, or <.
146147//
146148// For example, if you are filtering Compute Engine instances, you can
146149// exclude instances named example-instance by specifying name !=
146150// example-instance.
146151//
146152// You can also filter nested fields. For example, you could specify
146153// scheduling.automaticRestart = false to include instances only if they
146154// are not scheduled for automatic restarts. You can use filtering on
146155// nested fields to filter based on resource labels.
146156//
146157// To filter on multiple expressions, provide each separate expression
146158// within parentheses. For example, (scheduling.automaticRestart = true)
146159// (cpuPlatform = "Intel Skylake"). By default, each expression is an
146160// AND expression. However, you can include AND and OR expressions
146161// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
146162// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
146163// true).
146164func (c *TargetSslProxiesListCall) Filter(filter string) *TargetSslProxiesListCall {
146165	c.urlParams_.Set("filter", filter)
146166	return c
146167}
146168
146169// MaxResults sets the optional parameter "maxResults": The maximum
146170// number of results per page that should be returned. If the number of
146171// available results is larger than maxResults, Compute Engine returns a
146172// nextPageToken that can be used to get the next page of results in
146173// subsequent list requests. Acceptable values are 0 to 500, inclusive.
146174// (Default: 500)
146175func (c *TargetSslProxiesListCall) MaxResults(maxResults int64) *TargetSslProxiesListCall {
146176	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
146177	return c
146178}
146179
146180// OrderBy sets the optional parameter "orderBy": Sorts list results by
146181// a certain order. By default, results are returned in alphanumerical
146182// order based on the resource name.
146183//
146184// You can also sort results in descending order based on the creation
146185// timestamp using orderBy="creationTimestamp desc". This sorts results
146186// based on the creationTimestamp field in reverse chronological order
146187// (newest result first). Use this to sort resources like operations so
146188// that the newest operation is returned first.
146189//
146190// Currently, only sorting by name or creationTimestamp desc is
146191// supported.
146192func (c *TargetSslProxiesListCall) OrderBy(orderBy string) *TargetSslProxiesListCall {
146193	c.urlParams_.Set("orderBy", orderBy)
146194	return c
146195}
146196
146197// PageToken sets the optional parameter "pageToken": Specifies a page
146198// token to use. Set pageToken to the nextPageToken returned by a
146199// previous list request to get the next page of results.
146200func (c *TargetSslProxiesListCall) PageToken(pageToken string) *TargetSslProxiesListCall {
146201	c.urlParams_.Set("pageToken", pageToken)
146202	return c
146203}
146204
146205// Fields allows partial responses to be retrieved. See
146206// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146207// for more information.
146208func (c *TargetSslProxiesListCall) Fields(s ...googleapi.Field) *TargetSslProxiesListCall {
146209	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146210	return c
146211}
146212
146213// IfNoneMatch sets the optional parameter which makes the operation
146214// fail if the object's ETag matches the given value. This is useful for
146215// getting updates only after the object has changed since the last
146216// request. Use googleapi.IsNotModified to check whether the response
146217// error from Do is the result of In-None-Match.
146218func (c *TargetSslProxiesListCall) IfNoneMatch(entityTag string) *TargetSslProxiesListCall {
146219	c.ifNoneMatch_ = entityTag
146220	return c
146221}
146222
146223// Context sets the context to be used in this call's Do method. Any
146224// pending HTTP request will be aborted if the provided context is
146225// canceled.
146226func (c *TargetSslProxiesListCall) Context(ctx context.Context) *TargetSslProxiesListCall {
146227	c.ctx_ = ctx
146228	return c
146229}
146230
146231// Header returns an http.Header that can be modified by the caller to
146232// add HTTP headers to the request.
146233func (c *TargetSslProxiesListCall) Header() http.Header {
146234	if c.header_ == nil {
146235		c.header_ = make(http.Header)
146236	}
146237	return c.header_
146238}
146239
146240func (c *TargetSslProxiesListCall) doRequest(alt string) (*http.Response, error) {
146241	reqHeaders := make(http.Header)
146242	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146243	for k, v := range c.header_ {
146244		reqHeaders[k] = v
146245	}
146246	reqHeaders.Set("User-Agent", c.s.userAgent())
146247	if c.ifNoneMatch_ != "" {
146248		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
146249	}
146250	var body io.Reader = nil
146251	c.urlParams_.Set("alt", alt)
146252	c.urlParams_.Set("prettyPrint", "false")
146253	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies")
146254	urls += "?" + c.urlParams_.Encode()
146255	req, err := http.NewRequest("GET", urls, body)
146256	if err != nil {
146257		return nil, err
146258	}
146259	req.Header = reqHeaders
146260	googleapi.Expand(req.URL, map[string]string{
146261		"project": c.project,
146262	})
146263	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146264}
146265
146266// Do executes the "compute.targetSslProxies.list" call.
146267// Exactly one of *TargetSslProxyList or error will be non-nil. Any
146268// non-2xx status code is an error. Response headers are in either
146269// *TargetSslProxyList.ServerResponse.Header or (if a response was
146270// returned at all) in error.(*googleapi.Error).Header. Use
146271// googleapi.IsNotModified to check whether the returned error was
146272// because http.StatusNotModified was returned.
146273func (c *TargetSslProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetSslProxyList, error) {
146274	gensupport.SetOptions(c.urlParams_, opts...)
146275	res, err := c.doRequest("json")
146276	if res != nil && res.StatusCode == http.StatusNotModified {
146277		if res.Body != nil {
146278			res.Body.Close()
146279		}
146280		return nil, &googleapi.Error{
146281			Code:   res.StatusCode,
146282			Header: res.Header,
146283		}
146284	}
146285	if err != nil {
146286		return nil, err
146287	}
146288	defer googleapi.CloseBody(res)
146289	if err := googleapi.CheckResponse(res); err != nil {
146290		return nil, err
146291	}
146292	ret := &TargetSslProxyList{
146293		ServerResponse: googleapi.ServerResponse{
146294			Header:         res.Header,
146295			HTTPStatusCode: res.StatusCode,
146296		},
146297	}
146298	target := &ret
146299	if err := gensupport.DecodeResponse(target, res); err != nil {
146300		return nil, err
146301	}
146302	return ret, nil
146303	// {
146304	//   "description": "Retrieves the list of TargetSslProxy resources available to the specified project.",
146305	//   "httpMethod": "GET",
146306	//   "id": "compute.targetSslProxies.list",
146307	//   "parameterOrder": [
146308	//     "project"
146309	//   ],
146310	//   "parameters": {
146311	//     "filter": {
146312	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
146313	//       "location": "query",
146314	//       "type": "string"
146315	//     },
146316	//     "maxResults": {
146317	//       "default": "500",
146318	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
146319	//       "format": "uint32",
146320	//       "location": "query",
146321	//       "minimum": "0",
146322	//       "type": "integer"
146323	//     },
146324	//     "orderBy": {
146325	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
146326	//       "location": "query",
146327	//       "type": "string"
146328	//     },
146329	//     "pageToken": {
146330	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
146331	//       "location": "query",
146332	//       "type": "string"
146333	//     },
146334	//     "project": {
146335	//       "description": "Project ID for this request.",
146336	//       "location": "path",
146337	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146338	//       "required": true,
146339	//       "type": "string"
146340	//     }
146341	//   },
146342	//   "path": "{project}/global/targetSslProxies",
146343	//   "response": {
146344	//     "$ref": "TargetSslProxyList"
146345	//   },
146346	//   "scopes": [
146347	//     "https://www.googleapis.com/auth/cloud-platform",
146348	//     "https://www.googleapis.com/auth/compute",
146349	//     "https://www.googleapis.com/auth/compute.readonly"
146350	//   ]
146351	// }
146352
146353}
146354
146355// Pages invokes f for each page of results.
146356// A non-nil error returned from f will halt the iteration.
146357// The provided context supersedes any context provided to the Context method.
146358func (c *TargetSslProxiesListCall) Pages(ctx context.Context, f func(*TargetSslProxyList) error) error {
146359	c.ctx_ = ctx
146360	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
146361	for {
146362		x, err := c.Do()
146363		if err != nil {
146364			return err
146365		}
146366		if err := f(x); err != nil {
146367			return err
146368		}
146369		if x.NextPageToken == "" {
146370			return nil
146371		}
146372		c.PageToken(x.NextPageToken)
146373	}
146374}
146375
146376// method id "compute.targetSslProxies.setBackendService":
146377
146378type TargetSslProxiesSetBackendServiceCall struct {
146379	s                                        *Service
146380	project                                  string
146381	targetSslProxy                           string
146382	targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest
146383	urlParams_                               gensupport.URLParams
146384	ctx_                                     context.Context
146385	header_                                  http.Header
146386}
146387
146388// SetBackendService: Changes the BackendService for TargetSslProxy.
146389func (r *TargetSslProxiesService) SetBackendService(project string, targetSslProxy string, targetsslproxiessetbackendservicerequest *TargetSslProxiesSetBackendServiceRequest) *TargetSslProxiesSetBackendServiceCall {
146390	c := &TargetSslProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146391	c.project = project
146392	c.targetSslProxy = targetSslProxy
146393	c.targetsslproxiessetbackendservicerequest = targetsslproxiessetbackendservicerequest
146394	return c
146395}
146396
146397// RequestId sets the optional parameter "requestId": An optional
146398// request ID to identify requests. Specify a unique request ID so that
146399// if you must retry your request, the server will know to ignore the
146400// request if it has already been completed.
146401//
146402// For example, consider a situation where you make an initial request
146403// and the request times out. If you make the request again with the
146404// same request ID, the server can check if original operation with the
146405// same request ID was received, and if so, will ignore the second
146406// request. This prevents clients from accidentally creating duplicate
146407// commitments.
146408//
146409// The request ID must be a valid UUID with the exception that zero UUID
146410// is not supported (00000000-0000-0000-0000-000000000000).
146411func (c *TargetSslProxiesSetBackendServiceCall) RequestId(requestId string) *TargetSslProxiesSetBackendServiceCall {
146412	c.urlParams_.Set("requestId", requestId)
146413	return c
146414}
146415
146416// Fields allows partial responses to be retrieved. See
146417// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146418// for more information.
146419func (c *TargetSslProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetBackendServiceCall {
146420	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146421	return c
146422}
146423
146424// Context sets the context to be used in this call's Do method. Any
146425// pending HTTP request will be aborted if the provided context is
146426// canceled.
146427func (c *TargetSslProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetSslProxiesSetBackendServiceCall {
146428	c.ctx_ = ctx
146429	return c
146430}
146431
146432// Header returns an http.Header that can be modified by the caller to
146433// add HTTP headers to the request.
146434func (c *TargetSslProxiesSetBackendServiceCall) Header() http.Header {
146435	if c.header_ == nil {
146436		c.header_ = make(http.Header)
146437	}
146438	return c.header_
146439}
146440
146441func (c *TargetSslProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
146442	reqHeaders := make(http.Header)
146443	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146444	for k, v := range c.header_ {
146445		reqHeaders[k] = v
146446	}
146447	reqHeaders.Set("User-Agent", c.s.userAgent())
146448	var body io.Reader = nil
146449	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetbackendservicerequest)
146450	if err != nil {
146451		return nil, err
146452	}
146453	reqHeaders.Set("Content-Type", "application/json")
146454	c.urlParams_.Set("alt", alt)
146455	c.urlParams_.Set("prettyPrint", "false")
146456	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService")
146457	urls += "?" + c.urlParams_.Encode()
146458	req, err := http.NewRequest("POST", urls, body)
146459	if err != nil {
146460		return nil, err
146461	}
146462	req.Header = reqHeaders
146463	googleapi.Expand(req.URL, map[string]string{
146464		"project":        c.project,
146465		"targetSslProxy": c.targetSslProxy,
146466	})
146467	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146468}
146469
146470// Do executes the "compute.targetSslProxies.setBackendService" call.
146471// Exactly one of *Operation or error will be non-nil. Any non-2xx
146472// status code is an error. Response headers are in either
146473// *Operation.ServerResponse.Header or (if a response was returned at
146474// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146475// to check whether the returned error was because
146476// http.StatusNotModified was returned.
146477func (c *TargetSslProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146478	gensupport.SetOptions(c.urlParams_, opts...)
146479	res, err := c.doRequest("json")
146480	if res != nil && res.StatusCode == http.StatusNotModified {
146481		if res.Body != nil {
146482			res.Body.Close()
146483		}
146484		return nil, &googleapi.Error{
146485			Code:   res.StatusCode,
146486			Header: res.Header,
146487		}
146488	}
146489	if err != nil {
146490		return nil, err
146491	}
146492	defer googleapi.CloseBody(res)
146493	if err := googleapi.CheckResponse(res); err != nil {
146494		return nil, err
146495	}
146496	ret := &Operation{
146497		ServerResponse: googleapi.ServerResponse{
146498			Header:         res.Header,
146499			HTTPStatusCode: res.StatusCode,
146500		},
146501	}
146502	target := &ret
146503	if err := gensupport.DecodeResponse(target, res); err != nil {
146504		return nil, err
146505	}
146506	return ret, nil
146507	// {
146508	//   "description": "Changes the BackendService for TargetSslProxy.",
146509	//   "httpMethod": "POST",
146510	//   "id": "compute.targetSslProxies.setBackendService",
146511	//   "parameterOrder": [
146512	//     "project",
146513	//     "targetSslProxy"
146514	//   ],
146515	//   "parameters": {
146516	//     "project": {
146517	//       "description": "Project ID for this request.",
146518	//       "location": "path",
146519	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146520	//       "required": true,
146521	//       "type": "string"
146522	//     },
146523	//     "requestId": {
146524	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146525	//       "location": "query",
146526	//       "type": "string"
146527	//     },
146528	//     "targetSslProxy": {
146529	//       "description": "Name of the TargetSslProxy resource whose BackendService resource is to be set.",
146530	//       "location": "path",
146531	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146532	//       "required": true,
146533	//       "type": "string"
146534	//     }
146535	//   },
146536	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setBackendService",
146537	//   "request": {
146538	//     "$ref": "TargetSslProxiesSetBackendServiceRequest"
146539	//   },
146540	//   "response": {
146541	//     "$ref": "Operation"
146542	//   },
146543	//   "scopes": [
146544	//     "https://www.googleapis.com/auth/cloud-platform",
146545	//     "https://www.googleapis.com/auth/compute"
146546	//   ]
146547	// }
146548
146549}
146550
146551// method id "compute.targetSslProxies.setProxyHeader":
146552
146553type TargetSslProxiesSetProxyHeaderCall struct {
146554	s                                     *Service
146555	project                               string
146556	targetSslProxy                        string
146557	targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest
146558	urlParams_                            gensupport.URLParams
146559	ctx_                                  context.Context
146560	header_                               http.Header
146561}
146562
146563// SetProxyHeader: Changes the ProxyHeaderType for TargetSslProxy.
146564func (r *TargetSslProxiesService) SetProxyHeader(project string, targetSslProxy string, targetsslproxiessetproxyheaderrequest *TargetSslProxiesSetProxyHeaderRequest) *TargetSslProxiesSetProxyHeaderCall {
146565	c := &TargetSslProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146566	c.project = project
146567	c.targetSslProxy = targetSslProxy
146568	c.targetsslproxiessetproxyheaderrequest = targetsslproxiessetproxyheaderrequest
146569	return c
146570}
146571
146572// RequestId sets the optional parameter "requestId": An optional
146573// request ID to identify requests. Specify a unique request ID so that
146574// if you must retry your request, the server will know to ignore the
146575// request if it has already been completed.
146576//
146577// For example, consider a situation where you make an initial request
146578// and the request times out. If you make the request again with the
146579// same request ID, the server can check if original operation with the
146580// same request ID was received, and if so, will ignore the second
146581// request. This prevents clients from accidentally creating duplicate
146582// commitments.
146583//
146584// The request ID must be a valid UUID with the exception that zero UUID
146585// is not supported (00000000-0000-0000-0000-000000000000).
146586func (c *TargetSslProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetSslProxiesSetProxyHeaderCall {
146587	c.urlParams_.Set("requestId", requestId)
146588	return c
146589}
146590
146591// Fields allows partial responses to be retrieved. See
146592// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146593// for more information.
146594func (c *TargetSslProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetProxyHeaderCall {
146595	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146596	return c
146597}
146598
146599// Context sets the context to be used in this call's Do method. Any
146600// pending HTTP request will be aborted if the provided context is
146601// canceled.
146602func (c *TargetSslProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetSslProxiesSetProxyHeaderCall {
146603	c.ctx_ = ctx
146604	return c
146605}
146606
146607// Header returns an http.Header that can be modified by the caller to
146608// add HTTP headers to the request.
146609func (c *TargetSslProxiesSetProxyHeaderCall) Header() http.Header {
146610	if c.header_ == nil {
146611		c.header_ = make(http.Header)
146612	}
146613	return c.header_
146614}
146615
146616func (c *TargetSslProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
146617	reqHeaders := make(http.Header)
146618	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146619	for k, v := range c.header_ {
146620		reqHeaders[k] = v
146621	}
146622	reqHeaders.Set("User-Agent", c.s.userAgent())
146623	var body io.Reader = nil
146624	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetproxyheaderrequest)
146625	if err != nil {
146626		return nil, err
146627	}
146628	reqHeaders.Set("Content-Type", "application/json")
146629	c.urlParams_.Set("alt", alt)
146630	c.urlParams_.Set("prettyPrint", "false")
146631	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader")
146632	urls += "?" + c.urlParams_.Encode()
146633	req, err := http.NewRequest("POST", urls, body)
146634	if err != nil {
146635		return nil, err
146636	}
146637	req.Header = reqHeaders
146638	googleapi.Expand(req.URL, map[string]string{
146639		"project":        c.project,
146640		"targetSslProxy": c.targetSslProxy,
146641	})
146642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146643}
146644
146645// Do executes the "compute.targetSslProxies.setProxyHeader" call.
146646// Exactly one of *Operation or error will be non-nil. Any non-2xx
146647// status code is an error. Response headers are in either
146648// *Operation.ServerResponse.Header or (if a response was returned at
146649// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146650// to check whether the returned error was because
146651// http.StatusNotModified was returned.
146652func (c *TargetSslProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146653	gensupport.SetOptions(c.urlParams_, opts...)
146654	res, err := c.doRequest("json")
146655	if res != nil && res.StatusCode == http.StatusNotModified {
146656		if res.Body != nil {
146657			res.Body.Close()
146658		}
146659		return nil, &googleapi.Error{
146660			Code:   res.StatusCode,
146661			Header: res.Header,
146662		}
146663	}
146664	if err != nil {
146665		return nil, err
146666	}
146667	defer googleapi.CloseBody(res)
146668	if err := googleapi.CheckResponse(res); err != nil {
146669		return nil, err
146670	}
146671	ret := &Operation{
146672		ServerResponse: googleapi.ServerResponse{
146673			Header:         res.Header,
146674			HTTPStatusCode: res.StatusCode,
146675		},
146676	}
146677	target := &ret
146678	if err := gensupport.DecodeResponse(target, res); err != nil {
146679		return nil, err
146680	}
146681	return ret, nil
146682	// {
146683	//   "description": "Changes the ProxyHeaderType for TargetSslProxy.",
146684	//   "httpMethod": "POST",
146685	//   "id": "compute.targetSslProxies.setProxyHeader",
146686	//   "parameterOrder": [
146687	//     "project",
146688	//     "targetSslProxy"
146689	//   ],
146690	//   "parameters": {
146691	//     "project": {
146692	//       "description": "Project ID for this request.",
146693	//       "location": "path",
146694	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146695	//       "required": true,
146696	//       "type": "string"
146697	//     },
146698	//     "requestId": {
146699	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146700	//       "location": "query",
146701	//       "type": "string"
146702	//     },
146703	//     "targetSslProxy": {
146704	//       "description": "Name of the TargetSslProxy resource whose ProxyHeader is to be set.",
146705	//       "location": "path",
146706	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146707	//       "required": true,
146708	//       "type": "string"
146709	//     }
146710	//   },
146711	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setProxyHeader",
146712	//   "request": {
146713	//     "$ref": "TargetSslProxiesSetProxyHeaderRequest"
146714	//   },
146715	//   "response": {
146716	//     "$ref": "Operation"
146717	//   },
146718	//   "scopes": [
146719	//     "https://www.googleapis.com/auth/cloud-platform",
146720	//     "https://www.googleapis.com/auth/compute"
146721	//   ]
146722	// }
146723
146724}
146725
146726// method id "compute.targetSslProxies.setSslCertificates":
146727
146728type TargetSslProxiesSetSslCertificatesCall struct {
146729	s                                         *Service
146730	project                                   string
146731	targetSslProxy                            string
146732	targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest
146733	urlParams_                                gensupport.URLParams
146734	ctx_                                      context.Context
146735	header_                                   http.Header
146736}
146737
146738// SetSslCertificates: Changes SslCertificates for TargetSslProxy.
146739func (r *TargetSslProxiesService) SetSslCertificates(project string, targetSslProxy string, targetsslproxiessetsslcertificatesrequest *TargetSslProxiesSetSslCertificatesRequest) *TargetSslProxiesSetSslCertificatesCall {
146740	c := &TargetSslProxiesSetSslCertificatesCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146741	c.project = project
146742	c.targetSslProxy = targetSslProxy
146743	c.targetsslproxiessetsslcertificatesrequest = targetsslproxiessetsslcertificatesrequest
146744	return c
146745}
146746
146747// RequestId sets the optional parameter "requestId": An optional
146748// request ID to identify requests. Specify a unique request ID so that
146749// if you must retry your request, the server will know to ignore the
146750// request if it has already been completed.
146751//
146752// For example, consider a situation where you make an initial request
146753// and the request times out. If you make the request again with the
146754// same request ID, the server can check if original operation with the
146755// same request ID was received, and if so, will ignore the second
146756// request. This prevents clients from accidentally creating duplicate
146757// commitments.
146758//
146759// The request ID must be a valid UUID with the exception that zero UUID
146760// is not supported (00000000-0000-0000-0000-000000000000).
146761func (c *TargetSslProxiesSetSslCertificatesCall) RequestId(requestId string) *TargetSslProxiesSetSslCertificatesCall {
146762	c.urlParams_.Set("requestId", requestId)
146763	return c
146764}
146765
146766// Fields allows partial responses to be retrieved. See
146767// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146768// for more information.
146769func (c *TargetSslProxiesSetSslCertificatesCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslCertificatesCall {
146770	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146771	return c
146772}
146773
146774// Context sets the context to be used in this call's Do method. Any
146775// pending HTTP request will be aborted if the provided context is
146776// canceled.
146777func (c *TargetSslProxiesSetSslCertificatesCall) Context(ctx context.Context) *TargetSslProxiesSetSslCertificatesCall {
146778	c.ctx_ = ctx
146779	return c
146780}
146781
146782// Header returns an http.Header that can be modified by the caller to
146783// add HTTP headers to the request.
146784func (c *TargetSslProxiesSetSslCertificatesCall) Header() http.Header {
146785	if c.header_ == nil {
146786		c.header_ = make(http.Header)
146787	}
146788	return c.header_
146789}
146790
146791func (c *TargetSslProxiesSetSslCertificatesCall) doRequest(alt string) (*http.Response, error) {
146792	reqHeaders := make(http.Header)
146793	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146794	for k, v := range c.header_ {
146795		reqHeaders[k] = v
146796	}
146797	reqHeaders.Set("User-Agent", c.s.userAgent())
146798	var body io.Reader = nil
146799	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetsslproxiessetsslcertificatesrequest)
146800	if err != nil {
146801		return nil, err
146802	}
146803	reqHeaders.Set("Content-Type", "application/json")
146804	c.urlParams_.Set("alt", alt)
146805	c.urlParams_.Set("prettyPrint", "false")
146806	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates")
146807	urls += "?" + c.urlParams_.Encode()
146808	req, err := http.NewRequest("POST", urls, body)
146809	if err != nil {
146810		return nil, err
146811	}
146812	req.Header = reqHeaders
146813	googleapi.Expand(req.URL, map[string]string{
146814		"project":        c.project,
146815		"targetSslProxy": c.targetSslProxy,
146816	})
146817	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146818}
146819
146820// Do executes the "compute.targetSslProxies.setSslCertificates" call.
146821// Exactly one of *Operation or error will be non-nil. Any non-2xx
146822// status code is an error. Response headers are in either
146823// *Operation.ServerResponse.Header or (if a response was returned at
146824// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
146825// to check whether the returned error was because
146826// http.StatusNotModified was returned.
146827func (c *TargetSslProxiesSetSslCertificatesCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
146828	gensupport.SetOptions(c.urlParams_, opts...)
146829	res, err := c.doRequest("json")
146830	if res != nil && res.StatusCode == http.StatusNotModified {
146831		if res.Body != nil {
146832			res.Body.Close()
146833		}
146834		return nil, &googleapi.Error{
146835			Code:   res.StatusCode,
146836			Header: res.Header,
146837		}
146838	}
146839	if err != nil {
146840		return nil, err
146841	}
146842	defer googleapi.CloseBody(res)
146843	if err := googleapi.CheckResponse(res); err != nil {
146844		return nil, err
146845	}
146846	ret := &Operation{
146847		ServerResponse: googleapi.ServerResponse{
146848			Header:         res.Header,
146849			HTTPStatusCode: res.StatusCode,
146850		},
146851	}
146852	target := &ret
146853	if err := gensupport.DecodeResponse(target, res); err != nil {
146854		return nil, err
146855	}
146856	return ret, nil
146857	// {
146858	//   "description": "Changes SslCertificates for TargetSslProxy.",
146859	//   "httpMethod": "POST",
146860	//   "id": "compute.targetSslProxies.setSslCertificates",
146861	//   "parameterOrder": [
146862	//     "project",
146863	//     "targetSslProxy"
146864	//   ],
146865	//   "parameters": {
146866	//     "project": {
146867	//       "description": "Project ID for this request.",
146868	//       "location": "path",
146869	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
146870	//       "required": true,
146871	//       "type": "string"
146872	//     },
146873	//     "requestId": {
146874	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
146875	//       "location": "query",
146876	//       "type": "string"
146877	//     },
146878	//     "targetSslProxy": {
146879	//       "description": "Name of the TargetSslProxy resource whose SslCertificate resource is to be set.",
146880	//       "location": "path",
146881	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
146882	//       "required": true,
146883	//       "type": "string"
146884	//     }
146885	//   },
146886	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslCertificates",
146887	//   "request": {
146888	//     "$ref": "TargetSslProxiesSetSslCertificatesRequest"
146889	//   },
146890	//   "response": {
146891	//     "$ref": "Operation"
146892	//   },
146893	//   "scopes": [
146894	//     "https://www.googleapis.com/auth/cloud-platform",
146895	//     "https://www.googleapis.com/auth/compute"
146896	//   ]
146897	// }
146898
146899}
146900
146901// method id "compute.targetSslProxies.setSslPolicy":
146902
146903type TargetSslProxiesSetSslPolicyCall struct {
146904	s                  *Service
146905	project            string
146906	targetSslProxy     string
146907	sslpolicyreference *SslPolicyReference
146908	urlParams_         gensupport.URLParams
146909	ctx_               context.Context
146910	header_            http.Header
146911}
146912
146913// SetSslPolicy: Sets the SSL policy for TargetSslProxy. The SSL policy
146914// specifies the server-side support for SSL features. This affects
146915// connections between clients and the SSL proxy load balancer. They do
146916// not affect the connection between the load balancer and the backends.
146917func (r *TargetSslProxiesService) SetSslPolicy(project string, targetSslProxy string, sslpolicyreference *SslPolicyReference) *TargetSslProxiesSetSslPolicyCall {
146918	c := &TargetSslProxiesSetSslPolicyCall{s: r.s, urlParams_: make(gensupport.URLParams)}
146919	c.project = project
146920	c.targetSslProxy = targetSslProxy
146921	c.sslpolicyreference = sslpolicyreference
146922	return c
146923}
146924
146925// RequestId sets the optional parameter "requestId": An optional
146926// request ID to identify requests. Specify a unique request ID so that
146927// if you must retry your request, the server will know to ignore the
146928// request if it has already been completed.
146929//
146930// For example, consider a situation where you make an initial request
146931// and the request times out. If you make the request again with the
146932// same request ID, the server can check if original operation with the
146933// same request ID was received, and if so, will ignore the second
146934// request. This prevents clients from accidentally creating duplicate
146935// commitments.
146936//
146937// The request ID must be a valid UUID with the exception that zero UUID
146938// is not supported (00000000-0000-0000-0000-000000000000).
146939func (c *TargetSslProxiesSetSslPolicyCall) RequestId(requestId string) *TargetSslProxiesSetSslPolicyCall {
146940	c.urlParams_.Set("requestId", requestId)
146941	return c
146942}
146943
146944// Fields allows partial responses to be retrieved. See
146945// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
146946// for more information.
146947func (c *TargetSslProxiesSetSslPolicyCall) Fields(s ...googleapi.Field) *TargetSslProxiesSetSslPolicyCall {
146948	c.urlParams_.Set("fields", googleapi.CombineFields(s))
146949	return c
146950}
146951
146952// Context sets the context to be used in this call's Do method. Any
146953// pending HTTP request will be aborted if the provided context is
146954// canceled.
146955func (c *TargetSslProxiesSetSslPolicyCall) Context(ctx context.Context) *TargetSslProxiesSetSslPolicyCall {
146956	c.ctx_ = ctx
146957	return c
146958}
146959
146960// Header returns an http.Header that can be modified by the caller to
146961// add HTTP headers to the request.
146962func (c *TargetSslProxiesSetSslPolicyCall) Header() http.Header {
146963	if c.header_ == nil {
146964		c.header_ = make(http.Header)
146965	}
146966	return c.header_
146967}
146968
146969func (c *TargetSslProxiesSetSslPolicyCall) doRequest(alt string) (*http.Response, error) {
146970	reqHeaders := make(http.Header)
146971	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
146972	for k, v := range c.header_ {
146973		reqHeaders[k] = v
146974	}
146975	reqHeaders.Set("User-Agent", c.s.userAgent())
146976	var body io.Reader = nil
146977	body, err := googleapi.WithoutDataWrapper.JSONReader(c.sslpolicyreference)
146978	if err != nil {
146979		return nil, err
146980	}
146981	reqHeaders.Set("Content-Type", "application/json")
146982	c.urlParams_.Set("alt", alt)
146983	c.urlParams_.Set("prettyPrint", "false")
146984	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy")
146985	urls += "?" + c.urlParams_.Encode()
146986	req, err := http.NewRequest("POST", urls, body)
146987	if err != nil {
146988		return nil, err
146989	}
146990	req.Header = reqHeaders
146991	googleapi.Expand(req.URL, map[string]string{
146992		"project":        c.project,
146993		"targetSslProxy": c.targetSslProxy,
146994	})
146995	return gensupport.SendRequest(c.ctx_, c.s.client, req)
146996}
146997
146998// Do executes the "compute.targetSslProxies.setSslPolicy" call.
146999// Exactly one of *Operation or error will be non-nil. Any non-2xx
147000// status code is an error. Response headers are in either
147001// *Operation.ServerResponse.Header or (if a response was returned at
147002// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147003// to check whether the returned error was because
147004// http.StatusNotModified was returned.
147005func (c *TargetSslProxiesSetSslPolicyCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147006	gensupport.SetOptions(c.urlParams_, opts...)
147007	res, err := c.doRequest("json")
147008	if res != nil && res.StatusCode == http.StatusNotModified {
147009		if res.Body != nil {
147010			res.Body.Close()
147011		}
147012		return nil, &googleapi.Error{
147013			Code:   res.StatusCode,
147014			Header: res.Header,
147015		}
147016	}
147017	if err != nil {
147018		return nil, err
147019	}
147020	defer googleapi.CloseBody(res)
147021	if err := googleapi.CheckResponse(res); err != nil {
147022		return nil, err
147023	}
147024	ret := &Operation{
147025		ServerResponse: googleapi.ServerResponse{
147026			Header:         res.Header,
147027			HTTPStatusCode: res.StatusCode,
147028		},
147029	}
147030	target := &ret
147031	if err := gensupport.DecodeResponse(target, res); err != nil {
147032		return nil, err
147033	}
147034	return ret, nil
147035	// {
147036	//   "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.",
147037	//   "httpMethod": "POST",
147038	//   "id": "compute.targetSslProxies.setSslPolicy",
147039	//   "parameterOrder": [
147040	//     "project",
147041	//     "targetSslProxy"
147042	//   ],
147043	//   "parameters": {
147044	//     "project": {
147045	//       "description": "Project ID for this request.",
147046	//       "location": "path",
147047	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147048	//       "required": true,
147049	//       "type": "string"
147050	//     },
147051	//     "requestId": {
147052	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147053	//       "location": "query",
147054	//       "type": "string"
147055	//     },
147056	//     "targetSslProxy": {
147057	//       "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.",
147058	//       "location": "path",
147059	//       "required": true,
147060	//       "type": "string"
147061	//     }
147062	//   },
147063	//   "path": "{project}/global/targetSslProxies/{targetSslProxy}/setSslPolicy",
147064	//   "request": {
147065	//     "$ref": "SslPolicyReference"
147066	//   },
147067	//   "response": {
147068	//     "$ref": "Operation"
147069	//   },
147070	//   "scopes": [
147071	//     "https://www.googleapis.com/auth/cloud-platform",
147072	//     "https://www.googleapis.com/auth/compute"
147073	//   ]
147074	// }
147075
147076}
147077
147078// method id "compute.targetSslProxies.testIamPermissions":
147079
147080type TargetSslProxiesTestIamPermissionsCall struct {
147081	s                      *Service
147082	project                string
147083	resource               string
147084	testpermissionsrequest *TestPermissionsRequest
147085	urlParams_             gensupport.URLParams
147086	ctx_                   context.Context
147087	header_                http.Header
147088}
147089
147090// TestIamPermissions: Returns permissions that a caller has on the
147091// specified resource.
147092func (r *TargetSslProxiesService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetSslProxiesTestIamPermissionsCall {
147093	c := &TargetSslProxiesTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147094	c.project = project
147095	c.resource = resource
147096	c.testpermissionsrequest = testpermissionsrequest
147097	return c
147098}
147099
147100// Fields allows partial responses to be retrieved. See
147101// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147102// for more information.
147103func (c *TargetSslProxiesTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetSslProxiesTestIamPermissionsCall {
147104	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147105	return c
147106}
147107
147108// Context sets the context to be used in this call's Do method. Any
147109// pending HTTP request will be aborted if the provided context is
147110// canceled.
147111func (c *TargetSslProxiesTestIamPermissionsCall) Context(ctx context.Context) *TargetSslProxiesTestIamPermissionsCall {
147112	c.ctx_ = ctx
147113	return c
147114}
147115
147116// Header returns an http.Header that can be modified by the caller to
147117// add HTTP headers to the request.
147118func (c *TargetSslProxiesTestIamPermissionsCall) Header() http.Header {
147119	if c.header_ == nil {
147120		c.header_ = make(http.Header)
147121	}
147122	return c.header_
147123}
147124
147125func (c *TargetSslProxiesTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
147126	reqHeaders := make(http.Header)
147127	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147128	for k, v := range c.header_ {
147129		reqHeaders[k] = v
147130	}
147131	reqHeaders.Set("User-Agent", c.s.userAgent())
147132	var body io.Reader = nil
147133	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
147134	if err != nil {
147135		return nil, err
147136	}
147137	reqHeaders.Set("Content-Type", "application/json")
147138	c.urlParams_.Set("alt", alt)
147139	c.urlParams_.Set("prettyPrint", "false")
147140	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetSslProxies/{resource}/testIamPermissions")
147141	urls += "?" + c.urlParams_.Encode()
147142	req, err := http.NewRequest("POST", urls, body)
147143	if err != nil {
147144		return nil, err
147145	}
147146	req.Header = reqHeaders
147147	googleapi.Expand(req.URL, map[string]string{
147148		"project":  c.project,
147149		"resource": c.resource,
147150	})
147151	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147152}
147153
147154// Do executes the "compute.targetSslProxies.testIamPermissions" call.
147155// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
147156// non-2xx status code is an error. Response headers are in either
147157// *TestPermissionsResponse.ServerResponse.Header or (if a response was
147158// returned at all) in error.(*googleapi.Error).Header. Use
147159// googleapi.IsNotModified to check whether the returned error was
147160// because http.StatusNotModified was returned.
147161func (c *TargetSslProxiesTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
147162	gensupport.SetOptions(c.urlParams_, opts...)
147163	res, err := c.doRequest("json")
147164	if res != nil && res.StatusCode == http.StatusNotModified {
147165		if res.Body != nil {
147166			res.Body.Close()
147167		}
147168		return nil, &googleapi.Error{
147169			Code:   res.StatusCode,
147170			Header: res.Header,
147171		}
147172	}
147173	if err != nil {
147174		return nil, err
147175	}
147176	defer googleapi.CloseBody(res)
147177	if err := googleapi.CheckResponse(res); err != nil {
147178		return nil, err
147179	}
147180	ret := &TestPermissionsResponse{
147181		ServerResponse: googleapi.ServerResponse{
147182			Header:         res.Header,
147183			HTTPStatusCode: res.StatusCode,
147184		},
147185	}
147186	target := &ret
147187	if err := gensupport.DecodeResponse(target, res); err != nil {
147188		return nil, err
147189	}
147190	return ret, nil
147191	// {
147192	//   "description": "Returns permissions that a caller has on the specified resource.",
147193	//   "httpMethod": "POST",
147194	//   "id": "compute.targetSslProxies.testIamPermissions",
147195	//   "parameterOrder": [
147196	//     "project",
147197	//     "resource"
147198	//   ],
147199	//   "parameters": {
147200	//     "project": {
147201	//       "description": "Project ID for this request.",
147202	//       "location": "path",
147203	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147204	//       "required": true,
147205	//       "type": "string"
147206	//     },
147207	//     "resource": {
147208	//       "description": "Name or id of the resource for this request.",
147209	//       "location": "path",
147210	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147211	//       "required": true,
147212	//       "type": "string"
147213	//     }
147214	//   },
147215	//   "path": "{project}/global/targetSslProxies/{resource}/testIamPermissions",
147216	//   "request": {
147217	//     "$ref": "TestPermissionsRequest"
147218	//   },
147219	//   "response": {
147220	//     "$ref": "TestPermissionsResponse"
147221	//   },
147222	//   "scopes": [
147223	//     "https://www.googleapis.com/auth/cloud-platform",
147224	//     "https://www.googleapis.com/auth/compute",
147225	//     "https://www.googleapis.com/auth/compute.readonly"
147226	//   ]
147227	// }
147228
147229}
147230
147231// method id "compute.targetTcpProxies.delete":
147232
147233type TargetTcpProxiesDeleteCall struct {
147234	s              *Service
147235	project        string
147236	targetTcpProxy string
147237	urlParams_     gensupport.URLParams
147238	ctx_           context.Context
147239	header_        http.Header
147240}
147241
147242// Delete: Deletes the specified TargetTcpProxy resource.
147243func (r *TargetTcpProxiesService) Delete(project string, targetTcpProxy string) *TargetTcpProxiesDeleteCall {
147244	c := &TargetTcpProxiesDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147245	c.project = project
147246	c.targetTcpProxy = targetTcpProxy
147247	return c
147248}
147249
147250// RequestId sets the optional parameter "requestId": An optional
147251// request ID to identify requests. Specify a unique request ID so that
147252// if you must retry your request, the server will know to ignore the
147253// request if it has already been completed.
147254//
147255// For example, consider a situation where you make an initial request
147256// and the request times out. If you make the request again with the
147257// same request ID, the server can check if original operation with the
147258// same request ID was received, and if so, will ignore the second
147259// request. This prevents clients from accidentally creating duplicate
147260// commitments.
147261//
147262// The request ID must be a valid UUID with the exception that zero UUID
147263// is not supported (00000000-0000-0000-0000-000000000000).
147264func (c *TargetTcpProxiesDeleteCall) RequestId(requestId string) *TargetTcpProxiesDeleteCall {
147265	c.urlParams_.Set("requestId", requestId)
147266	return c
147267}
147268
147269// Fields allows partial responses to be retrieved. See
147270// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147271// for more information.
147272func (c *TargetTcpProxiesDeleteCall) Fields(s ...googleapi.Field) *TargetTcpProxiesDeleteCall {
147273	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147274	return c
147275}
147276
147277// Context sets the context to be used in this call's Do method. Any
147278// pending HTTP request will be aborted if the provided context is
147279// canceled.
147280func (c *TargetTcpProxiesDeleteCall) Context(ctx context.Context) *TargetTcpProxiesDeleteCall {
147281	c.ctx_ = ctx
147282	return c
147283}
147284
147285// Header returns an http.Header that can be modified by the caller to
147286// add HTTP headers to the request.
147287func (c *TargetTcpProxiesDeleteCall) Header() http.Header {
147288	if c.header_ == nil {
147289		c.header_ = make(http.Header)
147290	}
147291	return c.header_
147292}
147293
147294func (c *TargetTcpProxiesDeleteCall) doRequest(alt string) (*http.Response, error) {
147295	reqHeaders := make(http.Header)
147296	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147297	for k, v := range c.header_ {
147298		reqHeaders[k] = v
147299	}
147300	reqHeaders.Set("User-Agent", c.s.userAgent())
147301	var body io.Reader = nil
147302	c.urlParams_.Set("alt", alt)
147303	c.urlParams_.Set("prettyPrint", "false")
147304	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
147305	urls += "?" + c.urlParams_.Encode()
147306	req, err := http.NewRequest("DELETE", urls, body)
147307	if err != nil {
147308		return nil, err
147309	}
147310	req.Header = reqHeaders
147311	googleapi.Expand(req.URL, map[string]string{
147312		"project":        c.project,
147313		"targetTcpProxy": c.targetTcpProxy,
147314	})
147315	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147316}
147317
147318// Do executes the "compute.targetTcpProxies.delete" call.
147319// Exactly one of *Operation or error will be non-nil. Any non-2xx
147320// status code is an error. Response headers are in either
147321// *Operation.ServerResponse.Header or (if a response was returned at
147322// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147323// to check whether the returned error was because
147324// http.StatusNotModified was returned.
147325func (c *TargetTcpProxiesDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147326	gensupport.SetOptions(c.urlParams_, opts...)
147327	res, err := c.doRequest("json")
147328	if res != nil && res.StatusCode == http.StatusNotModified {
147329		if res.Body != nil {
147330			res.Body.Close()
147331		}
147332		return nil, &googleapi.Error{
147333			Code:   res.StatusCode,
147334			Header: res.Header,
147335		}
147336	}
147337	if err != nil {
147338		return nil, err
147339	}
147340	defer googleapi.CloseBody(res)
147341	if err := googleapi.CheckResponse(res); err != nil {
147342		return nil, err
147343	}
147344	ret := &Operation{
147345		ServerResponse: googleapi.ServerResponse{
147346			Header:         res.Header,
147347			HTTPStatusCode: res.StatusCode,
147348		},
147349	}
147350	target := &ret
147351	if err := gensupport.DecodeResponse(target, res); err != nil {
147352		return nil, err
147353	}
147354	return ret, nil
147355	// {
147356	//   "description": "Deletes the specified TargetTcpProxy resource.",
147357	//   "httpMethod": "DELETE",
147358	//   "id": "compute.targetTcpProxies.delete",
147359	//   "parameterOrder": [
147360	//     "project",
147361	//     "targetTcpProxy"
147362	//   ],
147363	//   "parameters": {
147364	//     "project": {
147365	//       "description": "Project ID for this request.",
147366	//       "location": "path",
147367	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147368	//       "required": true,
147369	//       "type": "string"
147370	//     },
147371	//     "requestId": {
147372	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147373	//       "location": "query",
147374	//       "type": "string"
147375	//     },
147376	//     "targetTcpProxy": {
147377	//       "description": "Name of the TargetTcpProxy resource to delete.",
147378	//       "location": "path",
147379	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147380	//       "required": true,
147381	//       "type": "string"
147382	//     }
147383	//   },
147384	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
147385	//   "response": {
147386	//     "$ref": "Operation"
147387	//   },
147388	//   "scopes": [
147389	//     "https://www.googleapis.com/auth/cloud-platform",
147390	//     "https://www.googleapis.com/auth/compute"
147391	//   ]
147392	// }
147393
147394}
147395
147396// method id "compute.targetTcpProxies.get":
147397
147398type TargetTcpProxiesGetCall struct {
147399	s              *Service
147400	project        string
147401	targetTcpProxy string
147402	urlParams_     gensupport.URLParams
147403	ifNoneMatch_   string
147404	ctx_           context.Context
147405	header_        http.Header
147406}
147407
147408// Get: Returns the specified TargetTcpProxy resource. Gets a list of
147409// available target TCP proxies by making a list() request.
147410func (r *TargetTcpProxiesService) Get(project string, targetTcpProxy string) *TargetTcpProxiesGetCall {
147411	c := &TargetTcpProxiesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147412	c.project = project
147413	c.targetTcpProxy = targetTcpProxy
147414	return c
147415}
147416
147417// Fields allows partial responses to be retrieved. See
147418// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147419// for more information.
147420func (c *TargetTcpProxiesGetCall) Fields(s ...googleapi.Field) *TargetTcpProxiesGetCall {
147421	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147422	return c
147423}
147424
147425// IfNoneMatch sets the optional parameter which makes the operation
147426// fail if the object's ETag matches the given value. This is useful for
147427// getting updates only after the object has changed since the last
147428// request. Use googleapi.IsNotModified to check whether the response
147429// error from Do is the result of In-None-Match.
147430func (c *TargetTcpProxiesGetCall) IfNoneMatch(entityTag string) *TargetTcpProxiesGetCall {
147431	c.ifNoneMatch_ = entityTag
147432	return c
147433}
147434
147435// Context sets the context to be used in this call's Do method. Any
147436// pending HTTP request will be aborted if the provided context is
147437// canceled.
147438func (c *TargetTcpProxiesGetCall) Context(ctx context.Context) *TargetTcpProxiesGetCall {
147439	c.ctx_ = ctx
147440	return c
147441}
147442
147443// Header returns an http.Header that can be modified by the caller to
147444// add HTTP headers to the request.
147445func (c *TargetTcpProxiesGetCall) Header() http.Header {
147446	if c.header_ == nil {
147447		c.header_ = make(http.Header)
147448	}
147449	return c.header_
147450}
147451
147452func (c *TargetTcpProxiesGetCall) doRequest(alt string) (*http.Response, error) {
147453	reqHeaders := make(http.Header)
147454	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147455	for k, v := range c.header_ {
147456		reqHeaders[k] = v
147457	}
147458	reqHeaders.Set("User-Agent", c.s.userAgent())
147459	if c.ifNoneMatch_ != "" {
147460		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147461	}
147462	var body io.Reader = nil
147463	c.urlParams_.Set("alt", alt)
147464	c.urlParams_.Set("prettyPrint", "false")
147465	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}")
147466	urls += "?" + c.urlParams_.Encode()
147467	req, err := http.NewRequest("GET", urls, body)
147468	if err != nil {
147469		return nil, err
147470	}
147471	req.Header = reqHeaders
147472	googleapi.Expand(req.URL, map[string]string{
147473		"project":        c.project,
147474		"targetTcpProxy": c.targetTcpProxy,
147475	})
147476	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147477}
147478
147479// Do executes the "compute.targetTcpProxies.get" call.
147480// Exactly one of *TargetTcpProxy or error will be non-nil. Any non-2xx
147481// status code is an error. Response headers are in either
147482// *TargetTcpProxy.ServerResponse.Header or (if a response was returned
147483// at all) in error.(*googleapi.Error).Header. Use
147484// googleapi.IsNotModified to check whether the returned error was
147485// because http.StatusNotModified was returned.
147486func (c *TargetTcpProxiesGetCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxy, error) {
147487	gensupport.SetOptions(c.urlParams_, opts...)
147488	res, err := c.doRequest("json")
147489	if res != nil && res.StatusCode == http.StatusNotModified {
147490		if res.Body != nil {
147491			res.Body.Close()
147492		}
147493		return nil, &googleapi.Error{
147494			Code:   res.StatusCode,
147495			Header: res.Header,
147496		}
147497	}
147498	if err != nil {
147499		return nil, err
147500	}
147501	defer googleapi.CloseBody(res)
147502	if err := googleapi.CheckResponse(res); err != nil {
147503		return nil, err
147504	}
147505	ret := &TargetTcpProxy{
147506		ServerResponse: googleapi.ServerResponse{
147507			Header:         res.Header,
147508			HTTPStatusCode: res.StatusCode,
147509		},
147510	}
147511	target := &ret
147512	if err := gensupport.DecodeResponse(target, res); err != nil {
147513		return nil, err
147514	}
147515	return ret, nil
147516	// {
147517	//   "description": "Returns the specified TargetTcpProxy resource. Gets a list of available target TCP proxies by making a list() request.",
147518	//   "httpMethod": "GET",
147519	//   "id": "compute.targetTcpProxies.get",
147520	//   "parameterOrder": [
147521	//     "project",
147522	//     "targetTcpProxy"
147523	//   ],
147524	//   "parameters": {
147525	//     "project": {
147526	//       "description": "Project ID for this request.",
147527	//       "location": "path",
147528	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147529	//       "required": true,
147530	//       "type": "string"
147531	//     },
147532	//     "targetTcpProxy": {
147533	//       "description": "Name of the TargetTcpProxy resource to return.",
147534	//       "location": "path",
147535	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
147536	//       "required": true,
147537	//       "type": "string"
147538	//     }
147539	//   },
147540	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}",
147541	//   "response": {
147542	//     "$ref": "TargetTcpProxy"
147543	//   },
147544	//   "scopes": [
147545	//     "https://www.googleapis.com/auth/cloud-platform",
147546	//     "https://www.googleapis.com/auth/compute",
147547	//     "https://www.googleapis.com/auth/compute.readonly"
147548	//   ]
147549	// }
147550
147551}
147552
147553// method id "compute.targetTcpProxies.insert":
147554
147555type TargetTcpProxiesInsertCall struct {
147556	s              *Service
147557	project        string
147558	targettcpproxy *TargetTcpProxy
147559	urlParams_     gensupport.URLParams
147560	ctx_           context.Context
147561	header_        http.Header
147562}
147563
147564// Insert: Creates a TargetTcpProxy resource in the specified project
147565// using the data included in the request.
147566func (r *TargetTcpProxiesService) Insert(project string, targettcpproxy *TargetTcpProxy) *TargetTcpProxiesInsertCall {
147567	c := &TargetTcpProxiesInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147568	c.project = project
147569	c.targettcpproxy = targettcpproxy
147570	return c
147571}
147572
147573// RequestId sets the optional parameter "requestId": An optional
147574// request ID to identify requests. Specify a unique request ID so that
147575// if you must retry your request, the server will know to ignore the
147576// request if it has already been completed.
147577//
147578// For example, consider a situation where you make an initial request
147579// and the request times out. If you make the request again with the
147580// same request ID, the server can check if original operation with the
147581// same request ID was received, and if so, will ignore the second
147582// request. This prevents clients from accidentally creating duplicate
147583// commitments.
147584//
147585// The request ID must be a valid UUID with the exception that zero UUID
147586// is not supported (00000000-0000-0000-0000-000000000000).
147587func (c *TargetTcpProxiesInsertCall) RequestId(requestId string) *TargetTcpProxiesInsertCall {
147588	c.urlParams_.Set("requestId", requestId)
147589	return c
147590}
147591
147592// Fields allows partial responses to be retrieved. See
147593// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147594// for more information.
147595func (c *TargetTcpProxiesInsertCall) Fields(s ...googleapi.Field) *TargetTcpProxiesInsertCall {
147596	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147597	return c
147598}
147599
147600// Context sets the context to be used in this call's Do method. Any
147601// pending HTTP request will be aborted if the provided context is
147602// canceled.
147603func (c *TargetTcpProxiesInsertCall) Context(ctx context.Context) *TargetTcpProxiesInsertCall {
147604	c.ctx_ = ctx
147605	return c
147606}
147607
147608// Header returns an http.Header that can be modified by the caller to
147609// add HTTP headers to the request.
147610func (c *TargetTcpProxiesInsertCall) Header() http.Header {
147611	if c.header_ == nil {
147612		c.header_ = make(http.Header)
147613	}
147614	return c.header_
147615}
147616
147617func (c *TargetTcpProxiesInsertCall) doRequest(alt string) (*http.Response, error) {
147618	reqHeaders := make(http.Header)
147619	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147620	for k, v := range c.header_ {
147621		reqHeaders[k] = v
147622	}
147623	reqHeaders.Set("User-Agent", c.s.userAgent())
147624	var body io.Reader = nil
147625	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxy)
147626	if err != nil {
147627		return nil, err
147628	}
147629	reqHeaders.Set("Content-Type", "application/json")
147630	c.urlParams_.Set("alt", alt)
147631	c.urlParams_.Set("prettyPrint", "false")
147632	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
147633	urls += "?" + c.urlParams_.Encode()
147634	req, err := http.NewRequest("POST", urls, body)
147635	if err != nil {
147636		return nil, err
147637	}
147638	req.Header = reqHeaders
147639	googleapi.Expand(req.URL, map[string]string{
147640		"project": c.project,
147641	})
147642	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147643}
147644
147645// Do executes the "compute.targetTcpProxies.insert" call.
147646// Exactly one of *Operation or error will be non-nil. Any non-2xx
147647// status code is an error. Response headers are in either
147648// *Operation.ServerResponse.Header or (if a response was returned at
147649// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
147650// to check whether the returned error was because
147651// http.StatusNotModified was returned.
147652func (c *TargetTcpProxiesInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
147653	gensupport.SetOptions(c.urlParams_, opts...)
147654	res, err := c.doRequest("json")
147655	if res != nil && res.StatusCode == http.StatusNotModified {
147656		if res.Body != nil {
147657			res.Body.Close()
147658		}
147659		return nil, &googleapi.Error{
147660			Code:   res.StatusCode,
147661			Header: res.Header,
147662		}
147663	}
147664	if err != nil {
147665		return nil, err
147666	}
147667	defer googleapi.CloseBody(res)
147668	if err := googleapi.CheckResponse(res); err != nil {
147669		return nil, err
147670	}
147671	ret := &Operation{
147672		ServerResponse: googleapi.ServerResponse{
147673			Header:         res.Header,
147674			HTTPStatusCode: res.StatusCode,
147675		},
147676	}
147677	target := &ret
147678	if err := gensupport.DecodeResponse(target, res); err != nil {
147679		return nil, err
147680	}
147681	return ret, nil
147682	// {
147683	//   "description": "Creates a TargetTcpProxy resource in the specified project using the data included in the request.",
147684	//   "httpMethod": "POST",
147685	//   "id": "compute.targetTcpProxies.insert",
147686	//   "parameterOrder": [
147687	//     "project"
147688	//   ],
147689	//   "parameters": {
147690	//     "project": {
147691	//       "description": "Project ID for this request.",
147692	//       "location": "path",
147693	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147694	//       "required": true,
147695	//       "type": "string"
147696	//     },
147697	//     "requestId": {
147698	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
147699	//       "location": "query",
147700	//       "type": "string"
147701	//     }
147702	//   },
147703	//   "path": "{project}/global/targetTcpProxies",
147704	//   "request": {
147705	//     "$ref": "TargetTcpProxy"
147706	//   },
147707	//   "response": {
147708	//     "$ref": "Operation"
147709	//   },
147710	//   "scopes": [
147711	//     "https://www.googleapis.com/auth/cloud-platform",
147712	//     "https://www.googleapis.com/auth/compute"
147713	//   ]
147714	// }
147715
147716}
147717
147718// method id "compute.targetTcpProxies.list":
147719
147720type TargetTcpProxiesListCall struct {
147721	s            *Service
147722	project      string
147723	urlParams_   gensupport.URLParams
147724	ifNoneMatch_ string
147725	ctx_         context.Context
147726	header_      http.Header
147727}
147728
147729// List: Retrieves the list of TargetTcpProxy resources available to the
147730// specified project.
147731func (r *TargetTcpProxiesService) List(project string) *TargetTcpProxiesListCall {
147732	c := &TargetTcpProxiesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147733	c.project = project
147734	return c
147735}
147736
147737// Filter sets the optional parameter "filter": A filter expression that
147738// filters resources listed in the response. The expression must specify
147739// the field name, a comparison operator, and the value that you want to
147740// use for filtering. The value must be a string, a number, or a
147741// boolean. The comparison operator must be either =, !=, >, or <.
147742//
147743// For example, if you are filtering Compute Engine instances, you can
147744// exclude instances named example-instance by specifying name !=
147745// example-instance.
147746//
147747// You can also filter nested fields. For example, you could specify
147748// scheduling.automaticRestart = false to include instances only if they
147749// are not scheduled for automatic restarts. You can use filtering on
147750// nested fields to filter based on resource labels.
147751//
147752// To filter on multiple expressions, provide each separate expression
147753// within parentheses. For example, (scheduling.automaticRestart = true)
147754// (cpuPlatform = "Intel Skylake"). By default, each expression is an
147755// AND expression. However, you can include AND and OR expressions
147756// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
147757// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
147758// true).
147759func (c *TargetTcpProxiesListCall) Filter(filter string) *TargetTcpProxiesListCall {
147760	c.urlParams_.Set("filter", filter)
147761	return c
147762}
147763
147764// MaxResults sets the optional parameter "maxResults": The maximum
147765// number of results per page that should be returned. If the number of
147766// available results is larger than maxResults, Compute Engine returns a
147767// nextPageToken that can be used to get the next page of results in
147768// subsequent list requests. Acceptable values are 0 to 500, inclusive.
147769// (Default: 500)
147770func (c *TargetTcpProxiesListCall) MaxResults(maxResults int64) *TargetTcpProxiesListCall {
147771	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
147772	return c
147773}
147774
147775// OrderBy sets the optional parameter "orderBy": Sorts list results by
147776// a certain order. By default, results are returned in alphanumerical
147777// order based on the resource name.
147778//
147779// You can also sort results in descending order based on the creation
147780// timestamp using orderBy="creationTimestamp desc". This sorts results
147781// based on the creationTimestamp field in reverse chronological order
147782// (newest result first). Use this to sort resources like operations so
147783// that the newest operation is returned first.
147784//
147785// Currently, only sorting by name or creationTimestamp desc is
147786// supported.
147787func (c *TargetTcpProxiesListCall) OrderBy(orderBy string) *TargetTcpProxiesListCall {
147788	c.urlParams_.Set("orderBy", orderBy)
147789	return c
147790}
147791
147792// PageToken sets the optional parameter "pageToken": Specifies a page
147793// token to use. Set pageToken to the nextPageToken returned by a
147794// previous list request to get the next page of results.
147795func (c *TargetTcpProxiesListCall) PageToken(pageToken string) *TargetTcpProxiesListCall {
147796	c.urlParams_.Set("pageToken", pageToken)
147797	return c
147798}
147799
147800// Fields allows partial responses to be retrieved. See
147801// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
147802// for more information.
147803func (c *TargetTcpProxiesListCall) Fields(s ...googleapi.Field) *TargetTcpProxiesListCall {
147804	c.urlParams_.Set("fields", googleapi.CombineFields(s))
147805	return c
147806}
147807
147808// IfNoneMatch sets the optional parameter which makes the operation
147809// fail if the object's ETag matches the given value. This is useful for
147810// getting updates only after the object has changed since the last
147811// request. Use googleapi.IsNotModified to check whether the response
147812// error from Do is the result of In-None-Match.
147813func (c *TargetTcpProxiesListCall) IfNoneMatch(entityTag string) *TargetTcpProxiesListCall {
147814	c.ifNoneMatch_ = entityTag
147815	return c
147816}
147817
147818// Context sets the context to be used in this call's Do method. Any
147819// pending HTTP request will be aborted if the provided context is
147820// canceled.
147821func (c *TargetTcpProxiesListCall) Context(ctx context.Context) *TargetTcpProxiesListCall {
147822	c.ctx_ = ctx
147823	return c
147824}
147825
147826// Header returns an http.Header that can be modified by the caller to
147827// add HTTP headers to the request.
147828func (c *TargetTcpProxiesListCall) Header() http.Header {
147829	if c.header_ == nil {
147830		c.header_ = make(http.Header)
147831	}
147832	return c.header_
147833}
147834
147835func (c *TargetTcpProxiesListCall) doRequest(alt string) (*http.Response, error) {
147836	reqHeaders := make(http.Header)
147837	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
147838	for k, v := range c.header_ {
147839		reqHeaders[k] = v
147840	}
147841	reqHeaders.Set("User-Agent", c.s.userAgent())
147842	if c.ifNoneMatch_ != "" {
147843		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
147844	}
147845	var body io.Reader = nil
147846	c.urlParams_.Set("alt", alt)
147847	c.urlParams_.Set("prettyPrint", "false")
147848	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies")
147849	urls += "?" + c.urlParams_.Encode()
147850	req, err := http.NewRequest("GET", urls, body)
147851	if err != nil {
147852		return nil, err
147853	}
147854	req.Header = reqHeaders
147855	googleapi.Expand(req.URL, map[string]string{
147856		"project": c.project,
147857	})
147858	return gensupport.SendRequest(c.ctx_, c.s.client, req)
147859}
147860
147861// Do executes the "compute.targetTcpProxies.list" call.
147862// Exactly one of *TargetTcpProxyList or error will be non-nil. Any
147863// non-2xx status code is an error. Response headers are in either
147864// *TargetTcpProxyList.ServerResponse.Header or (if a response was
147865// returned at all) in error.(*googleapi.Error).Header. Use
147866// googleapi.IsNotModified to check whether the returned error was
147867// because http.StatusNotModified was returned.
147868func (c *TargetTcpProxiesListCall) Do(opts ...googleapi.CallOption) (*TargetTcpProxyList, error) {
147869	gensupport.SetOptions(c.urlParams_, opts...)
147870	res, err := c.doRequest("json")
147871	if res != nil && res.StatusCode == http.StatusNotModified {
147872		if res.Body != nil {
147873			res.Body.Close()
147874		}
147875		return nil, &googleapi.Error{
147876			Code:   res.StatusCode,
147877			Header: res.Header,
147878		}
147879	}
147880	if err != nil {
147881		return nil, err
147882	}
147883	defer googleapi.CloseBody(res)
147884	if err := googleapi.CheckResponse(res); err != nil {
147885		return nil, err
147886	}
147887	ret := &TargetTcpProxyList{
147888		ServerResponse: googleapi.ServerResponse{
147889			Header:         res.Header,
147890			HTTPStatusCode: res.StatusCode,
147891		},
147892	}
147893	target := &ret
147894	if err := gensupport.DecodeResponse(target, res); err != nil {
147895		return nil, err
147896	}
147897	return ret, nil
147898	// {
147899	//   "description": "Retrieves the list of TargetTcpProxy resources available to the specified project.",
147900	//   "httpMethod": "GET",
147901	//   "id": "compute.targetTcpProxies.list",
147902	//   "parameterOrder": [
147903	//     "project"
147904	//   ],
147905	//   "parameters": {
147906	//     "filter": {
147907	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
147908	//       "location": "query",
147909	//       "type": "string"
147910	//     },
147911	//     "maxResults": {
147912	//       "default": "500",
147913	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
147914	//       "format": "uint32",
147915	//       "location": "query",
147916	//       "minimum": "0",
147917	//       "type": "integer"
147918	//     },
147919	//     "orderBy": {
147920	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
147921	//       "location": "query",
147922	//       "type": "string"
147923	//     },
147924	//     "pageToken": {
147925	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
147926	//       "location": "query",
147927	//       "type": "string"
147928	//     },
147929	//     "project": {
147930	//       "description": "Project ID for this request.",
147931	//       "location": "path",
147932	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
147933	//       "required": true,
147934	//       "type": "string"
147935	//     }
147936	//   },
147937	//   "path": "{project}/global/targetTcpProxies",
147938	//   "response": {
147939	//     "$ref": "TargetTcpProxyList"
147940	//   },
147941	//   "scopes": [
147942	//     "https://www.googleapis.com/auth/cloud-platform",
147943	//     "https://www.googleapis.com/auth/compute",
147944	//     "https://www.googleapis.com/auth/compute.readonly"
147945	//   ]
147946	// }
147947
147948}
147949
147950// Pages invokes f for each page of results.
147951// A non-nil error returned from f will halt the iteration.
147952// The provided context supersedes any context provided to the Context method.
147953func (c *TargetTcpProxiesListCall) Pages(ctx context.Context, f func(*TargetTcpProxyList) error) error {
147954	c.ctx_ = ctx
147955	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
147956	for {
147957		x, err := c.Do()
147958		if err != nil {
147959			return err
147960		}
147961		if err := f(x); err != nil {
147962			return err
147963		}
147964		if x.NextPageToken == "" {
147965			return nil
147966		}
147967		c.PageToken(x.NextPageToken)
147968	}
147969}
147970
147971// method id "compute.targetTcpProxies.setBackendService":
147972
147973type TargetTcpProxiesSetBackendServiceCall struct {
147974	s                                        *Service
147975	project                                  string
147976	targetTcpProxy                           string
147977	targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest
147978	urlParams_                               gensupport.URLParams
147979	ctx_                                     context.Context
147980	header_                                  http.Header
147981}
147982
147983// SetBackendService: Changes the BackendService for TargetTcpProxy.
147984func (r *TargetTcpProxiesService) SetBackendService(project string, targetTcpProxy string, targettcpproxiessetbackendservicerequest *TargetTcpProxiesSetBackendServiceRequest) *TargetTcpProxiesSetBackendServiceCall {
147985	c := &TargetTcpProxiesSetBackendServiceCall{s: r.s, urlParams_: make(gensupport.URLParams)}
147986	c.project = project
147987	c.targetTcpProxy = targetTcpProxy
147988	c.targettcpproxiessetbackendservicerequest = targettcpproxiessetbackendservicerequest
147989	return c
147990}
147991
147992// RequestId sets the optional parameter "requestId": An optional
147993// request ID to identify requests. Specify a unique request ID so that
147994// if you must retry your request, the server will know to ignore the
147995// request if it has already been completed.
147996//
147997// For example, consider a situation where you make an initial request
147998// and the request times out. If you make the request again with the
147999// same request ID, the server can check if original operation with the
148000// same request ID was received, and if so, will ignore the second
148001// request. This prevents clients from accidentally creating duplicate
148002// commitments.
148003//
148004// The request ID must be a valid UUID with the exception that zero UUID
148005// is not supported (00000000-0000-0000-0000-000000000000).
148006func (c *TargetTcpProxiesSetBackendServiceCall) RequestId(requestId string) *TargetTcpProxiesSetBackendServiceCall {
148007	c.urlParams_.Set("requestId", requestId)
148008	return c
148009}
148010
148011// Fields allows partial responses to be retrieved. See
148012// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148013// for more information.
148014func (c *TargetTcpProxiesSetBackendServiceCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetBackendServiceCall {
148015	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148016	return c
148017}
148018
148019// Context sets the context to be used in this call's Do method. Any
148020// pending HTTP request will be aborted if the provided context is
148021// canceled.
148022func (c *TargetTcpProxiesSetBackendServiceCall) Context(ctx context.Context) *TargetTcpProxiesSetBackendServiceCall {
148023	c.ctx_ = ctx
148024	return c
148025}
148026
148027// Header returns an http.Header that can be modified by the caller to
148028// add HTTP headers to the request.
148029func (c *TargetTcpProxiesSetBackendServiceCall) Header() http.Header {
148030	if c.header_ == nil {
148031		c.header_ = make(http.Header)
148032	}
148033	return c.header_
148034}
148035
148036func (c *TargetTcpProxiesSetBackendServiceCall) doRequest(alt string) (*http.Response, error) {
148037	reqHeaders := make(http.Header)
148038	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148039	for k, v := range c.header_ {
148040		reqHeaders[k] = v
148041	}
148042	reqHeaders.Set("User-Agent", c.s.userAgent())
148043	var body io.Reader = nil
148044	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetbackendservicerequest)
148045	if err != nil {
148046		return nil, err
148047	}
148048	reqHeaders.Set("Content-Type", "application/json")
148049	c.urlParams_.Set("alt", alt)
148050	c.urlParams_.Set("prettyPrint", "false")
148051	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService")
148052	urls += "?" + c.urlParams_.Encode()
148053	req, err := http.NewRequest("POST", urls, body)
148054	if err != nil {
148055		return nil, err
148056	}
148057	req.Header = reqHeaders
148058	googleapi.Expand(req.URL, map[string]string{
148059		"project":        c.project,
148060		"targetTcpProxy": c.targetTcpProxy,
148061	})
148062	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148063}
148064
148065// Do executes the "compute.targetTcpProxies.setBackendService" call.
148066// Exactly one of *Operation or error will be non-nil. Any non-2xx
148067// status code is an error. Response headers are in either
148068// *Operation.ServerResponse.Header or (if a response was returned at
148069// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148070// to check whether the returned error was because
148071// http.StatusNotModified was returned.
148072func (c *TargetTcpProxiesSetBackendServiceCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148073	gensupport.SetOptions(c.urlParams_, opts...)
148074	res, err := c.doRequest("json")
148075	if res != nil && res.StatusCode == http.StatusNotModified {
148076		if res.Body != nil {
148077			res.Body.Close()
148078		}
148079		return nil, &googleapi.Error{
148080			Code:   res.StatusCode,
148081			Header: res.Header,
148082		}
148083	}
148084	if err != nil {
148085		return nil, err
148086	}
148087	defer googleapi.CloseBody(res)
148088	if err := googleapi.CheckResponse(res); err != nil {
148089		return nil, err
148090	}
148091	ret := &Operation{
148092		ServerResponse: googleapi.ServerResponse{
148093			Header:         res.Header,
148094			HTTPStatusCode: res.StatusCode,
148095		},
148096	}
148097	target := &ret
148098	if err := gensupport.DecodeResponse(target, res); err != nil {
148099		return nil, err
148100	}
148101	return ret, nil
148102	// {
148103	//   "description": "Changes the BackendService for TargetTcpProxy.",
148104	//   "httpMethod": "POST",
148105	//   "id": "compute.targetTcpProxies.setBackendService",
148106	//   "parameterOrder": [
148107	//     "project",
148108	//     "targetTcpProxy"
148109	//   ],
148110	//   "parameters": {
148111	//     "project": {
148112	//       "description": "Project ID for this request.",
148113	//       "location": "path",
148114	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148115	//       "required": true,
148116	//       "type": "string"
148117	//     },
148118	//     "requestId": {
148119	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148120	//       "location": "query",
148121	//       "type": "string"
148122	//     },
148123	//     "targetTcpProxy": {
148124	//       "description": "Name of the TargetTcpProxy resource whose BackendService resource is to be set.",
148125	//       "location": "path",
148126	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148127	//       "required": true,
148128	//       "type": "string"
148129	//     }
148130	//   },
148131	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setBackendService",
148132	//   "request": {
148133	//     "$ref": "TargetTcpProxiesSetBackendServiceRequest"
148134	//   },
148135	//   "response": {
148136	//     "$ref": "Operation"
148137	//   },
148138	//   "scopes": [
148139	//     "https://www.googleapis.com/auth/cloud-platform",
148140	//     "https://www.googleapis.com/auth/compute"
148141	//   ]
148142	// }
148143
148144}
148145
148146// method id "compute.targetTcpProxies.setProxyHeader":
148147
148148type TargetTcpProxiesSetProxyHeaderCall struct {
148149	s                                     *Service
148150	project                               string
148151	targetTcpProxy                        string
148152	targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest
148153	urlParams_                            gensupport.URLParams
148154	ctx_                                  context.Context
148155	header_                               http.Header
148156}
148157
148158// SetProxyHeader: Changes the ProxyHeaderType for TargetTcpProxy.
148159func (r *TargetTcpProxiesService) SetProxyHeader(project string, targetTcpProxy string, targettcpproxiessetproxyheaderrequest *TargetTcpProxiesSetProxyHeaderRequest) *TargetTcpProxiesSetProxyHeaderCall {
148160	c := &TargetTcpProxiesSetProxyHeaderCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148161	c.project = project
148162	c.targetTcpProxy = targetTcpProxy
148163	c.targettcpproxiessetproxyheaderrequest = targettcpproxiessetproxyheaderrequest
148164	return c
148165}
148166
148167// RequestId sets the optional parameter "requestId": An optional
148168// request ID to identify requests. Specify a unique request ID so that
148169// if you must retry your request, the server will know to ignore the
148170// request if it has already been completed.
148171//
148172// For example, consider a situation where you make an initial request
148173// and the request times out. If you make the request again with the
148174// same request ID, the server can check if original operation with the
148175// same request ID was received, and if so, will ignore the second
148176// request. This prevents clients from accidentally creating duplicate
148177// commitments.
148178//
148179// The request ID must be a valid UUID with the exception that zero UUID
148180// is not supported (00000000-0000-0000-0000-000000000000).
148181func (c *TargetTcpProxiesSetProxyHeaderCall) RequestId(requestId string) *TargetTcpProxiesSetProxyHeaderCall {
148182	c.urlParams_.Set("requestId", requestId)
148183	return c
148184}
148185
148186// Fields allows partial responses to be retrieved. See
148187// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148188// for more information.
148189func (c *TargetTcpProxiesSetProxyHeaderCall) Fields(s ...googleapi.Field) *TargetTcpProxiesSetProxyHeaderCall {
148190	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148191	return c
148192}
148193
148194// Context sets the context to be used in this call's Do method. Any
148195// pending HTTP request will be aborted if the provided context is
148196// canceled.
148197func (c *TargetTcpProxiesSetProxyHeaderCall) Context(ctx context.Context) *TargetTcpProxiesSetProxyHeaderCall {
148198	c.ctx_ = ctx
148199	return c
148200}
148201
148202// Header returns an http.Header that can be modified by the caller to
148203// add HTTP headers to the request.
148204func (c *TargetTcpProxiesSetProxyHeaderCall) Header() http.Header {
148205	if c.header_ == nil {
148206		c.header_ = make(http.Header)
148207	}
148208	return c.header_
148209}
148210
148211func (c *TargetTcpProxiesSetProxyHeaderCall) doRequest(alt string) (*http.Response, error) {
148212	reqHeaders := make(http.Header)
148213	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148214	for k, v := range c.header_ {
148215		reqHeaders[k] = v
148216	}
148217	reqHeaders.Set("User-Agent", c.s.userAgent())
148218	var body io.Reader = nil
148219	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targettcpproxiessetproxyheaderrequest)
148220	if err != nil {
148221		return nil, err
148222	}
148223	reqHeaders.Set("Content-Type", "application/json")
148224	c.urlParams_.Set("alt", alt)
148225	c.urlParams_.Set("prettyPrint", "false")
148226	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader")
148227	urls += "?" + c.urlParams_.Encode()
148228	req, err := http.NewRequest("POST", urls, body)
148229	if err != nil {
148230		return nil, err
148231	}
148232	req.Header = reqHeaders
148233	googleapi.Expand(req.URL, map[string]string{
148234		"project":        c.project,
148235		"targetTcpProxy": c.targetTcpProxy,
148236	})
148237	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148238}
148239
148240// Do executes the "compute.targetTcpProxies.setProxyHeader" call.
148241// Exactly one of *Operation or error will be non-nil. Any non-2xx
148242// status code is an error. Response headers are in either
148243// *Operation.ServerResponse.Header or (if a response was returned at
148244// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148245// to check whether the returned error was because
148246// http.StatusNotModified was returned.
148247func (c *TargetTcpProxiesSetProxyHeaderCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148248	gensupport.SetOptions(c.urlParams_, opts...)
148249	res, err := c.doRequest("json")
148250	if res != nil && res.StatusCode == http.StatusNotModified {
148251		if res.Body != nil {
148252			res.Body.Close()
148253		}
148254		return nil, &googleapi.Error{
148255			Code:   res.StatusCode,
148256			Header: res.Header,
148257		}
148258	}
148259	if err != nil {
148260		return nil, err
148261	}
148262	defer googleapi.CloseBody(res)
148263	if err := googleapi.CheckResponse(res); err != nil {
148264		return nil, err
148265	}
148266	ret := &Operation{
148267		ServerResponse: googleapi.ServerResponse{
148268			Header:         res.Header,
148269			HTTPStatusCode: res.StatusCode,
148270		},
148271	}
148272	target := &ret
148273	if err := gensupport.DecodeResponse(target, res); err != nil {
148274		return nil, err
148275	}
148276	return ret, nil
148277	// {
148278	//   "description": "Changes the ProxyHeaderType for TargetTcpProxy.",
148279	//   "httpMethod": "POST",
148280	//   "id": "compute.targetTcpProxies.setProxyHeader",
148281	//   "parameterOrder": [
148282	//     "project",
148283	//     "targetTcpProxy"
148284	//   ],
148285	//   "parameters": {
148286	//     "project": {
148287	//       "description": "Project ID for this request.",
148288	//       "location": "path",
148289	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148290	//       "required": true,
148291	//       "type": "string"
148292	//     },
148293	//     "requestId": {
148294	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148295	//       "location": "query",
148296	//       "type": "string"
148297	//     },
148298	//     "targetTcpProxy": {
148299	//       "description": "Name of the TargetTcpProxy resource whose ProxyHeader is to be set.",
148300	//       "location": "path",
148301	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148302	//       "required": true,
148303	//       "type": "string"
148304	//     }
148305	//   },
148306	//   "path": "{project}/global/targetTcpProxies/{targetTcpProxy}/setProxyHeader",
148307	//   "request": {
148308	//     "$ref": "TargetTcpProxiesSetProxyHeaderRequest"
148309	//   },
148310	//   "response": {
148311	//     "$ref": "Operation"
148312	//   },
148313	//   "scopes": [
148314	//     "https://www.googleapis.com/auth/cloud-platform",
148315	//     "https://www.googleapis.com/auth/compute"
148316	//   ]
148317	// }
148318
148319}
148320
148321// method id "compute.targetVpnGateways.aggregatedList":
148322
148323type TargetVpnGatewaysAggregatedListCall struct {
148324	s            *Service
148325	project      string
148326	urlParams_   gensupport.URLParams
148327	ifNoneMatch_ string
148328	ctx_         context.Context
148329	header_      http.Header
148330}
148331
148332// AggregatedList: Retrieves an aggregated list of target VPN gateways.
148333func (r *TargetVpnGatewaysService) AggregatedList(project string) *TargetVpnGatewaysAggregatedListCall {
148334	c := &TargetVpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148335	c.project = project
148336	return c
148337}
148338
148339// Filter sets the optional parameter "filter": A filter expression that
148340// filters resources listed in the response. The expression must specify
148341// the field name, a comparison operator, and the value that you want to
148342// use for filtering. The value must be a string, a number, or a
148343// boolean. The comparison operator must be either =, !=, >, or <.
148344//
148345// For example, if you are filtering Compute Engine instances, you can
148346// exclude instances named example-instance by specifying name !=
148347// example-instance.
148348//
148349// You can also filter nested fields. For example, you could specify
148350// scheduling.automaticRestart = false to include instances only if they
148351// are not scheduled for automatic restarts. You can use filtering on
148352// nested fields to filter based on resource labels.
148353//
148354// To filter on multiple expressions, provide each separate expression
148355// within parentheses. For example, (scheduling.automaticRestart = true)
148356// (cpuPlatform = "Intel Skylake"). By default, each expression is an
148357// AND expression. However, you can include AND and OR expressions
148358// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
148359// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
148360// true).
148361func (c *TargetVpnGatewaysAggregatedListCall) Filter(filter string) *TargetVpnGatewaysAggregatedListCall {
148362	c.urlParams_.Set("filter", filter)
148363	return c
148364}
148365
148366// IncludeAllScopes sets the optional parameter "includeAllScopes":
148367// Indicates whether every visible scope for each scope type (zone,
148368// region, global) should be included in the response. For new resource
148369// types added after this field, the flag has no effect as new resource
148370// types will always include every visible scope for each scope type in
148371// response. For resource types which predate this field, if this flag
148372// is omitted or false, only scopes of the scope types where the
148373// resource type is expected to be found will be included.
148374func (c *TargetVpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *TargetVpnGatewaysAggregatedListCall {
148375	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
148376	return c
148377}
148378
148379// MaxResults sets the optional parameter "maxResults": The maximum
148380// number of results per page that should be returned. If the number of
148381// available results is larger than maxResults, Compute Engine returns a
148382// nextPageToken that can be used to get the next page of results in
148383// subsequent list requests. Acceptable values are 0 to 500, inclusive.
148384// (Default: 500)
148385func (c *TargetVpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *TargetVpnGatewaysAggregatedListCall {
148386	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
148387	return c
148388}
148389
148390// OrderBy sets the optional parameter "orderBy": Sorts list results by
148391// a certain order. By default, results are returned in alphanumerical
148392// order based on the resource name.
148393//
148394// You can also sort results in descending order based on the creation
148395// timestamp using orderBy="creationTimestamp desc". This sorts results
148396// based on the creationTimestamp field in reverse chronological order
148397// (newest result first). Use this to sort resources like operations so
148398// that the newest operation is returned first.
148399//
148400// Currently, only sorting by name or creationTimestamp desc is
148401// supported.
148402func (c *TargetVpnGatewaysAggregatedListCall) OrderBy(orderBy string) *TargetVpnGatewaysAggregatedListCall {
148403	c.urlParams_.Set("orderBy", orderBy)
148404	return c
148405}
148406
148407// PageToken sets the optional parameter "pageToken": Specifies a page
148408// token to use. Set pageToken to the nextPageToken returned by a
148409// previous list request to get the next page of results.
148410func (c *TargetVpnGatewaysAggregatedListCall) PageToken(pageToken string) *TargetVpnGatewaysAggregatedListCall {
148411	c.urlParams_.Set("pageToken", pageToken)
148412	return c
148413}
148414
148415// Fields allows partial responses to be retrieved. See
148416// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148417// for more information.
148418func (c *TargetVpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysAggregatedListCall {
148419	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148420	return c
148421}
148422
148423// IfNoneMatch sets the optional parameter which makes the operation
148424// fail if the object's ETag matches the given value. This is useful for
148425// getting updates only after the object has changed since the last
148426// request. Use googleapi.IsNotModified to check whether the response
148427// error from Do is the result of In-None-Match.
148428func (c *TargetVpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysAggregatedListCall {
148429	c.ifNoneMatch_ = entityTag
148430	return c
148431}
148432
148433// Context sets the context to be used in this call's Do method. Any
148434// pending HTTP request will be aborted if the provided context is
148435// canceled.
148436func (c *TargetVpnGatewaysAggregatedListCall) Context(ctx context.Context) *TargetVpnGatewaysAggregatedListCall {
148437	c.ctx_ = ctx
148438	return c
148439}
148440
148441// Header returns an http.Header that can be modified by the caller to
148442// add HTTP headers to the request.
148443func (c *TargetVpnGatewaysAggregatedListCall) Header() http.Header {
148444	if c.header_ == nil {
148445		c.header_ = make(http.Header)
148446	}
148447	return c.header_
148448}
148449
148450func (c *TargetVpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
148451	reqHeaders := make(http.Header)
148452	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148453	for k, v := range c.header_ {
148454		reqHeaders[k] = v
148455	}
148456	reqHeaders.Set("User-Agent", c.s.userAgent())
148457	if c.ifNoneMatch_ != "" {
148458		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148459	}
148460	var body io.Reader = nil
148461	c.urlParams_.Set("alt", alt)
148462	c.urlParams_.Set("prettyPrint", "false")
148463	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/targetVpnGateways")
148464	urls += "?" + c.urlParams_.Encode()
148465	req, err := http.NewRequest("GET", urls, body)
148466	if err != nil {
148467		return nil, err
148468	}
148469	req.Header = reqHeaders
148470	googleapi.Expand(req.URL, map[string]string{
148471		"project": c.project,
148472	})
148473	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148474}
148475
148476// Do executes the "compute.targetVpnGateways.aggregatedList" call.
148477// Exactly one of *TargetVpnGatewayAggregatedList or error will be
148478// non-nil. Any non-2xx status code is an error. Response headers are in
148479// either *TargetVpnGatewayAggregatedList.ServerResponse.Header or (if a
148480// response was returned at all) in error.(*googleapi.Error).Header. Use
148481// googleapi.IsNotModified to check whether the returned error was
148482// because http.StatusNotModified was returned.
148483func (c *TargetVpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayAggregatedList, error) {
148484	gensupport.SetOptions(c.urlParams_, opts...)
148485	res, err := c.doRequest("json")
148486	if res != nil && res.StatusCode == http.StatusNotModified {
148487		if res.Body != nil {
148488			res.Body.Close()
148489		}
148490		return nil, &googleapi.Error{
148491			Code:   res.StatusCode,
148492			Header: res.Header,
148493		}
148494	}
148495	if err != nil {
148496		return nil, err
148497	}
148498	defer googleapi.CloseBody(res)
148499	if err := googleapi.CheckResponse(res); err != nil {
148500		return nil, err
148501	}
148502	ret := &TargetVpnGatewayAggregatedList{
148503		ServerResponse: googleapi.ServerResponse{
148504			Header:         res.Header,
148505			HTTPStatusCode: res.StatusCode,
148506		},
148507	}
148508	target := &ret
148509	if err := gensupport.DecodeResponse(target, res); err != nil {
148510		return nil, err
148511	}
148512	return ret, nil
148513	// {
148514	//   "description": "Retrieves an aggregated list of target VPN gateways.",
148515	//   "httpMethod": "GET",
148516	//   "id": "compute.targetVpnGateways.aggregatedList",
148517	//   "parameterOrder": [
148518	//     "project"
148519	//   ],
148520	//   "parameters": {
148521	//     "filter": {
148522	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
148523	//       "location": "query",
148524	//       "type": "string"
148525	//     },
148526	//     "includeAllScopes": {
148527	//       "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.",
148528	//       "location": "query",
148529	//       "type": "boolean"
148530	//     },
148531	//     "maxResults": {
148532	//       "default": "500",
148533	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
148534	//       "format": "uint32",
148535	//       "location": "query",
148536	//       "minimum": "0",
148537	//       "type": "integer"
148538	//     },
148539	//     "orderBy": {
148540	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
148541	//       "location": "query",
148542	//       "type": "string"
148543	//     },
148544	//     "pageToken": {
148545	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
148546	//       "location": "query",
148547	//       "type": "string"
148548	//     },
148549	//     "project": {
148550	//       "description": "Project ID for this request.",
148551	//       "location": "path",
148552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148553	//       "required": true,
148554	//       "type": "string"
148555	//     }
148556	//   },
148557	//   "path": "{project}/aggregated/targetVpnGateways",
148558	//   "response": {
148559	//     "$ref": "TargetVpnGatewayAggregatedList"
148560	//   },
148561	//   "scopes": [
148562	//     "https://www.googleapis.com/auth/cloud-platform",
148563	//     "https://www.googleapis.com/auth/compute",
148564	//     "https://www.googleapis.com/auth/compute.readonly"
148565	//   ]
148566	// }
148567
148568}
148569
148570// Pages invokes f for each page of results.
148571// A non-nil error returned from f will halt the iteration.
148572// The provided context supersedes any context provided to the Context method.
148573func (c *TargetVpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayAggregatedList) error) error {
148574	c.ctx_ = ctx
148575	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
148576	for {
148577		x, err := c.Do()
148578		if err != nil {
148579			return err
148580		}
148581		if err := f(x); err != nil {
148582			return err
148583		}
148584		if x.NextPageToken == "" {
148585			return nil
148586		}
148587		c.PageToken(x.NextPageToken)
148588	}
148589}
148590
148591// method id "compute.targetVpnGateways.delete":
148592
148593type TargetVpnGatewaysDeleteCall struct {
148594	s                *Service
148595	project          string
148596	region           string
148597	targetVpnGateway string
148598	urlParams_       gensupport.URLParams
148599	ctx_             context.Context
148600	header_          http.Header
148601}
148602
148603// Delete: Deletes the specified target VPN gateway.
148604func (r *TargetVpnGatewaysService) Delete(project string, region string, targetVpnGateway string) *TargetVpnGatewaysDeleteCall {
148605	c := &TargetVpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148606	c.project = project
148607	c.region = region
148608	c.targetVpnGateway = targetVpnGateway
148609	return c
148610}
148611
148612// RequestId sets the optional parameter "requestId": An optional
148613// request ID to identify requests. Specify a unique request ID so that
148614// if you must retry your request, the server will know to ignore the
148615// request if it has already been completed.
148616//
148617// For example, consider a situation where you make an initial request
148618// and the request times out. If you make the request again with the
148619// same request ID, the server can check if original operation with the
148620// same request ID was received, and if so, will ignore the second
148621// request. This prevents clients from accidentally creating duplicate
148622// commitments.
148623//
148624// The request ID must be a valid UUID with the exception that zero UUID
148625// is not supported (00000000-0000-0000-0000-000000000000).
148626func (c *TargetVpnGatewaysDeleteCall) RequestId(requestId string) *TargetVpnGatewaysDeleteCall {
148627	c.urlParams_.Set("requestId", requestId)
148628	return c
148629}
148630
148631// Fields allows partial responses to be retrieved. See
148632// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148633// for more information.
148634func (c *TargetVpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysDeleteCall {
148635	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148636	return c
148637}
148638
148639// Context sets the context to be used in this call's Do method. Any
148640// pending HTTP request will be aborted if the provided context is
148641// canceled.
148642func (c *TargetVpnGatewaysDeleteCall) Context(ctx context.Context) *TargetVpnGatewaysDeleteCall {
148643	c.ctx_ = ctx
148644	return c
148645}
148646
148647// Header returns an http.Header that can be modified by the caller to
148648// add HTTP headers to the request.
148649func (c *TargetVpnGatewaysDeleteCall) Header() http.Header {
148650	if c.header_ == nil {
148651		c.header_ = make(http.Header)
148652	}
148653	return c.header_
148654}
148655
148656func (c *TargetVpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
148657	reqHeaders := make(http.Header)
148658	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148659	for k, v := range c.header_ {
148660		reqHeaders[k] = v
148661	}
148662	reqHeaders.Set("User-Agent", c.s.userAgent())
148663	var body io.Reader = nil
148664	c.urlParams_.Set("alt", alt)
148665	c.urlParams_.Set("prettyPrint", "false")
148666	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
148667	urls += "?" + c.urlParams_.Encode()
148668	req, err := http.NewRequest("DELETE", urls, body)
148669	if err != nil {
148670		return nil, err
148671	}
148672	req.Header = reqHeaders
148673	googleapi.Expand(req.URL, map[string]string{
148674		"project":          c.project,
148675		"region":           c.region,
148676		"targetVpnGateway": c.targetVpnGateway,
148677	})
148678	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148679}
148680
148681// Do executes the "compute.targetVpnGateways.delete" call.
148682// Exactly one of *Operation or error will be non-nil. Any non-2xx
148683// status code is an error. Response headers are in either
148684// *Operation.ServerResponse.Header or (if a response was returned at
148685// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
148686// to check whether the returned error was because
148687// http.StatusNotModified was returned.
148688func (c *TargetVpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
148689	gensupport.SetOptions(c.urlParams_, opts...)
148690	res, err := c.doRequest("json")
148691	if res != nil && res.StatusCode == http.StatusNotModified {
148692		if res.Body != nil {
148693			res.Body.Close()
148694		}
148695		return nil, &googleapi.Error{
148696			Code:   res.StatusCode,
148697			Header: res.Header,
148698		}
148699	}
148700	if err != nil {
148701		return nil, err
148702	}
148703	defer googleapi.CloseBody(res)
148704	if err := googleapi.CheckResponse(res); err != nil {
148705		return nil, err
148706	}
148707	ret := &Operation{
148708		ServerResponse: googleapi.ServerResponse{
148709			Header:         res.Header,
148710			HTTPStatusCode: res.StatusCode,
148711		},
148712	}
148713	target := &ret
148714	if err := gensupport.DecodeResponse(target, res); err != nil {
148715		return nil, err
148716	}
148717	return ret, nil
148718	// {
148719	//   "description": "Deletes the specified target VPN gateway.",
148720	//   "httpMethod": "DELETE",
148721	//   "id": "compute.targetVpnGateways.delete",
148722	//   "parameterOrder": [
148723	//     "project",
148724	//     "region",
148725	//     "targetVpnGateway"
148726	//   ],
148727	//   "parameters": {
148728	//     "project": {
148729	//       "description": "Project ID for this request.",
148730	//       "location": "path",
148731	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148732	//       "required": true,
148733	//       "type": "string"
148734	//     },
148735	//     "region": {
148736	//       "description": "Name of the region for this request.",
148737	//       "location": "path",
148738	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148739	//       "required": true,
148740	//       "type": "string"
148741	//     },
148742	//     "requestId": {
148743	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
148744	//       "location": "query",
148745	//       "type": "string"
148746	//     },
148747	//     "targetVpnGateway": {
148748	//       "description": "Name of the target VPN gateway to delete.",
148749	//       "location": "path",
148750	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148751	//       "required": true,
148752	//       "type": "string"
148753	//     }
148754	//   },
148755	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
148756	//   "response": {
148757	//     "$ref": "Operation"
148758	//   },
148759	//   "scopes": [
148760	//     "https://www.googleapis.com/auth/cloud-platform",
148761	//     "https://www.googleapis.com/auth/compute"
148762	//   ]
148763	// }
148764
148765}
148766
148767// method id "compute.targetVpnGateways.get":
148768
148769type TargetVpnGatewaysGetCall struct {
148770	s                *Service
148771	project          string
148772	region           string
148773	targetVpnGateway string
148774	urlParams_       gensupport.URLParams
148775	ifNoneMatch_     string
148776	ctx_             context.Context
148777	header_          http.Header
148778}
148779
148780// Get: Returns the specified target VPN gateway. Gets a list of
148781// available target VPN gateways by making a list() request.
148782func (r *TargetVpnGatewaysService) Get(project string, region string, targetVpnGateway string) *TargetVpnGatewaysGetCall {
148783	c := &TargetVpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148784	c.project = project
148785	c.region = region
148786	c.targetVpnGateway = targetVpnGateway
148787	return c
148788}
148789
148790// Fields allows partial responses to be retrieved. See
148791// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148792// for more information.
148793func (c *TargetVpnGatewaysGetCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysGetCall {
148794	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148795	return c
148796}
148797
148798// IfNoneMatch sets the optional parameter which makes the operation
148799// fail if the object's ETag matches the given value. This is useful for
148800// getting updates only after the object has changed since the last
148801// request. Use googleapi.IsNotModified to check whether the response
148802// error from Do is the result of In-None-Match.
148803func (c *TargetVpnGatewaysGetCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysGetCall {
148804	c.ifNoneMatch_ = entityTag
148805	return c
148806}
148807
148808// Context sets the context to be used in this call's Do method. Any
148809// pending HTTP request will be aborted if the provided context is
148810// canceled.
148811func (c *TargetVpnGatewaysGetCall) Context(ctx context.Context) *TargetVpnGatewaysGetCall {
148812	c.ctx_ = ctx
148813	return c
148814}
148815
148816// Header returns an http.Header that can be modified by the caller to
148817// add HTTP headers to the request.
148818func (c *TargetVpnGatewaysGetCall) Header() http.Header {
148819	if c.header_ == nil {
148820		c.header_ = make(http.Header)
148821	}
148822	return c.header_
148823}
148824
148825func (c *TargetVpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
148826	reqHeaders := make(http.Header)
148827	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
148828	for k, v := range c.header_ {
148829		reqHeaders[k] = v
148830	}
148831	reqHeaders.Set("User-Agent", c.s.userAgent())
148832	if c.ifNoneMatch_ != "" {
148833		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
148834	}
148835	var body io.Reader = nil
148836	c.urlParams_.Set("alt", alt)
148837	c.urlParams_.Set("prettyPrint", "false")
148838	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}")
148839	urls += "?" + c.urlParams_.Encode()
148840	req, err := http.NewRequest("GET", urls, body)
148841	if err != nil {
148842		return nil, err
148843	}
148844	req.Header = reqHeaders
148845	googleapi.Expand(req.URL, map[string]string{
148846		"project":          c.project,
148847		"region":           c.region,
148848		"targetVpnGateway": c.targetVpnGateway,
148849	})
148850	return gensupport.SendRequest(c.ctx_, c.s.client, req)
148851}
148852
148853// Do executes the "compute.targetVpnGateways.get" call.
148854// Exactly one of *TargetVpnGateway or error will be non-nil. Any
148855// non-2xx status code is an error. Response headers are in either
148856// *TargetVpnGateway.ServerResponse.Header or (if a response was
148857// returned at all) in error.(*googleapi.Error).Header. Use
148858// googleapi.IsNotModified to check whether the returned error was
148859// because http.StatusNotModified was returned.
148860func (c *TargetVpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*TargetVpnGateway, error) {
148861	gensupport.SetOptions(c.urlParams_, opts...)
148862	res, err := c.doRequest("json")
148863	if res != nil && res.StatusCode == http.StatusNotModified {
148864		if res.Body != nil {
148865			res.Body.Close()
148866		}
148867		return nil, &googleapi.Error{
148868			Code:   res.StatusCode,
148869			Header: res.Header,
148870		}
148871	}
148872	if err != nil {
148873		return nil, err
148874	}
148875	defer googleapi.CloseBody(res)
148876	if err := googleapi.CheckResponse(res); err != nil {
148877		return nil, err
148878	}
148879	ret := &TargetVpnGateway{
148880		ServerResponse: googleapi.ServerResponse{
148881			Header:         res.Header,
148882			HTTPStatusCode: res.StatusCode,
148883		},
148884	}
148885	target := &ret
148886	if err := gensupport.DecodeResponse(target, res); err != nil {
148887		return nil, err
148888	}
148889	return ret, nil
148890	// {
148891	//   "description": "Returns the specified target VPN gateway. Gets a list of available target VPN gateways by making a list() request.",
148892	//   "httpMethod": "GET",
148893	//   "id": "compute.targetVpnGateways.get",
148894	//   "parameterOrder": [
148895	//     "project",
148896	//     "region",
148897	//     "targetVpnGateway"
148898	//   ],
148899	//   "parameters": {
148900	//     "project": {
148901	//       "description": "Project ID for this request.",
148902	//       "location": "path",
148903	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
148904	//       "required": true,
148905	//       "type": "string"
148906	//     },
148907	//     "region": {
148908	//       "description": "Name of the region for this request.",
148909	//       "location": "path",
148910	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
148911	//       "required": true,
148912	//       "type": "string"
148913	//     },
148914	//     "targetVpnGateway": {
148915	//       "description": "Name of the target VPN gateway to return.",
148916	//       "location": "path",
148917	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
148918	//       "required": true,
148919	//       "type": "string"
148920	//     }
148921	//   },
148922	//   "path": "{project}/regions/{region}/targetVpnGateways/{targetVpnGateway}",
148923	//   "response": {
148924	//     "$ref": "TargetVpnGateway"
148925	//   },
148926	//   "scopes": [
148927	//     "https://www.googleapis.com/auth/cloud-platform",
148928	//     "https://www.googleapis.com/auth/compute",
148929	//     "https://www.googleapis.com/auth/compute.readonly"
148930	//   ]
148931	// }
148932
148933}
148934
148935// method id "compute.targetVpnGateways.insert":
148936
148937type TargetVpnGatewaysInsertCall struct {
148938	s                *Service
148939	project          string
148940	region           string
148941	targetvpngateway *TargetVpnGateway
148942	urlParams_       gensupport.URLParams
148943	ctx_             context.Context
148944	header_          http.Header
148945}
148946
148947// Insert: Creates a target VPN gateway in the specified project and
148948// region using the data included in the request.
148949func (r *TargetVpnGatewaysService) Insert(project string, region string, targetvpngateway *TargetVpnGateway) *TargetVpnGatewaysInsertCall {
148950	c := &TargetVpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
148951	c.project = project
148952	c.region = region
148953	c.targetvpngateway = targetvpngateway
148954	return c
148955}
148956
148957// RequestId sets the optional parameter "requestId": An optional
148958// request ID to identify requests. Specify a unique request ID so that
148959// if you must retry your request, the server will know to ignore the
148960// request if it has already been completed.
148961//
148962// For example, consider a situation where you make an initial request
148963// and the request times out. If you make the request again with the
148964// same request ID, the server can check if original operation with the
148965// same request ID was received, and if so, will ignore the second
148966// request. This prevents clients from accidentally creating duplicate
148967// commitments.
148968//
148969// The request ID must be a valid UUID with the exception that zero UUID
148970// is not supported (00000000-0000-0000-0000-000000000000).
148971func (c *TargetVpnGatewaysInsertCall) RequestId(requestId string) *TargetVpnGatewaysInsertCall {
148972	c.urlParams_.Set("requestId", requestId)
148973	return c
148974}
148975
148976// Fields allows partial responses to be retrieved. See
148977// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
148978// for more information.
148979func (c *TargetVpnGatewaysInsertCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysInsertCall {
148980	c.urlParams_.Set("fields", googleapi.CombineFields(s))
148981	return c
148982}
148983
148984// Context sets the context to be used in this call's Do method. Any
148985// pending HTTP request will be aborted if the provided context is
148986// canceled.
148987func (c *TargetVpnGatewaysInsertCall) Context(ctx context.Context) *TargetVpnGatewaysInsertCall {
148988	c.ctx_ = ctx
148989	return c
148990}
148991
148992// Header returns an http.Header that can be modified by the caller to
148993// add HTTP headers to the request.
148994func (c *TargetVpnGatewaysInsertCall) Header() http.Header {
148995	if c.header_ == nil {
148996		c.header_ = make(http.Header)
148997	}
148998	return c.header_
148999}
149000
149001func (c *TargetVpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
149002	reqHeaders := make(http.Header)
149003	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149004	for k, v := range c.header_ {
149005		reqHeaders[k] = v
149006	}
149007	reqHeaders.Set("User-Agent", c.s.userAgent())
149008	var body io.Reader = nil
149009	body, err := googleapi.WithoutDataWrapper.JSONReader(c.targetvpngateway)
149010	if err != nil {
149011		return nil, err
149012	}
149013	reqHeaders.Set("Content-Type", "application/json")
149014	c.urlParams_.Set("alt", alt)
149015	c.urlParams_.Set("prettyPrint", "false")
149016	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
149017	urls += "?" + c.urlParams_.Encode()
149018	req, err := http.NewRequest("POST", urls, body)
149019	if err != nil {
149020		return nil, err
149021	}
149022	req.Header = reqHeaders
149023	googleapi.Expand(req.URL, map[string]string{
149024		"project": c.project,
149025		"region":  c.region,
149026	})
149027	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149028}
149029
149030// Do executes the "compute.targetVpnGateways.insert" call.
149031// Exactly one of *Operation or error will be non-nil. Any non-2xx
149032// status code is an error. Response headers are in either
149033// *Operation.ServerResponse.Header or (if a response was returned at
149034// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149035// to check whether the returned error was because
149036// http.StatusNotModified was returned.
149037func (c *TargetVpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149038	gensupport.SetOptions(c.urlParams_, opts...)
149039	res, err := c.doRequest("json")
149040	if res != nil && res.StatusCode == http.StatusNotModified {
149041		if res.Body != nil {
149042			res.Body.Close()
149043		}
149044		return nil, &googleapi.Error{
149045			Code:   res.StatusCode,
149046			Header: res.Header,
149047		}
149048	}
149049	if err != nil {
149050		return nil, err
149051	}
149052	defer googleapi.CloseBody(res)
149053	if err := googleapi.CheckResponse(res); err != nil {
149054		return nil, err
149055	}
149056	ret := &Operation{
149057		ServerResponse: googleapi.ServerResponse{
149058			Header:         res.Header,
149059			HTTPStatusCode: res.StatusCode,
149060		},
149061	}
149062	target := &ret
149063	if err := gensupport.DecodeResponse(target, res); err != nil {
149064		return nil, err
149065	}
149066	return ret, nil
149067	// {
149068	//   "description": "Creates a target VPN gateway in the specified project and region using the data included in the request.",
149069	//   "httpMethod": "POST",
149070	//   "id": "compute.targetVpnGateways.insert",
149071	//   "parameterOrder": [
149072	//     "project",
149073	//     "region"
149074	//   ],
149075	//   "parameters": {
149076	//     "project": {
149077	//       "description": "Project ID for this request.",
149078	//       "location": "path",
149079	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149080	//       "required": true,
149081	//       "type": "string"
149082	//     },
149083	//     "region": {
149084	//       "description": "Name of the region for this request.",
149085	//       "location": "path",
149086	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149087	//       "required": true,
149088	//       "type": "string"
149089	//     },
149090	//     "requestId": {
149091	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149092	//       "location": "query",
149093	//       "type": "string"
149094	//     }
149095	//   },
149096	//   "path": "{project}/regions/{region}/targetVpnGateways",
149097	//   "request": {
149098	//     "$ref": "TargetVpnGateway"
149099	//   },
149100	//   "response": {
149101	//     "$ref": "Operation"
149102	//   },
149103	//   "scopes": [
149104	//     "https://www.googleapis.com/auth/cloud-platform",
149105	//     "https://www.googleapis.com/auth/compute"
149106	//   ]
149107	// }
149108
149109}
149110
149111// method id "compute.targetVpnGateways.list":
149112
149113type TargetVpnGatewaysListCall struct {
149114	s            *Service
149115	project      string
149116	region       string
149117	urlParams_   gensupport.URLParams
149118	ifNoneMatch_ string
149119	ctx_         context.Context
149120	header_      http.Header
149121}
149122
149123// List: Retrieves a list of target VPN gateways available to the
149124// specified project and region.
149125func (r *TargetVpnGatewaysService) List(project string, region string) *TargetVpnGatewaysListCall {
149126	c := &TargetVpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149127	c.project = project
149128	c.region = region
149129	return c
149130}
149131
149132// Filter sets the optional parameter "filter": A filter expression that
149133// filters resources listed in the response. The expression must specify
149134// the field name, a comparison operator, and the value that you want to
149135// use for filtering. The value must be a string, a number, or a
149136// boolean. The comparison operator must be either =, !=, >, or <.
149137//
149138// For example, if you are filtering Compute Engine instances, you can
149139// exclude instances named example-instance by specifying name !=
149140// example-instance.
149141//
149142// You can also filter nested fields. For example, you could specify
149143// scheduling.automaticRestart = false to include instances only if they
149144// are not scheduled for automatic restarts. You can use filtering on
149145// nested fields to filter based on resource labels.
149146//
149147// To filter on multiple expressions, provide each separate expression
149148// within parentheses. For example, (scheduling.automaticRestart = true)
149149// (cpuPlatform = "Intel Skylake"). By default, each expression is an
149150// AND expression. However, you can include AND and OR expressions
149151// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
149152// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
149153// true).
149154func (c *TargetVpnGatewaysListCall) Filter(filter string) *TargetVpnGatewaysListCall {
149155	c.urlParams_.Set("filter", filter)
149156	return c
149157}
149158
149159// MaxResults sets the optional parameter "maxResults": The maximum
149160// number of results per page that should be returned. If the number of
149161// available results is larger than maxResults, Compute Engine returns a
149162// nextPageToken that can be used to get the next page of results in
149163// subsequent list requests. Acceptable values are 0 to 500, inclusive.
149164// (Default: 500)
149165func (c *TargetVpnGatewaysListCall) MaxResults(maxResults int64) *TargetVpnGatewaysListCall {
149166	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149167	return c
149168}
149169
149170// OrderBy sets the optional parameter "orderBy": Sorts list results by
149171// a certain order. By default, results are returned in alphanumerical
149172// order based on the resource name.
149173//
149174// You can also sort results in descending order based on the creation
149175// timestamp using orderBy="creationTimestamp desc". This sorts results
149176// based on the creationTimestamp field in reverse chronological order
149177// (newest result first). Use this to sort resources like operations so
149178// that the newest operation is returned first.
149179//
149180// Currently, only sorting by name or creationTimestamp desc is
149181// supported.
149182func (c *TargetVpnGatewaysListCall) OrderBy(orderBy string) *TargetVpnGatewaysListCall {
149183	c.urlParams_.Set("orderBy", orderBy)
149184	return c
149185}
149186
149187// PageToken sets the optional parameter "pageToken": Specifies a page
149188// token to use. Set pageToken to the nextPageToken returned by a
149189// previous list request to get the next page of results.
149190func (c *TargetVpnGatewaysListCall) PageToken(pageToken string) *TargetVpnGatewaysListCall {
149191	c.urlParams_.Set("pageToken", pageToken)
149192	return c
149193}
149194
149195// Fields allows partial responses to be retrieved. See
149196// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149197// for more information.
149198func (c *TargetVpnGatewaysListCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysListCall {
149199	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149200	return c
149201}
149202
149203// IfNoneMatch sets the optional parameter which makes the operation
149204// fail if the object's ETag matches the given value. This is useful for
149205// getting updates only after the object has changed since the last
149206// request. Use googleapi.IsNotModified to check whether the response
149207// error from Do is the result of In-None-Match.
149208func (c *TargetVpnGatewaysListCall) IfNoneMatch(entityTag string) *TargetVpnGatewaysListCall {
149209	c.ifNoneMatch_ = entityTag
149210	return c
149211}
149212
149213// Context sets the context to be used in this call's Do method. Any
149214// pending HTTP request will be aborted if the provided context is
149215// canceled.
149216func (c *TargetVpnGatewaysListCall) Context(ctx context.Context) *TargetVpnGatewaysListCall {
149217	c.ctx_ = ctx
149218	return c
149219}
149220
149221// Header returns an http.Header that can be modified by the caller to
149222// add HTTP headers to the request.
149223func (c *TargetVpnGatewaysListCall) Header() http.Header {
149224	if c.header_ == nil {
149225		c.header_ = make(http.Header)
149226	}
149227	return c.header_
149228}
149229
149230func (c *TargetVpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
149231	reqHeaders := make(http.Header)
149232	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149233	for k, v := range c.header_ {
149234		reqHeaders[k] = v
149235	}
149236	reqHeaders.Set("User-Agent", c.s.userAgent())
149237	if c.ifNoneMatch_ != "" {
149238		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149239	}
149240	var body io.Reader = nil
149241	c.urlParams_.Set("alt", alt)
149242	c.urlParams_.Set("prettyPrint", "false")
149243	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways")
149244	urls += "?" + c.urlParams_.Encode()
149245	req, err := http.NewRequest("GET", urls, body)
149246	if err != nil {
149247		return nil, err
149248	}
149249	req.Header = reqHeaders
149250	googleapi.Expand(req.URL, map[string]string{
149251		"project": c.project,
149252		"region":  c.region,
149253	})
149254	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149255}
149256
149257// Do executes the "compute.targetVpnGateways.list" call.
149258// Exactly one of *TargetVpnGatewayList or error will be non-nil. Any
149259// non-2xx status code is an error. Response headers are in either
149260// *TargetVpnGatewayList.ServerResponse.Header or (if a response was
149261// returned at all) in error.(*googleapi.Error).Header. Use
149262// googleapi.IsNotModified to check whether the returned error was
149263// because http.StatusNotModified was returned.
149264func (c *TargetVpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*TargetVpnGatewayList, error) {
149265	gensupport.SetOptions(c.urlParams_, opts...)
149266	res, err := c.doRequest("json")
149267	if res != nil && res.StatusCode == http.StatusNotModified {
149268		if res.Body != nil {
149269			res.Body.Close()
149270		}
149271		return nil, &googleapi.Error{
149272			Code:   res.StatusCode,
149273			Header: res.Header,
149274		}
149275	}
149276	if err != nil {
149277		return nil, err
149278	}
149279	defer googleapi.CloseBody(res)
149280	if err := googleapi.CheckResponse(res); err != nil {
149281		return nil, err
149282	}
149283	ret := &TargetVpnGatewayList{
149284		ServerResponse: googleapi.ServerResponse{
149285			Header:         res.Header,
149286			HTTPStatusCode: res.StatusCode,
149287		},
149288	}
149289	target := &ret
149290	if err := gensupport.DecodeResponse(target, res); err != nil {
149291		return nil, err
149292	}
149293	return ret, nil
149294	// {
149295	//   "description": "Retrieves a list of target VPN gateways available to the specified project and region.",
149296	//   "httpMethod": "GET",
149297	//   "id": "compute.targetVpnGateways.list",
149298	//   "parameterOrder": [
149299	//     "project",
149300	//     "region"
149301	//   ],
149302	//   "parameters": {
149303	//     "filter": {
149304	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
149305	//       "location": "query",
149306	//       "type": "string"
149307	//     },
149308	//     "maxResults": {
149309	//       "default": "500",
149310	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
149311	//       "format": "uint32",
149312	//       "location": "query",
149313	//       "minimum": "0",
149314	//       "type": "integer"
149315	//     },
149316	//     "orderBy": {
149317	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
149318	//       "location": "query",
149319	//       "type": "string"
149320	//     },
149321	//     "pageToken": {
149322	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
149323	//       "location": "query",
149324	//       "type": "string"
149325	//     },
149326	//     "project": {
149327	//       "description": "Project ID for this request.",
149328	//       "location": "path",
149329	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149330	//       "required": true,
149331	//       "type": "string"
149332	//     },
149333	//     "region": {
149334	//       "description": "Name of the region for this request.",
149335	//       "location": "path",
149336	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149337	//       "required": true,
149338	//       "type": "string"
149339	//     }
149340	//   },
149341	//   "path": "{project}/regions/{region}/targetVpnGateways",
149342	//   "response": {
149343	//     "$ref": "TargetVpnGatewayList"
149344	//   },
149345	//   "scopes": [
149346	//     "https://www.googleapis.com/auth/cloud-platform",
149347	//     "https://www.googleapis.com/auth/compute",
149348	//     "https://www.googleapis.com/auth/compute.readonly"
149349	//   ]
149350	// }
149351
149352}
149353
149354// Pages invokes f for each page of results.
149355// A non-nil error returned from f will halt the iteration.
149356// The provided context supersedes any context provided to the Context method.
149357func (c *TargetVpnGatewaysListCall) Pages(ctx context.Context, f func(*TargetVpnGatewayList) error) error {
149358	c.ctx_ = ctx
149359	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149360	for {
149361		x, err := c.Do()
149362		if err != nil {
149363			return err
149364		}
149365		if err := f(x); err != nil {
149366			return err
149367		}
149368		if x.NextPageToken == "" {
149369			return nil
149370		}
149371		c.PageToken(x.NextPageToken)
149372	}
149373}
149374
149375// method id "compute.targetVpnGateways.setLabels":
149376
149377type TargetVpnGatewaysSetLabelsCall struct {
149378	s                      *Service
149379	project                string
149380	region                 string
149381	resource               string
149382	regionsetlabelsrequest *RegionSetLabelsRequest
149383	urlParams_             gensupport.URLParams
149384	ctx_                   context.Context
149385	header_                http.Header
149386}
149387
149388// SetLabels: Sets the labels on a TargetVpnGateway. To learn more about
149389// labels, read the Labeling Resources documentation.
149390func (r *TargetVpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *TargetVpnGatewaysSetLabelsCall {
149391	c := &TargetVpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149392	c.project = project
149393	c.region = region
149394	c.resource = resource
149395	c.regionsetlabelsrequest = regionsetlabelsrequest
149396	return c
149397}
149398
149399// RequestId sets the optional parameter "requestId": An optional
149400// request ID to identify requests. Specify a unique request ID so that
149401// if you must retry your request, the server will know to ignore the
149402// request if it has already been completed.
149403//
149404// For example, consider a situation where you make an initial request
149405// and the request times out. If you make the request again with the
149406// same request ID, the server can check if original operation with the
149407// same request ID was received, and if so, will ignore the second
149408// request. This prevents clients from accidentally creating duplicate
149409// commitments.
149410//
149411// The request ID must be a valid UUID with the exception that zero UUID
149412// is not supported (00000000-0000-0000-0000-000000000000).
149413func (c *TargetVpnGatewaysSetLabelsCall) RequestId(requestId string) *TargetVpnGatewaysSetLabelsCall {
149414	c.urlParams_.Set("requestId", requestId)
149415	return c
149416}
149417
149418// Fields allows partial responses to be retrieved. See
149419// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149420// for more information.
149421func (c *TargetVpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysSetLabelsCall {
149422	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149423	return c
149424}
149425
149426// Context sets the context to be used in this call's Do method. Any
149427// pending HTTP request will be aborted if the provided context is
149428// canceled.
149429func (c *TargetVpnGatewaysSetLabelsCall) Context(ctx context.Context) *TargetVpnGatewaysSetLabelsCall {
149430	c.ctx_ = ctx
149431	return c
149432}
149433
149434// Header returns an http.Header that can be modified by the caller to
149435// add HTTP headers to the request.
149436func (c *TargetVpnGatewaysSetLabelsCall) Header() http.Header {
149437	if c.header_ == nil {
149438		c.header_ = make(http.Header)
149439	}
149440	return c.header_
149441}
149442
149443func (c *TargetVpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
149444	reqHeaders := make(http.Header)
149445	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149446	for k, v := range c.header_ {
149447		reqHeaders[k] = v
149448	}
149449	reqHeaders.Set("User-Agent", c.s.userAgent())
149450	var body io.Reader = nil
149451	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
149452	if err != nil {
149453		return nil, err
149454	}
149455	reqHeaders.Set("Content-Type", "application/json")
149456	c.urlParams_.Set("alt", alt)
149457	c.urlParams_.Set("prettyPrint", "false")
149458	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels")
149459	urls += "?" + c.urlParams_.Encode()
149460	req, err := http.NewRequest("POST", urls, body)
149461	if err != nil {
149462		return nil, err
149463	}
149464	req.Header = reqHeaders
149465	googleapi.Expand(req.URL, map[string]string{
149466		"project":  c.project,
149467		"region":   c.region,
149468		"resource": c.resource,
149469	})
149470	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149471}
149472
149473// Do executes the "compute.targetVpnGateways.setLabels" call.
149474// Exactly one of *Operation or error will be non-nil. Any non-2xx
149475// status code is an error. Response headers are in either
149476// *Operation.ServerResponse.Header or (if a response was returned at
149477// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
149478// to check whether the returned error was because
149479// http.StatusNotModified was returned.
149480func (c *TargetVpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
149481	gensupport.SetOptions(c.urlParams_, opts...)
149482	res, err := c.doRequest("json")
149483	if res != nil && res.StatusCode == http.StatusNotModified {
149484		if res.Body != nil {
149485			res.Body.Close()
149486		}
149487		return nil, &googleapi.Error{
149488			Code:   res.StatusCode,
149489			Header: res.Header,
149490		}
149491	}
149492	if err != nil {
149493		return nil, err
149494	}
149495	defer googleapi.CloseBody(res)
149496	if err := googleapi.CheckResponse(res); err != nil {
149497		return nil, err
149498	}
149499	ret := &Operation{
149500		ServerResponse: googleapi.ServerResponse{
149501			Header:         res.Header,
149502			HTTPStatusCode: res.StatusCode,
149503		},
149504	}
149505	target := &ret
149506	if err := gensupport.DecodeResponse(target, res); err != nil {
149507		return nil, err
149508	}
149509	return ret, nil
149510	// {
149511	//   "description": "Sets the labels on a TargetVpnGateway. To learn more about labels, read the Labeling Resources documentation.",
149512	//   "httpMethod": "POST",
149513	//   "id": "compute.targetVpnGateways.setLabels",
149514	//   "parameterOrder": [
149515	//     "project",
149516	//     "region",
149517	//     "resource"
149518	//   ],
149519	//   "parameters": {
149520	//     "project": {
149521	//       "description": "Project ID for this request.",
149522	//       "location": "path",
149523	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149524	//       "required": true,
149525	//       "type": "string"
149526	//     },
149527	//     "region": {
149528	//       "description": "The region for this request.",
149529	//       "location": "path",
149530	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149531	//       "required": true,
149532	//       "type": "string"
149533	//     },
149534	//     "requestId": {
149535	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
149536	//       "location": "query",
149537	//       "type": "string"
149538	//     },
149539	//     "resource": {
149540	//       "description": "Name or id of the resource for this request.",
149541	//       "location": "path",
149542	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149543	//       "required": true,
149544	//       "type": "string"
149545	//     }
149546	//   },
149547	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/setLabels",
149548	//   "request": {
149549	//     "$ref": "RegionSetLabelsRequest"
149550	//   },
149551	//   "response": {
149552	//     "$ref": "Operation"
149553	//   },
149554	//   "scopes": [
149555	//     "https://www.googleapis.com/auth/cloud-platform",
149556	//     "https://www.googleapis.com/auth/compute"
149557	//   ]
149558	// }
149559
149560}
149561
149562// method id "compute.targetVpnGateways.testIamPermissions":
149563
149564type TargetVpnGatewaysTestIamPermissionsCall struct {
149565	s                      *Service
149566	project                string
149567	region                 string
149568	resource               string
149569	testpermissionsrequest *TestPermissionsRequest
149570	urlParams_             gensupport.URLParams
149571	ctx_                   context.Context
149572	header_                http.Header
149573}
149574
149575// TestIamPermissions: Returns permissions that a caller has on the
149576// specified resource.
149577func (r *TargetVpnGatewaysService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *TargetVpnGatewaysTestIamPermissionsCall {
149578	c := &TargetVpnGatewaysTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149579	c.project = project
149580	c.region = region
149581	c.resource = resource
149582	c.testpermissionsrequest = testpermissionsrequest
149583	return c
149584}
149585
149586// Fields allows partial responses to be retrieved. See
149587// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149588// for more information.
149589func (c *TargetVpnGatewaysTestIamPermissionsCall) Fields(s ...googleapi.Field) *TargetVpnGatewaysTestIamPermissionsCall {
149590	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149591	return c
149592}
149593
149594// Context sets the context to be used in this call's Do method. Any
149595// pending HTTP request will be aborted if the provided context is
149596// canceled.
149597func (c *TargetVpnGatewaysTestIamPermissionsCall) Context(ctx context.Context) *TargetVpnGatewaysTestIamPermissionsCall {
149598	c.ctx_ = ctx
149599	return c
149600}
149601
149602// Header returns an http.Header that can be modified by the caller to
149603// add HTTP headers to the request.
149604func (c *TargetVpnGatewaysTestIamPermissionsCall) Header() http.Header {
149605	if c.header_ == nil {
149606		c.header_ = make(http.Header)
149607	}
149608	return c.header_
149609}
149610
149611func (c *TargetVpnGatewaysTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
149612	reqHeaders := make(http.Header)
149613	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149614	for k, v := range c.header_ {
149615		reqHeaders[k] = v
149616	}
149617	reqHeaders.Set("User-Agent", c.s.userAgent())
149618	var body io.Reader = nil
149619	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
149620	if err != nil {
149621		return nil, err
149622	}
149623	reqHeaders.Set("Content-Type", "application/json")
149624	c.urlParams_.Set("alt", alt)
149625	c.urlParams_.Set("prettyPrint", "false")
149626	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions")
149627	urls += "?" + c.urlParams_.Encode()
149628	req, err := http.NewRequest("POST", urls, body)
149629	if err != nil {
149630		return nil, err
149631	}
149632	req.Header = reqHeaders
149633	googleapi.Expand(req.URL, map[string]string{
149634		"project":  c.project,
149635		"region":   c.region,
149636		"resource": c.resource,
149637	})
149638	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149639}
149640
149641// Do executes the "compute.targetVpnGateways.testIamPermissions" call.
149642// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
149643// non-2xx status code is an error. Response headers are in either
149644// *TestPermissionsResponse.ServerResponse.Header or (if a response was
149645// returned at all) in error.(*googleapi.Error).Header. Use
149646// googleapi.IsNotModified to check whether the returned error was
149647// because http.StatusNotModified was returned.
149648func (c *TargetVpnGatewaysTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
149649	gensupport.SetOptions(c.urlParams_, opts...)
149650	res, err := c.doRequest("json")
149651	if res != nil && res.StatusCode == http.StatusNotModified {
149652		if res.Body != nil {
149653			res.Body.Close()
149654		}
149655		return nil, &googleapi.Error{
149656			Code:   res.StatusCode,
149657			Header: res.Header,
149658		}
149659	}
149660	if err != nil {
149661		return nil, err
149662	}
149663	defer googleapi.CloseBody(res)
149664	if err := googleapi.CheckResponse(res); err != nil {
149665		return nil, err
149666	}
149667	ret := &TestPermissionsResponse{
149668		ServerResponse: googleapi.ServerResponse{
149669			Header:         res.Header,
149670			HTTPStatusCode: res.StatusCode,
149671		},
149672	}
149673	target := &ret
149674	if err := gensupport.DecodeResponse(target, res); err != nil {
149675		return nil, err
149676	}
149677	return ret, nil
149678	// {
149679	//   "description": "Returns permissions that a caller has on the specified resource.",
149680	//   "httpMethod": "POST",
149681	//   "id": "compute.targetVpnGateways.testIamPermissions",
149682	//   "parameterOrder": [
149683	//     "project",
149684	//     "region",
149685	//     "resource"
149686	//   ],
149687	//   "parameters": {
149688	//     "project": {
149689	//       "description": "Project ID for this request.",
149690	//       "location": "path",
149691	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149692	//       "required": true,
149693	//       "type": "string"
149694	//     },
149695	//     "region": {
149696	//       "description": "The name of the region for this request.",
149697	//       "location": "path",
149698	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
149699	//       "required": true,
149700	//       "type": "string"
149701	//     },
149702	//     "resource": {
149703	//       "description": "Name or id of the resource for this request.",
149704	//       "location": "path",
149705	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
149706	//       "required": true,
149707	//       "type": "string"
149708	//     }
149709	//   },
149710	//   "path": "{project}/regions/{region}/targetVpnGateways/{resource}/testIamPermissions",
149711	//   "request": {
149712	//     "$ref": "TestPermissionsRequest"
149713	//   },
149714	//   "response": {
149715	//     "$ref": "TestPermissionsResponse"
149716	//   },
149717	//   "scopes": [
149718	//     "https://www.googleapis.com/auth/cloud-platform",
149719	//     "https://www.googleapis.com/auth/compute",
149720	//     "https://www.googleapis.com/auth/compute.readonly"
149721	//   ]
149722	// }
149723
149724}
149725
149726// method id "compute.urlMaps.aggregatedList":
149727
149728type UrlMapsAggregatedListCall struct {
149729	s            *Service
149730	project      string
149731	urlParams_   gensupport.URLParams
149732	ifNoneMatch_ string
149733	ctx_         context.Context
149734	header_      http.Header
149735}
149736
149737// AggregatedList: Retrieves the list of all UrlMap resources, regional
149738// and global, available to the specified project.
149739func (r *UrlMapsService) AggregatedList(project string) *UrlMapsAggregatedListCall {
149740	c := &UrlMapsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
149741	c.project = project
149742	return c
149743}
149744
149745// Filter sets the optional parameter "filter": A filter expression that
149746// filters resources listed in the response. The expression must specify
149747// the field name, a comparison operator, and the value that you want to
149748// use for filtering. The value must be a string, a number, or a
149749// boolean. The comparison operator must be either =, !=, >, or <.
149750//
149751// For example, if you are filtering Compute Engine instances, you can
149752// exclude instances named example-instance by specifying name !=
149753// example-instance.
149754//
149755// You can also filter nested fields. For example, you could specify
149756// scheduling.automaticRestart = false to include instances only if they
149757// are not scheduled for automatic restarts. You can use filtering on
149758// nested fields to filter based on resource labels.
149759//
149760// To filter on multiple expressions, provide each separate expression
149761// within parentheses. For example, (scheduling.automaticRestart = true)
149762// (cpuPlatform = "Intel Skylake"). By default, each expression is an
149763// AND expression. However, you can include AND and OR expressions
149764// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
149765// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
149766// true).
149767func (c *UrlMapsAggregatedListCall) Filter(filter string) *UrlMapsAggregatedListCall {
149768	c.urlParams_.Set("filter", filter)
149769	return c
149770}
149771
149772// IncludeAllScopes sets the optional parameter "includeAllScopes":
149773// Indicates whether every visible scope for each scope type (zone,
149774// region, global) should be included in the response. For new resource
149775// types added after this field, the flag has no effect as new resource
149776// types will always include every visible scope for each scope type in
149777// response. For resource types which predate this field, if this flag
149778// is omitted or false, only scopes of the scope types where the
149779// resource type is expected to be found will be included.
149780func (c *UrlMapsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *UrlMapsAggregatedListCall {
149781	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
149782	return c
149783}
149784
149785// MaxResults sets the optional parameter "maxResults": The maximum
149786// number of results per page that should be returned. If the number of
149787// available results is larger than maxResults, Compute Engine returns a
149788// nextPageToken that can be used to get the next page of results in
149789// subsequent list requests. Acceptable values are 0 to 500, inclusive.
149790// (Default: 500)
149791func (c *UrlMapsAggregatedListCall) MaxResults(maxResults int64) *UrlMapsAggregatedListCall {
149792	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
149793	return c
149794}
149795
149796// OrderBy sets the optional parameter "orderBy": Sorts list results by
149797// a certain order. By default, results are returned in alphanumerical
149798// order based on the resource name.
149799//
149800// You can also sort results in descending order based on the creation
149801// timestamp using orderBy="creationTimestamp desc". This sorts results
149802// based on the creationTimestamp field in reverse chronological order
149803// (newest result first). Use this to sort resources like operations so
149804// that the newest operation is returned first.
149805//
149806// Currently, only sorting by name or creationTimestamp desc is
149807// supported.
149808func (c *UrlMapsAggregatedListCall) OrderBy(orderBy string) *UrlMapsAggregatedListCall {
149809	c.urlParams_.Set("orderBy", orderBy)
149810	return c
149811}
149812
149813// PageToken sets the optional parameter "pageToken": Specifies a page
149814// token to use. Set pageToken to the nextPageToken returned by a
149815// previous list request to get the next page of results.
149816func (c *UrlMapsAggregatedListCall) PageToken(pageToken string) *UrlMapsAggregatedListCall {
149817	c.urlParams_.Set("pageToken", pageToken)
149818	return c
149819}
149820
149821// Fields allows partial responses to be retrieved. See
149822// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
149823// for more information.
149824func (c *UrlMapsAggregatedListCall) Fields(s ...googleapi.Field) *UrlMapsAggregatedListCall {
149825	c.urlParams_.Set("fields", googleapi.CombineFields(s))
149826	return c
149827}
149828
149829// IfNoneMatch sets the optional parameter which makes the operation
149830// fail if the object's ETag matches the given value. This is useful for
149831// getting updates only after the object has changed since the last
149832// request. Use googleapi.IsNotModified to check whether the response
149833// error from Do is the result of In-None-Match.
149834func (c *UrlMapsAggregatedListCall) IfNoneMatch(entityTag string) *UrlMapsAggregatedListCall {
149835	c.ifNoneMatch_ = entityTag
149836	return c
149837}
149838
149839// Context sets the context to be used in this call's Do method. Any
149840// pending HTTP request will be aborted if the provided context is
149841// canceled.
149842func (c *UrlMapsAggregatedListCall) Context(ctx context.Context) *UrlMapsAggregatedListCall {
149843	c.ctx_ = ctx
149844	return c
149845}
149846
149847// Header returns an http.Header that can be modified by the caller to
149848// add HTTP headers to the request.
149849func (c *UrlMapsAggregatedListCall) Header() http.Header {
149850	if c.header_ == nil {
149851		c.header_ = make(http.Header)
149852	}
149853	return c.header_
149854}
149855
149856func (c *UrlMapsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
149857	reqHeaders := make(http.Header)
149858	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
149859	for k, v := range c.header_ {
149860		reqHeaders[k] = v
149861	}
149862	reqHeaders.Set("User-Agent", c.s.userAgent())
149863	if c.ifNoneMatch_ != "" {
149864		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
149865	}
149866	var body io.Reader = nil
149867	c.urlParams_.Set("alt", alt)
149868	c.urlParams_.Set("prettyPrint", "false")
149869	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/urlMaps")
149870	urls += "?" + c.urlParams_.Encode()
149871	req, err := http.NewRequest("GET", urls, body)
149872	if err != nil {
149873		return nil, err
149874	}
149875	req.Header = reqHeaders
149876	googleapi.Expand(req.URL, map[string]string{
149877		"project": c.project,
149878	})
149879	return gensupport.SendRequest(c.ctx_, c.s.client, req)
149880}
149881
149882// Do executes the "compute.urlMaps.aggregatedList" call.
149883// Exactly one of *UrlMapsAggregatedList or error will be non-nil. Any
149884// non-2xx status code is an error. Response headers are in either
149885// *UrlMapsAggregatedList.ServerResponse.Header or (if a response was
149886// returned at all) in error.(*googleapi.Error).Header. Use
149887// googleapi.IsNotModified to check whether the returned error was
149888// because http.StatusNotModified was returned.
149889func (c *UrlMapsAggregatedListCall) Do(opts ...googleapi.CallOption) (*UrlMapsAggregatedList, error) {
149890	gensupport.SetOptions(c.urlParams_, opts...)
149891	res, err := c.doRequest("json")
149892	if res != nil && res.StatusCode == http.StatusNotModified {
149893		if res.Body != nil {
149894			res.Body.Close()
149895		}
149896		return nil, &googleapi.Error{
149897			Code:   res.StatusCode,
149898			Header: res.Header,
149899		}
149900	}
149901	if err != nil {
149902		return nil, err
149903	}
149904	defer googleapi.CloseBody(res)
149905	if err := googleapi.CheckResponse(res); err != nil {
149906		return nil, err
149907	}
149908	ret := &UrlMapsAggregatedList{
149909		ServerResponse: googleapi.ServerResponse{
149910			Header:         res.Header,
149911			HTTPStatusCode: res.StatusCode,
149912		},
149913	}
149914	target := &ret
149915	if err := gensupport.DecodeResponse(target, res); err != nil {
149916		return nil, err
149917	}
149918	return ret, nil
149919	// {
149920	//   "description": "Retrieves the list of all UrlMap resources, regional and global, available to the specified project.",
149921	//   "httpMethod": "GET",
149922	//   "id": "compute.urlMaps.aggregatedList",
149923	//   "parameterOrder": [
149924	//     "project"
149925	//   ],
149926	//   "parameters": {
149927	//     "filter": {
149928	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
149929	//       "location": "query",
149930	//       "type": "string"
149931	//     },
149932	//     "includeAllScopes": {
149933	//       "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.",
149934	//       "location": "query",
149935	//       "type": "boolean"
149936	//     },
149937	//     "maxResults": {
149938	//       "default": "500",
149939	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
149940	//       "format": "uint32",
149941	//       "location": "query",
149942	//       "minimum": "0",
149943	//       "type": "integer"
149944	//     },
149945	//     "orderBy": {
149946	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
149947	//       "location": "query",
149948	//       "type": "string"
149949	//     },
149950	//     "pageToken": {
149951	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
149952	//       "location": "query",
149953	//       "type": "string"
149954	//     },
149955	//     "project": {
149956	//       "description": "Name of the project scoping this request.",
149957	//       "location": "path",
149958	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
149959	//       "required": true,
149960	//       "type": "string"
149961	//     }
149962	//   },
149963	//   "path": "{project}/aggregated/urlMaps",
149964	//   "response": {
149965	//     "$ref": "UrlMapsAggregatedList"
149966	//   },
149967	//   "scopes": [
149968	//     "https://www.googleapis.com/auth/cloud-platform",
149969	//     "https://www.googleapis.com/auth/compute",
149970	//     "https://www.googleapis.com/auth/compute.readonly"
149971	//   ]
149972	// }
149973
149974}
149975
149976// Pages invokes f for each page of results.
149977// A non-nil error returned from f will halt the iteration.
149978// The provided context supersedes any context provided to the Context method.
149979func (c *UrlMapsAggregatedListCall) Pages(ctx context.Context, f func(*UrlMapsAggregatedList) error) error {
149980	c.ctx_ = ctx
149981	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
149982	for {
149983		x, err := c.Do()
149984		if err != nil {
149985			return err
149986		}
149987		if err := f(x); err != nil {
149988			return err
149989		}
149990		if x.NextPageToken == "" {
149991			return nil
149992		}
149993		c.PageToken(x.NextPageToken)
149994	}
149995}
149996
149997// method id "compute.urlMaps.delete":
149998
149999type UrlMapsDeleteCall struct {
150000	s          *Service
150001	project    string
150002	urlMap     string
150003	urlParams_ gensupport.URLParams
150004	ctx_       context.Context
150005	header_    http.Header
150006}
150007
150008// Delete: Deletes the specified UrlMap resource.
150009// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/delete
150010func (r *UrlMapsService) Delete(project string, urlMap string) *UrlMapsDeleteCall {
150011	c := &UrlMapsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150012	c.project = project
150013	c.urlMap = urlMap
150014	return c
150015}
150016
150017// RequestId sets the optional parameter "requestId": An optional
150018// request ID to identify requests. Specify a unique request ID so that
150019// if you must retry your request, the server will know to ignore the
150020// request if it has already been completed.
150021//
150022// For example, consider a situation where you make an initial request
150023// and the request times out. If you make the request again with the
150024// same request ID, the server can check if original operation with the
150025// same request ID was received, and if so, will ignore the second
150026// request. This prevents clients from accidentally creating duplicate
150027// commitments.
150028//
150029// The request ID must be a valid UUID with the exception that zero UUID
150030// is not supported (00000000-0000-0000-0000-000000000000).
150031func (c *UrlMapsDeleteCall) RequestId(requestId string) *UrlMapsDeleteCall {
150032	c.urlParams_.Set("requestId", requestId)
150033	return c
150034}
150035
150036// Fields allows partial responses to be retrieved. See
150037// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150038// for more information.
150039func (c *UrlMapsDeleteCall) Fields(s ...googleapi.Field) *UrlMapsDeleteCall {
150040	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150041	return c
150042}
150043
150044// Context sets the context to be used in this call's Do method. Any
150045// pending HTTP request will be aborted if the provided context is
150046// canceled.
150047func (c *UrlMapsDeleteCall) Context(ctx context.Context) *UrlMapsDeleteCall {
150048	c.ctx_ = ctx
150049	return c
150050}
150051
150052// Header returns an http.Header that can be modified by the caller to
150053// add HTTP headers to the request.
150054func (c *UrlMapsDeleteCall) Header() http.Header {
150055	if c.header_ == nil {
150056		c.header_ = make(http.Header)
150057	}
150058	return c.header_
150059}
150060
150061func (c *UrlMapsDeleteCall) doRequest(alt string) (*http.Response, error) {
150062	reqHeaders := make(http.Header)
150063	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150064	for k, v := range c.header_ {
150065		reqHeaders[k] = v
150066	}
150067	reqHeaders.Set("User-Agent", c.s.userAgent())
150068	var body io.Reader = nil
150069	c.urlParams_.Set("alt", alt)
150070	c.urlParams_.Set("prettyPrint", "false")
150071	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
150072	urls += "?" + c.urlParams_.Encode()
150073	req, err := http.NewRequest("DELETE", urls, body)
150074	if err != nil {
150075		return nil, err
150076	}
150077	req.Header = reqHeaders
150078	googleapi.Expand(req.URL, map[string]string{
150079		"project": c.project,
150080		"urlMap":  c.urlMap,
150081	})
150082	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150083}
150084
150085// Do executes the "compute.urlMaps.delete" call.
150086// Exactly one of *Operation or error will be non-nil. Any non-2xx
150087// status code is an error. Response headers are in either
150088// *Operation.ServerResponse.Header or (if a response was returned at
150089// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150090// to check whether the returned error was because
150091// http.StatusNotModified was returned.
150092func (c *UrlMapsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150093	gensupport.SetOptions(c.urlParams_, opts...)
150094	res, err := c.doRequest("json")
150095	if res != nil && res.StatusCode == http.StatusNotModified {
150096		if res.Body != nil {
150097			res.Body.Close()
150098		}
150099		return nil, &googleapi.Error{
150100			Code:   res.StatusCode,
150101			Header: res.Header,
150102		}
150103	}
150104	if err != nil {
150105		return nil, err
150106	}
150107	defer googleapi.CloseBody(res)
150108	if err := googleapi.CheckResponse(res); err != nil {
150109		return nil, err
150110	}
150111	ret := &Operation{
150112		ServerResponse: googleapi.ServerResponse{
150113			Header:         res.Header,
150114			HTTPStatusCode: res.StatusCode,
150115		},
150116	}
150117	target := &ret
150118	if err := gensupport.DecodeResponse(target, res); err != nil {
150119		return nil, err
150120	}
150121	return ret, nil
150122	// {
150123	//   "description": "Deletes the specified UrlMap resource.",
150124	//   "httpMethod": "DELETE",
150125	//   "id": "compute.urlMaps.delete",
150126	//   "parameterOrder": [
150127	//     "project",
150128	//     "urlMap"
150129	//   ],
150130	//   "parameters": {
150131	//     "project": {
150132	//       "description": "Project ID for this request.",
150133	//       "location": "path",
150134	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150135	//       "required": true,
150136	//       "type": "string"
150137	//     },
150138	//     "requestId": {
150139	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150140	//       "location": "query",
150141	//       "type": "string"
150142	//     },
150143	//     "urlMap": {
150144	//       "description": "Name of the UrlMap resource to delete.",
150145	//       "location": "path",
150146	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150147	//       "required": true,
150148	//       "type": "string"
150149	//     }
150150	//   },
150151	//   "path": "{project}/global/urlMaps/{urlMap}",
150152	//   "response": {
150153	//     "$ref": "Operation"
150154	//   },
150155	//   "scopes": [
150156	//     "https://www.googleapis.com/auth/cloud-platform",
150157	//     "https://www.googleapis.com/auth/compute"
150158	//   ]
150159	// }
150160
150161}
150162
150163// method id "compute.urlMaps.get":
150164
150165type UrlMapsGetCall struct {
150166	s            *Service
150167	project      string
150168	urlMap       string
150169	urlParams_   gensupport.URLParams
150170	ifNoneMatch_ string
150171	ctx_         context.Context
150172	header_      http.Header
150173}
150174
150175// Get: Returns the specified UrlMap resource. Gets a list of available
150176// URL maps by making a list() request.
150177// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/get
150178func (r *UrlMapsService) Get(project string, urlMap string) *UrlMapsGetCall {
150179	c := &UrlMapsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150180	c.project = project
150181	c.urlMap = urlMap
150182	return c
150183}
150184
150185// Fields allows partial responses to be retrieved. See
150186// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150187// for more information.
150188func (c *UrlMapsGetCall) Fields(s ...googleapi.Field) *UrlMapsGetCall {
150189	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150190	return c
150191}
150192
150193// IfNoneMatch sets the optional parameter which makes the operation
150194// fail if the object's ETag matches the given value. This is useful for
150195// getting updates only after the object has changed since the last
150196// request. Use googleapi.IsNotModified to check whether the response
150197// error from Do is the result of In-None-Match.
150198func (c *UrlMapsGetCall) IfNoneMatch(entityTag string) *UrlMapsGetCall {
150199	c.ifNoneMatch_ = entityTag
150200	return c
150201}
150202
150203// Context sets the context to be used in this call's Do method. Any
150204// pending HTTP request will be aborted if the provided context is
150205// canceled.
150206func (c *UrlMapsGetCall) Context(ctx context.Context) *UrlMapsGetCall {
150207	c.ctx_ = ctx
150208	return c
150209}
150210
150211// Header returns an http.Header that can be modified by the caller to
150212// add HTTP headers to the request.
150213func (c *UrlMapsGetCall) Header() http.Header {
150214	if c.header_ == nil {
150215		c.header_ = make(http.Header)
150216	}
150217	return c.header_
150218}
150219
150220func (c *UrlMapsGetCall) doRequest(alt string) (*http.Response, error) {
150221	reqHeaders := make(http.Header)
150222	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150223	for k, v := range c.header_ {
150224		reqHeaders[k] = v
150225	}
150226	reqHeaders.Set("User-Agent", c.s.userAgent())
150227	if c.ifNoneMatch_ != "" {
150228		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150229	}
150230	var body io.Reader = nil
150231	c.urlParams_.Set("alt", alt)
150232	c.urlParams_.Set("prettyPrint", "false")
150233	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
150234	urls += "?" + c.urlParams_.Encode()
150235	req, err := http.NewRequest("GET", urls, body)
150236	if err != nil {
150237		return nil, err
150238	}
150239	req.Header = reqHeaders
150240	googleapi.Expand(req.URL, map[string]string{
150241		"project": c.project,
150242		"urlMap":  c.urlMap,
150243	})
150244	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150245}
150246
150247// Do executes the "compute.urlMaps.get" call.
150248// Exactly one of *UrlMap or error will be non-nil. Any non-2xx status
150249// code is an error. Response headers are in either
150250// *UrlMap.ServerResponse.Header or (if a response was returned at all)
150251// in error.(*googleapi.Error).Header. Use googleapi.IsNotModified to
150252// check whether the returned error was because http.StatusNotModified
150253// was returned.
150254func (c *UrlMapsGetCall) Do(opts ...googleapi.CallOption) (*UrlMap, error) {
150255	gensupport.SetOptions(c.urlParams_, opts...)
150256	res, err := c.doRequest("json")
150257	if res != nil && res.StatusCode == http.StatusNotModified {
150258		if res.Body != nil {
150259			res.Body.Close()
150260		}
150261		return nil, &googleapi.Error{
150262			Code:   res.StatusCode,
150263			Header: res.Header,
150264		}
150265	}
150266	if err != nil {
150267		return nil, err
150268	}
150269	defer googleapi.CloseBody(res)
150270	if err := googleapi.CheckResponse(res); err != nil {
150271		return nil, err
150272	}
150273	ret := &UrlMap{
150274		ServerResponse: googleapi.ServerResponse{
150275			Header:         res.Header,
150276			HTTPStatusCode: res.StatusCode,
150277		},
150278	}
150279	target := &ret
150280	if err := gensupport.DecodeResponse(target, res); err != nil {
150281		return nil, err
150282	}
150283	return ret, nil
150284	// {
150285	//   "description": "Returns the specified UrlMap resource. Gets a list of available URL maps by making a list() request.",
150286	//   "httpMethod": "GET",
150287	//   "id": "compute.urlMaps.get",
150288	//   "parameterOrder": [
150289	//     "project",
150290	//     "urlMap"
150291	//   ],
150292	//   "parameters": {
150293	//     "project": {
150294	//       "description": "Project ID for this request.",
150295	//       "location": "path",
150296	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150297	//       "required": true,
150298	//       "type": "string"
150299	//     },
150300	//     "urlMap": {
150301	//       "description": "Name of the UrlMap resource to return.",
150302	//       "location": "path",
150303	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150304	//       "required": true,
150305	//       "type": "string"
150306	//     }
150307	//   },
150308	//   "path": "{project}/global/urlMaps/{urlMap}",
150309	//   "response": {
150310	//     "$ref": "UrlMap"
150311	//   },
150312	//   "scopes": [
150313	//     "https://www.googleapis.com/auth/cloud-platform",
150314	//     "https://www.googleapis.com/auth/compute",
150315	//     "https://www.googleapis.com/auth/compute.readonly"
150316	//   ]
150317	// }
150318
150319}
150320
150321// method id "compute.urlMaps.insert":
150322
150323type UrlMapsInsertCall struct {
150324	s          *Service
150325	project    string
150326	urlmap     *UrlMap
150327	urlParams_ gensupport.URLParams
150328	ctx_       context.Context
150329	header_    http.Header
150330}
150331
150332// Insert: Creates a UrlMap resource in the specified project using the
150333// data included in the request.
150334// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/insert
150335func (r *UrlMapsService) Insert(project string, urlmap *UrlMap) *UrlMapsInsertCall {
150336	c := &UrlMapsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150337	c.project = project
150338	c.urlmap = urlmap
150339	return c
150340}
150341
150342// RequestId sets the optional parameter "requestId": An optional
150343// request ID to identify requests. Specify a unique request ID so that
150344// if you must retry your request, the server will know to ignore the
150345// request if it has already been completed.
150346//
150347// For example, consider a situation where you make an initial request
150348// and the request times out. If you make the request again with the
150349// same request ID, the server can check if original operation with the
150350// same request ID was received, and if so, will ignore the second
150351// request. This prevents clients from accidentally creating duplicate
150352// commitments.
150353//
150354// The request ID must be a valid UUID with the exception that zero UUID
150355// is not supported (00000000-0000-0000-0000-000000000000).
150356func (c *UrlMapsInsertCall) RequestId(requestId string) *UrlMapsInsertCall {
150357	c.urlParams_.Set("requestId", requestId)
150358	return c
150359}
150360
150361// Fields allows partial responses to be retrieved. See
150362// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150363// for more information.
150364func (c *UrlMapsInsertCall) Fields(s ...googleapi.Field) *UrlMapsInsertCall {
150365	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150366	return c
150367}
150368
150369// Context sets the context to be used in this call's Do method. Any
150370// pending HTTP request will be aborted if the provided context is
150371// canceled.
150372func (c *UrlMapsInsertCall) Context(ctx context.Context) *UrlMapsInsertCall {
150373	c.ctx_ = ctx
150374	return c
150375}
150376
150377// Header returns an http.Header that can be modified by the caller to
150378// add HTTP headers to the request.
150379func (c *UrlMapsInsertCall) Header() http.Header {
150380	if c.header_ == nil {
150381		c.header_ = make(http.Header)
150382	}
150383	return c.header_
150384}
150385
150386func (c *UrlMapsInsertCall) doRequest(alt string) (*http.Response, error) {
150387	reqHeaders := make(http.Header)
150388	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150389	for k, v := range c.header_ {
150390		reqHeaders[k] = v
150391	}
150392	reqHeaders.Set("User-Agent", c.s.userAgent())
150393	var body io.Reader = nil
150394	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
150395	if err != nil {
150396		return nil, err
150397	}
150398	reqHeaders.Set("Content-Type", "application/json")
150399	c.urlParams_.Set("alt", alt)
150400	c.urlParams_.Set("prettyPrint", "false")
150401	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
150402	urls += "?" + c.urlParams_.Encode()
150403	req, err := http.NewRequest("POST", urls, body)
150404	if err != nil {
150405		return nil, err
150406	}
150407	req.Header = reqHeaders
150408	googleapi.Expand(req.URL, map[string]string{
150409		"project": c.project,
150410	})
150411	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150412}
150413
150414// Do executes the "compute.urlMaps.insert" call.
150415// Exactly one of *Operation or error will be non-nil. Any non-2xx
150416// status code is an error. Response headers are in either
150417// *Operation.ServerResponse.Header or (if a response was returned at
150418// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150419// to check whether the returned error was because
150420// http.StatusNotModified was returned.
150421func (c *UrlMapsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150422	gensupport.SetOptions(c.urlParams_, opts...)
150423	res, err := c.doRequest("json")
150424	if res != nil && res.StatusCode == http.StatusNotModified {
150425		if res.Body != nil {
150426			res.Body.Close()
150427		}
150428		return nil, &googleapi.Error{
150429			Code:   res.StatusCode,
150430			Header: res.Header,
150431		}
150432	}
150433	if err != nil {
150434		return nil, err
150435	}
150436	defer googleapi.CloseBody(res)
150437	if err := googleapi.CheckResponse(res); err != nil {
150438		return nil, err
150439	}
150440	ret := &Operation{
150441		ServerResponse: googleapi.ServerResponse{
150442			Header:         res.Header,
150443			HTTPStatusCode: res.StatusCode,
150444		},
150445	}
150446	target := &ret
150447	if err := gensupport.DecodeResponse(target, res); err != nil {
150448		return nil, err
150449	}
150450	return ret, nil
150451	// {
150452	//   "description": "Creates a UrlMap resource in the specified project using the data included in the request.",
150453	//   "httpMethod": "POST",
150454	//   "id": "compute.urlMaps.insert",
150455	//   "parameterOrder": [
150456	//     "project"
150457	//   ],
150458	//   "parameters": {
150459	//     "project": {
150460	//       "description": "Project ID for this request.",
150461	//       "location": "path",
150462	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150463	//       "required": true,
150464	//       "type": "string"
150465	//     },
150466	//     "requestId": {
150467	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150468	//       "location": "query",
150469	//       "type": "string"
150470	//     }
150471	//   },
150472	//   "path": "{project}/global/urlMaps",
150473	//   "request": {
150474	//     "$ref": "UrlMap"
150475	//   },
150476	//   "response": {
150477	//     "$ref": "Operation"
150478	//   },
150479	//   "scopes": [
150480	//     "https://www.googleapis.com/auth/cloud-platform",
150481	//     "https://www.googleapis.com/auth/compute"
150482	//   ]
150483	// }
150484
150485}
150486
150487// method id "compute.urlMaps.invalidateCache":
150488
150489type UrlMapsInvalidateCacheCall struct {
150490	s                     *Service
150491	project               string
150492	urlMap                string
150493	cacheinvalidationrule *CacheInvalidationRule
150494	urlParams_            gensupport.URLParams
150495	ctx_                  context.Context
150496	header_               http.Header
150497}
150498
150499// InvalidateCache: Initiates a cache invalidation operation,
150500// invalidating the specified path, scoped to the specified UrlMap.
150501func (r *UrlMapsService) InvalidateCache(project string, urlMap string, cacheinvalidationrule *CacheInvalidationRule) *UrlMapsInvalidateCacheCall {
150502	c := &UrlMapsInvalidateCacheCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150503	c.project = project
150504	c.urlMap = urlMap
150505	c.cacheinvalidationrule = cacheinvalidationrule
150506	return c
150507}
150508
150509// RequestId sets the optional parameter "requestId": An optional
150510// request ID to identify requests. Specify a unique request ID so that
150511// if you must retry your request, the server will know to ignore the
150512// request if it has already been completed.
150513//
150514// For example, consider a situation where you make an initial request
150515// and the request times out. If you make the request again with the
150516// same request ID, the server can check if original operation with the
150517// same request ID was received, and if so, will ignore the second
150518// request. This prevents clients from accidentally creating duplicate
150519// commitments.
150520//
150521// The request ID must be a valid UUID with the exception that zero UUID
150522// is not supported (00000000-0000-0000-0000-000000000000).
150523func (c *UrlMapsInvalidateCacheCall) RequestId(requestId string) *UrlMapsInvalidateCacheCall {
150524	c.urlParams_.Set("requestId", requestId)
150525	return c
150526}
150527
150528// Fields allows partial responses to be retrieved. See
150529// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150530// for more information.
150531func (c *UrlMapsInvalidateCacheCall) Fields(s ...googleapi.Field) *UrlMapsInvalidateCacheCall {
150532	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150533	return c
150534}
150535
150536// Context sets the context to be used in this call's Do method. Any
150537// pending HTTP request will be aborted if the provided context is
150538// canceled.
150539func (c *UrlMapsInvalidateCacheCall) Context(ctx context.Context) *UrlMapsInvalidateCacheCall {
150540	c.ctx_ = ctx
150541	return c
150542}
150543
150544// Header returns an http.Header that can be modified by the caller to
150545// add HTTP headers to the request.
150546func (c *UrlMapsInvalidateCacheCall) Header() http.Header {
150547	if c.header_ == nil {
150548		c.header_ = make(http.Header)
150549	}
150550	return c.header_
150551}
150552
150553func (c *UrlMapsInvalidateCacheCall) doRequest(alt string) (*http.Response, error) {
150554	reqHeaders := make(http.Header)
150555	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150556	for k, v := range c.header_ {
150557		reqHeaders[k] = v
150558	}
150559	reqHeaders.Set("User-Agent", c.s.userAgent())
150560	var body io.Reader = nil
150561	body, err := googleapi.WithoutDataWrapper.JSONReader(c.cacheinvalidationrule)
150562	if err != nil {
150563		return nil, err
150564	}
150565	reqHeaders.Set("Content-Type", "application/json")
150566	c.urlParams_.Set("alt", alt)
150567	c.urlParams_.Set("prettyPrint", "false")
150568	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/invalidateCache")
150569	urls += "?" + c.urlParams_.Encode()
150570	req, err := http.NewRequest("POST", urls, body)
150571	if err != nil {
150572		return nil, err
150573	}
150574	req.Header = reqHeaders
150575	googleapi.Expand(req.URL, map[string]string{
150576		"project": c.project,
150577		"urlMap":  c.urlMap,
150578	})
150579	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150580}
150581
150582// Do executes the "compute.urlMaps.invalidateCache" call.
150583// Exactly one of *Operation or error will be non-nil. Any non-2xx
150584// status code is an error. Response headers are in either
150585// *Operation.ServerResponse.Header or (if a response was returned at
150586// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150587// to check whether the returned error was because
150588// http.StatusNotModified was returned.
150589func (c *UrlMapsInvalidateCacheCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
150590	gensupport.SetOptions(c.urlParams_, opts...)
150591	res, err := c.doRequest("json")
150592	if res != nil && res.StatusCode == http.StatusNotModified {
150593		if res.Body != nil {
150594			res.Body.Close()
150595		}
150596		return nil, &googleapi.Error{
150597			Code:   res.StatusCode,
150598			Header: res.Header,
150599		}
150600	}
150601	if err != nil {
150602		return nil, err
150603	}
150604	defer googleapi.CloseBody(res)
150605	if err := googleapi.CheckResponse(res); err != nil {
150606		return nil, err
150607	}
150608	ret := &Operation{
150609		ServerResponse: googleapi.ServerResponse{
150610			Header:         res.Header,
150611			HTTPStatusCode: res.StatusCode,
150612		},
150613	}
150614	target := &ret
150615	if err := gensupport.DecodeResponse(target, res); err != nil {
150616		return nil, err
150617	}
150618	return ret, nil
150619	// {
150620	//   "description": "Initiates a cache invalidation operation, invalidating the specified path, scoped to the specified UrlMap.",
150621	//   "httpMethod": "POST",
150622	//   "id": "compute.urlMaps.invalidateCache",
150623	//   "parameterOrder": [
150624	//     "project",
150625	//     "urlMap"
150626	//   ],
150627	//   "parameters": {
150628	//     "project": {
150629	//       "description": "Project ID for this request.",
150630	//       "location": "path",
150631	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150632	//       "required": true,
150633	//       "type": "string"
150634	//     },
150635	//     "requestId": {
150636	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
150637	//       "location": "query",
150638	//       "type": "string"
150639	//     },
150640	//     "urlMap": {
150641	//       "description": "Name of the UrlMap scoping this request.",
150642	//       "location": "path",
150643	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
150644	//       "required": true,
150645	//       "type": "string"
150646	//     }
150647	//   },
150648	//   "path": "{project}/global/urlMaps/{urlMap}/invalidateCache",
150649	//   "request": {
150650	//     "$ref": "CacheInvalidationRule"
150651	//   },
150652	//   "response": {
150653	//     "$ref": "Operation"
150654	//   },
150655	//   "scopes": [
150656	//     "https://www.googleapis.com/auth/cloud-platform",
150657	//     "https://www.googleapis.com/auth/compute"
150658	//   ]
150659	// }
150660
150661}
150662
150663// method id "compute.urlMaps.list":
150664
150665type UrlMapsListCall struct {
150666	s            *Service
150667	project      string
150668	urlParams_   gensupport.URLParams
150669	ifNoneMatch_ string
150670	ctx_         context.Context
150671	header_      http.Header
150672}
150673
150674// List: Retrieves the list of UrlMap resources available to the
150675// specified project.
150676// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/list
150677func (r *UrlMapsService) List(project string) *UrlMapsListCall {
150678	c := &UrlMapsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150679	c.project = project
150680	return c
150681}
150682
150683// Filter sets the optional parameter "filter": A filter expression that
150684// filters resources listed in the response. The expression must specify
150685// the field name, a comparison operator, and the value that you want to
150686// use for filtering. The value must be a string, a number, or a
150687// boolean. The comparison operator must be either =, !=, >, or <.
150688//
150689// For example, if you are filtering Compute Engine instances, you can
150690// exclude instances named example-instance by specifying name !=
150691// example-instance.
150692//
150693// You can also filter nested fields. For example, you could specify
150694// scheduling.automaticRestart = false to include instances only if they
150695// are not scheduled for automatic restarts. You can use filtering on
150696// nested fields to filter based on resource labels.
150697//
150698// To filter on multiple expressions, provide each separate expression
150699// within parentheses. For example, (scheduling.automaticRestart = true)
150700// (cpuPlatform = "Intel Skylake"). By default, each expression is an
150701// AND expression. However, you can include AND and OR expressions
150702// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
150703// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
150704// true).
150705func (c *UrlMapsListCall) Filter(filter string) *UrlMapsListCall {
150706	c.urlParams_.Set("filter", filter)
150707	return c
150708}
150709
150710// MaxResults sets the optional parameter "maxResults": The maximum
150711// number of results per page that should be returned. If the number of
150712// available results is larger than maxResults, Compute Engine returns a
150713// nextPageToken that can be used to get the next page of results in
150714// subsequent list requests. Acceptable values are 0 to 500, inclusive.
150715// (Default: 500)
150716func (c *UrlMapsListCall) MaxResults(maxResults int64) *UrlMapsListCall {
150717	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
150718	return c
150719}
150720
150721// OrderBy sets the optional parameter "orderBy": Sorts list results by
150722// a certain order. By default, results are returned in alphanumerical
150723// order based on the resource name.
150724//
150725// You can also sort results in descending order based on the creation
150726// timestamp using orderBy="creationTimestamp desc". This sorts results
150727// based on the creationTimestamp field in reverse chronological order
150728// (newest result first). Use this to sort resources like operations so
150729// that the newest operation is returned first.
150730//
150731// Currently, only sorting by name or creationTimestamp desc is
150732// supported.
150733func (c *UrlMapsListCall) OrderBy(orderBy string) *UrlMapsListCall {
150734	c.urlParams_.Set("orderBy", orderBy)
150735	return c
150736}
150737
150738// PageToken sets the optional parameter "pageToken": Specifies a page
150739// token to use. Set pageToken to the nextPageToken returned by a
150740// previous list request to get the next page of results.
150741func (c *UrlMapsListCall) PageToken(pageToken string) *UrlMapsListCall {
150742	c.urlParams_.Set("pageToken", pageToken)
150743	return c
150744}
150745
150746// Fields allows partial responses to be retrieved. See
150747// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150748// for more information.
150749func (c *UrlMapsListCall) Fields(s ...googleapi.Field) *UrlMapsListCall {
150750	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150751	return c
150752}
150753
150754// IfNoneMatch sets the optional parameter which makes the operation
150755// fail if the object's ETag matches the given value. This is useful for
150756// getting updates only after the object has changed since the last
150757// request. Use googleapi.IsNotModified to check whether the response
150758// error from Do is the result of In-None-Match.
150759func (c *UrlMapsListCall) IfNoneMatch(entityTag string) *UrlMapsListCall {
150760	c.ifNoneMatch_ = entityTag
150761	return c
150762}
150763
150764// Context sets the context to be used in this call's Do method. Any
150765// pending HTTP request will be aborted if the provided context is
150766// canceled.
150767func (c *UrlMapsListCall) Context(ctx context.Context) *UrlMapsListCall {
150768	c.ctx_ = ctx
150769	return c
150770}
150771
150772// Header returns an http.Header that can be modified by the caller to
150773// add HTTP headers to the request.
150774func (c *UrlMapsListCall) Header() http.Header {
150775	if c.header_ == nil {
150776		c.header_ = make(http.Header)
150777	}
150778	return c.header_
150779}
150780
150781func (c *UrlMapsListCall) doRequest(alt string) (*http.Response, error) {
150782	reqHeaders := make(http.Header)
150783	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150784	for k, v := range c.header_ {
150785		reqHeaders[k] = v
150786	}
150787	reqHeaders.Set("User-Agent", c.s.userAgent())
150788	if c.ifNoneMatch_ != "" {
150789		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
150790	}
150791	var body io.Reader = nil
150792	c.urlParams_.Set("alt", alt)
150793	c.urlParams_.Set("prettyPrint", "false")
150794	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps")
150795	urls += "?" + c.urlParams_.Encode()
150796	req, err := http.NewRequest("GET", urls, body)
150797	if err != nil {
150798		return nil, err
150799	}
150800	req.Header = reqHeaders
150801	googleapi.Expand(req.URL, map[string]string{
150802		"project": c.project,
150803	})
150804	return gensupport.SendRequest(c.ctx_, c.s.client, req)
150805}
150806
150807// Do executes the "compute.urlMaps.list" call.
150808// Exactly one of *UrlMapList or error will be non-nil. Any non-2xx
150809// status code is an error. Response headers are in either
150810// *UrlMapList.ServerResponse.Header or (if a response was returned at
150811// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
150812// to check whether the returned error was because
150813// http.StatusNotModified was returned.
150814func (c *UrlMapsListCall) Do(opts ...googleapi.CallOption) (*UrlMapList, error) {
150815	gensupport.SetOptions(c.urlParams_, opts...)
150816	res, err := c.doRequest("json")
150817	if res != nil && res.StatusCode == http.StatusNotModified {
150818		if res.Body != nil {
150819			res.Body.Close()
150820		}
150821		return nil, &googleapi.Error{
150822			Code:   res.StatusCode,
150823			Header: res.Header,
150824		}
150825	}
150826	if err != nil {
150827		return nil, err
150828	}
150829	defer googleapi.CloseBody(res)
150830	if err := googleapi.CheckResponse(res); err != nil {
150831		return nil, err
150832	}
150833	ret := &UrlMapList{
150834		ServerResponse: googleapi.ServerResponse{
150835			Header:         res.Header,
150836			HTTPStatusCode: res.StatusCode,
150837		},
150838	}
150839	target := &ret
150840	if err := gensupport.DecodeResponse(target, res); err != nil {
150841		return nil, err
150842	}
150843	return ret, nil
150844	// {
150845	//   "description": "Retrieves the list of UrlMap resources available to the specified project.",
150846	//   "httpMethod": "GET",
150847	//   "id": "compute.urlMaps.list",
150848	//   "parameterOrder": [
150849	//     "project"
150850	//   ],
150851	//   "parameters": {
150852	//     "filter": {
150853	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
150854	//       "location": "query",
150855	//       "type": "string"
150856	//     },
150857	//     "maxResults": {
150858	//       "default": "500",
150859	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
150860	//       "format": "uint32",
150861	//       "location": "query",
150862	//       "minimum": "0",
150863	//       "type": "integer"
150864	//     },
150865	//     "orderBy": {
150866	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
150867	//       "location": "query",
150868	//       "type": "string"
150869	//     },
150870	//     "pageToken": {
150871	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
150872	//       "location": "query",
150873	//       "type": "string"
150874	//     },
150875	//     "project": {
150876	//       "description": "Project ID for this request.",
150877	//       "location": "path",
150878	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
150879	//       "required": true,
150880	//       "type": "string"
150881	//     }
150882	//   },
150883	//   "path": "{project}/global/urlMaps",
150884	//   "response": {
150885	//     "$ref": "UrlMapList"
150886	//   },
150887	//   "scopes": [
150888	//     "https://www.googleapis.com/auth/cloud-platform",
150889	//     "https://www.googleapis.com/auth/compute",
150890	//     "https://www.googleapis.com/auth/compute.readonly"
150891	//   ]
150892	// }
150893
150894}
150895
150896// Pages invokes f for each page of results.
150897// A non-nil error returned from f will halt the iteration.
150898// The provided context supersedes any context provided to the Context method.
150899func (c *UrlMapsListCall) Pages(ctx context.Context, f func(*UrlMapList) error) error {
150900	c.ctx_ = ctx
150901	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
150902	for {
150903		x, err := c.Do()
150904		if err != nil {
150905			return err
150906		}
150907		if err := f(x); err != nil {
150908			return err
150909		}
150910		if x.NextPageToken == "" {
150911			return nil
150912		}
150913		c.PageToken(x.NextPageToken)
150914	}
150915}
150916
150917// method id "compute.urlMaps.patch":
150918
150919type UrlMapsPatchCall struct {
150920	s          *Service
150921	project    string
150922	urlMap     string
150923	urlmap     *UrlMap
150924	urlParams_ gensupport.URLParams
150925	ctx_       context.Context
150926	header_    http.Header
150927}
150928
150929// Patch: Patches the specified UrlMap resource with the data included
150930// in the request. This method supports PATCH semantics and uses the
150931// JSON merge patch format and processing rules.
150932// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/patch
150933func (r *UrlMapsService) Patch(project string, urlMap string, urlmap *UrlMap) *UrlMapsPatchCall {
150934	c := &UrlMapsPatchCall{s: r.s, urlParams_: make(gensupport.URLParams)}
150935	c.project = project
150936	c.urlMap = urlMap
150937	c.urlmap = urlmap
150938	return c
150939}
150940
150941// RequestId sets the optional parameter "requestId": An optional
150942// request ID to identify requests. Specify a unique request ID so that
150943// if you must retry your request, the server will know to ignore the
150944// request if it has already been completed.
150945//
150946// For example, consider a situation where you make an initial request
150947// and the request times out. If you make the request again with the
150948// same request ID, the server can check if original operation with the
150949// same request ID was received, and if so, will ignore the second
150950// request. This prevents clients from accidentally creating duplicate
150951// commitments.
150952//
150953// The request ID must be a valid UUID with the exception that zero UUID
150954// is not supported (00000000-0000-0000-0000-000000000000).
150955func (c *UrlMapsPatchCall) RequestId(requestId string) *UrlMapsPatchCall {
150956	c.urlParams_.Set("requestId", requestId)
150957	return c
150958}
150959
150960// Fields allows partial responses to be retrieved. See
150961// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
150962// for more information.
150963func (c *UrlMapsPatchCall) Fields(s ...googleapi.Field) *UrlMapsPatchCall {
150964	c.urlParams_.Set("fields", googleapi.CombineFields(s))
150965	return c
150966}
150967
150968// Context sets the context to be used in this call's Do method. Any
150969// pending HTTP request will be aborted if the provided context is
150970// canceled.
150971func (c *UrlMapsPatchCall) Context(ctx context.Context) *UrlMapsPatchCall {
150972	c.ctx_ = ctx
150973	return c
150974}
150975
150976// Header returns an http.Header that can be modified by the caller to
150977// add HTTP headers to the request.
150978func (c *UrlMapsPatchCall) Header() http.Header {
150979	if c.header_ == nil {
150980		c.header_ = make(http.Header)
150981	}
150982	return c.header_
150983}
150984
150985func (c *UrlMapsPatchCall) doRequest(alt string) (*http.Response, error) {
150986	reqHeaders := make(http.Header)
150987	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
150988	for k, v := range c.header_ {
150989		reqHeaders[k] = v
150990	}
150991	reqHeaders.Set("User-Agent", c.s.userAgent())
150992	var body io.Reader = nil
150993	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
150994	if err != nil {
150995		return nil, err
150996	}
150997	reqHeaders.Set("Content-Type", "application/json")
150998	c.urlParams_.Set("alt", alt)
150999	c.urlParams_.Set("prettyPrint", "false")
151000	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
151001	urls += "?" + c.urlParams_.Encode()
151002	req, err := http.NewRequest("PATCH", urls, body)
151003	if err != nil {
151004		return nil, err
151005	}
151006	req.Header = reqHeaders
151007	googleapi.Expand(req.URL, map[string]string{
151008		"project": c.project,
151009		"urlMap":  c.urlMap,
151010	})
151011	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151012}
151013
151014// Do executes the "compute.urlMaps.patch" call.
151015// Exactly one of *Operation or error will be non-nil. Any non-2xx
151016// status code is an error. Response headers are in either
151017// *Operation.ServerResponse.Header or (if a response was returned at
151018// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151019// to check whether the returned error was because
151020// http.StatusNotModified was returned.
151021func (c *UrlMapsPatchCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151022	gensupport.SetOptions(c.urlParams_, opts...)
151023	res, err := c.doRequest("json")
151024	if res != nil && res.StatusCode == http.StatusNotModified {
151025		if res.Body != nil {
151026			res.Body.Close()
151027		}
151028		return nil, &googleapi.Error{
151029			Code:   res.StatusCode,
151030			Header: res.Header,
151031		}
151032	}
151033	if err != nil {
151034		return nil, err
151035	}
151036	defer googleapi.CloseBody(res)
151037	if err := googleapi.CheckResponse(res); err != nil {
151038		return nil, err
151039	}
151040	ret := &Operation{
151041		ServerResponse: googleapi.ServerResponse{
151042			Header:         res.Header,
151043			HTTPStatusCode: res.StatusCode,
151044		},
151045	}
151046	target := &ret
151047	if err := gensupport.DecodeResponse(target, res); err != nil {
151048		return nil, err
151049	}
151050	return ret, nil
151051	// {
151052	//   "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.",
151053	//   "httpMethod": "PATCH",
151054	//   "id": "compute.urlMaps.patch",
151055	//   "parameterOrder": [
151056	//     "project",
151057	//     "urlMap"
151058	//   ],
151059	//   "parameters": {
151060	//     "project": {
151061	//       "description": "Project ID for this request.",
151062	//       "location": "path",
151063	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151064	//       "required": true,
151065	//       "type": "string"
151066	//     },
151067	//     "requestId": {
151068	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151069	//       "location": "query",
151070	//       "type": "string"
151071	//     },
151072	//     "urlMap": {
151073	//       "description": "Name of the UrlMap resource to patch.",
151074	//       "location": "path",
151075	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151076	//       "required": true,
151077	//       "type": "string"
151078	//     }
151079	//   },
151080	//   "path": "{project}/global/urlMaps/{urlMap}",
151081	//   "request": {
151082	//     "$ref": "UrlMap"
151083	//   },
151084	//   "response": {
151085	//     "$ref": "Operation"
151086	//   },
151087	//   "scopes": [
151088	//     "https://www.googleapis.com/auth/cloud-platform",
151089	//     "https://www.googleapis.com/auth/compute"
151090	//   ]
151091	// }
151092
151093}
151094
151095// method id "compute.urlMaps.testIamPermissions":
151096
151097type UrlMapsTestIamPermissionsCall struct {
151098	s                      *Service
151099	project                string
151100	resource               string
151101	testpermissionsrequest *TestPermissionsRequest
151102	urlParams_             gensupport.URLParams
151103	ctx_                   context.Context
151104	header_                http.Header
151105}
151106
151107// TestIamPermissions: Returns permissions that a caller has on the
151108// specified resource.
151109func (r *UrlMapsService) TestIamPermissions(project string, resource string, testpermissionsrequest *TestPermissionsRequest) *UrlMapsTestIamPermissionsCall {
151110	c := &UrlMapsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151111	c.project = project
151112	c.resource = resource
151113	c.testpermissionsrequest = testpermissionsrequest
151114	return c
151115}
151116
151117// Fields allows partial responses to be retrieved. See
151118// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151119// for more information.
151120func (c *UrlMapsTestIamPermissionsCall) Fields(s ...googleapi.Field) *UrlMapsTestIamPermissionsCall {
151121	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151122	return c
151123}
151124
151125// Context sets the context to be used in this call's Do method. Any
151126// pending HTTP request will be aborted if the provided context is
151127// canceled.
151128func (c *UrlMapsTestIamPermissionsCall) Context(ctx context.Context) *UrlMapsTestIamPermissionsCall {
151129	c.ctx_ = ctx
151130	return c
151131}
151132
151133// Header returns an http.Header that can be modified by the caller to
151134// add HTTP headers to the request.
151135func (c *UrlMapsTestIamPermissionsCall) Header() http.Header {
151136	if c.header_ == nil {
151137		c.header_ = make(http.Header)
151138	}
151139	return c.header_
151140}
151141
151142func (c *UrlMapsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
151143	reqHeaders := make(http.Header)
151144	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151145	for k, v := range c.header_ {
151146		reqHeaders[k] = v
151147	}
151148	reqHeaders.Set("User-Agent", c.s.userAgent())
151149	var body io.Reader = nil
151150	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
151151	if err != nil {
151152		return nil, err
151153	}
151154	reqHeaders.Set("Content-Type", "application/json")
151155	c.urlParams_.Set("alt", alt)
151156	c.urlParams_.Set("prettyPrint", "false")
151157	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{resource}/testIamPermissions")
151158	urls += "?" + c.urlParams_.Encode()
151159	req, err := http.NewRequest("POST", urls, body)
151160	if err != nil {
151161		return nil, err
151162	}
151163	req.Header = reqHeaders
151164	googleapi.Expand(req.URL, map[string]string{
151165		"project":  c.project,
151166		"resource": c.resource,
151167	})
151168	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151169}
151170
151171// Do executes the "compute.urlMaps.testIamPermissions" call.
151172// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
151173// non-2xx status code is an error. Response headers are in either
151174// *TestPermissionsResponse.ServerResponse.Header or (if a response was
151175// returned at all) in error.(*googleapi.Error).Header. Use
151176// googleapi.IsNotModified to check whether the returned error was
151177// because http.StatusNotModified was returned.
151178func (c *UrlMapsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
151179	gensupport.SetOptions(c.urlParams_, opts...)
151180	res, err := c.doRequest("json")
151181	if res != nil && res.StatusCode == http.StatusNotModified {
151182		if res.Body != nil {
151183			res.Body.Close()
151184		}
151185		return nil, &googleapi.Error{
151186			Code:   res.StatusCode,
151187			Header: res.Header,
151188		}
151189	}
151190	if err != nil {
151191		return nil, err
151192	}
151193	defer googleapi.CloseBody(res)
151194	if err := googleapi.CheckResponse(res); err != nil {
151195		return nil, err
151196	}
151197	ret := &TestPermissionsResponse{
151198		ServerResponse: googleapi.ServerResponse{
151199			Header:         res.Header,
151200			HTTPStatusCode: res.StatusCode,
151201		},
151202	}
151203	target := &ret
151204	if err := gensupport.DecodeResponse(target, res); err != nil {
151205		return nil, err
151206	}
151207	return ret, nil
151208	// {
151209	//   "description": "Returns permissions that a caller has on the specified resource.",
151210	//   "httpMethod": "POST",
151211	//   "id": "compute.urlMaps.testIamPermissions",
151212	//   "parameterOrder": [
151213	//     "project",
151214	//     "resource"
151215	//   ],
151216	//   "parameters": {
151217	//     "project": {
151218	//       "description": "Project ID for this request.",
151219	//       "location": "path",
151220	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151221	//       "required": true,
151222	//       "type": "string"
151223	//     },
151224	//     "resource": {
151225	//       "description": "Name or id of the resource for this request.",
151226	//       "location": "path",
151227	//       "pattern": "[a-z](?:[-a-z0-9_]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151228	//       "required": true,
151229	//       "type": "string"
151230	//     }
151231	//   },
151232	//   "path": "{project}/global/urlMaps/{resource}/testIamPermissions",
151233	//   "request": {
151234	//     "$ref": "TestPermissionsRequest"
151235	//   },
151236	//   "response": {
151237	//     "$ref": "TestPermissionsResponse"
151238	//   },
151239	//   "scopes": [
151240	//     "https://www.googleapis.com/auth/cloud-platform",
151241	//     "https://www.googleapis.com/auth/compute",
151242	//     "https://www.googleapis.com/auth/compute.readonly"
151243	//   ]
151244	// }
151245
151246}
151247
151248// method id "compute.urlMaps.update":
151249
151250type UrlMapsUpdateCall struct {
151251	s          *Service
151252	project    string
151253	urlMap     string
151254	urlmap     *UrlMap
151255	urlParams_ gensupport.URLParams
151256	ctx_       context.Context
151257	header_    http.Header
151258}
151259
151260// Update: Updates the specified UrlMap resource with the data included
151261// in the request.
151262// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/update
151263func (r *UrlMapsService) Update(project string, urlMap string, urlmap *UrlMap) *UrlMapsUpdateCall {
151264	c := &UrlMapsUpdateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151265	c.project = project
151266	c.urlMap = urlMap
151267	c.urlmap = urlmap
151268	return c
151269}
151270
151271// RequestId sets the optional parameter "requestId": An optional
151272// request ID to identify requests. Specify a unique request ID so that
151273// if you must retry your request, the server will know to ignore the
151274// request if it has already been completed.
151275//
151276// For example, consider a situation where you make an initial request
151277// and the request times out. If you make the request again with the
151278// same request ID, the server can check if original operation with the
151279// same request ID was received, and if so, will ignore the second
151280// request. This prevents clients from accidentally creating duplicate
151281// commitments.
151282//
151283// The request ID must be a valid UUID with the exception that zero UUID
151284// is not supported (00000000-0000-0000-0000-000000000000).
151285func (c *UrlMapsUpdateCall) RequestId(requestId string) *UrlMapsUpdateCall {
151286	c.urlParams_.Set("requestId", requestId)
151287	return c
151288}
151289
151290// Fields allows partial responses to be retrieved. See
151291// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151292// for more information.
151293func (c *UrlMapsUpdateCall) Fields(s ...googleapi.Field) *UrlMapsUpdateCall {
151294	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151295	return c
151296}
151297
151298// Context sets the context to be used in this call's Do method. Any
151299// pending HTTP request will be aborted if the provided context is
151300// canceled.
151301func (c *UrlMapsUpdateCall) Context(ctx context.Context) *UrlMapsUpdateCall {
151302	c.ctx_ = ctx
151303	return c
151304}
151305
151306// Header returns an http.Header that can be modified by the caller to
151307// add HTTP headers to the request.
151308func (c *UrlMapsUpdateCall) Header() http.Header {
151309	if c.header_ == nil {
151310		c.header_ = make(http.Header)
151311	}
151312	return c.header_
151313}
151314
151315func (c *UrlMapsUpdateCall) doRequest(alt string) (*http.Response, error) {
151316	reqHeaders := make(http.Header)
151317	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151318	for k, v := range c.header_ {
151319		reqHeaders[k] = v
151320	}
151321	reqHeaders.Set("User-Agent", c.s.userAgent())
151322	var body io.Reader = nil
151323	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmap)
151324	if err != nil {
151325		return nil, err
151326	}
151327	reqHeaders.Set("Content-Type", "application/json")
151328	c.urlParams_.Set("alt", alt)
151329	c.urlParams_.Set("prettyPrint", "false")
151330	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}")
151331	urls += "?" + c.urlParams_.Encode()
151332	req, err := http.NewRequest("PUT", urls, body)
151333	if err != nil {
151334		return nil, err
151335	}
151336	req.Header = reqHeaders
151337	googleapi.Expand(req.URL, map[string]string{
151338		"project": c.project,
151339		"urlMap":  c.urlMap,
151340	})
151341	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151342}
151343
151344// Do executes the "compute.urlMaps.update" call.
151345// Exactly one of *Operation or error will be non-nil. Any non-2xx
151346// status code is an error. Response headers are in either
151347// *Operation.ServerResponse.Header or (if a response was returned at
151348// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151349// to check whether the returned error was because
151350// http.StatusNotModified was returned.
151351func (c *UrlMapsUpdateCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151352	gensupport.SetOptions(c.urlParams_, opts...)
151353	res, err := c.doRequest("json")
151354	if res != nil && res.StatusCode == http.StatusNotModified {
151355		if res.Body != nil {
151356			res.Body.Close()
151357		}
151358		return nil, &googleapi.Error{
151359			Code:   res.StatusCode,
151360			Header: res.Header,
151361		}
151362	}
151363	if err != nil {
151364		return nil, err
151365	}
151366	defer googleapi.CloseBody(res)
151367	if err := googleapi.CheckResponse(res); err != nil {
151368		return nil, err
151369	}
151370	ret := &Operation{
151371		ServerResponse: googleapi.ServerResponse{
151372			Header:         res.Header,
151373			HTTPStatusCode: res.StatusCode,
151374		},
151375	}
151376	target := &ret
151377	if err := gensupport.DecodeResponse(target, res); err != nil {
151378		return nil, err
151379	}
151380	return ret, nil
151381	// {
151382	//   "description": "Updates the specified UrlMap resource with the data included in the request.",
151383	//   "httpMethod": "PUT",
151384	//   "id": "compute.urlMaps.update",
151385	//   "parameterOrder": [
151386	//     "project",
151387	//     "urlMap"
151388	//   ],
151389	//   "parameters": {
151390	//     "project": {
151391	//       "description": "Project ID for this request.",
151392	//       "location": "path",
151393	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151394	//       "required": true,
151395	//       "type": "string"
151396	//     },
151397	//     "requestId": {
151398	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
151399	//       "location": "query",
151400	//       "type": "string"
151401	//     },
151402	//     "urlMap": {
151403	//       "description": "Name of the UrlMap resource to update.",
151404	//       "location": "path",
151405	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151406	//       "required": true,
151407	//       "type": "string"
151408	//     }
151409	//   },
151410	//   "path": "{project}/global/urlMaps/{urlMap}",
151411	//   "request": {
151412	//     "$ref": "UrlMap"
151413	//   },
151414	//   "response": {
151415	//     "$ref": "Operation"
151416	//   },
151417	//   "scopes": [
151418	//     "https://www.googleapis.com/auth/cloud-platform",
151419	//     "https://www.googleapis.com/auth/compute"
151420	//   ]
151421	// }
151422
151423}
151424
151425// method id "compute.urlMaps.validate":
151426
151427type UrlMapsValidateCall struct {
151428	s                      *Service
151429	project                string
151430	urlMap                 string
151431	urlmapsvalidaterequest *UrlMapsValidateRequest
151432	urlParams_             gensupport.URLParams
151433	ctx_                   context.Context
151434	header_                http.Header
151435}
151436
151437// Validate: Runs static validation for the UrlMap. In particular, the
151438// tests of the provided UrlMap will be run. Calling this method does
151439// NOT create the UrlMap.
151440// For details, see https://cloud.google.com/compute/docs/reference/latest/urlMaps/validate
151441func (r *UrlMapsService) Validate(project string, urlMap string, urlmapsvalidaterequest *UrlMapsValidateRequest) *UrlMapsValidateCall {
151442	c := &UrlMapsValidateCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151443	c.project = project
151444	c.urlMap = urlMap
151445	c.urlmapsvalidaterequest = urlmapsvalidaterequest
151446	return c
151447}
151448
151449// Fields allows partial responses to be retrieved. See
151450// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151451// for more information.
151452func (c *UrlMapsValidateCall) Fields(s ...googleapi.Field) *UrlMapsValidateCall {
151453	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151454	return c
151455}
151456
151457// Context sets the context to be used in this call's Do method. Any
151458// pending HTTP request will be aborted if the provided context is
151459// canceled.
151460func (c *UrlMapsValidateCall) Context(ctx context.Context) *UrlMapsValidateCall {
151461	c.ctx_ = ctx
151462	return c
151463}
151464
151465// Header returns an http.Header that can be modified by the caller to
151466// add HTTP headers to the request.
151467func (c *UrlMapsValidateCall) Header() http.Header {
151468	if c.header_ == nil {
151469		c.header_ = make(http.Header)
151470	}
151471	return c.header_
151472}
151473
151474func (c *UrlMapsValidateCall) doRequest(alt string) (*http.Response, error) {
151475	reqHeaders := make(http.Header)
151476	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151477	for k, v := range c.header_ {
151478		reqHeaders[k] = v
151479	}
151480	reqHeaders.Set("User-Agent", c.s.userAgent())
151481	var body io.Reader = nil
151482	body, err := googleapi.WithoutDataWrapper.JSONReader(c.urlmapsvalidaterequest)
151483	if err != nil {
151484		return nil, err
151485	}
151486	reqHeaders.Set("Content-Type", "application/json")
151487	c.urlParams_.Set("alt", alt)
151488	c.urlParams_.Set("prettyPrint", "false")
151489	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/global/urlMaps/{urlMap}/validate")
151490	urls += "?" + c.urlParams_.Encode()
151491	req, err := http.NewRequest("POST", urls, body)
151492	if err != nil {
151493		return nil, err
151494	}
151495	req.Header = reqHeaders
151496	googleapi.Expand(req.URL, map[string]string{
151497		"project": c.project,
151498		"urlMap":  c.urlMap,
151499	})
151500	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151501}
151502
151503// Do executes the "compute.urlMaps.validate" call.
151504// Exactly one of *UrlMapsValidateResponse or error will be non-nil. Any
151505// non-2xx status code is an error. Response headers are in either
151506// *UrlMapsValidateResponse.ServerResponse.Header or (if a response was
151507// returned at all) in error.(*googleapi.Error).Header. Use
151508// googleapi.IsNotModified to check whether the returned error was
151509// because http.StatusNotModified was returned.
151510func (c *UrlMapsValidateCall) Do(opts ...googleapi.CallOption) (*UrlMapsValidateResponse, error) {
151511	gensupport.SetOptions(c.urlParams_, opts...)
151512	res, err := c.doRequest("json")
151513	if res != nil && res.StatusCode == http.StatusNotModified {
151514		if res.Body != nil {
151515			res.Body.Close()
151516		}
151517		return nil, &googleapi.Error{
151518			Code:   res.StatusCode,
151519			Header: res.Header,
151520		}
151521	}
151522	if err != nil {
151523		return nil, err
151524	}
151525	defer googleapi.CloseBody(res)
151526	if err := googleapi.CheckResponse(res); err != nil {
151527		return nil, err
151528	}
151529	ret := &UrlMapsValidateResponse{
151530		ServerResponse: googleapi.ServerResponse{
151531			Header:         res.Header,
151532			HTTPStatusCode: res.StatusCode,
151533		},
151534	}
151535	target := &ret
151536	if err := gensupport.DecodeResponse(target, res); err != nil {
151537		return nil, err
151538	}
151539	return ret, nil
151540	// {
151541	//   "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.",
151542	//   "httpMethod": "POST",
151543	//   "id": "compute.urlMaps.validate",
151544	//   "parameterOrder": [
151545	//     "project",
151546	//     "urlMap"
151547	//   ],
151548	//   "parameters": {
151549	//     "project": {
151550	//       "description": "Project ID for this request.",
151551	//       "location": "path",
151552	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151553	//       "required": true,
151554	//       "type": "string"
151555	//     },
151556	//     "urlMap": {
151557	//       "description": "Name of the UrlMap resource to be validated as.",
151558	//       "location": "path",
151559	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
151560	//       "required": true,
151561	//       "type": "string"
151562	//     }
151563	//   },
151564	//   "path": "{project}/global/urlMaps/{urlMap}/validate",
151565	//   "request": {
151566	//     "$ref": "UrlMapsValidateRequest"
151567	//   },
151568	//   "response": {
151569	//     "$ref": "UrlMapsValidateResponse"
151570	//   },
151571	//   "scopes": [
151572	//     "https://www.googleapis.com/auth/cloud-platform",
151573	//     "https://www.googleapis.com/auth/compute"
151574	//   ]
151575	// }
151576
151577}
151578
151579// method id "compute.vpnGateways.aggregatedList":
151580
151581type VpnGatewaysAggregatedListCall struct {
151582	s            *Service
151583	project      string
151584	urlParams_   gensupport.URLParams
151585	ifNoneMatch_ string
151586	ctx_         context.Context
151587	header_      http.Header
151588}
151589
151590// AggregatedList: Retrieves an aggregated list of VPN gateways.
151591func (r *VpnGatewaysService) AggregatedList(project string) *VpnGatewaysAggregatedListCall {
151592	c := &VpnGatewaysAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151593	c.project = project
151594	return c
151595}
151596
151597// Filter sets the optional parameter "filter": A filter expression that
151598// filters resources listed in the response. The expression must specify
151599// the field name, a comparison operator, and the value that you want to
151600// use for filtering. The value must be a string, a number, or a
151601// boolean. The comparison operator must be either =, !=, >, or <.
151602//
151603// For example, if you are filtering Compute Engine instances, you can
151604// exclude instances named example-instance by specifying name !=
151605// example-instance.
151606//
151607// You can also filter nested fields. For example, you could specify
151608// scheduling.automaticRestart = false to include instances only if they
151609// are not scheduled for automatic restarts. You can use filtering on
151610// nested fields to filter based on resource labels.
151611//
151612// To filter on multiple expressions, provide each separate expression
151613// within parentheses. For example, (scheduling.automaticRestart = true)
151614// (cpuPlatform = "Intel Skylake"). By default, each expression is an
151615// AND expression. However, you can include AND and OR expressions
151616// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
151617// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
151618// true).
151619func (c *VpnGatewaysAggregatedListCall) Filter(filter string) *VpnGatewaysAggregatedListCall {
151620	c.urlParams_.Set("filter", filter)
151621	return c
151622}
151623
151624// IncludeAllScopes sets the optional parameter "includeAllScopes":
151625// Indicates whether every visible scope for each scope type (zone,
151626// region, global) should be included in the response. For new resource
151627// types added after this field, the flag has no effect as new resource
151628// types will always include every visible scope for each scope type in
151629// response. For resource types which predate this field, if this flag
151630// is omitted or false, only scopes of the scope types where the
151631// resource type is expected to be found will be included.
151632func (c *VpnGatewaysAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnGatewaysAggregatedListCall {
151633	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
151634	return c
151635}
151636
151637// MaxResults sets the optional parameter "maxResults": The maximum
151638// number of results per page that should be returned. If the number of
151639// available results is larger than maxResults, Compute Engine returns a
151640// nextPageToken that can be used to get the next page of results in
151641// subsequent list requests. Acceptable values are 0 to 500, inclusive.
151642// (Default: 500)
151643func (c *VpnGatewaysAggregatedListCall) MaxResults(maxResults int64) *VpnGatewaysAggregatedListCall {
151644	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
151645	return c
151646}
151647
151648// OrderBy sets the optional parameter "orderBy": Sorts list results by
151649// a certain order. By default, results are returned in alphanumerical
151650// order based on the resource name.
151651//
151652// You can also sort results in descending order based on the creation
151653// timestamp using orderBy="creationTimestamp desc". This sorts results
151654// based on the creationTimestamp field in reverse chronological order
151655// (newest result first). Use this to sort resources like operations so
151656// that the newest operation is returned first.
151657//
151658// Currently, only sorting by name or creationTimestamp desc is
151659// supported.
151660func (c *VpnGatewaysAggregatedListCall) OrderBy(orderBy string) *VpnGatewaysAggregatedListCall {
151661	c.urlParams_.Set("orderBy", orderBy)
151662	return c
151663}
151664
151665// PageToken sets the optional parameter "pageToken": Specifies a page
151666// token to use. Set pageToken to the nextPageToken returned by a
151667// previous list request to get the next page of results.
151668func (c *VpnGatewaysAggregatedListCall) PageToken(pageToken string) *VpnGatewaysAggregatedListCall {
151669	c.urlParams_.Set("pageToken", pageToken)
151670	return c
151671}
151672
151673// Fields allows partial responses to be retrieved. See
151674// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151675// for more information.
151676func (c *VpnGatewaysAggregatedListCall) Fields(s ...googleapi.Field) *VpnGatewaysAggregatedListCall {
151677	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151678	return c
151679}
151680
151681// IfNoneMatch sets the optional parameter which makes the operation
151682// fail if the object's ETag matches the given value. This is useful for
151683// getting updates only after the object has changed since the last
151684// request. Use googleapi.IsNotModified to check whether the response
151685// error from Do is the result of In-None-Match.
151686func (c *VpnGatewaysAggregatedListCall) IfNoneMatch(entityTag string) *VpnGatewaysAggregatedListCall {
151687	c.ifNoneMatch_ = entityTag
151688	return c
151689}
151690
151691// Context sets the context to be used in this call's Do method. Any
151692// pending HTTP request will be aborted if the provided context is
151693// canceled.
151694func (c *VpnGatewaysAggregatedListCall) Context(ctx context.Context) *VpnGatewaysAggregatedListCall {
151695	c.ctx_ = ctx
151696	return c
151697}
151698
151699// Header returns an http.Header that can be modified by the caller to
151700// add HTTP headers to the request.
151701func (c *VpnGatewaysAggregatedListCall) Header() http.Header {
151702	if c.header_ == nil {
151703		c.header_ = make(http.Header)
151704	}
151705	return c.header_
151706}
151707
151708func (c *VpnGatewaysAggregatedListCall) doRequest(alt string) (*http.Response, error) {
151709	reqHeaders := make(http.Header)
151710	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151711	for k, v := range c.header_ {
151712		reqHeaders[k] = v
151713	}
151714	reqHeaders.Set("User-Agent", c.s.userAgent())
151715	if c.ifNoneMatch_ != "" {
151716		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
151717	}
151718	var body io.Reader = nil
151719	c.urlParams_.Set("alt", alt)
151720	c.urlParams_.Set("prettyPrint", "false")
151721	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnGateways")
151722	urls += "?" + c.urlParams_.Encode()
151723	req, err := http.NewRequest("GET", urls, body)
151724	if err != nil {
151725		return nil, err
151726	}
151727	req.Header = reqHeaders
151728	googleapi.Expand(req.URL, map[string]string{
151729		"project": c.project,
151730	})
151731	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151732}
151733
151734// Do executes the "compute.vpnGateways.aggregatedList" call.
151735// Exactly one of *VpnGatewayAggregatedList or error will be non-nil.
151736// Any non-2xx status code is an error. Response headers are in either
151737// *VpnGatewayAggregatedList.ServerResponse.Header or (if a response was
151738// returned at all) in error.(*googleapi.Error).Header. Use
151739// googleapi.IsNotModified to check whether the returned error was
151740// because http.StatusNotModified was returned.
151741func (c *VpnGatewaysAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayAggregatedList, error) {
151742	gensupport.SetOptions(c.urlParams_, opts...)
151743	res, err := c.doRequest("json")
151744	if res != nil && res.StatusCode == http.StatusNotModified {
151745		if res.Body != nil {
151746			res.Body.Close()
151747		}
151748		return nil, &googleapi.Error{
151749			Code:   res.StatusCode,
151750			Header: res.Header,
151751		}
151752	}
151753	if err != nil {
151754		return nil, err
151755	}
151756	defer googleapi.CloseBody(res)
151757	if err := googleapi.CheckResponse(res); err != nil {
151758		return nil, err
151759	}
151760	ret := &VpnGatewayAggregatedList{
151761		ServerResponse: googleapi.ServerResponse{
151762			Header:         res.Header,
151763			HTTPStatusCode: res.StatusCode,
151764		},
151765	}
151766	target := &ret
151767	if err := gensupport.DecodeResponse(target, res); err != nil {
151768		return nil, err
151769	}
151770	return ret, nil
151771	// {
151772	//   "description": "Retrieves an aggregated list of VPN gateways.",
151773	//   "httpMethod": "GET",
151774	//   "id": "compute.vpnGateways.aggregatedList",
151775	//   "parameterOrder": [
151776	//     "project"
151777	//   ],
151778	//   "parameters": {
151779	//     "filter": {
151780	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
151781	//       "location": "query",
151782	//       "type": "string"
151783	//     },
151784	//     "includeAllScopes": {
151785	//       "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.",
151786	//       "location": "query",
151787	//       "type": "boolean"
151788	//     },
151789	//     "maxResults": {
151790	//       "default": "500",
151791	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
151792	//       "format": "uint32",
151793	//       "location": "query",
151794	//       "minimum": "0",
151795	//       "type": "integer"
151796	//     },
151797	//     "orderBy": {
151798	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
151799	//       "location": "query",
151800	//       "type": "string"
151801	//     },
151802	//     "pageToken": {
151803	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
151804	//       "location": "query",
151805	//       "type": "string"
151806	//     },
151807	//     "project": {
151808	//       "description": "Project ID for this request.",
151809	//       "location": "path",
151810	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151811	//       "required": true,
151812	//       "type": "string"
151813	//     }
151814	//   },
151815	//   "path": "{project}/aggregated/vpnGateways",
151816	//   "response": {
151817	//     "$ref": "VpnGatewayAggregatedList"
151818	//   },
151819	//   "scopes": [
151820	//     "https://www.googleapis.com/auth/cloud-platform",
151821	//     "https://www.googleapis.com/auth/compute",
151822	//     "https://www.googleapis.com/auth/compute.readonly"
151823	//   ]
151824	// }
151825
151826}
151827
151828// Pages invokes f for each page of results.
151829// A non-nil error returned from f will halt the iteration.
151830// The provided context supersedes any context provided to the Context method.
151831func (c *VpnGatewaysAggregatedListCall) Pages(ctx context.Context, f func(*VpnGatewayAggregatedList) error) error {
151832	c.ctx_ = ctx
151833	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
151834	for {
151835		x, err := c.Do()
151836		if err != nil {
151837			return err
151838		}
151839		if err := f(x); err != nil {
151840			return err
151841		}
151842		if x.NextPageToken == "" {
151843			return nil
151844		}
151845		c.PageToken(x.NextPageToken)
151846	}
151847}
151848
151849// method id "compute.vpnGateways.delete":
151850
151851type VpnGatewaysDeleteCall struct {
151852	s          *Service
151853	project    string
151854	region     string
151855	vpnGateway string
151856	urlParams_ gensupport.URLParams
151857	ctx_       context.Context
151858	header_    http.Header
151859}
151860
151861// Delete: Deletes the specified VPN gateway.
151862func (r *VpnGatewaysService) Delete(project string, region string, vpnGateway string) *VpnGatewaysDeleteCall {
151863	c := &VpnGatewaysDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
151864	c.project = project
151865	c.region = region
151866	c.vpnGateway = vpnGateway
151867	return c
151868}
151869
151870// RequestId sets the optional parameter "requestId": An optional
151871// request ID to identify requests. Specify a unique request ID so that
151872// if you must retry your request, the server will know to ignore the
151873// request if it has already been completed.
151874//
151875// For example, consider a situation where you make an initial request
151876// and the request times out. If you make the request again with the
151877// same request ID, the server can check if original operation with the
151878// same request ID was received, and if so, will ignore the second
151879// request. This prevents clients from accidentally creating duplicate
151880// commitments.
151881//
151882// The request ID must be a valid UUID with the exception that zero UUID
151883// is not supported (00000000-0000-0000-0000-000000000000).
151884func (c *VpnGatewaysDeleteCall) RequestId(requestId string) *VpnGatewaysDeleteCall {
151885	c.urlParams_.Set("requestId", requestId)
151886	return c
151887}
151888
151889// Fields allows partial responses to be retrieved. See
151890// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
151891// for more information.
151892func (c *VpnGatewaysDeleteCall) Fields(s ...googleapi.Field) *VpnGatewaysDeleteCall {
151893	c.urlParams_.Set("fields", googleapi.CombineFields(s))
151894	return c
151895}
151896
151897// Context sets the context to be used in this call's Do method. Any
151898// pending HTTP request will be aborted if the provided context is
151899// canceled.
151900func (c *VpnGatewaysDeleteCall) Context(ctx context.Context) *VpnGatewaysDeleteCall {
151901	c.ctx_ = ctx
151902	return c
151903}
151904
151905// Header returns an http.Header that can be modified by the caller to
151906// add HTTP headers to the request.
151907func (c *VpnGatewaysDeleteCall) Header() http.Header {
151908	if c.header_ == nil {
151909		c.header_ = make(http.Header)
151910	}
151911	return c.header_
151912}
151913
151914func (c *VpnGatewaysDeleteCall) doRequest(alt string) (*http.Response, error) {
151915	reqHeaders := make(http.Header)
151916	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
151917	for k, v := range c.header_ {
151918		reqHeaders[k] = v
151919	}
151920	reqHeaders.Set("User-Agent", c.s.userAgent())
151921	var body io.Reader = nil
151922	c.urlParams_.Set("alt", alt)
151923	c.urlParams_.Set("prettyPrint", "false")
151924	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
151925	urls += "?" + c.urlParams_.Encode()
151926	req, err := http.NewRequest("DELETE", urls, body)
151927	if err != nil {
151928		return nil, err
151929	}
151930	req.Header = reqHeaders
151931	googleapi.Expand(req.URL, map[string]string{
151932		"project":    c.project,
151933		"region":     c.region,
151934		"vpnGateway": c.vpnGateway,
151935	})
151936	return gensupport.SendRequest(c.ctx_, c.s.client, req)
151937}
151938
151939// Do executes the "compute.vpnGateways.delete" call.
151940// Exactly one of *Operation or error will be non-nil. Any non-2xx
151941// status code is an error. Response headers are in either
151942// *Operation.ServerResponse.Header or (if a response was returned at
151943// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
151944// to check whether the returned error was because
151945// http.StatusNotModified was returned.
151946func (c *VpnGatewaysDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
151947	gensupport.SetOptions(c.urlParams_, opts...)
151948	res, err := c.doRequest("json")
151949	if res != nil && res.StatusCode == http.StatusNotModified {
151950		if res.Body != nil {
151951			res.Body.Close()
151952		}
151953		return nil, &googleapi.Error{
151954			Code:   res.StatusCode,
151955			Header: res.Header,
151956		}
151957	}
151958	if err != nil {
151959		return nil, err
151960	}
151961	defer googleapi.CloseBody(res)
151962	if err := googleapi.CheckResponse(res); err != nil {
151963		return nil, err
151964	}
151965	ret := &Operation{
151966		ServerResponse: googleapi.ServerResponse{
151967			Header:         res.Header,
151968			HTTPStatusCode: res.StatusCode,
151969		},
151970	}
151971	target := &ret
151972	if err := gensupport.DecodeResponse(target, res); err != nil {
151973		return nil, err
151974	}
151975	return ret, nil
151976	// {
151977	//   "description": "Deletes the specified VPN gateway.",
151978	//   "httpMethod": "DELETE",
151979	//   "id": "compute.vpnGateways.delete",
151980	//   "parameterOrder": [
151981	//     "project",
151982	//     "region",
151983	//     "vpnGateway"
151984	//   ],
151985	//   "parameters": {
151986	//     "project": {
151987	//       "description": "Project ID for this request.",
151988	//       "location": "path",
151989	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
151990	//       "required": true,
151991	//       "type": "string"
151992	//     },
151993	//     "region": {
151994	//       "description": "Name of the region for this request.",
151995	//       "location": "path",
151996	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
151997	//       "required": true,
151998	//       "type": "string"
151999	//     },
152000	//     "requestId": {
152001	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152002	//       "location": "query",
152003	//       "type": "string"
152004	//     },
152005	//     "vpnGateway": {
152006	//       "description": "Name of the VPN gateway to delete.",
152007	//       "location": "path",
152008	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152009	//       "required": true,
152010	//       "type": "string"
152011	//     }
152012	//   },
152013	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
152014	//   "response": {
152015	//     "$ref": "Operation"
152016	//   },
152017	//   "scopes": [
152018	//     "https://www.googleapis.com/auth/cloud-platform",
152019	//     "https://www.googleapis.com/auth/compute"
152020	//   ]
152021	// }
152022
152023}
152024
152025// method id "compute.vpnGateways.get":
152026
152027type VpnGatewaysGetCall struct {
152028	s            *Service
152029	project      string
152030	region       string
152031	vpnGateway   string
152032	urlParams_   gensupport.URLParams
152033	ifNoneMatch_ string
152034	ctx_         context.Context
152035	header_      http.Header
152036}
152037
152038// Get: Returns the specified VPN gateway. Gets a list of available VPN
152039// gateways by making a list() request.
152040func (r *VpnGatewaysService) Get(project string, region string, vpnGateway string) *VpnGatewaysGetCall {
152041	c := &VpnGatewaysGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152042	c.project = project
152043	c.region = region
152044	c.vpnGateway = vpnGateway
152045	return c
152046}
152047
152048// Fields allows partial responses to be retrieved. See
152049// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152050// for more information.
152051func (c *VpnGatewaysGetCall) Fields(s ...googleapi.Field) *VpnGatewaysGetCall {
152052	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152053	return c
152054}
152055
152056// IfNoneMatch sets the optional parameter which makes the operation
152057// fail if the object's ETag matches the given value. This is useful for
152058// getting updates only after the object has changed since the last
152059// request. Use googleapi.IsNotModified to check whether the response
152060// error from Do is the result of In-None-Match.
152061func (c *VpnGatewaysGetCall) IfNoneMatch(entityTag string) *VpnGatewaysGetCall {
152062	c.ifNoneMatch_ = entityTag
152063	return c
152064}
152065
152066// Context sets the context to be used in this call's Do method. Any
152067// pending HTTP request will be aborted if the provided context is
152068// canceled.
152069func (c *VpnGatewaysGetCall) Context(ctx context.Context) *VpnGatewaysGetCall {
152070	c.ctx_ = ctx
152071	return c
152072}
152073
152074// Header returns an http.Header that can be modified by the caller to
152075// add HTTP headers to the request.
152076func (c *VpnGatewaysGetCall) Header() http.Header {
152077	if c.header_ == nil {
152078		c.header_ = make(http.Header)
152079	}
152080	return c.header_
152081}
152082
152083func (c *VpnGatewaysGetCall) doRequest(alt string) (*http.Response, error) {
152084	reqHeaders := make(http.Header)
152085	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152086	for k, v := range c.header_ {
152087		reqHeaders[k] = v
152088	}
152089	reqHeaders.Set("User-Agent", c.s.userAgent())
152090	if c.ifNoneMatch_ != "" {
152091		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152092	}
152093	var body io.Reader = nil
152094	c.urlParams_.Set("alt", alt)
152095	c.urlParams_.Set("prettyPrint", "false")
152096	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}")
152097	urls += "?" + c.urlParams_.Encode()
152098	req, err := http.NewRequest("GET", urls, body)
152099	if err != nil {
152100		return nil, err
152101	}
152102	req.Header = reqHeaders
152103	googleapi.Expand(req.URL, map[string]string{
152104		"project":    c.project,
152105		"region":     c.region,
152106		"vpnGateway": c.vpnGateway,
152107	})
152108	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152109}
152110
152111// Do executes the "compute.vpnGateways.get" call.
152112// Exactly one of *VpnGateway or error will be non-nil. Any non-2xx
152113// status code is an error. Response headers are in either
152114// *VpnGateway.ServerResponse.Header or (if a response was returned at
152115// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152116// to check whether the returned error was because
152117// http.StatusNotModified was returned.
152118func (c *VpnGatewaysGetCall) Do(opts ...googleapi.CallOption) (*VpnGateway, error) {
152119	gensupport.SetOptions(c.urlParams_, opts...)
152120	res, err := c.doRequest("json")
152121	if res != nil && res.StatusCode == http.StatusNotModified {
152122		if res.Body != nil {
152123			res.Body.Close()
152124		}
152125		return nil, &googleapi.Error{
152126			Code:   res.StatusCode,
152127			Header: res.Header,
152128		}
152129	}
152130	if err != nil {
152131		return nil, err
152132	}
152133	defer googleapi.CloseBody(res)
152134	if err := googleapi.CheckResponse(res); err != nil {
152135		return nil, err
152136	}
152137	ret := &VpnGateway{
152138		ServerResponse: googleapi.ServerResponse{
152139			Header:         res.Header,
152140			HTTPStatusCode: res.StatusCode,
152141		},
152142	}
152143	target := &ret
152144	if err := gensupport.DecodeResponse(target, res); err != nil {
152145		return nil, err
152146	}
152147	return ret, nil
152148	// {
152149	//   "description": "Returns the specified VPN gateway. Gets a list of available VPN gateways by making a list() request.",
152150	//   "httpMethod": "GET",
152151	//   "id": "compute.vpnGateways.get",
152152	//   "parameterOrder": [
152153	//     "project",
152154	//     "region",
152155	//     "vpnGateway"
152156	//   ],
152157	//   "parameters": {
152158	//     "project": {
152159	//       "description": "Project ID for this request.",
152160	//       "location": "path",
152161	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152162	//       "required": true,
152163	//       "type": "string"
152164	//     },
152165	//     "region": {
152166	//       "description": "Name of the region for this request.",
152167	//       "location": "path",
152168	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152169	//       "required": true,
152170	//       "type": "string"
152171	//     },
152172	//     "vpnGateway": {
152173	//       "description": "Name of the VPN gateway to return.",
152174	//       "location": "path",
152175	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152176	//       "required": true,
152177	//       "type": "string"
152178	//     }
152179	//   },
152180	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}",
152181	//   "response": {
152182	//     "$ref": "VpnGateway"
152183	//   },
152184	//   "scopes": [
152185	//     "https://www.googleapis.com/auth/cloud-platform",
152186	//     "https://www.googleapis.com/auth/compute",
152187	//     "https://www.googleapis.com/auth/compute.readonly"
152188	//   ]
152189	// }
152190
152191}
152192
152193// method id "compute.vpnGateways.getStatus":
152194
152195type VpnGatewaysGetStatusCall struct {
152196	s            *Service
152197	project      string
152198	region       string
152199	vpnGateway   string
152200	urlParams_   gensupport.URLParams
152201	ifNoneMatch_ string
152202	ctx_         context.Context
152203	header_      http.Header
152204}
152205
152206// GetStatus: Returns the status for the specified VPN gateway.
152207func (r *VpnGatewaysService) GetStatus(project string, region string, vpnGateway string) *VpnGatewaysGetStatusCall {
152208	c := &VpnGatewaysGetStatusCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152209	c.project = project
152210	c.region = region
152211	c.vpnGateway = vpnGateway
152212	return c
152213}
152214
152215// Fields allows partial responses to be retrieved. See
152216// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152217// for more information.
152218func (c *VpnGatewaysGetStatusCall) Fields(s ...googleapi.Field) *VpnGatewaysGetStatusCall {
152219	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152220	return c
152221}
152222
152223// IfNoneMatch sets the optional parameter which makes the operation
152224// fail if the object's ETag matches the given value. This is useful for
152225// getting updates only after the object has changed since the last
152226// request. Use googleapi.IsNotModified to check whether the response
152227// error from Do is the result of In-None-Match.
152228func (c *VpnGatewaysGetStatusCall) IfNoneMatch(entityTag string) *VpnGatewaysGetStatusCall {
152229	c.ifNoneMatch_ = entityTag
152230	return c
152231}
152232
152233// Context sets the context to be used in this call's Do method. Any
152234// pending HTTP request will be aborted if the provided context is
152235// canceled.
152236func (c *VpnGatewaysGetStatusCall) Context(ctx context.Context) *VpnGatewaysGetStatusCall {
152237	c.ctx_ = ctx
152238	return c
152239}
152240
152241// Header returns an http.Header that can be modified by the caller to
152242// add HTTP headers to the request.
152243func (c *VpnGatewaysGetStatusCall) Header() http.Header {
152244	if c.header_ == nil {
152245		c.header_ = make(http.Header)
152246	}
152247	return c.header_
152248}
152249
152250func (c *VpnGatewaysGetStatusCall) doRequest(alt string) (*http.Response, error) {
152251	reqHeaders := make(http.Header)
152252	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152253	for k, v := range c.header_ {
152254		reqHeaders[k] = v
152255	}
152256	reqHeaders.Set("User-Agent", c.s.userAgent())
152257	if c.ifNoneMatch_ != "" {
152258		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152259	}
152260	var body io.Reader = nil
152261	c.urlParams_.Set("alt", alt)
152262	c.urlParams_.Set("prettyPrint", "false")
152263	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus")
152264	urls += "?" + c.urlParams_.Encode()
152265	req, err := http.NewRequest("GET", urls, body)
152266	if err != nil {
152267		return nil, err
152268	}
152269	req.Header = reqHeaders
152270	googleapi.Expand(req.URL, map[string]string{
152271		"project":    c.project,
152272		"region":     c.region,
152273		"vpnGateway": c.vpnGateway,
152274	})
152275	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152276}
152277
152278// Do executes the "compute.vpnGateways.getStatus" call.
152279// Exactly one of *VpnGatewaysGetStatusResponse or error will be
152280// non-nil. Any non-2xx status code is an error. Response headers are in
152281// either *VpnGatewaysGetStatusResponse.ServerResponse.Header or (if a
152282// response was returned at all) in error.(*googleapi.Error).Header. Use
152283// googleapi.IsNotModified to check whether the returned error was
152284// because http.StatusNotModified was returned.
152285func (c *VpnGatewaysGetStatusCall) Do(opts ...googleapi.CallOption) (*VpnGatewaysGetStatusResponse, error) {
152286	gensupport.SetOptions(c.urlParams_, opts...)
152287	res, err := c.doRequest("json")
152288	if res != nil && res.StatusCode == http.StatusNotModified {
152289		if res.Body != nil {
152290			res.Body.Close()
152291		}
152292		return nil, &googleapi.Error{
152293			Code:   res.StatusCode,
152294			Header: res.Header,
152295		}
152296	}
152297	if err != nil {
152298		return nil, err
152299	}
152300	defer googleapi.CloseBody(res)
152301	if err := googleapi.CheckResponse(res); err != nil {
152302		return nil, err
152303	}
152304	ret := &VpnGatewaysGetStatusResponse{
152305		ServerResponse: googleapi.ServerResponse{
152306			Header:         res.Header,
152307			HTTPStatusCode: res.StatusCode,
152308		},
152309	}
152310	target := &ret
152311	if err := gensupport.DecodeResponse(target, res); err != nil {
152312		return nil, err
152313	}
152314	return ret, nil
152315	// {
152316	//   "description": "Returns the status for the specified VPN gateway.",
152317	//   "httpMethod": "GET",
152318	//   "id": "compute.vpnGateways.getStatus",
152319	//   "parameterOrder": [
152320	//     "project",
152321	//     "region",
152322	//     "vpnGateway"
152323	//   ],
152324	//   "parameters": {
152325	//     "project": {
152326	//       "description": "Project ID for this request.",
152327	//       "location": "path",
152328	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152329	//       "required": true,
152330	//       "type": "string"
152331	//     },
152332	//     "region": {
152333	//       "description": "Name of the region for this request.",
152334	//       "location": "path",
152335	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152336	//       "required": true,
152337	//       "type": "string"
152338	//     },
152339	//     "vpnGateway": {
152340	//       "description": "Name of the VPN gateway to return.",
152341	//       "location": "path",
152342	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152343	//       "required": true,
152344	//       "type": "string"
152345	//     }
152346	//   },
152347	//   "path": "{project}/regions/{region}/vpnGateways/{vpnGateway}/getStatus",
152348	//   "response": {
152349	//     "$ref": "VpnGatewaysGetStatusResponse"
152350	//   },
152351	//   "scopes": [
152352	//     "https://www.googleapis.com/auth/cloud-platform",
152353	//     "https://www.googleapis.com/auth/compute",
152354	//     "https://www.googleapis.com/auth/compute.readonly"
152355	//   ]
152356	// }
152357
152358}
152359
152360// method id "compute.vpnGateways.insert":
152361
152362type VpnGatewaysInsertCall struct {
152363	s          *Service
152364	project    string
152365	region     string
152366	vpngateway *VpnGateway
152367	urlParams_ gensupport.URLParams
152368	ctx_       context.Context
152369	header_    http.Header
152370}
152371
152372// Insert: Creates a VPN gateway in the specified project and region
152373// using the data included in the request.
152374func (r *VpnGatewaysService) Insert(project string, region string, vpngateway *VpnGateway) *VpnGatewaysInsertCall {
152375	c := &VpnGatewaysInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152376	c.project = project
152377	c.region = region
152378	c.vpngateway = vpngateway
152379	return c
152380}
152381
152382// RequestId sets the optional parameter "requestId": An optional
152383// request ID to identify requests. Specify a unique request ID so that
152384// if you must retry your request, the server will know to ignore the
152385// request if it has already been completed.
152386//
152387// For example, consider a situation where you make an initial request
152388// and the request times out. If you make the request again with the
152389// same request ID, the server can check if original operation with the
152390// same request ID was received, and if so, will ignore the second
152391// request. This prevents clients from accidentally creating duplicate
152392// commitments.
152393//
152394// The request ID must be a valid UUID with the exception that zero UUID
152395// is not supported (00000000-0000-0000-0000-000000000000).
152396func (c *VpnGatewaysInsertCall) RequestId(requestId string) *VpnGatewaysInsertCall {
152397	c.urlParams_.Set("requestId", requestId)
152398	return c
152399}
152400
152401// Fields allows partial responses to be retrieved. See
152402// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152403// for more information.
152404func (c *VpnGatewaysInsertCall) Fields(s ...googleapi.Field) *VpnGatewaysInsertCall {
152405	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152406	return c
152407}
152408
152409// Context sets the context to be used in this call's Do method. Any
152410// pending HTTP request will be aborted if the provided context is
152411// canceled.
152412func (c *VpnGatewaysInsertCall) Context(ctx context.Context) *VpnGatewaysInsertCall {
152413	c.ctx_ = ctx
152414	return c
152415}
152416
152417// Header returns an http.Header that can be modified by the caller to
152418// add HTTP headers to the request.
152419func (c *VpnGatewaysInsertCall) Header() http.Header {
152420	if c.header_ == nil {
152421		c.header_ = make(http.Header)
152422	}
152423	return c.header_
152424}
152425
152426func (c *VpnGatewaysInsertCall) doRequest(alt string) (*http.Response, error) {
152427	reqHeaders := make(http.Header)
152428	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152429	for k, v := range c.header_ {
152430		reqHeaders[k] = v
152431	}
152432	reqHeaders.Set("User-Agent", c.s.userAgent())
152433	var body io.Reader = nil
152434	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpngateway)
152435	if err != nil {
152436		return nil, err
152437	}
152438	reqHeaders.Set("Content-Type", "application/json")
152439	c.urlParams_.Set("alt", alt)
152440	c.urlParams_.Set("prettyPrint", "false")
152441	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
152442	urls += "?" + c.urlParams_.Encode()
152443	req, err := http.NewRequest("POST", urls, body)
152444	if err != nil {
152445		return nil, err
152446	}
152447	req.Header = reqHeaders
152448	googleapi.Expand(req.URL, map[string]string{
152449		"project": c.project,
152450		"region":  c.region,
152451	})
152452	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152453}
152454
152455// Do executes the "compute.vpnGateways.insert" call.
152456// Exactly one of *Operation or error will be non-nil. Any non-2xx
152457// status code is an error. Response headers are in either
152458// *Operation.ServerResponse.Header or (if a response was returned at
152459// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152460// to check whether the returned error was because
152461// http.StatusNotModified was returned.
152462func (c *VpnGatewaysInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152463	gensupport.SetOptions(c.urlParams_, opts...)
152464	res, err := c.doRequest("json")
152465	if res != nil && res.StatusCode == http.StatusNotModified {
152466		if res.Body != nil {
152467			res.Body.Close()
152468		}
152469		return nil, &googleapi.Error{
152470			Code:   res.StatusCode,
152471			Header: res.Header,
152472		}
152473	}
152474	if err != nil {
152475		return nil, err
152476	}
152477	defer googleapi.CloseBody(res)
152478	if err := googleapi.CheckResponse(res); err != nil {
152479		return nil, err
152480	}
152481	ret := &Operation{
152482		ServerResponse: googleapi.ServerResponse{
152483			Header:         res.Header,
152484			HTTPStatusCode: res.StatusCode,
152485		},
152486	}
152487	target := &ret
152488	if err := gensupport.DecodeResponse(target, res); err != nil {
152489		return nil, err
152490	}
152491	return ret, nil
152492	// {
152493	//   "description": "Creates a VPN gateway in the specified project and region using the data included in the request.",
152494	//   "httpMethod": "POST",
152495	//   "id": "compute.vpnGateways.insert",
152496	//   "parameterOrder": [
152497	//     "project",
152498	//     "region"
152499	//   ],
152500	//   "parameters": {
152501	//     "project": {
152502	//       "description": "Project ID for this request.",
152503	//       "location": "path",
152504	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152505	//       "required": true,
152506	//       "type": "string"
152507	//     },
152508	//     "region": {
152509	//       "description": "Name of the region for this request.",
152510	//       "location": "path",
152511	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152512	//       "required": true,
152513	//       "type": "string"
152514	//     },
152515	//     "requestId": {
152516	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152517	//       "location": "query",
152518	//       "type": "string"
152519	//     }
152520	//   },
152521	//   "path": "{project}/regions/{region}/vpnGateways",
152522	//   "request": {
152523	//     "$ref": "VpnGateway"
152524	//   },
152525	//   "response": {
152526	//     "$ref": "Operation"
152527	//   },
152528	//   "scopes": [
152529	//     "https://www.googleapis.com/auth/cloud-platform",
152530	//     "https://www.googleapis.com/auth/compute"
152531	//   ]
152532	// }
152533
152534}
152535
152536// method id "compute.vpnGateways.list":
152537
152538type VpnGatewaysListCall struct {
152539	s            *Service
152540	project      string
152541	region       string
152542	urlParams_   gensupport.URLParams
152543	ifNoneMatch_ string
152544	ctx_         context.Context
152545	header_      http.Header
152546}
152547
152548// List: Retrieves a list of VPN gateways available to the specified
152549// project and region.
152550func (r *VpnGatewaysService) List(project string, region string) *VpnGatewaysListCall {
152551	c := &VpnGatewaysListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152552	c.project = project
152553	c.region = region
152554	return c
152555}
152556
152557// Filter sets the optional parameter "filter": A filter expression that
152558// filters resources listed in the response. The expression must specify
152559// the field name, a comparison operator, and the value that you want to
152560// use for filtering. The value must be a string, a number, or a
152561// boolean. The comparison operator must be either =, !=, >, or <.
152562//
152563// For example, if you are filtering Compute Engine instances, you can
152564// exclude instances named example-instance by specifying name !=
152565// example-instance.
152566//
152567// You can also filter nested fields. For example, you could specify
152568// scheduling.automaticRestart = false to include instances only if they
152569// are not scheduled for automatic restarts. You can use filtering on
152570// nested fields to filter based on resource labels.
152571//
152572// To filter on multiple expressions, provide each separate expression
152573// within parentheses. For example, (scheduling.automaticRestart = true)
152574// (cpuPlatform = "Intel Skylake"). By default, each expression is an
152575// AND expression. However, you can include AND and OR expressions
152576// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
152577// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
152578// true).
152579func (c *VpnGatewaysListCall) Filter(filter string) *VpnGatewaysListCall {
152580	c.urlParams_.Set("filter", filter)
152581	return c
152582}
152583
152584// MaxResults sets the optional parameter "maxResults": The maximum
152585// number of results per page that should be returned. If the number of
152586// available results is larger than maxResults, Compute Engine returns a
152587// nextPageToken that can be used to get the next page of results in
152588// subsequent list requests. Acceptable values are 0 to 500, inclusive.
152589// (Default: 500)
152590func (c *VpnGatewaysListCall) MaxResults(maxResults int64) *VpnGatewaysListCall {
152591	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
152592	return c
152593}
152594
152595// OrderBy sets the optional parameter "orderBy": Sorts list results by
152596// a certain order. By default, results are returned in alphanumerical
152597// order based on the resource name.
152598//
152599// You can also sort results in descending order based on the creation
152600// timestamp using orderBy="creationTimestamp desc". This sorts results
152601// based on the creationTimestamp field in reverse chronological order
152602// (newest result first). Use this to sort resources like operations so
152603// that the newest operation is returned first.
152604//
152605// Currently, only sorting by name or creationTimestamp desc is
152606// supported.
152607func (c *VpnGatewaysListCall) OrderBy(orderBy string) *VpnGatewaysListCall {
152608	c.urlParams_.Set("orderBy", orderBy)
152609	return c
152610}
152611
152612// PageToken sets the optional parameter "pageToken": Specifies a page
152613// token to use. Set pageToken to the nextPageToken returned by a
152614// previous list request to get the next page of results.
152615func (c *VpnGatewaysListCall) PageToken(pageToken string) *VpnGatewaysListCall {
152616	c.urlParams_.Set("pageToken", pageToken)
152617	return c
152618}
152619
152620// Fields allows partial responses to be retrieved. See
152621// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152622// for more information.
152623func (c *VpnGatewaysListCall) Fields(s ...googleapi.Field) *VpnGatewaysListCall {
152624	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152625	return c
152626}
152627
152628// IfNoneMatch sets the optional parameter which makes the operation
152629// fail if the object's ETag matches the given value. This is useful for
152630// getting updates only after the object has changed since the last
152631// request. Use googleapi.IsNotModified to check whether the response
152632// error from Do is the result of In-None-Match.
152633func (c *VpnGatewaysListCall) IfNoneMatch(entityTag string) *VpnGatewaysListCall {
152634	c.ifNoneMatch_ = entityTag
152635	return c
152636}
152637
152638// Context sets the context to be used in this call's Do method. Any
152639// pending HTTP request will be aborted if the provided context is
152640// canceled.
152641func (c *VpnGatewaysListCall) Context(ctx context.Context) *VpnGatewaysListCall {
152642	c.ctx_ = ctx
152643	return c
152644}
152645
152646// Header returns an http.Header that can be modified by the caller to
152647// add HTTP headers to the request.
152648func (c *VpnGatewaysListCall) Header() http.Header {
152649	if c.header_ == nil {
152650		c.header_ = make(http.Header)
152651	}
152652	return c.header_
152653}
152654
152655func (c *VpnGatewaysListCall) doRequest(alt string) (*http.Response, error) {
152656	reqHeaders := make(http.Header)
152657	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152658	for k, v := range c.header_ {
152659		reqHeaders[k] = v
152660	}
152661	reqHeaders.Set("User-Agent", c.s.userAgent())
152662	if c.ifNoneMatch_ != "" {
152663		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
152664	}
152665	var body io.Reader = nil
152666	c.urlParams_.Set("alt", alt)
152667	c.urlParams_.Set("prettyPrint", "false")
152668	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways")
152669	urls += "?" + c.urlParams_.Encode()
152670	req, err := http.NewRequest("GET", urls, body)
152671	if err != nil {
152672		return nil, err
152673	}
152674	req.Header = reqHeaders
152675	googleapi.Expand(req.URL, map[string]string{
152676		"project": c.project,
152677		"region":  c.region,
152678	})
152679	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152680}
152681
152682// Do executes the "compute.vpnGateways.list" call.
152683// Exactly one of *VpnGatewayList or error will be non-nil. Any non-2xx
152684// status code is an error. Response headers are in either
152685// *VpnGatewayList.ServerResponse.Header or (if a response was returned
152686// at all) in error.(*googleapi.Error).Header. Use
152687// googleapi.IsNotModified to check whether the returned error was
152688// because http.StatusNotModified was returned.
152689func (c *VpnGatewaysListCall) Do(opts ...googleapi.CallOption) (*VpnGatewayList, error) {
152690	gensupport.SetOptions(c.urlParams_, opts...)
152691	res, err := c.doRequest("json")
152692	if res != nil && res.StatusCode == http.StatusNotModified {
152693		if res.Body != nil {
152694			res.Body.Close()
152695		}
152696		return nil, &googleapi.Error{
152697			Code:   res.StatusCode,
152698			Header: res.Header,
152699		}
152700	}
152701	if err != nil {
152702		return nil, err
152703	}
152704	defer googleapi.CloseBody(res)
152705	if err := googleapi.CheckResponse(res); err != nil {
152706		return nil, err
152707	}
152708	ret := &VpnGatewayList{
152709		ServerResponse: googleapi.ServerResponse{
152710			Header:         res.Header,
152711			HTTPStatusCode: res.StatusCode,
152712		},
152713	}
152714	target := &ret
152715	if err := gensupport.DecodeResponse(target, res); err != nil {
152716		return nil, err
152717	}
152718	return ret, nil
152719	// {
152720	//   "description": "Retrieves a list of VPN gateways available to the specified project and region.",
152721	//   "httpMethod": "GET",
152722	//   "id": "compute.vpnGateways.list",
152723	//   "parameterOrder": [
152724	//     "project",
152725	//     "region"
152726	//   ],
152727	//   "parameters": {
152728	//     "filter": {
152729	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
152730	//       "location": "query",
152731	//       "type": "string"
152732	//     },
152733	//     "maxResults": {
152734	//       "default": "500",
152735	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
152736	//       "format": "uint32",
152737	//       "location": "query",
152738	//       "minimum": "0",
152739	//       "type": "integer"
152740	//     },
152741	//     "orderBy": {
152742	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
152743	//       "location": "query",
152744	//       "type": "string"
152745	//     },
152746	//     "pageToken": {
152747	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
152748	//       "location": "query",
152749	//       "type": "string"
152750	//     },
152751	//     "project": {
152752	//       "description": "Project ID for this request.",
152753	//       "location": "path",
152754	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152755	//       "required": true,
152756	//       "type": "string"
152757	//     },
152758	//     "region": {
152759	//       "description": "Name of the region for this request.",
152760	//       "location": "path",
152761	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152762	//       "required": true,
152763	//       "type": "string"
152764	//     }
152765	//   },
152766	//   "path": "{project}/regions/{region}/vpnGateways",
152767	//   "response": {
152768	//     "$ref": "VpnGatewayList"
152769	//   },
152770	//   "scopes": [
152771	//     "https://www.googleapis.com/auth/cloud-platform",
152772	//     "https://www.googleapis.com/auth/compute",
152773	//     "https://www.googleapis.com/auth/compute.readonly"
152774	//   ]
152775	// }
152776
152777}
152778
152779// Pages invokes f for each page of results.
152780// A non-nil error returned from f will halt the iteration.
152781// The provided context supersedes any context provided to the Context method.
152782func (c *VpnGatewaysListCall) Pages(ctx context.Context, f func(*VpnGatewayList) error) error {
152783	c.ctx_ = ctx
152784	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
152785	for {
152786		x, err := c.Do()
152787		if err != nil {
152788			return err
152789		}
152790		if err := f(x); err != nil {
152791			return err
152792		}
152793		if x.NextPageToken == "" {
152794			return nil
152795		}
152796		c.PageToken(x.NextPageToken)
152797	}
152798}
152799
152800// method id "compute.vpnGateways.setLabels":
152801
152802type VpnGatewaysSetLabelsCall struct {
152803	s                      *Service
152804	project                string
152805	region                 string
152806	resource               string
152807	regionsetlabelsrequest *RegionSetLabelsRequest
152808	urlParams_             gensupport.URLParams
152809	ctx_                   context.Context
152810	header_                http.Header
152811}
152812
152813// SetLabels: Sets the labels on a VpnGateway. To learn more about
152814// labels, read the Labeling Resources documentation.
152815func (r *VpnGatewaysService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnGatewaysSetLabelsCall {
152816	c := &VpnGatewaysSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
152817	c.project = project
152818	c.region = region
152819	c.resource = resource
152820	c.regionsetlabelsrequest = regionsetlabelsrequest
152821	return c
152822}
152823
152824// RequestId sets the optional parameter "requestId": An optional
152825// request ID to identify requests. Specify a unique request ID so that
152826// if you must retry your request, the server will know to ignore the
152827// request if it has already been completed.
152828//
152829// For example, consider a situation where you make an initial request
152830// and the request times out. If you make the request again with the
152831// same request ID, the server can check if original operation with the
152832// same request ID was received, and if so, will ignore the second
152833// request. This prevents clients from accidentally creating duplicate
152834// commitments.
152835//
152836// The request ID must be a valid UUID with the exception that zero UUID
152837// is not supported (00000000-0000-0000-0000-000000000000).
152838func (c *VpnGatewaysSetLabelsCall) RequestId(requestId string) *VpnGatewaysSetLabelsCall {
152839	c.urlParams_.Set("requestId", requestId)
152840	return c
152841}
152842
152843// Fields allows partial responses to be retrieved. See
152844// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
152845// for more information.
152846func (c *VpnGatewaysSetLabelsCall) Fields(s ...googleapi.Field) *VpnGatewaysSetLabelsCall {
152847	c.urlParams_.Set("fields", googleapi.CombineFields(s))
152848	return c
152849}
152850
152851// Context sets the context to be used in this call's Do method. Any
152852// pending HTTP request will be aborted if the provided context is
152853// canceled.
152854func (c *VpnGatewaysSetLabelsCall) Context(ctx context.Context) *VpnGatewaysSetLabelsCall {
152855	c.ctx_ = ctx
152856	return c
152857}
152858
152859// Header returns an http.Header that can be modified by the caller to
152860// add HTTP headers to the request.
152861func (c *VpnGatewaysSetLabelsCall) Header() http.Header {
152862	if c.header_ == nil {
152863		c.header_ = make(http.Header)
152864	}
152865	return c.header_
152866}
152867
152868func (c *VpnGatewaysSetLabelsCall) doRequest(alt string) (*http.Response, error) {
152869	reqHeaders := make(http.Header)
152870	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
152871	for k, v := range c.header_ {
152872		reqHeaders[k] = v
152873	}
152874	reqHeaders.Set("User-Agent", c.s.userAgent())
152875	var body io.Reader = nil
152876	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
152877	if err != nil {
152878		return nil, err
152879	}
152880	reqHeaders.Set("Content-Type", "application/json")
152881	c.urlParams_.Set("alt", alt)
152882	c.urlParams_.Set("prettyPrint", "false")
152883	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnGateways/{resource}/setLabels")
152884	urls += "?" + c.urlParams_.Encode()
152885	req, err := http.NewRequest("POST", urls, body)
152886	if err != nil {
152887		return nil, err
152888	}
152889	req.Header = reqHeaders
152890	googleapi.Expand(req.URL, map[string]string{
152891		"project":  c.project,
152892		"region":   c.region,
152893		"resource": c.resource,
152894	})
152895	return gensupport.SendRequest(c.ctx_, c.s.client, req)
152896}
152897
152898// Do executes the "compute.vpnGateways.setLabels" call.
152899// Exactly one of *Operation or error will be non-nil. Any non-2xx
152900// status code is an error. Response headers are in either
152901// *Operation.ServerResponse.Header or (if a response was returned at
152902// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
152903// to check whether the returned error was because
152904// http.StatusNotModified was returned.
152905func (c *VpnGatewaysSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
152906	gensupport.SetOptions(c.urlParams_, opts...)
152907	res, err := c.doRequest("json")
152908	if res != nil && res.StatusCode == http.StatusNotModified {
152909		if res.Body != nil {
152910			res.Body.Close()
152911		}
152912		return nil, &googleapi.Error{
152913			Code:   res.StatusCode,
152914			Header: res.Header,
152915		}
152916	}
152917	if err != nil {
152918		return nil, err
152919	}
152920	defer googleapi.CloseBody(res)
152921	if err := googleapi.CheckResponse(res); err != nil {
152922		return nil, err
152923	}
152924	ret := &Operation{
152925		ServerResponse: googleapi.ServerResponse{
152926			Header:         res.Header,
152927			HTTPStatusCode: res.StatusCode,
152928		},
152929	}
152930	target := &ret
152931	if err := gensupport.DecodeResponse(target, res); err != nil {
152932		return nil, err
152933	}
152934	return ret, nil
152935	// {
152936	//   "description": "Sets the labels on a VpnGateway. To learn more about labels, read the Labeling Resources documentation.",
152937	//   "httpMethod": "POST",
152938	//   "id": "compute.vpnGateways.setLabels",
152939	//   "parameterOrder": [
152940	//     "project",
152941	//     "region",
152942	//     "resource"
152943	//   ],
152944	//   "parameters": {
152945	//     "project": {
152946	//       "description": "Project ID for this request.",
152947	//       "location": "path",
152948	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
152949	//       "required": true,
152950	//       "type": "string"
152951	//     },
152952	//     "region": {
152953	//       "description": "The region for this request.",
152954	//       "location": "path",
152955	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
152956	//       "required": true,
152957	//       "type": "string"
152958	//     },
152959	//     "requestId": {
152960	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
152961	//       "location": "query",
152962	//       "type": "string"
152963	//     },
152964	//     "resource": {
152965	//       "description": "Name or id of the resource for this request.",
152966	//       "location": "path",
152967	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
152968	//       "required": true,
152969	//       "type": "string"
152970	//     }
152971	//   },
152972	//   "path": "{project}/regions/{region}/vpnGateways/{resource}/setLabels",
152973	//   "request": {
152974	//     "$ref": "RegionSetLabelsRequest"
152975	//   },
152976	//   "response": {
152977	//     "$ref": "Operation"
152978	//   },
152979	//   "scopes": [
152980	//     "https://www.googleapis.com/auth/cloud-platform",
152981	//     "https://www.googleapis.com/auth/compute"
152982	//   ]
152983	// }
152984
152985}
152986
152987// method id "compute.vpnTunnels.aggregatedList":
152988
152989type VpnTunnelsAggregatedListCall struct {
152990	s            *Service
152991	project      string
152992	urlParams_   gensupport.URLParams
152993	ifNoneMatch_ string
152994	ctx_         context.Context
152995	header_      http.Header
152996}
152997
152998// AggregatedList: Retrieves an aggregated list of VPN tunnels.
152999func (r *VpnTunnelsService) AggregatedList(project string) *VpnTunnelsAggregatedListCall {
153000	c := &VpnTunnelsAggregatedListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153001	c.project = project
153002	return c
153003}
153004
153005// Filter sets the optional parameter "filter": A filter expression that
153006// filters resources listed in the response. The expression must specify
153007// the field name, a comparison operator, and the value that you want to
153008// use for filtering. The value must be a string, a number, or a
153009// boolean. The comparison operator must be either =, !=, >, or <.
153010//
153011// For example, if you are filtering Compute Engine instances, you can
153012// exclude instances named example-instance by specifying name !=
153013// example-instance.
153014//
153015// You can also filter nested fields. For example, you could specify
153016// scheduling.automaticRestart = false to include instances only if they
153017// are not scheduled for automatic restarts. You can use filtering on
153018// nested fields to filter based on resource labels.
153019//
153020// To filter on multiple expressions, provide each separate expression
153021// within parentheses. For example, (scheduling.automaticRestart = true)
153022// (cpuPlatform = "Intel Skylake"). By default, each expression is an
153023// AND expression. However, you can include AND and OR expressions
153024// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
153025// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
153026// true).
153027func (c *VpnTunnelsAggregatedListCall) Filter(filter string) *VpnTunnelsAggregatedListCall {
153028	c.urlParams_.Set("filter", filter)
153029	return c
153030}
153031
153032// IncludeAllScopes sets the optional parameter "includeAllScopes":
153033// Indicates whether every visible scope for each scope type (zone,
153034// region, global) should be included in the response. For new resource
153035// types added after this field, the flag has no effect as new resource
153036// types will always include every visible scope for each scope type in
153037// response. For resource types which predate this field, if this flag
153038// is omitted or false, only scopes of the scope types where the
153039// resource type is expected to be found will be included.
153040func (c *VpnTunnelsAggregatedListCall) IncludeAllScopes(includeAllScopes bool) *VpnTunnelsAggregatedListCall {
153041	c.urlParams_.Set("includeAllScopes", fmt.Sprint(includeAllScopes))
153042	return c
153043}
153044
153045// MaxResults sets the optional parameter "maxResults": The maximum
153046// number of results per page that should be returned. If the number of
153047// available results is larger than maxResults, Compute Engine returns a
153048// nextPageToken that can be used to get the next page of results in
153049// subsequent list requests. Acceptable values are 0 to 500, inclusive.
153050// (Default: 500)
153051func (c *VpnTunnelsAggregatedListCall) MaxResults(maxResults int64) *VpnTunnelsAggregatedListCall {
153052	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153053	return c
153054}
153055
153056// OrderBy sets the optional parameter "orderBy": Sorts list results by
153057// a certain order. By default, results are returned in alphanumerical
153058// order based on the resource name.
153059//
153060// You can also sort results in descending order based on the creation
153061// timestamp using orderBy="creationTimestamp desc". This sorts results
153062// based on the creationTimestamp field in reverse chronological order
153063// (newest result first). Use this to sort resources like operations so
153064// that the newest operation is returned first.
153065//
153066// Currently, only sorting by name or creationTimestamp desc is
153067// supported.
153068func (c *VpnTunnelsAggregatedListCall) OrderBy(orderBy string) *VpnTunnelsAggregatedListCall {
153069	c.urlParams_.Set("orderBy", orderBy)
153070	return c
153071}
153072
153073// PageToken sets the optional parameter "pageToken": Specifies a page
153074// token to use. Set pageToken to the nextPageToken returned by a
153075// previous list request to get the next page of results.
153076func (c *VpnTunnelsAggregatedListCall) PageToken(pageToken string) *VpnTunnelsAggregatedListCall {
153077	c.urlParams_.Set("pageToken", pageToken)
153078	return c
153079}
153080
153081// Fields allows partial responses to be retrieved. See
153082// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153083// for more information.
153084func (c *VpnTunnelsAggregatedListCall) Fields(s ...googleapi.Field) *VpnTunnelsAggregatedListCall {
153085	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153086	return c
153087}
153088
153089// IfNoneMatch sets the optional parameter which makes the operation
153090// fail if the object's ETag matches the given value. This is useful for
153091// getting updates only after the object has changed since the last
153092// request. Use googleapi.IsNotModified to check whether the response
153093// error from Do is the result of In-None-Match.
153094func (c *VpnTunnelsAggregatedListCall) IfNoneMatch(entityTag string) *VpnTunnelsAggregatedListCall {
153095	c.ifNoneMatch_ = entityTag
153096	return c
153097}
153098
153099// Context sets the context to be used in this call's Do method. Any
153100// pending HTTP request will be aborted if the provided context is
153101// canceled.
153102func (c *VpnTunnelsAggregatedListCall) Context(ctx context.Context) *VpnTunnelsAggregatedListCall {
153103	c.ctx_ = ctx
153104	return c
153105}
153106
153107// Header returns an http.Header that can be modified by the caller to
153108// add HTTP headers to the request.
153109func (c *VpnTunnelsAggregatedListCall) Header() http.Header {
153110	if c.header_ == nil {
153111		c.header_ = make(http.Header)
153112	}
153113	return c.header_
153114}
153115
153116func (c *VpnTunnelsAggregatedListCall) doRequest(alt string) (*http.Response, error) {
153117	reqHeaders := make(http.Header)
153118	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153119	for k, v := range c.header_ {
153120		reqHeaders[k] = v
153121	}
153122	reqHeaders.Set("User-Agent", c.s.userAgent())
153123	if c.ifNoneMatch_ != "" {
153124		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153125	}
153126	var body io.Reader = nil
153127	c.urlParams_.Set("alt", alt)
153128	c.urlParams_.Set("prettyPrint", "false")
153129	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/aggregated/vpnTunnels")
153130	urls += "?" + c.urlParams_.Encode()
153131	req, err := http.NewRequest("GET", urls, body)
153132	if err != nil {
153133		return nil, err
153134	}
153135	req.Header = reqHeaders
153136	googleapi.Expand(req.URL, map[string]string{
153137		"project": c.project,
153138	})
153139	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153140}
153141
153142// Do executes the "compute.vpnTunnels.aggregatedList" call.
153143// Exactly one of *VpnTunnelAggregatedList or error will be non-nil. Any
153144// non-2xx status code is an error. Response headers are in either
153145// *VpnTunnelAggregatedList.ServerResponse.Header or (if a response was
153146// returned at all) in error.(*googleapi.Error).Header. Use
153147// googleapi.IsNotModified to check whether the returned error was
153148// because http.StatusNotModified was returned.
153149func (c *VpnTunnelsAggregatedListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelAggregatedList, error) {
153150	gensupport.SetOptions(c.urlParams_, opts...)
153151	res, err := c.doRequest("json")
153152	if res != nil && res.StatusCode == http.StatusNotModified {
153153		if res.Body != nil {
153154			res.Body.Close()
153155		}
153156		return nil, &googleapi.Error{
153157			Code:   res.StatusCode,
153158			Header: res.Header,
153159		}
153160	}
153161	if err != nil {
153162		return nil, err
153163	}
153164	defer googleapi.CloseBody(res)
153165	if err := googleapi.CheckResponse(res); err != nil {
153166		return nil, err
153167	}
153168	ret := &VpnTunnelAggregatedList{
153169		ServerResponse: googleapi.ServerResponse{
153170			Header:         res.Header,
153171			HTTPStatusCode: res.StatusCode,
153172		},
153173	}
153174	target := &ret
153175	if err := gensupport.DecodeResponse(target, res); err != nil {
153176		return nil, err
153177	}
153178	return ret, nil
153179	// {
153180	//   "description": "Retrieves an aggregated list of VPN tunnels.",
153181	//   "httpMethod": "GET",
153182	//   "id": "compute.vpnTunnels.aggregatedList",
153183	//   "parameterOrder": [
153184	//     "project"
153185	//   ],
153186	//   "parameters": {
153187	//     "filter": {
153188	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
153189	//       "location": "query",
153190	//       "type": "string"
153191	//     },
153192	//     "includeAllScopes": {
153193	//       "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.",
153194	//       "location": "query",
153195	//       "type": "boolean"
153196	//     },
153197	//     "maxResults": {
153198	//       "default": "500",
153199	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
153200	//       "format": "uint32",
153201	//       "location": "query",
153202	//       "minimum": "0",
153203	//       "type": "integer"
153204	//     },
153205	//     "orderBy": {
153206	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
153207	//       "location": "query",
153208	//       "type": "string"
153209	//     },
153210	//     "pageToken": {
153211	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
153212	//       "location": "query",
153213	//       "type": "string"
153214	//     },
153215	//     "project": {
153216	//       "description": "Project ID for this request.",
153217	//       "location": "path",
153218	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153219	//       "required": true,
153220	//       "type": "string"
153221	//     }
153222	//   },
153223	//   "path": "{project}/aggregated/vpnTunnels",
153224	//   "response": {
153225	//     "$ref": "VpnTunnelAggregatedList"
153226	//   },
153227	//   "scopes": [
153228	//     "https://www.googleapis.com/auth/cloud-platform",
153229	//     "https://www.googleapis.com/auth/compute",
153230	//     "https://www.googleapis.com/auth/compute.readonly"
153231	//   ]
153232	// }
153233
153234}
153235
153236// Pages invokes f for each page of results.
153237// A non-nil error returned from f will halt the iteration.
153238// The provided context supersedes any context provided to the Context method.
153239func (c *VpnTunnelsAggregatedListCall) Pages(ctx context.Context, f func(*VpnTunnelAggregatedList) error) error {
153240	c.ctx_ = ctx
153241	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
153242	for {
153243		x, err := c.Do()
153244		if err != nil {
153245			return err
153246		}
153247		if err := f(x); err != nil {
153248			return err
153249		}
153250		if x.NextPageToken == "" {
153251			return nil
153252		}
153253		c.PageToken(x.NextPageToken)
153254	}
153255}
153256
153257// method id "compute.vpnTunnels.delete":
153258
153259type VpnTunnelsDeleteCall struct {
153260	s          *Service
153261	project    string
153262	region     string
153263	vpnTunnel  string
153264	urlParams_ gensupport.URLParams
153265	ctx_       context.Context
153266	header_    http.Header
153267}
153268
153269// Delete: Deletes the specified VpnTunnel resource.
153270func (r *VpnTunnelsService) Delete(project string, region string, vpnTunnel string) *VpnTunnelsDeleteCall {
153271	c := &VpnTunnelsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153272	c.project = project
153273	c.region = region
153274	c.vpnTunnel = vpnTunnel
153275	return c
153276}
153277
153278// RequestId sets the optional parameter "requestId": An optional
153279// request ID to identify requests. Specify a unique request ID so that
153280// if you must retry your request, the server will know to ignore the
153281// request if it has already been completed.
153282//
153283// For example, consider a situation where you make an initial request
153284// and the request times out. If you make the request again with the
153285// same request ID, the server can check if original operation with the
153286// same request ID was received, and if so, will ignore the second
153287// request. This prevents clients from accidentally creating duplicate
153288// commitments.
153289//
153290// The request ID must be a valid UUID with the exception that zero UUID
153291// is not supported (00000000-0000-0000-0000-000000000000).
153292func (c *VpnTunnelsDeleteCall) RequestId(requestId string) *VpnTunnelsDeleteCall {
153293	c.urlParams_.Set("requestId", requestId)
153294	return c
153295}
153296
153297// Fields allows partial responses to be retrieved. See
153298// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153299// for more information.
153300func (c *VpnTunnelsDeleteCall) Fields(s ...googleapi.Field) *VpnTunnelsDeleteCall {
153301	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153302	return c
153303}
153304
153305// Context sets the context to be used in this call's Do method. Any
153306// pending HTTP request will be aborted if the provided context is
153307// canceled.
153308func (c *VpnTunnelsDeleteCall) Context(ctx context.Context) *VpnTunnelsDeleteCall {
153309	c.ctx_ = ctx
153310	return c
153311}
153312
153313// Header returns an http.Header that can be modified by the caller to
153314// add HTTP headers to the request.
153315func (c *VpnTunnelsDeleteCall) Header() http.Header {
153316	if c.header_ == nil {
153317		c.header_ = make(http.Header)
153318	}
153319	return c.header_
153320}
153321
153322func (c *VpnTunnelsDeleteCall) doRequest(alt string) (*http.Response, error) {
153323	reqHeaders := make(http.Header)
153324	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153325	for k, v := range c.header_ {
153326		reqHeaders[k] = v
153327	}
153328	reqHeaders.Set("User-Agent", c.s.userAgent())
153329	var body io.Reader = nil
153330	c.urlParams_.Set("alt", alt)
153331	c.urlParams_.Set("prettyPrint", "false")
153332	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
153333	urls += "?" + c.urlParams_.Encode()
153334	req, err := http.NewRequest("DELETE", urls, body)
153335	if err != nil {
153336		return nil, err
153337	}
153338	req.Header = reqHeaders
153339	googleapi.Expand(req.URL, map[string]string{
153340		"project":   c.project,
153341		"region":    c.region,
153342		"vpnTunnel": c.vpnTunnel,
153343	})
153344	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153345}
153346
153347// Do executes the "compute.vpnTunnels.delete" call.
153348// Exactly one of *Operation or error will be non-nil. Any non-2xx
153349// status code is an error. Response headers are in either
153350// *Operation.ServerResponse.Header or (if a response was returned at
153351// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153352// to check whether the returned error was because
153353// http.StatusNotModified was returned.
153354func (c *VpnTunnelsDeleteCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153355	gensupport.SetOptions(c.urlParams_, opts...)
153356	res, err := c.doRequest("json")
153357	if res != nil && res.StatusCode == http.StatusNotModified {
153358		if res.Body != nil {
153359			res.Body.Close()
153360		}
153361		return nil, &googleapi.Error{
153362			Code:   res.StatusCode,
153363			Header: res.Header,
153364		}
153365	}
153366	if err != nil {
153367		return nil, err
153368	}
153369	defer googleapi.CloseBody(res)
153370	if err := googleapi.CheckResponse(res); err != nil {
153371		return nil, err
153372	}
153373	ret := &Operation{
153374		ServerResponse: googleapi.ServerResponse{
153375			Header:         res.Header,
153376			HTTPStatusCode: res.StatusCode,
153377		},
153378	}
153379	target := &ret
153380	if err := gensupport.DecodeResponse(target, res); err != nil {
153381		return nil, err
153382	}
153383	return ret, nil
153384	// {
153385	//   "description": "Deletes the specified VpnTunnel resource.",
153386	//   "httpMethod": "DELETE",
153387	//   "id": "compute.vpnTunnels.delete",
153388	//   "parameterOrder": [
153389	//     "project",
153390	//     "region",
153391	//     "vpnTunnel"
153392	//   ],
153393	//   "parameters": {
153394	//     "project": {
153395	//       "description": "Project ID for this request.",
153396	//       "location": "path",
153397	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153398	//       "required": true,
153399	//       "type": "string"
153400	//     },
153401	//     "region": {
153402	//       "description": "Name of the region for this request.",
153403	//       "location": "path",
153404	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153405	//       "required": true,
153406	//       "type": "string"
153407	//     },
153408	//     "requestId": {
153409	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153410	//       "location": "query",
153411	//       "type": "string"
153412	//     },
153413	//     "vpnTunnel": {
153414	//       "description": "Name of the VpnTunnel resource to delete.",
153415	//       "location": "path",
153416	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153417	//       "required": true,
153418	//       "type": "string"
153419	//     }
153420	//   },
153421	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
153422	//   "response": {
153423	//     "$ref": "Operation"
153424	//   },
153425	//   "scopes": [
153426	//     "https://www.googleapis.com/auth/cloud-platform",
153427	//     "https://www.googleapis.com/auth/compute"
153428	//   ]
153429	// }
153430
153431}
153432
153433// method id "compute.vpnTunnels.get":
153434
153435type VpnTunnelsGetCall struct {
153436	s            *Service
153437	project      string
153438	region       string
153439	vpnTunnel    string
153440	urlParams_   gensupport.URLParams
153441	ifNoneMatch_ string
153442	ctx_         context.Context
153443	header_      http.Header
153444}
153445
153446// Get: Returns the specified VpnTunnel resource. Gets a list of
153447// available VPN tunnels by making a list() request.
153448func (r *VpnTunnelsService) Get(project string, region string, vpnTunnel string) *VpnTunnelsGetCall {
153449	c := &VpnTunnelsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153450	c.project = project
153451	c.region = region
153452	c.vpnTunnel = vpnTunnel
153453	return c
153454}
153455
153456// Fields allows partial responses to be retrieved. See
153457// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153458// for more information.
153459func (c *VpnTunnelsGetCall) Fields(s ...googleapi.Field) *VpnTunnelsGetCall {
153460	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153461	return c
153462}
153463
153464// IfNoneMatch sets the optional parameter which makes the operation
153465// fail if the object's ETag matches the given value. This is useful for
153466// getting updates only after the object has changed since the last
153467// request. Use googleapi.IsNotModified to check whether the response
153468// error from Do is the result of In-None-Match.
153469func (c *VpnTunnelsGetCall) IfNoneMatch(entityTag string) *VpnTunnelsGetCall {
153470	c.ifNoneMatch_ = entityTag
153471	return c
153472}
153473
153474// Context sets the context to be used in this call's Do method. Any
153475// pending HTTP request will be aborted if the provided context is
153476// canceled.
153477func (c *VpnTunnelsGetCall) Context(ctx context.Context) *VpnTunnelsGetCall {
153478	c.ctx_ = ctx
153479	return c
153480}
153481
153482// Header returns an http.Header that can be modified by the caller to
153483// add HTTP headers to the request.
153484func (c *VpnTunnelsGetCall) Header() http.Header {
153485	if c.header_ == nil {
153486		c.header_ = make(http.Header)
153487	}
153488	return c.header_
153489}
153490
153491func (c *VpnTunnelsGetCall) doRequest(alt string) (*http.Response, error) {
153492	reqHeaders := make(http.Header)
153493	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153494	for k, v := range c.header_ {
153495		reqHeaders[k] = v
153496	}
153497	reqHeaders.Set("User-Agent", c.s.userAgent())
153498	if c.ifNoneMatch_ != "" {
153499		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153500	}
153501	var body io.Reader = nil
153502	c.urlParams_.Set("alt", alt)
153503	c.urlParams_.Set("prettyPrint", "false")
153504	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{vpnTunnel}")
153505	urls += "?" + c.urlParams_.Encode()
153506	req, err := http.NewRequest("GET", urls, body)
153507	if err != nil {
153508		return nil, err
153509	}
153510	req.Header = reqHeaders
153511	googleapi.Expand(req.URL, map[string]string{
153512		"project":   c.project,
153513		"region":    c.region,
153514		"vpnTunnel": c.vpnTunnel,
153515	})
153516	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153517}
153518
153519// Do executes the "compute.vpnTunnels.get" call.
153520// Exactly one of *VpnTunnel or error will be non-nil. Any non-2xx
153521// status code is an error. Response headers are in either
153522// *VpnTunnel.ServerResponse.Header or (if a response was returned at
153523// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153524// to check whether the returned error was because
153525// http.StatusNotModified was returned.
153526func (c *VpnTunnelsGetCall) Do(opts ...googleapi.CallOption) (*VpnTunnel, error) {
153527	gensupport.SetOptions(c.urlParams_, opts...)
153528	res, err := c.doRequest("json")
153529	if res != nil && res.StatusCode == http.StatusNotModified {
153530		if res.Body != nil {
153531			res.Body.Close()
153532		}
153533		return nil, &googleapi.Error{
153534			Code:   res.StatusCode,
153535			Header: res.Header,
153536		}
153537	}
153538	if err != nil {
153539		return nil, err
153540	}
153541	defer googleapi.CloseBody(res)
153542	if err := googleapi.CheckResponse(res); err != nil {
153543		return nil, err
153544	}
153545	ret := &VpnTunnel{
153546		ServerResponse: googleapi.ServerResponse{
153547			Header:         res.Header,
153548			HTTPStatusCode: res.StatusCode,
153549		},
153550	}
153551	target := &ret
153552	if err := gensupport.DecodeResponse(target, res); err != nil {
153553		return nil, err
153554	}
153555	return ret, nil
153556	// {
153557	//   "description": "Returns the specified VpnTunnel resource. Gets a list of available VPN tunnels by making a list() request.",
153558	//   "httpMethod": "GET",
153559	//   "id": "compute.vpnTunnels.get",
153560	//   "parameterOrder": [
153561	//     "project",
153562	//     "region",
153563	//     "vpnTunnel"
153564	//   ],
153565	//   "parameters": {
153566	//     "project": {
153567	//       "description": "Project ID for this request.",
153568	//       "location": "path",
153569	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153570	//       "required": true,
153571	//       "type": "string"
153572	//     },
153573	//     "region": {
153574	//       "description": "Name of the region for this request.",
153575	//       "location": "path",
153576	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153577	//       "required": true,
153578	//       "type": "string"
153579	//     },
153580	//     "vpnTunnel": {
153581	//       "description": "Name of the VpnTunnel resource to return.",
153582	//       "location": "path",
153583	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
153584	//       "required": true,
153585	//       "type": "string"
153586	//     }
153587	//   },
153588	//   "path": "{project}/regions/{region}/vpnTunnels/{vpnTunnel}",
153589	//   "response": {
153590	//     "$ref": "VpnTunnel"
153591	//   },
153592	//   "scopes": [
153593	//     "https://www.googleapis.com/auth/cloud-platform",
153594	//     "https://www.googleapis.com/auth/compute",
153595	//     "https://www.googleapis.com/auth/compute.readonly"
153596	//   ]
153597	// }
153598
153599}
153600
153601// method id "compute.vpnTunnels.insert":
153602
153603type VpnTunnelsInsertCall struct {
153604	s          *Service
153605	project    string
153606	region     string
153607	vpntunnel  *VpnTunnel
153608	urlParams_ gensupport.URLParams
153609	ctx_       context.Context
153610	header_    http.Header
153611}
153612
153613// Insert: Creates a VpnTunnel resource in the specified project and
153614// region using the data included in the request.
153615func (r *VpnTunnelsService) Insert(project string, region string, vpntunnel *VpnTunnel) *VpnTunnelsInsertCall {
153616	c := &VpnTunnelsInsertCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153617	c.project = project
153618	c.region = region
153619	c.vpntunnel = vpntunnel
153620	return c
153621}
153622
153623// RequestId sets the optional parameter "requestId": An optional
153624// request ID to identify requests. Specify a unique request ID so that
153625// if you must retry your request, the server will know to ignore the
153626// request if it has already been completed.
153627//
153628// For example, consider a situation where you make an initial request
153629// and the request times out. If you make the request again with the
153630// same request ID, the server can check if original operation with the
153631// same request ID was received, and if so, will ignore the second
153632// request. This prevents clients from accidentally creating duplicate
153633// commitments.
153634//
153635// The request ID must be a valid UUID with the exception that zero UUID
153636// is not supported (00000000-0000-0000-0000-000000000000).
153637func (c *VpnTunnelsInsertCall) RequestId(requestId string) *VpnTunnelsInsertCall {
153638	c.urlParams_.Set("requestId", requestId)
153639	return c
153640}
153641
153642// Fields allows partial responses to be retrieved. See
153643// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153644// for more information.
153645func (c *VpnTunnelsInsertCall) Fields(s ...googleapi.Field) *VpnTunnelsInsertCall {
153646	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153647	return c
153648}
153649
153650// Context sets the context to be used in this call's Do method. Any
153651// pending HTTP request will be aborted if the provided context is
153652// canceled.
153653func (c *VpnTunnelsInsertCall) Context(ctx context.Context) *VpnTunnelsInsertCall {
153654	c.ctx_ = ctx
153655	return c
153656}
153657
153658// Header returns an http.Header that can be modified by the caller to
153659// add HTTP headers to the request.
153660func (c *VpnTunnelsInsertCall) Header() http.Header {
153661	if c.header_ == nil {
153662		c.header_ = make(http.Header)
153663	}
153664	return c.header_
153665}
153666
153667func (c *VpnTunnelsInsertCall) doRequest(alt string) (*http.Response, error) {
153668	reqHeaders := make(http.Header)
153669	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153670	for k, v := range c.header_ {
153671		reqHeaders[k] = v
153672	}
153673	reqHeaders.Set("User-Agent", c.s.userAgent())
153674	var body io.Reader = nil
153675	body, err := googleapi.WithoutDataWrapper.JSONReader(c.vpntunnel)
153676	if err != nil {
153677		return nil, err
153678	}
153679	reqHeaders.Set("Content-Type", "application/json")
153680	c.urlParams_.Set("alt", alt)
153681	c.urlParams_.Set("prettyPrint", "false")
153682	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
153683	urls += "?" + c.urlParams_.Encode()
153684	req, err := http.NewRequest("POST", urls, body)
153685	if err != nil {
153686		return nil, err
153687	}
153688	req.Header = reqHeaders
153689	googleapi.Expand(req.URL, map[string]string{
153690		"project": c.project,
153691		"region":  c.region,
153692	})
153693	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153694}
153695
153696// Do executes the "compute.vpnTunnels.insert" call.
153697// Exactly one of *Operation or error will be non-nil. Any non-2xx
153698// status code is an error. Response headers are in either
153699// *Operation.ServerResponse.Header or (if a response was returned at
153700// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
153701// to check whether the returned error was because
153702// http.StatusNotModified was returned.
153703func (c *VpnTunnelsInsertCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
153704	gensupport.SetOptions(c.urlParams_, opts...)
153705	res, err := c.doRequest("json")
153706	if res != nil && res.StatusCode == http.StatusNotModified {
153707		if res.Body != nil {
153708			res.Body.Close()
153709		}
153710		return nil, &googleapi.Error{
153711			Code:   res.StatusCode,
153712			Header: res.Header,
153713		}
153714	}
153715	if err != nil {
153716		return nil, err
153717	}
153718	defer googleapi.CloseBody(res)
153719	if err := googleapi.CheckResponse(res); err != nil {
153720		return nil, err
153721	}
153722	ret := &Operation{
153723		ServerResponse: googleapi.ServerResponse{
153724			Header:         res.Header,
153725			HTTPStatusCode: res.StatusCode,
153726		},
153727	}
153728	target := &ret
153729	if err := gensupport.DecodeResponse(target, res); err != nil {
153730		return nil, err
153731	}
153732	return ret, nil
153733	// {
153734	//   "description": "Creates a VpnTunnel resource in the specified project and region using the data included in the request.",
153735	//   "httpMethod": "POST",
153736	//   "id": "compute.vpnTunnels.insert",
153737	//   "parameterOrder": [
153738	//     "project",
153739	//     "region"
153740	//   ],
153741	//   "parameters": {
153742	//     "project": {
153743	//       "description": "Project ID for this request.",
153744	//       "location": "path",
153745	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153746	//       "required": true,
153747	//       "type": "string"
153748	//     },
153749	//     "region": {
153750	//       "description": "Name of the region for this request.",
153751	//       "location": "path",
153752	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
153753	//       "required": true,
153754	//       "type": "string"
153755	//     },
153756	//     "requestId": {
153757	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
153758	//       "location": "query",
153759	//       "type": "string"
153760	//     }
153761	//   },
153762	//   "path": "{project}/regions/{region}/vpnTunnels",
153763	//   "request": {
153764	//     "$ref": "VpnTunnel"
153765	//   },
153766	//   "response": {
153767	//     "$ref": "Operation"
153768	//   },
153769	//   "scopes": [
153770	//     "https://www.googleapis.com/auth/cloud-platform",
153771	//     "https://www.googleapis.com/auth/compute"
153772	//   ]
153773	// }
153774
153775}
153776
153777// method id "compute.vpnTunnels.list":
153778
153779type VpnTunnelsListCall struct {
153780	s            *Service
153781	project      string
153782	region       string
153783	urlParams_   gensupport.URLParams
153784	ifNoneMatch_ string
153785	ctx_         context.Context
153786	header_      http.Header
153787}
153788
153789// List: Retrieves a list of VpnTunnel resources contained in the
153790// specified project and region.
153791func (r *VpnTunnelsService) List(project string, region string) *VpnTunnelsListCall {
153792	c := &VpnTunnelsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
153793	c.project = project
153794	c.region = region
153795	return c
153796}
153797
153798// Filter sets the optional parameter "filter": A filter expression that
153799// filters resources listed in the response. The expression must specify
153800// the field name, a comparison operator, and the value that you want to
153801// use for filtering. The value must be a string, a number, or a
153802// boolean. The comparison operator must be either =, !=, >, or <.
153803//
153804// For example, if you are filtering Compute Engine instances, you can
153805// exclude instances named example-instance by specifying name !=
153806// example-instance.
153807//
153808// You can also filter nested fields. For example, you could specify
153809// scheduling.automaticRestart = false to include instances only if they
153810// are not scheduled for automatic restarts. You can use filtering on
153811// nested fields to filter based on resource labels.
153812//
153813// To filter on multiple expressions, provide each separate expression
153814// within parentheses. For example, (scheduling.automaticRestart = true)
153815// (cpuPlatform = "Intel Skylake"). By default, each expression is an
153816// AND expression. However, you can include AND and OR expressions
153817// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
153818// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
153819// true).
153820func (c *VpnTunnelsListCall) Filter(filter string) *VpnTunnelsListCall {
153821	c.urlParams_.Set("filter", filter)
153822	return c
153823}
153824
153825// MaxResults sets the optional parameter "maxResults": The maximum
153826// number of results per page that should be returned. If the number of
153827// available results is larger than maxResults, Compute Engine returns a
153828// nextPageToken that can be used to get the next page of results in
153829// subsequent list requests. Acceptable values are 0 to 500, inclusive.
153830// (Default: 500)
153831func (c *VpnTunnelsListCall) MaxResults(maxResults int64) *VpnTunnelsListCall {
153832	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
153833	return c
153834}
153835
153836// OrderBy sets the optional parameter "orderBy": Sorts list results by
153837// a certain order. By default, results are returned in alphanumerical
153838// order based on the resource name.
153839//
153840// You can also sort results in descending order based on the creation
153841// timestamp using orderBy="creationTimestamp desc". This sorts results
153842// based on the creationTimestamp field in reverse chronological order
153843// (newest result first). Use this to sort resources like operations so
153844// that the newest operation is returned first.
153845//
153846// Currently, only sorting by name or creationTimestamp desc is
153847// supported.
153848func (c *VpnTunnelsListCall) OrderBy(orderBy string) *VpnTunnelsListCall {
153849	c.urlParams_.Set("orderBy", orderBy)
153850	return c
153851}
153852
153853// PageToken sets the optional parameter "pageToken": Specifies a page
153854// token to use. Set pageToken to the nextPageToken returned by a
153855// previous list request to get the next page of results.
153856func (c *VpnTunnelsListCall) PageToken(pageToken string) *VpnTunnelsListCall {
153857	c.urlParams_.Set("pageToken", pageToken)
153858	return c
153859}
153860
153861// Fields allows partial responses to be retrieved. See
153862// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
153863// for more information.
153864func (c *VpnTunnelsListCall) Fields(s ...googleapi.Field) *VpnTunnelsListCall {
153865	c.urlParams_.Set("fields", googleapi.CombineFields(s))
153866	return c
153867}
153868
153869// IfNoneMatch sets the optional parameter which makes the operation
153870// fail if the object's ETag matches the given value. This is useful for
153871// getting updates only after the object has changed since the last
153872// request. Use googleapi.IsNotModified to check whether the response
153873// error from Do is the result of In-None-Match.
153874func (c *VpnTunnelsListCall) IfNoneMatch(entityTag string) *VpnTunnelsListCall {
153875	c.ifNoneMatch_ = entityTag
153876	return c
153877}
153878
153879// Context sets the context to be used in this call's Do method. Any
153880// pending HTTP request will be aborted if the provided context is
153881// canceled.
153882func (c *VpnTunnelsListCall) Context(ctx context.Context) *VpnTunnelsListCall {
153883	c.ctx_ = ctx
153884	return c
153885}
153886
153887// Header returns an http.Header that can be modified by the caller to
153888// add HTTP headers to the request.
153889func (c *VpnTunnelsListCall) Header() http.Header {
153890	if c.header_ == nil {
153891		c.header_ = make(http.Header)
153892	}
153893	return c.header_
153894}
153895
153896func (c *VpnTunnelsListCall) doRequest(alt string) (*http.Response, error) {
153897	reqHeaders := make(http.Header)
153898	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
153899	for k, v := range c.header_ {
153900		reqHeaders[k] = v
153901	}
153902	reqHeaders.Set("User-Agent", c.s.userAgent())
153903	if c.ifNoneMatch_ != "" {
153904		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
153905	}
153906	var body io.Reader = nil
153907	c.urlParams_.Set("alt", alt)
153908	c.urlParams_.Set("prettyPrint", "false")
153909	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels")
153910	urls += "?" + c.urlParams_.Encode()
153911	req, err := http.NewRequest("GET", urls, body)
153912	if err != nil {
153913		return nil, err
153914	}
153915	req.Header = reqHeaders
153916	googleapi.Expand(req.URL, map[string]string{
153917		"project": c.project,
153918		"region":  c.region,
153919	})
153920	return gensupport.SendRequest(c.ctx_, c.s.client, req)
153921}
153922
153923// Do executes the "compute.vpnTunnels.list" call.
153924// Exactly one of *VpnTunnelList or error will be non-nil. Any non-2xx
153925// status code is an error. Response headers are in either
153926// *VpnTunnelList.ServerResponse.Header or (if a response was returned
153927// at all) in error.(*googleapi.Error).Header. Use
153928// googleapi.IsNotModified to check whether the returned error was
153929// because http.StatusNotModified was returned.
153930func (c *VpnTunnelsListCall) Do(opts ...googleapi.CallOption) (*VpnTunnelList, error) {
153931	gensupport.SetOptions(c.urlParams_, opts...)
153932	res, err := c.doRequest("json")
153933	if res != nil && res.StatusCode == http.StatusNotModified {
153934		if res.Body != nil {
153935			res.Body.Close()
153936		}
153937		return nil, &googleapi.Error{
153938			Code:   res.StatusCode,
153939			Header: res.Header,
153940		}
153941	}
153942	if err != nil {
153943		return nil, err
153944	}
153945	defer googleapi.CloseBody(res)
153946	if err := googleapi.CheckResponse(res); err != nil {
153947		return nil, err
153948	}
153949	ret := &VpnTunnelList{
153950		ServerResponse: googleapi.ServerResponse{
153951			Header:         res.Header,
153952			HTTPStatusCode: res.StatusCode,
153953		},
153954	}
153955	target := &ret
153956	if err := gensupport.DecodeResponse(target, res); err != nil {
153957		return nil, err
153958	}
153959	return ret, nil
153960	// {
153961	//   "description": "Retrieves a list of VpnTunnel resources contained in the specified project and region.",
153962	//   "httpMethod": "GET",
153963	//   "id": "compute.vpnTunnels.list",
153964	//   "parameterOrder": [
153965	//     "project",
153966	//     "region"
153967	//   ],
153968	//   "parameters": {
153969	//     "filter": {
153970	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
153971	//       "location": "query",
153972	//       "type": "string"
153973	//     },
153974	//     "maxResults": {
153975	//       "default": "500",
153976	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
153977	//       "format": "uint32",
153978	//       "location": "query",
153979	//       "minimum": "0",
153980	//       "type": "integer"
153981	//     },
153982	//     "orderBy": {
153983	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
153984	//       "location": "query",
153985	//       "type": "string"
153986	//     },
153987	//     "pageToken": {
153988	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
153989	//       "location": "query",
153990	//       "type": "string"
153991	//     },
153992	//     "project": {
153993	//       "description": "Project ID for this request.",
153994	//       "location": "path",
153995	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
153996	//       "required": true,
153997	//       "type": "string"
153998	//     },
153999	//     "region": {
154000	//       "description": "Name of the region for this request.",
154001	//       "location": "path",
154002	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154003	//       "required": true,
154004	//       "type": "string"
154005	//     }
154006	//   },
154007	//   "path": "{project}/regions/{region}/vpnTunnels",
154008	//   "response": {
154009	//     "$ref": "VpnTunnelList"
154010	//   },
154011	//   "scopes": [
154012	//     "https://www.googleapis.com/auth/cloud-platform",
154013	//     "https://www.googleapis.com/auth/compute",
154014	//     "https://www.googleapis.com/auth/compute.readonly"
154015	//   ]
154016	// }
154017
154018}
154019
154020// Pages invokes f for each page of results.
154021// A non-nil error returned from f will halt the iteration.
154022// The provided context supersedes any context provided to the Context method.
154023func (c *VpnTunnelsListCall) Pages(ctx context.Context, f func(*VpnTunnelList) error) error {
154024	c.ctx_ = ctx
154025	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154026	for {
154027		x, err := c.Do()
154028		if err != nil {
154029			return err
154030		}
154031		if err := f(x); err != nil {
154032			return err
154033		}
154034		if x.NextPageToken == "" {
154035			return nil
154036		}
154037		c.PageToken(x.NextPageToken)
154038	}
154039}
154040
154041// method id "compute.vpnTunnels.setLabels":
154042
154043type VpnTunnelsSetLabelsCall struct {
154044	s                      *Service
154045	project                string
154046	region                 string
154047	resource               string
154048	regionsetlabelsrequest *RegionSetLabelsRequest
154049	urlParams_             gensupport.URLParams
154050	ctx_                   context.Context
154051	header_                http.Header
154052}
154053
154054// SetLabels: Sets the labels on a VpnTunnel. To learn more about
154055// labels, read the Labeling Resources documentation.
154056func (r *VpnTunnelsService) SetLabels(project string, region string, resource string, regionsetlabelsrequest *RegionSetLabelsRequest) *VpnTunnelsSetLabelsCall {
154057	c := &VpnTunnelsSetLabelsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154058	c.project = project
154059	c.region = region
154060	c.resource = resource
154061	c.regionsetlabelsrequest = regionsetlabelsrequest
154062	return c
154063}
154064
154065// RequestId sets the optional parameter "requestId": An optional
154066// request ID to identify requests. Specify a unique request ID so that
154067// if you must retry your request, the server will know to ignore the
154068// request if it has already been completed.
154069//
154070// For example, consider a situation where you make an initial request
154071// and the request times out. If you make the request again with the
154072// same request ID, the server can check if original operation with the
154073// same request ID was received, and if so, will ignore the second
154074// request. This prevents clients from accidentally creating duplicate
154075// commitments.
154076//
154077// The request ID must be a valid UUID with the exception that zero UUID
154078// is not supported (00000000-0000-0000-0000-000000000000).
154079func (c *VpnTunnelsSetLabelsCall) RequestId(requestId string) *VpnTunnelsSetLabelsCall {
154080	c.urlParams_.Set("requestId", requestId)
154081	return c
154082}
154083
154084// Fields allows partial responses to be retrieved. See
154085// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154086// for more information.
154087func (c *VpnTunnelsSetLabelsCall) Fields(s ...googleapi.Field) *VpnTunnelsSetLabelsCall {
154088	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154089	return c
154090}
154091
154092// Context sets the context to be used in this call's Do method. Any
154093// pending HTTP request will be aborted if the provided context is
154094// canceled.
154095func (c *VpnTunnelsSetLabelsCall) Context(ctx context.Context) *VpnTunnelsSetLabelsCall {
154096	c.ctx_ = ctx
154097	return c
154098}
154099
154100// Header returns an http.Header that can be modified by the caller to
154101// add HTTP headers to the request.
154102func (c *VpnTunnelsSetLabelsCall) Header() http.Header {
154103	if c.header_ == nil {
154104		c.header_ = make(http.Header)
154105	}
154106	return c.header_
154107}
154108
154109func (c *VpnTunnelsSetLabelsCall) doRequest(alt string) (*http.Response, error) {
154110	reqHeaders := make(http.Header)
154111	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154112	for k, v := range c.header_ {
154113		reqHeaders[k] = v
154114	}
154115	reqHeaders.Set("User-Agent", c.s.userAgent())
154116	var body io.Reader = nil
154117	body, err := googleapi.WithoutDataWrapper.JSONReader(c.regionsetlabelsrequest)
154118	if err != nil {
154119		return nil, err
154120	}
154121	reqHeaders.Set("Content-Type", "application/json")
154122	c.urlParams_.Set("alt", alt)
154123	c.urlParams_.Set("prettyPrint", "false")
154124	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/setLabels")
154125	urls += "?" + c.urlParams_.Encode()
154126	req, err := http.NewRequest("POST", urls, body)
154127	if err != nil {
154128		return nil, err
154129	}
154130	req.Header = reqHeaders
154131	googleapi.Expand(req.URL, map[string]string{
154132		"project":  c.project,
154133		"region":   c.region,
154134		"resource": c.resource,
154135	})
154136	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154137}
154138
154139// Do executes the "compute.vpnTunnels.setLabels" call.
154140// Exactly one of *Operation or error will be non-nil. Any non-2xx
154141// status code is an error. Response headers are in either
154142// *Operation.ServerResponse.Header or (if a response was returned at
154143// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154144// to check whether the returned error was because
154145// http.StatusNotModified was returned.
154146func (c *VpnTunnelsSetLabelsCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154147	gensupport.SetOptions(c.urlParams_, opts...)
154148	res, err := c.doRequest("json")
154149	if res != nil && res.StatusCode == http.StatusNotModified {
154150		if res.Body != nil {
154151			res.Body.Close()
154152		}
154153		return nil, &googleapi.Error{
154154			Code:   res.StatusCode,
154155			Header: res.Header,
154156		}
154157	}
154158	if err != nil {
154159		return nil, err
154160	}
154161	defer googleapi.CloseBody(res)
154162	if err := googleapi.CheckResponse(res); err != nil {
154163		return nil, err
154164	}
154165	ret := &Operation{
154166		ServerResponse: googleapi.ServerResponse{
154167			Header:         res.Header,
154168			HTTPStatusCode: res.StatusCode,
154169		},
154170	}
154171	target := &ret
154172	if err := gensupport.DecodeResponse(target, res); err != nil {
154173		return nil, err
154174	}
154175	return ret, nil
154176	// {
154177	//   "description": "Sets the labels on a VpnTunnel. To learn more about labels, read the Labeling Resources documentation.",
154178	//   "httpMethod": "POST",
154179	//   "id": "compute.vpnTunnels.setLabels",
154180	//   "parameterOrder": [
154181	//     "project",
154182	//     "region",
154183	//     "resource"
154184	//   ],
154185	//   "parameters": {
154186	//     "project": {
154187	//       "description": "Project ID for this request.",
154188	//       "location": "path",
154189	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154190	//       "required": true,
154191	//       "type": "string"
154192	//     },
154193	//     "region": {
154194	//       "description": "The region for this request.",
154195	//       "location": "path",
154196	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154197	//       "required": true,
154198	//       "type": "string"
154199	//     },
154200	//     "requestId": {
154201	//       "description": "An optional request ID to identify requests. Specify a unique request ID so that if you must retry your request, the server will know to ignore the request if it has already been completed.\n\nFor example, consider a situation where you make an initial request and the request times out. If you make the request again with the same request ID, the server can check if original operation with the same request ID was received, and if so, will ignore the second request. This prevents clients from accidentally creating duplicate commitments.\n\nThe request ID must be a valid UUID with the exception that zero UUID is not supported (00000000-0000-0000-0000-000000000000).",
154202	//       "location": "query",
154203	//       "type": "string"
154204	//     },
154205	//     "resource": {
154206	//       "description": "Name or id of the resource for this request.",
154207	//       "location": "path",
154208	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154209	//       "required": true,
154210	//       "type": "string"
154211	//     }
154212	//   },
154213	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/setLabels",
154214	//   "request": {
154215	//     "$ref": "RegionSetLabelsRequest"
154216	//   },
154217	//   "response": {
154218	//     "$ref": "Operation"
154219	//   },
154220	//   "scopes": [
154221	//     "https://www.googleapis.com/auth/cloud-platform",
154222	//     "https://www.googleapis.com/auth/compute"
154223	//   ]
154224	// }
154225
154226}
154227
154228// method id "compute.vpnTunnels.testIamPermissions":
154229
154230type VpnTunnelsTestIamPermissionsCall struct {
154231	s                      *Service
154232	project                string
154233	region                 string
154234	resource               string
154235	testpermissionsrequest *TestPermissionsRequest
154236	urlParams_             gensupport.URLParams
154237	ctx_                   context.Context
154238	header_                http.Header
154239}
154240
154241// TestIamPermissions: Returns permissions that a caller has on the
154242// specified resource.
154243func (r *VpnTunnelsService) TestIamPermissions(project string, region string, resource string, testpermissionsrequest *TestPermissionsRequest) *VpnTunnelsTestIamPermissionsCall {
154244	c := &VpnTunnelsTestIamPermissionsCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154245	c.project = project
154246	c.region = region
154247	c.resource = resource
154248	c.testpermissionsrequest = testpermissionsrequest
154249	return c
154250}
154251
154252// Fields allows partial responses to be retrieved. See
154253// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154254// for more information.
154255func (c *VpnTunnelsTestIamPermissionsCall) Fields(s ...googleapi.Field) *VpnTunnelsTestIamPermissionsCall {
154256	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154257	return c
154258}
154259
154260// Context sets the context to be used in this call's Do method. Any
154261// pending HTTP request will be aborted if the provided context is
154262// canceled.
154263func (c *VpnTunnelsTestIamPermissionsCall) Context(ctx context.Context) *VpnTunnelsTestIamPermissionsCall {
154264	c.ctx_ = ctx
154265	return c
154266}
154267
154268// Header returns an http.Header that can be modified by the caller to
154269// add HTTP headers to the request.
154270func (c *VpnTunnelsTestIamPermissionsCall) Header() http.Header {
154271	if c.header_ == nil {
154272		c.header_ = make(http.Header)
154273	}
154274	return c.header_
154275}
154276
154277func (c *VpnTunnelsTestIamPermissionsCall) doRequest(alt string) (*http.Response, error) {
154278	reqHeaders := make(http.Header)
154279	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154280	for k, v := range c.header_ {
154281		reqHeaders[k] = v
154282	}
154283	reqHeaders.Set("User-Agent", c.s.userAgent())
154284	var body io.Reader = nil
154285	body, err := googleapi.WithoutDataWrapper.JSONReader(c.testpermissionsrequest)
154286	if err != nil {
154287		return nil, err
154288	}
154289	reqHeaders.Set("Content-Type", "application/json")
154290	c.urlParams_.Set("alt", alt)
154291	c.urlParams_.Set("prettyPrint", "false")
154292	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions")
154293	urls += "?" + c.urlParams_.Encode()
154294	req, err := http.NewRequest("POST", urls, body)
154295	if err != nil {
154296		return nil, err
154297	}
154298	req.Header = reqHeaders
154299	googleapi.Expand(req.URL, map[string]string{
154300		"project":  c.project,
154301		"region":   c.region,
154302		"resource": c.resource,
154303	})
154304	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154305}
154306
154307// Do executes the "compute.vpnTunnels.testIamPermissions" call.
154308// Exactly one of *TestPermissionsResponse or error will be non-nil. Any
154309// non-2xx status code is an error. Response headers are in either
154310// *TestPermissionsResponse.ServerResponse.Header or (if a response was
154311// returned at all) in error.(*googleapi.Error).Header. Use
154312// googleapi.IsNotModified to check whether the returned error was
154313// because http.StatusNotModified was returned.
154314func (c *VpnTunnelsTestIamPermissionsCall) Do(opts ...googleapi.CallOption) (*TestPermissionsResponse, error) {
154315	gensupport.SetOptions(c.urlParams_, opts...)
154316	res, err := c.doRequest("json")
154317	if res != nil && res.StatusCode == http.StatusNotModified {
154318		if res.Body != nil {
154319			res.Body.Close()
154320		}
154321		return nil, &googleapi.Error{
154322			Code:   res.StatusCode,
154323			Header: res.Header,
154324		}
154325	}
154326	if err != nil {
154327		return nil, err
154328	}
154329	defer googleapi.CloseBody(res)
154330	if err := googleapi.CheckResponse(res); err != nil {
154331		return nil, err
154332	}
154333	ret := &TestPermissionsResponse{
154334		ServerResponse: googleapi.ServerResponse{
154335			Header:         res.Header,
154336			HTTPStatusCode: res.StatusCode,
154337		},
154338	}
154339	target := &ret
154340	if err := gensupport.DecodeResponse(target, res); err != nil {
154341		return nil, err
154342	}
154343	return ret, nil
154344	// {
154345	//   "description": "Returns permissions that a caller has on the specified resource.",
154346	//   "httpMethod": "POST",
154347	//   "id": "compute.vpnTunnels.testIamPermissions",
154348	//   "parameterOrder": [
154349	//     "project",
154350	//     "region",
154351	//     "resource"
154352	//   ],
154353	//   "parameters": {
154354	//     "project": {
154355	//       "description": "Project ID for this request.",
154356	//       "location": "path",
154357	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154358	//       "required": true,
154359	//       "type": "string"
154360	//     },
154361	//     "region": {
154362	//       "description": "The name of the region for this request.",
154363	//       "location": "path",
154364	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154365	//       "required": true,
154366	//       "type": "string"
154367	//     },
154368	//     "resource": {
154369	//       "description": "Name or id of the resource for this request.",
154370	//       "location": "path",
154371	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154372	//       "required": true,
154373	//       "type": "string"
154374	//     }
154375	//   },
154376	//   "path": "{project}/regions/{region}/vpnTunnels/{resource}/testIamPermissions",
154377	//   "request": {
154378	//     "$ref": "TestPermissionsRequest"
154379	//   },
154380	//   "response": {
154381	//     "$ref": "TestPermissionsResponse"
154382	//   },
154383	//   "scopes": [
154384	//     "https://www.googleapis.com/auth/cloud-platform",
154385	//     "https://www.googleapis.com/auth/compute",
154386	//     "https://www.googleapis.com/auth/compute.readonly"
154387	//   ]
154388	// }
154389
154390}
154391
154392// method id "compute.zoneOperations.delete":
154393
154394type ZoneOperationsDeleteCall struct {
154395	s          *Service
154396	project    string
154397	zone       string
154398	operation  string
154399	urlParams_ gensupport.URLParams
154400	ctx_       context.Context
154401	header_    http.Header
154402}
154403
154404// Delete: Deletes the specified zone-specific Operations resource.
154405// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/delete
154406func (r *ZoneOperationsService) Delete(project string, zone string, operation string) *ZoneOperationsDeleteCall {
154407	c := &ZoneOperationsDeleteCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154408	c.project = project
154409	c.zone = zone
154410	c.operation = operation
154411	return c
154412}
154413
154414// Fields allows partial responses to be retrieved. See
154415// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154416// for more information.
154417func (c *ZoneOperationsDeleteCall) Fields(s ...googleapi.Field) *ZoneOperationsDeleteCall {
154418	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154419	return c
154420}
154421
154422// Context sets the context to be used in this call's Do method. Any
154423// pending HTTP request will be aborted if the provided context is
154424// canceled.
154425func (c *ZoneOperationsDeleteCall) Context(ctx context.Context) *ZoneOperationsDeleteCall {
154426	c.ctx_ = ctx
154427	return c
154428}
154429
154430// Header returns an http.Header that can be modified by the caller to
154431// add HTTP headers to the request.
154432func (c *ZoneOperationsDeleteCall) Header() http.Header {
154433	if c.header_ == nil {
154434		c.header_ = make(http.Header)
154435	}
154436	return c.header_
154437}
154438
154439func (c *ZoneOperationsDeleteCall) doRequest(alt string) (*http.Response, error) {
154440	reqHeaders := make(http.Header)
154441	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154442	for k, v := range c.header_ {
154443		reqHeaders[k] = v
154444	}
154445	reqHeaders.Set("User-Agent", c.s.userAgent())
154446	var body io.Reader = nil
154447	c.urlParams_.Set("alt", alt)
154448	c.urlParams_.Set("prettyPrint", "false")
154449	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
154450	urls += "?" + c.urlParams_.Encode()
154451	req, err := http.NewRequest("DELETE", urls, body)
154452	if err != nil {
154453		return nil, err
154454	}
154455	req.Header = reqHeaders
154456	googleapi.Expand(req.URL, map[string]string{
154457		"project":   c.project,
154458		"zone":      c.zone,
154459		"operation": c.operation,
154460	})
154461	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154462}
154463
154464// Do executes the "compute.zoneOperations.delete" call.
154465func (c *ZoneOperationsDeleteCall) Do(opts ...googleapi.CallOption) error {
154466	gensupport.SetOptions(c.urlParams_, opts...)
154467	res, err := c.doRequest("json")
154468	if err != nil {
154469		return err
154470	}
154471	defer googleapi.CloseBody(res)
154472	if err := googleapi.CheckResponse(res); err != nil {
154473		return err
154474	}
154475	return nil
154476	// {
154477	//   "description": "Deletes the specified zone-specific Operations resource.",
154478	//   "httpMethod": "DELETE",
154479	//   "id": "compute.zoneOperations.delete",
154480	//   "parameterOrder": [
154481	//     "project",
154482	//     "zone",
154483	//     "operation"
154484	//   ],
154485	//   "parameters": {
154486	//     "operation": {
154487	//       "description": "Name of the Operations resource to delete.",
154488	//       "location": "path",
154489	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154490	//       "required": true,
154491	//       "type": "string"
154492	//     },
154493	//     "project": {
154494	//       "description": "Project ID for this request.",
154495	//       "location": "path",
154496	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154497	//       "required": true,
154498	//       "type": "string"
154499	//     },
154500	//     "zone": {
154501	//       "description": "Name of the zone for this request.",
154502	//       "location": "path",
154503	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154504	//       "required": true,
154505	//       "type": "string"
154506	//     }
154507	//   },
154508	//   "path": "{project}/zones/{zone}/operations/{operation}",
154509	//   "scopes": [
154510	//     "https://www.googleapis.com/auth/cloud-platform",
154511	//     "https://www.googleapis.com/auth/compute"
154512	//   ]
154513	// }
154514
154515}
154516
154517// method id "compute.zoneOperations.get":
154518
154519type ZoneOperationsGetCall struct {
154520	s            *Service
154521	project      string
154522	zone         string
154523	operation    string
154524	urlParams_   gensupport.URLParams
154525	ifNoneMatch_ string
154526	ctx_         context.Context
154527	header_      http.Header
154528}
154529
154530// Get: Retrieves the specified zone-specific Operations resource.
154531// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/get
154532func (r *ZoneOperationsService) Get(project string, zone string, operation string) *ZoneOperationsGetCall {
154533	c := &ZoneOperationsGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154534	c.project = project
154535	c.zone = zone
154536	c.operation = operation
154537	return c
154538}
154539
154540// Fields allows partial responses to be retrieved. See
154541// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154542// for more information.
154543func (c *ZoneOperationsGetCall) Fields(s ...googleapi.Field) *ZoneOperationsGetCall {
154544	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154545	return c
154546}
154547
154548// IfNoneMatch sets the optional parameter which makes the operation
154549// fail if the object's ETag matches the given value. This is useful for
154550// getting updates only after the object has changed since the last
154551// request. Use googleapi.IsNotModified to check whether the response
154552// error from Do is the result of In-None-Match.
154553func (c *ZoneOperationsGetCall) IfNoneMatch(entityTag string) *ZoneOperationsGetCall {
154554	c.ifNoneMatch_ = entityTag
154555	return c
154556}
154557
154558// Context sets the context to be used in this call's Do method. Any
154559// pending HTTP request will be aborted if the provided context is
154560// canceled.
154561func (c *ZoneOperationsGetCall) Context(ctx context.Context) *ZoneOperationsGetCall {
154562	c.ctx_ = ctx
154563	return c
154564}
154565
154566// Header returns an http.Header that can be modified by the caller to
154567// add HTTP headers to the request.
154568func (c *ZoneOperationsGetCall) Header() http.Header {
154569	if c.header_ == nil {
154570		c.header_ = make(http.Header)
154571	}
154572	return c.header_
154573}
154574
154575func (c *ZoneOperationsGetCall) doRequest(alt string) (*http.Response, error) {
154576	reqHeaders := make(http.Header)
154577	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154578	for k, v := range c.header_ {
154579		reqHeaders[k] = v
154580	}
154581	reqHeaders.Set("User-Agent", c.s.userAgent())
154582	if c.ifNoneMatch_ != "" {
154583		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154584	}
154585	var body io.Reader = nil
154586	c.urlParams_.Set("alt", alt)
154587	c.urlParams_.Set("prettyPrint", "false")
154588	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}")
154589	urls += "?" + c.urlParams_.Encode()
154590	req, err := http.NewRequest("GET", urls, body)
154591	if err != nil {
154592		return nil, err
154593	}
154594	req.Header = reqHeaders
154595	googleapi.Expand(req.URL, map[string]string{
154596		"project":   c.project,
154597		"zone":      c.zone,
154598		"operation": c.operation,
154599	})
154600	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154601}
154602
154603// Do executes the "compute.zoneOperations.get" call.
154604// Exactly one of *Operation or error will be non-nil. Any non-2xx
154605// status code is an error. Response headers are in either
154606// *Operation.ServerResponse.Header or (if a response was returned at
154607// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
154608// to check whether the returned error was because
154609// http.StatusNotModified was returned.
154610func (c *ZoneOperationsGetCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
154611	gensupport.SetOptions(c.urlParams_, opts...)
154612	res, err := c.doRequest("json")
154613	if res != nil && res.StatusCode == http.StatusNotModified {
154614		if res.Body != nil {
154615			res.Body.Close()
154616		}
154617		return nil, &googleapi.Error{
154618			Code:   res.StatusCode,
154619			Header: res.Header,
154620		}
154621	}
154622	if err != nil {
154623		return nil, err
154624	}
154625	defer googleapi.CloseBody(res)
154626	if err := googleapi.CheckResponse(res); err != nil {
154627		return nil, err
154628	}
154629	ret := &Operation{
154630		ServerResponse: googleapi.ServerResponse{
154631			Header:         res.Header,
154632			HTTPStatusCode: res.StatusCode,
154633		},
154634	}
154635	target := &ret
154636	if err := gensupport.DecodeResponse(target, res); err != nil {
154637		return nil, err
154638	}
154639	return ret, nil
154640	// {
154641	//   "description": "Retrieves the specified zone-specific Operations resource.",
154642	//   "httpMethod": "GET",
154643	//   "id": "compute.zoneOperations.get",
154644	//   "parameterOrder": [
154645	//     "project",
154646	//     "zone",
154647	//     "operation"
154648	//   ],
154649	//   "parameters": {
154650	//     "operation": {
154651	//       "description": "Name of the Operations resource to return.",
154652	//       "location": "path",
154653	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
154654	//       "required": true,
154655	//       "type": "string"
154656	//     },
154657	//     "project": {
154658	//       "description": "Project ID for this request.",
154659	//       "location": "path",
154660	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154661	//       "required": true,
154662	//       "type": "string"
154663	//     },
154664	//     "zone": {
154665	//       "description": "Name of the zone for this request.",
154666	//       "location": "path",
154667	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154668	//       "required": true,
154669	//       "type": "string"
154670	//     }
154671	//   },
154672	//   "path": "{project}/zones/{zone}/operations/{operation}",
154673	//   "response": {
154674	//     "$ref": "Operation"
154675	//   },
154676	//   "scopes": [
154677	//     "https://www.googleapis.com/auth/cloud-platform",
154678	//     "https://www.googleapis.com/auth/compute",
154679	//     "https://www.googleapis.com/auth/compute.readonly"
154680	//   ]
154681	// }
154682
154683}
154684
154685// method id "compute.zoneOperations.list":
154686
154687type ZoneOperationsListCall struct {
154688	s            *Service
154689	project      string
154690	zone         string
154691	urlParams_   gensupport.URLParams
154692	ifNoneMatch_ string
154693	ctx_         context.Context
154694	header_      http.Header
154695}
154696
154697// List: Retrieves a list of Operation resources contained within the
154698// specified zone.
154699// For details, see https://cloud.google.com/compute/docs/reference/latest/zoneOperations/list
154700func (r *ZoneOperationsService) List(project string, zone string) *ZoneOperationsListCall {
154701	c := &ZoneOperationsListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154702	c.project = project
154703	c.zone = zone
154704	return c
154705}
154706
154707// Filter sets the optional parameter "filter": A filter expression that
154708// filters resources listed in the response. The expression must specify
154709// the field name, a comparison operator, and the value that you want to
154710// use for filtering. The value must be a string, a number, or a
154711// boolean. The comparison operator must be either =, !=, >, or <.
154712//
154713// For example, if you are filtering Compute Engine instances, you can
154714// exclude instances named example-instance by specifying name !=
154715// example-instance.
154716//
154717// You can also filter nested fields. For example, you could specify
154718// scheduling.automaticRestart = false to include instances only if they
154719// are not scheduled for automatic restarts. You can use filtering on
154720// nested fields to filter based on resource labels.
154721//
154722// To filter on multiple expressions, provide each separate expression
154723// within parentheses. For example, (scheduling.automaticRestart = true)
154724// (cpuPlatform = "Intel Skylake"). By default, each expression is an
154725// AND expression. However, you can include AND and OR expressions
154726// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
154727// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
154728// true).
154729func (c *ZoneOperationsListCall) Filter(filter string) *ZoneOperationsListCall {
154730	c.urlParams_.Set("filter", filter)
154731	return c
154732}
154733
154734// MaxResults sets the optional parameter "maxResults": The maximum
154735// number of results per page that should be returned. If the number of
154736// available results is larger than maxResults, Compute Engine returns a
154737// nextPageToken that can be used to get the next page of results in
154738// subsequent list requests. Acceptable values are 0 to 500, inclusive.
154739// (Default: 500)
154740func (c *ZoneOperationsListCall) MaxResults(maxResults int64) *ZoneOperationsListCall {
154741	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
154742	return c
154743}
154744
154745// OrderBy sets the optional parameter "orderBy": Sorts list results by
154746// a certain order. By default, results are returned in alphanumerical
154747// order based on the resource name.
154748//
154749// You can also sort results in descending order based on the creation
154750// timestamp using orderBy="creationTimestamp desc". This sorts results
154751// based on the creationTimestamp field in reverse chronological order
154752// (newest result first). Use this to sort resources like operations so
154753// that the newest operation is returned first.
154754//
154755// Currently, only sorting by name or creationTimestamp desc is
154756// supported.
154757func (c *ZoneOperationsListCall) OrderBy(orderBy string) *ZoneOperationsListCall {
154758	c.urlParams_.Set("orderBy", orderBy)
154759	return c
154760}
154761
154762// PageToken sets the optional parameter "pageToken": Specifies a page
154763// token to use. Set pageToken to the nextPageToken returned by a
154764// previous list request to get the next page of results.
154765func (c *ZoneOperationsListCall) PageToken(pageToken string) *ZoneOperationsListCall {
154766	c.urlParams_.Set("pageToken", pageToken)
154767	return c
154768}
154769
154770// Fields allows partial responses to be retrieved. See
154771// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154772// for more information.
154773func (c *ZoneOperationsListCall) Fields(s ...googleapi.Field) *ZoneOperationsListCall {
154774	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154775	return c
154776}
154777
154778// IfNoneMatch sets the optional parameter which makes the operation
154779// fail if the object's ETag matches the given value. This is useful for
154780// getting updates only after the object has changed since the last
154781// request. Use googleapi.IsNotModified to check whether the response
154782// error from Do is the result of In-None-Match.
154783func (c *ZoneOperationsListCall) IfNoneMatch(entityTag string) *ZoneOperationsListCall {
154784	c.ifNoneMatch_ = entityTag
154785	return c
154786}
154787
154788// Context sets the context to be used in this call's Do method. Any
154789// pending HTTP request will be aborted if the provided context is
154790// canceled.
154791func (c *ZoneOperationsListCall) Context(ctx context.Context) *ZoneOperationsListCall {
154792	c.ctx_ = ctx
154793	return c
154794}
154795
154796// Header returns an http.Header that can be modified by the caller to
154797// add HTTP headers to the request.
154798func (c *ZoneOperationsListCall) Header() http.Header {
154799	if c.header_ == nil {
154800		c.header_ = make(http.Header)
154801	}
154802	return c.header_
154803}
154804
154805func (c *ZoneOperationsListCall) doRequest(alt string) (*http.Response, error) {
154806	reqHeaders := make(http.Header)
154807	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
154808	for k, v := range c.header_ {
154809		reqHeaders[k] = v
154810	}
154811	reqHeaders.Set("User-Agent", c.s.userAgent())
154812	if c.ifNoneMatch_ != "" {
154813		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
154814	}
154815	var body io.Reader = nil
154816	c.urlParams_.Set("alt", alt)
154817	c.urlParams_.Set("prettyPrint", "false")
154818	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations")
154819	urls += "?" + c.urlParams_.Encode()
154820	req, err := http.NewRequest("GET", urls, body)
154821	if err != nil {
154822		return nil, err
154823	}
154824	req.Header = reqHeaders
154825	googleapi.Expand(req.URL, map[string]string{
154826		"project": c.project,
154827		"zone":    c.zone,
154828	})
154829	return gensupport.SendRequest(c.ctx_, c.s.client, req)
154830}
154831
154832// Do executes the "compute.zoneOperations.list" call.
154833// Exactly one of *OperationList or error will be non-nil. Any non-2xx
154834// status code is an error. Response headers are in either
154835// *OperationList.ServerResponse.Header or (if a response was returned
154836// at all) in error.(*googleapi.Error).Header. Use
154837// googleapi.IsNotModified to check whether the returned error was
154838// because http.StatusNotModified was returned.
154839func (c *ZoneOperationsListCall) Do(opts ...googleapi.CallOption) (*OperationList, error) {
154840	gensupport.SetOptions(c.urlParams_, opts...)
154841	res, err := c.doRequest("json")
154842	if res != nil && res.StatusCode == http.StatusNotModified {
154843		if res.Body != nil {
154844			res.Body.Close()
154845		}
154846		return nil, &googleapi.Error{
154847			Code:   res.StatusCode,
154848			Header: res.Header,
154849		}
154850	}
154851	if err != nil {
154852		return nil, err
154853	}
154854	defer googleapi.CloseBody(res)
154855	if err := googleapi.CheckResponse(res); err != nil {
154856		return nil, err
154857	}
154858	ret := &OperationList{
154859		ServerResponse: googleapi.ServerResponse{
154860			Header:         res.Header,
154861			HTTPStatusCode: res.StatusCode,
154862		},
154863	}
154864	target := &ret
154865	if err := gensupport.DecodeResponse(target, res); err != nil {
154866		return nil, err
154867	}
154868	return ret, nil
154869	// {
154870	//   "description": "Retrieves a list of Operation resources contained within the specified zone.",
154871	//   "httpMethod": "GET",
154872	//   "id": "compute.zoneOperations.list",
154873	//   "parameterOrder": [
154874	//     "project",
154875	//     "zone"
154876	//   ],
154877	//   "parameters": {
154878	//     "filter": {
154879	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
154880	//       "location": "query",
154881	//       "type": "string"
154882	//     },
154883	//     "maxResults": {
154884	//       "default": "500",
154885	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
154886	//       "format": "uint32",
154887	//       "location": "query",
154888	//       "minimum": "0",
154889	//       "type": "integer"
154890	//     },
154891	//     "orderBy": {
154892	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
154893	//       "location": "query",
154894	//       "type": "string"
154895	//     },
154896	//     "pageToken": {
154897	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
154898	//       "location": "query",
154899	//       "type": "string"
154900	//     },
154901	//     "project": {
154902	//       "description": "Project ID for this request.",
154903	//       "location": "path",
154904	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
154905	//       "required": true,
154906	//       "type": "string"
154907	//     },
154908	//     "zone": {
154909	//       "description": "Name of the zone for request.",
154910	//       "location": "path",
154911	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
154912	//       "required": true,
154913	//       "type": "string"
154914	//     }
154915	//   },
154916	//   "path": "{project}/zones/{zone}/operations",
154917	//   "response": {
154918	//     "$ref": "OperationList"
154919	//   },
154920	//   "scopes": [
154921	//     "https://www.googleapis.com/auth/cloud-platform",
154922	//     "https://www.googleapis.com/auth/compute",
154923	//     "https://www.googleapis.com/auth/compute.readonly"
154924	//   ]
154925	// }
154926
154927}
154928
154929// Pages invokes f for each page of results.
154930// A non-nil error returned from f will halt the iteration.
154931// The provided context supersedes any context provided to the Context method.
154932func (c *ZoneOperationsListCall) Pages(ctx context.Context, f func(*OperationList) error) error {
154933	c.ctx_ = ctx
154934	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
154935	for {
154936		x, err := c.Do()
154937		if err != nil {
154938			return err
154939		}
154940		if err := f(x); err != nil {
154941			return err
154942		}
154943		if x.NextPageToken == "" {
154944			return nil
154945		}
154946		c.PageToken(x.NextPageToken)
154947	}
154948}
154949
154950// method id "compute.zoneOperations.wait":
154951
154952type ZoneOperationsWaitCall struct {
154953	s          *Service
154954	project    string
154955	zone       string
154956	operation  string
154957	urlParams_ gensupport.URLParams
154958	ctx_       context.Context
154959	header_    http.Header
154960}
154961
154962// Wait: Waits for the specified Operation resource to return as DONE or
154963// for the request to approach the 2 minute deadline, and retrieves the
154964// specified Operation resource. This method differs from the GET method
154965// in that it waits for no more than the default deadline (2 minutes)
154966// and then returns the current state of the operation, which might be
154967// DONE or still in progress.
154968//
154969// This method is called on a best-effort basis. Specifically:
154970// - In uncommon cases, when the server is overloaded, the request might
154971// return before the default deadline is reached, or might return after
154972// zero seconds.
154973// - If the default deadline is reached, there is no guarantee that the
154974// operation is actually done when the method returns. Be prepared to
154975// retry if the operation is not DONE.
154976func (r *ZoneOperationsService) Wait(project string, zone string, operation string) *ZoneOperationsWaitCall {
154977	c := &ZoneOperationsWaitCall{s: r.s, urlParams_: make(gensupport.URLParams)}
154978	c.project = project
154979	c.zone = zone
154980	c.operation = operation
154981	return c
154982}
154983
154984// Fields allows partial responses to be retrieved. See
154985// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
154986// for more information.
154987func (c *ZoneOperationsWaitCall) Fields(s ...googleapi.Field) *ZoneOperationsWaitCall {
154988	c.urlParams_.Set("fields", googleapi.CombineFields(s))
154989	return c
154990}
154991
154992// Context sets the context to be used in this call's Do method. Any
154993// pending HTTP request will be aborted if the provided context is
154994// canceled.
154995func (c *ZoneOperationsWaitCall) Context(ctx context.Context) *ZoneOperationsWaitCall {
154996	c.ctx_ = ctx
154997	return c
154998}
154999
155000// Header returns an http.Header that can be modified by the caller to
155001// add HTTP headers to the request.
155002func (c *ZoneOperationsWaitCall) Header() http.Header {
155003	if c.header_ == nil {
155004		c.header_ = make(http.Header)
155005	}
155006	return c.header_
155007}
155008
155009func (c *ZoneOperationsWaitCall) doRequest(alt string) (*http.Response, error) {
155010	reqHeaders := make(http.Header)
155011	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
155012	for k, v := range c.header_ {
155013		reqHeaders[k] = v
155014	}
155015	reqHeaders.Set("User-Agent", c.s.userAgent())
155016	var body io.Reader = nil
155017	c.urlParams_.Set("alt", alt)
155018	c.urlParams_.Set("prettyPrint", "false")
155019	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}/operations/{operation}/wait")
155020	urls += "?" + c.urlParams_.Encode()
155021	req, err := http.NewRequest("POST", urls, body)
155022	if err != nil {
155023		return nil, err
155024	}
155025	req.Header = reqHeaders
155026	googleapi.Expand(req.URL, map[string]string{
155027		"project":   c.project,
155028		"zone":      c.zone,
155029		"operation": c.operation,
155030	})
155031	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155032}
155033
155034// Do executes the "compute.zoneOperations.wait" call.
155035// Exactly one of *Operation or error will be non-nil. Any non-2xx
155036// status code is an error. Response headers are in either
155037// *Operation.ServerResponse.Header or (if a response was returned at
155038// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155039// to check whether the returned error was because
155040// http.StatusNotModified was returned.
155041func (c *ZoneOperationsWaitCall) Do(opts ...googleapi.CallOption) (*Operation, error) {
155042	gensupport.SetOptions(c.urlParams_, opts...)
155043	res, err := c.doRequest("json")
155044	if res != nil && res.StatusCode == http.StatusNotModified {
155045		if res.Body != nil {
155046			res.Body.Close()
155047		}
155048		return nil, &googleapi.Error{
155049			Code:   res.StatusCode,
155050			Header: res.Header,
155051		}
155052	}
155053	if err != nil {
155054		return nil, err
155055	}
155056	defer googleapi.CloseBody(res)
155057	if err := googleapi.CheckResponse(res); err != nil {
155058		return nil, err
155059	}
155060	ret := &Operation{
155061		ServerResponse: googleapi.ServerResponse{
155062			Header:         res.Header,
155063			HTTPStatusCode: res.StatusCode,
155064		},
155065	}
155066	target := &ret
155067	if err := gensupport.DecodeResponse(target, res); err != nil {
155068		return nil, err
155069	}
155070	return ret, nil
155071	// {
155072	//   "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.",
155073	//   "httpMethod": "POST",
155074	//   "id": "compute.zoneOperations.wait",
155075	//   "parameterOrder": [
155076	//     "project",
155077	//     "zone",
155078	//     "operation"
155079	//   ],
155080	//   "parameters": {
155081	//     "operation": {
155082	//       "description": "Name of the Operations resource to return.",
155083	//       "location": "path",
155084	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155085	//       "required": true,
155086	//       "type": "string"
155087	//     },
155088	//     "project": {
155089	//       "description": "Project ID for this request.",
155090	//       "location": "path",
155091	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155092	//       "required": true,
155093	//       "type": "string"
155094	//     },
155095	//     "zone": {
155096	//       "description": "Name of the zone for this request.",
155097	//       "location": "path",
155098	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?",
155099	//       "required": true,
155100	//       "type": "string"
155101	//     }
155102	//   },
155103	//   "path": "{project}/zones/{zone}/operations/{operation}/wait",
155104	//   "response": {
155105	//     "$ref": "Operation"
155106	//   },
155107	//   "scopes": [
155108	//     "https://www.googleapis.com/auth/cloud-platform",
155109	//     "https://www.googleapis.com/auth/compute",
155110	//     "https://www.googleapis.com/auth/compute.readonly"
155111	//   ]
155112	// }
155113
155114}
155115
155116// method id "compute.zones.get":
155117
155118type ZonesGetCall struct {
155119	s            *Service
155120	project      string
155121	zone         string
155122	urlParams_   gensupport.URLParams
155123	ifNoneMatch_ string
155124	ctx_         context.Context
155125	header_      http.Header
155126}
155127
155128// Get: Returns the specified Zone resource. Gets a list of available
155129// zones by making a list() request.
155130// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/get
155131func (r *ZonesService) Get(project string, zone string) *ZonesGetCall {
155132	c := &ZonesGetCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155133	c.project = project
155134	c.zone = zone
155135	return c
155136}
155137
155138// Fields allows partial responses to be retrieved. See
155139// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155140// for more information.
155141func (c *ZonesGetCall) Fields(s ...googleapi.Field) *ZonesGetCall {
155142	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155143	return c
155144}
155145
155146// IfNoneMatch sets the optional parameter which makes the operation
155147// fail if the object's ETag matches the given value. This is useful for
155148// getting updates only after the object has changed since the last
155149// request. Use googleapi.IsNotModified to check whether the response
155150// error from Do is the result of In-None-Match.
155151func (c *ZonesGetCall) IfNoneMatch(entityTag string) *ZonesGetCall {
155152	c.ifNoneMatch_ = entityTag
155153	return c
155154}
155155
155156// Context sets the context to be used in this call's Do method. Any
155157// pending HTTP request will be aborted if the provided context is
155158// canceled.
155159func (c *ZonesGetCall) Context(ctx context.Context) *ZonesGetCall {
155160	c.ctx_ = ctx
155161	return c
155162}
155163
155164// Header returns an http.Header that can be modified by the caller to
155165// add HTTP headers to the request.
155166func (c *ZonesGetCall) Header() http.Header {
155167	if c.header_ == nil {
155168		c.header_ = make(http.Header)
155169	}
155170	return c.header_
155171}
155172
155173func (c *ZonesGetCall) doRequest(alt string) (*http.Response, error) {
155174	reqHeaders := make(http.Header)
155175	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
155176	for k, v := range c.header_ {
155177		reqHeaders[k] = v
155178	}
155179	reqHeaders.Set("User-Agent", c.s.userAgent())
155180	if c.ifNoneMatch_ != "" {
155181		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155182	}
155183	var body io.Reader = nil
155184	c.urlParams_.Set("alt", alt)
155185	c.urlParams_.Set("prettyPrint", "false")
155186	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones/{zone}")
155187	urls += "?" + c.urlParams_.Encode()
155188	req, err := http.NewRequest("GET", urls, body)
155189	if err != nil {
155190		return nil, err
155191	}
155192	req.Header = reqHeaders
155193	googleapi.Expand(req.URL, map[string]string{
155194		"project": c.project,
155195		"zone":    c.zone,
155196	})
155197	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155198}
155199
155200// Do executes the "compute.zones.get" call.
155201// Exactly one of *Zone or error will be non-nil. Any non-2xx status
155202// code is an error. Response headers are in either
155203// *Zone.ServerResponse.Header or (if a response was returned at all) in
155204// error.(*googleapi.Error).Header. Use googleapi.IsNotModified to check
155205// whether the returned error was because http.StatusNotModified was
155206// returned.
155207func (c *ZonesGetCall) Do(opts ...googleapi.CallOption) (*Zone, error) {
155208	gensupport.SetOptions(c.urlParams_, opts...)
155209	res, err := c.doRequest("json")
155210	if res != nil && res.StatusCode == http.StatusNotModified {
155211		if res.Body != nil {
155212			res.Body.Close()
155213		}
155214		return nil, &googleapi.Error{
155215			Code:   res.StatusCode,
155216			Header: res.Header,
155217		}
155218	}
155219	if err != nil {
155220		return nil, err
155221	}
155222	defer googleapi.CloseBody(res)
155223	if err := googleapi.CheckResponse(res); err != nil {
155224		return nil, err
155225	}
155226	ret := &Zone{
155227		ServerResponse: googleapi.ServerResponse{
155228			Header:         res.Header,
155229			HTTPStatusCode: res.StatusCode,
155230		},
155231	}
155232	target := &ret
155233	if err := gensupport.DecodeResponse(target, res); err != nil {
155234		return nil, err
155235	}
155236	return ret, nil
155237	// {
155238	//   "description": "Returns the specified Zone resource. Gets a list of available zones by making a list() request.",
155239	//   "httpMethod": "GET",
155240	//   "id": "compute.zones.get",
155241	//   "parameterOrder": [
155242	//     "project",
155243	//     "zone"
155244	//   ],
155245	//   "parameters": {
155246	//     "project": {
155247	//       "description": "Project ID for this request.",
155248	//       "location": "path",
155249	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155250	//       "required": true,
155251	//       "type": "string"
155252	//     },
155253	//     "zone": {
155254	//       "description": "Name of the zone resource to return.",
155255	//       "location": "path",
155256	//       "pattern": "[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?|[1-9][0-9]{0,19}",
155257	//       "required": true,
155258	//       "type": "string"
155259	//     }
155260	//   },
155261	//   "path": "{project}/zones/{zone}",
155262	//   "response": {
155263	//     "$ref": "Zone"
155264	//   },
155265	//   "scopes": [
155266	//     "https://www.googleapis.com/auth/cloud-platform",
155267	//     "https://www.googleapis.com/auth/compute",
155268	//     "https://www.googleapis.com/auth/compute.readonly"
155269	//   ]
155270	// }
155271
155272}
155273
155274// method id "compute.zones.list":
155275
155276type ZonesListCall struct {
155277	s            *Service
155278	project      string
155279	urlParams_   gensupport.URLParams
155280	ifNoneMatch_ string
155281	ctx_         context.Context
155282	header_      http.Header
155283}
155284
155285// List: Retrieves the list of Zone resources available to the specified
155286// project.
155287// For details, see https://cloud.google.com/compute/docs/reference/latest/zones/list
155288func (r *ZonesService) List(project string) *ZonesListCall {
155289	c := &ZonesListCall{s: r.s, urlParams_: make(gensupport.URLParams)}
155290	c.project = project
155291	return c
155292}
155293
155294// Filter sets the optional parameter "filter": A filter expression that
155295// filters resources listed in the response. The expression must specify
155296// the field name, a comparison operator, and the value that you want to
155297// use for filtering. The value must be a string, a number, or a
155298// boolean. The comparison operator must be either =, !=, >, or <.
155299//
155300// For example, if you are filtering Compute Engine instances, you can
155301// exclude instances named example-instance by specifying name !=
155302// example-instance.
155303//
155304// You can also filter nested fields. For example, you could specify
155305// scheduling.automaticRestart = false to include instances only if they
155306// are not scheduled for automatic restarts. You can use filtering on
155307// nested fields to filter based on resource labels.
155308//
155309// To filter on multiple expressions, provide each separate expression
155310// within parentheses. For example, (scheduling.automaticRestart = true)
155311// (cpuPlatform = "Intel Skylake"). By default, each expression is an
155312// AND expression. However, you can include AND and OR expressions
155313// explicitly. For example, (cpuPlatform = "Intel Skylake") OR
155314// (cpuPlatform = "Intel Broadwell") AND (scheduling.automaticRestart =
155315// true).
155316func (c *ZonesListCall) Filter(filter string) *ZonesListCall {
155317	c.urlParams_.Set("filter", filter)
155318	return c
155319}
155320
155321// MaxResults sets the optional parameter "maxResults": The maximum
155322// number of results per page that should be returned. If the number of
155323// available results is larger than maxResults, Compute Engine returns a
155324// nextPageToken that can be used to get the next page of results in
155325// subsequent list requests. Acceptable values are 0 to 500, inclusive.
155326// (Default: 500)
155327func (c *ZonesListCall) MaxResults(maxResults int64) *ZonesListCall {
155328	c.urlParams_.Set("maxResults", fmt.Sprint(maxResults))
155329	return c
155330}
155331
155332// OrderBy sets the optional parameter "orderBy": Sorts list results by
155333// a certain order. By default, results are returned in alphanumerical
155334// order based on the resource name.
155335//
155336// You can also sort results in descending order based on the creation
155337// timestamp using orderBy="creationTimestamp desc". This sorts results
155338// based on the creationTimestamp field in reverse chronological order
155339// (newest result first). Use this to sort resources like operations so
155340// that the newest operation is returned first.
155341//
155342// Currently, only sorting by name or creationTimestamp desc is
155343// supported.
155344func (c *ZonesListCall) OrderBy(orderBy string) *ZonesListCall {
155345	c.urlParams_.Set("orderBy", orderBy)
155346	return c
155347}
155348
155349// PageToken sets the optional parameter "pageToken": Specifies a page
155350// token to use. Set pageToken to the nextPageToken returned by a
155351// previous list request to get the next page of results.
155352func (c *ZonesListCall) PageToken(pageToken string) *ZonesListCall {
155353	c.urlParams_.Set("pageToken", pageToken)
155354	return c
155355}
155356
155357// Fields allows partial responses to be retrieved. See
155358// https://developers.google.com/gdata/docs/2.0/basics#PartialResponse
155359// for more information.
155360func (c *ZonesListCall) Fields(s ...googleapi.Field) *ZonesListCall {
155361	c.urlParams_.Set("fields", googleapi.CombineFields(s))
155362	return c
155363}
155364
155365// IfNoneMatch sets the optional parameter which makes the operation
155366// fail if the object's ETag matches the given value. This is useful for
155367// getting updates only after the object has changed since the last
155368// request. Use googleapi.IsNotModified to check whether the response
155369// error from Do is the result of In-None-Match.
155370func (c *ZonesListCall) IfNoneMatch(entityTag string) *ZonesListCall {
155371	c.ifNoneMatch_ = entityTag
155372	return c
155373}
155374
155375// Context sets the context to be used in this call's Do method. Any
155376// pending HTTP request will be aborted if the provided context is
155377// canceled.
155378func (c *ZonesListCall) Context(ctx context.Context) *ZonesListCall {
155379	c.ctx_ = ctx
155380	return c
155381}
155382
155383// Header returns an http.Header that can be modified by the caller to
155384// add HTTP headers to the request.
155385func (c *ZonesListCall) Header() http.Header {
155386	if c.header_ == nil {
155387		c.header_ = make(http.Header)
155388	}
155389	return c.header_
155390}
155391
155392func (c *ZonesListCall) doRequest(alt string) (*http.Response, error) {
155393	reqHeaders := make(http.Header)
155394	reqHeaders.Set("x-goog-api-client", "gl-go/"+gensupport.GoVersion()+" gdcl/20200302")
155395	for k, v := range c.header_ {
155396		reqHeaders[k] = v
155397	}
155398	reqHeaders.Set("User-Agent", c.s.userAgent())
155399	if c.ifNoneMatch_ != "" {
155400		reqHeaders.Set("If-None-Match", c.ifNoneMatch_)
155401	}
155402	var body io.Reader = nil
155403	c.urlParams_.Set("alt", alt)
155404	c.urlParams_.Set("prettyPrint", "false")
155405	urls := googleapi.ResolveRelative(c.s.BasePath, "{project}/zones")
155406	urls += "?" + c.urlParams_.Encode()
155407	req, err := http.NewRequest("GET", urls, body)
155408	if err != nil {
155409		return nil, err
155410	}
155411	req.Header = reqHeaders
155412	googleapi.Expand(req.URL, map[string]string{
155413		"project": c.project,
155414	})
155415	return gensupport.SendRequest(c.ctx_, c.s.client, req)
155416}
155417
155418// Do executes the "compute.zones.list" call.
155419// Exactly one of *ZoneList or error will be non-nil. Any non-2xx status
155420// code is an error. Response headers are in either
155421// *ZoneList.ServerResponse.Header or (if a response was returned at
155422// all) in error.(*googleapi.Error).Header. Use googleapi.IsNotModified
155423// to check whether the returned error was because
155424// http.StatusNotModified was returned.
155425func (c *ZonesListCall) Do(opts ...googleapi.CallOption) (*ZoneList, error) {
155426	gensupport.SetOptions(c.urlParams_, opts...)
155427	res, err := c.doRequest("json")
155428	if res != nil && res.StatusCode == http.StatusNotModified {
155429		if res.Body != nil {
155430			res.Body.Close()
155431		}
155432		return nil, &googleapi.Error{
155433			Code:   res.StatusCode,
155434			Header: res.Header,
155435		}
155436	}
155437	if err != nil {
155438		return nil, err
155439	}
155440	defer googleapi.CloseBody(res)
155441	if err := googleapi.CheckResponse(res); err != nil {
155442		return nil, err
155443	}
155444	ret := &ZoneList{
155445		ServerResponse: googleapi.ServerResponse{
155446			Header:         res.Header,
155447			HTTPStatusCode: res.StatusCode,
155448		},
155449	}
155450	target := &ret
155451	if err := gensupport.DecodeResponse(target, res); err != nil {
155452		return nil, err
155453	}
155454	return ret, nil
155455	// {
155456	//   "description": "Retrieves the list of Zone resources available to the specified project.",
155457	//   "httpMethod": "GET",
155458	//   "id": "compute.zones.list",
155459	//   "parameterOrder": [
155460	//     "project"
155461	//   ],
155462	//   "parameters": {
155463	//     "filter": {
155464	//       "description": "A filter expression that filters resources listed in the response. The expression must specify the field name, a comparison operator, and the value that you want to use for filtering. The value must be a string, a number, or a boolean. The comparison operator must be either =, !=, \u003e, or \u003c.\n\nFor example, if you are filtering Compute Engine instances, you can exclude instances named example-instance by specifying name != example-instance.\n\nYou can also filter nested fields. For example, you could specify scheduling.automaticRestart = false to include instances only if they are not scheduled for automatic restarts. You can use filtering on nested fields to filter based on resource labels.\n\nTo filter on multiple expressions, provide each separate expression within parentheses. For example, (scheduling.automaticRestart = true) (cpuPlatform = \"Intel Skylake\"). By default, each expression is an AND expression. However, you can include AND and OR expressions explicitly. For example, (cpuPlatform = \"Intel Skylake\") OR (cpuPlatform = \"Intel Broadwell\") AND (scheduling.automaticRestart = true).",
155465	//       "location": "query",
155466	//       "type": "string"
155467	//     },
155468	//     "maxResults": {
155469	//       "default": "500",
155470	//       "description": "The maximum number of results per page that should be returned. If the number of available results is larger than maxResults, Compute Engine returns a nextPageToken that can be used to get the next page of results in subsequent list requests. Acceptable values are 0 to 500, inclusive. (Default: 500)",
155471	//       "format": "uint32",
155472	//       "location": "query",
155473	//       "minimum": "0",
155474	//       "type": "integer"
155475	//     },
155476	//     "orderBy": {
155477	//       "description": "Sorts list results by a certain order. By default, results are returned in alphanumerical order based on the resource name.\n\nYou can also sort results in descending order based on the creation timestamp using orderBy=\"creationTimestamp desc\". This sorts results based on the creationTimestamp field in reverse chronological order (newest result first). Use this to sort resources like operations so that the newest operation is returned first.\n\nCurrently, only sorting by name or creationTimestamp desc is supported.",
155478	//       "location": "query",
155479	//       "type": "string"
155480	//     },
155481	//     "pageToken": {
155482	//       "description": "Specifies a page token to use. Set pageToken to the nextPageToken returned by a previous list request to get the next page of results.",
155483	//       "location": "query",
155484	//       "type": "string"
155485	//     },
155486	//     "project": {
155487	//       "description": "Project ID for this request.",
155488	//       "location": "path",
155489	//       "pattern": "(?:(?:[-a-z0-9]{1,63}\\.)*(?:[a-z](?:[-a-z0-9]{0,61}[a-z0-9])?):)?(?:[0-9]{1,19}|(?:[a-z0-9](?:[-a-z0-9]{0,61}[a-z0-9])?))",
155490	//       "required": true,
155491	//       "type": "string"
155492	//     }
155493	//   },
155494	//   "path": "{project}/zones",
155495	//   "response": {
155496	//     "$ref": "ZoneList"
155497	//   },
155498	//   "scopes": [
155499	//     "https://www.googleapis.com/auth/cloud-platform",
155500	//     "https://www.googleapis.com/auth/compute",
155501	//     "https://www.googleapis.com/auth/compute.readonly"
155502	//   ]
155503	// }
155504
155505}
155506
155507// Pages invokes f for each page of results.
155508// A non-nil error returned from f will halt the iteration.
155509// The provided context supersedes any context provided to the Context method.
155510func (c *ZonesListCall) Pages(ctx context.Context, f func(*ZoneList) error) error {
155511	c.ctx_ = ctx
155512	defer c.PageToken(c.urlParams_.Get("pageToken")) // reset paging to original point
155513	for {
155514		x, err := c.Do()
155515		if err != nil {
155516			return err
155517		}
155518		if err := f(x); err != nil {
155519			return err
155520		}
155521		if x.NextPageToken == "" {
155522			return nil
155523		}
155524		c.PageToken(x.NextPageToken)
155525	}
155526}
155527